CREATE OR ALTER TRIGGER TTBCAIXABANCO_CONC_DET_B01D FOR TBCAIXABANCO_CONCILIACAO_DET
ACTIVE BEFORE DELETE POSITION 0
AS
DECLARE VARIABLE TRANSFERENCIA VARCHAR(1);
DECLARE VARIABLE NATUREZA      VARCHAR(10);
BEGIN
  NATUREZA = COALESCE((SELECT FIRST 1 A.NATUREZA FROM TBCAIXABANCO_CONCILIACAO_LANC A WHERE A.ID = OLD.CONCILIACAO_LANC_ID),'');
  /* DESCONCILIAR LANÇAMENTOS DO CAIXA/BANCO */
  IF(:NATUREZA <> '') THEN
  BEGIN
      IF(OLD.CAIXABANCO_LANC_ID > 0)THEN
      BEGIN
         :TRANSFERENCIA = COALESCE((SELECT FIRST 1 A.TRANSFERENCIA FROM TBCAIXABANCO_LANCAMENTO A WHERE A.CONTROLE = OLD.CAIXABANCO_LANC_ID),'0');
         IF(:TRANSFERENCIA = '1')THEN
         BEGIN
             :NATUREZA = IIF(:NATUREZA = 'C','D','C');
             UPDATE TBCAIXABANCO_LANCAMENTO A SET A.CONCILIACAO = 0 WHERE A.CONTROLE = OLD.CAIXABANCO_LANC_ID AND A.NATUREZA = :NATUREZA AND A.TRANSFERENCIA = '1';
         END

         IF(:TRANSFERENCIA = '0')THEN
         BEGIN
             UPDATE TBCAIXABANCO_LANCAMENTO A SET A.CONCILIACAO = 0 WHERE A.CONTROLE = OLD.CAIXABANCO_LANC_ID AND A.TRANSFERENCIA = '0' ;
         END
      END
    
      IF(OLD.CONCILIACAO_LANC_ID > 0)THEN
      BEGIN
         UPDATE TBCAIXABANCO_CONCILIACAO_LANC A SET A.CONCILIACAO = 0 WHERE A.ID = OLD.CONCILIACAO_LANC_ID;
      END
  END
END;

CREATE OR ALTER TRIGGER TTBCAIXABANCO_CONC_DET_B02I FOR TBCAIXABANCO_CONCILIACAO_DET
ACTIVE BEFORE INSERT POSITION 2
AS
DECLARE VARIABLE TRANSFERENCIA VARCHAR(1);
DECLARE VARIABLE NATUREZA      VARCHAR(10);
BEGIN
  NATUREZA = COALESCE((SELECT FIRST 1 A.NATUREZA FROM TBCAIXABANCO_CONCILIACAO_LANC A WHERE A.ID = NEW.CONCILIACAO_LANC_ID),'');
 /* CONCILIAR LANÇAMENTOS DO CAIXA/BANCO */
  IF(:NATUREZA <> '') THEN
  BEGIN
      IF(NEW.CAIXABANCO_LANC_ID > 0)THEN
      BEGIN
         :TRANSFERENCIA = COALESCE((SELECT FIRST 1 A.TRANSFERENCIA FROM TBCAIXABANCO_LANCAMENTO A WHERE A.CONTROLE = NEW.CAIXABANCO_LANC_ID),'0');
         IF(:TRANSFERENCIA = '1')THEN
         BEGIN
             :NATUREZA = IIF(:NATUREZA = 'C','D','C');
             UPDATE TBCAIXABANCO_LANCAMENTO A SET A.CONCILIACAO = 1 WHERE A.CONTROLE = NEW.CAIXABANCO_LANC_ID AND A.NATUREZA = :NATUREZA AND A.TRANSFERENCIA = '1';
         END

         IF(:TRANSFERENCIA = '0')THEN
         BEGIN
             UPDATE TBCAIXABANCO_LANCAMENTO A SET A.CONCILIACAO = 1 WHERE A.CONTROLE = NEW.CAIXABANCO_LANC_ID AND A.TRANSFERENCIA = '0' ;
         END
      END
    
      IF(NEW.CONCILIACAO_LANC_ID > 0)THEN
      BEGIN
         UPDATE TBCAIXABANCO_CONCILIACAO_LANC A SET A.CONCILIACAO = 1 WHERE A.ID = NEW.CONCILIACAO_LANC_ID;
      END
  END
END;