CREATE OR ALTER TRIGGER TTBCAIXABANCO_LANC_REG_AD01 FOR TBCAIXABANCO_LANCAMENTO_REG
ACTIVE AFTER DELETE POSITION 0
AS
BEGIN
     IF(OLD.NFE_PARCELAMENTO_CONTROLE > 0) THEN
     BEGIN
        EXECUTE PROCEDURE SPU_CONTA_PAGAR_SALDO2(OLD.NFE_CONTROLE,OLD.NFE_PARCELAMENTO_CONTROLE);

        UPDATE TBNFE_PARCELAMENTO A SET
            A.VALOR_SALDO = COALESCE((SELECT SUM(CASE WHEN B.TIPO = 'D' THEN
            B.VALOR_TOTAL*-1  ELSE B.VALOR_TOTAL END)
            SALDO FROM TBCAIXABANCO_LANCAMENTO_REG B
            WHERE B.NFE_CONTROLE = A.NFE_CONTROLE
            AND B.TIPO IN ('D','C')
            AND B.NFE_PARCELAMENTO_CONTROLE = A.CONTROLE),0)
            WHERE A.NFE_CONTROLE = OLD.NFE_CONTROLE
              AND A.CONTROLE     = OLD.NFE_PARCELAMENTO_CONTROLE;
     END

     IF(OLD.NFS_PARCELAMENTO_CONTROLE > 0) THEN
     BEGIN
        EXECUTE PROCEDURE SPU_CONTA_RECEBER_SALDO2(OLD.NFS_CONTROLE,OLD.NFS_PARCELAMENTO_CONTROLE);

        UPDATE TBNFS_PARCELAMENTO A SET A.VALOR_SALDO = COALESCE((SELECT SUM(CASE WHEN B.TIPO = 'C'
            THEN B.VALOR_TOTAL*-1  ELSE B.VALOR_TOTAL END) SALDO FROM TBCAIXABANCO_LANCAMENTO_REG B
            WHERE B.NFS_CONTROLE = A.NFS_CONTROLE
            AND B.TIPO IN ('D','C')
            AND B.NFS_PARCELAMENTO_CONTROLE = A.CONTROLE),0)
            WHERE A.NFS_CONTROLE = OLD.NFS_CONTROLE
              AND A.CONTROLE     = OLD.NFS_PARCELAMENTO_CONTROLE;
     END

     IF(OLD.CAIXABANCO_CONTROLE > 0) THEN
     BEGIN
          UPDATE TBCAIXABANCO_LANCAMENTO A
            SET A.VALOR_TOTAL = COALESCE((SELECT SUM(B.VALOR_TOTAL) FROM TBCAIXABANCO_LANCAMENTO_REG B WHERE B.CAIXABANCO_CONTROLE = OLD.CAIXABANCO_CONTROLE),0)
            WHERE A.CONTROLE  = OLD.CAIXABANCO_CONTROLE;
     END
END;