SET TERM ^ ;

CREATE OR ALTER trigger ttbcaixabanco_lanc_class_sa_b2d for tbcaixabanco_lanc_class_saldo
active before delete position 2
AS
DECLARE VARIABLE CHEQUE_SITUACAO INTEGER;
BEGIN

  if (OLD.SALDO < OLD.VALOR) Then
      Begin
      Exception "..." 'REGISTRO NAO PODE SER EXCLUIDO! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .';
      End

    IF(OLD.CHEQUE_ID > 0)THEN
    BEGIN

        CHEQUE_SITUACAO = COALESCE((SELECT FIRST 1 A.SITUACAO FROM TBCHEQUE A WHERE A.ID = OLD.CHEQUE_ID), -1);

        IF(CHEQUE_SITUACAO = 5)THEN
        BEGIN
            exception "..." 'CHEQUE: '||FN_LPAD(OLD.CHEQUE_ID, 4, '0')||' VINCULADO AO REGISTRO COM SITUACAO DEVOLVIDO. EXCLUSAO NAO AUTORIZADA!';
        END

        UPDATE TBCHEQUE SET SITUACAO = 3 WHERE ID = OLD.CHEQUE_ID;
    END

END
^

SET TERM ; ^

SET TERM ^ ;

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

       Update TBCAIXABANCO_LANC_CLASS_SALDO Set
       Saldo = Saldo + Old.Valor_Total
       Where ID = Old.LANCAMENTO_CLASS_ID;
       End

END
^

SET TERM ; ^