CREATE OR ALTER TRIGGER TTBCAIXABANCO_LANC_REG_B2D FOR TBCAIXABANCO_LANCAMENTO_REG
ACTIVE BEFORE DELETE POSITION 2
AS
DECLARE VARIABLE CHEQUE_SIT INTEGER;
BEGIN

    IF (OLD.LANCAMENTO_CLASS_ID > 0) THEN
    BEGIN
    
        CHEQUE_SIT = COALESCE((SELECT FIRST 1 A.SITUACAO FROM TBCHEQUE A WHERE A.ID = OLD.CHEQUE_ID), -1);
        
        IF(CHEQUE_SIT = 5 AND OLD.CHEQUE_ID > 0)THEN
        BEGIN
            EXCEPTION "..." 'CHEQUE: '||FN_LPAD(OLD.CHEQUE_ID, 4, '0')||' VINCULADO AO REGISTRO COM SITUACAO DEVOLVIDO. EXCLUSAO NAO AUTORIZADA!';
        END
        
        IF((OLD.LANCAMENTO_ANTECIPADO_ID IS NULL OR OLD.LANCAMENTO_ANTECIPADO_ID = 0))THEN
        BEGIN
             UPDATE TBCAIXABANCO_LANC_CLASS_SALDO SET
               SALDO = SALDO + OLD.VALOR_TOTAL
               WHERE ID = OLD.LANCAMENTO_CLASS_ID;
        END
    END

    IF (((OLD.NFS_PARCELAMENTO_CONTROLE > 0) OR (OLD.NFE_PARCELAMENTO_CONTROLE > 0)) AND OLD.CODORIGEM IN ('CPA', 'CRE') AND COALESCE(OLD.caixabanco_controle,0) = 0 AND OLD.MOVCONTMESTRE_ID > 0) THEN
    BEGIN

        DELETE FROM TBMOVCONTMESTRE WHERE ID = OLD.MOVCONTMESTRE_ID;

    END

END;