SET TERM ^ ;

CREATE OR ALTER TRIGGER TTBNFE_PARCELAMENTO_B07U FOR TBNFE_PARCELAMENTO
ACTIVE BEFORE UPDATE POSITION 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(8000);
BEGIN

    HISTORICO = '';
    IF (NEW.CONTROLE > 0) THEN
       BEGIN
    
           IF (OLD.DATA_VENCIMENTO <> NEW.DATA_VENCIMENTO) THEN
               BEGIN
               HISTORICO = HISTORICO||' DT.VCTO: '||OLD.DATA_VENCIMENTO||'->'||NEW.DATA_VENCIMENTO;
               END
           IF (OLD.VALOR <> NEW.VALOR) THEN
               BEGIN
               HISTORICO = HISTORICO||',VALOR: '||OLD.VALOR||'->'||NEW.VALOR;
               END

           IF (OLD.VALOR_DESCONTO <> NEW.VALOR_DESCONTO) THEN
               BEGIN
               HISTORICO = HISTORICO||',VR.DESC: '||OLD.VALOR_DESCONTO||'->'||NEW.VALOR_DESCONTO;
               END

           IF (OLD.CONTA_PAGAR_OPERACAO <> NEW.CONTA_PAGAR_OPERACAO) THEN
               BEGIN
               HISTORICO = HISTORICO||',OPER: '||OLD.CONTA_PAGAR_OPERACAO||'->'||NEW.CONTA_PAGAR_OPERACAO;
               END

           IF (OLD.CLASSIFICACAO_CONTABIL <> NEW.CLASSIFICACAO_CONTABIL) THEN
               BEGIN
               HISTORICO = HISTORICO||',CLASS.FIN: '||OLD.CLASSIFICACAO_CONTABIL||'->'||NEW.CLASSIFICACAO_CONTABIL;
               END
           IF (OLD.CCUSTO <> NEW.CCUSTO) THEN
               BEGIN
               HISTORICO = HISTORICO||',CCUSTO: '||OLD.CCUSTO||'->'||NEW.CCUSTO;
               END
           IF (OLD.ACEITE <> NEW.ACEITE) THEN
               BEGIN
               HISTORICO = HISTORICO||',ACEITE: '||OLD.ACEITE||'->'||NEW.ACEITE;
               END
           IF (OLD.VALOR_SALDO <> NEW.VALOR_SALDO) THEN
               BEGIN
               HISTORICO = HISTORICO||',SALDO: '||OLD.VALOR_SALDO||'->'||NEW.VALOR_SALDO;
               END

           IF (OLD.OBSERVACAO <> NEW.OBSERVACAO) THEN
               BEGIN
               HISTORICO = HISTORICO||',OBS: '||OLD.OBSERVACAO||'->'||NEW.OBSERVACAO;
               END

           IF (OLD.DATA_COMPETENCIA <> NEW.DATA_COMPETENCIA) THEN
               BEGIN
               HISTORICO = HISTORICO||',DT.COMP: '||COALESCE(OLD.DATA_COMPETENCIA,OLD.DATA_ENTRADA)||'->'||COALESCE(NEW.DATA_COMPETENCIA,NEW.DATA_ENTRADA);
               END

       IF (HISTORICO <> '') THEN
           BEGIN
           INSERT INTO TBHISTORICO
                      (
                      TABELA,
                      TABELA_ID,
                      USUARIO, IP,
                      HISTORICO
                      )
               VALUES(
                      'TBNFE_PARCELAMENTO',
                      OLD.CONTROLE,
                      (SELECT FIRST 1 MON$USER FROM MON$ATTACHMENTS WHERE MON$ATTACHMENT_ID = CURRENT_CONNECTION),
                      (SELECT FIRST 1 MON$REMOTE_ADDRESS FROM MON$ATTACHMENTS WHERE MON$ATTACHMENT_ID = CURRENT_CONNECTION),
                      :HISTORICO
                      );
           END
       END

END^

SET TERM ; ^

