CREATE OR ALTER trigger ttbnfs_parcelamento_b9d for tbnfs_parcelamento
active before delete position 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
begin

       INSERT INTO TBHISTORICO (
       TABELA, TABELA_ID, USUARIO, IP, HISTORICO) VALUES (
      'TBNFS', OLD.NFS_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),
       'PARCELA EXCLUIDA: PARC.'||FN_LPAD(OLD.PARCELA,2,0)||' VCTO.'||OLD.DATA_VENCIMENTO||' VALOR '||OLD.VALOR);

      IF(OLD.pdv_cfe_forma_pagamento_id > 0) THEN
      BEGIN
           INSERT INTO TBHISTORICO (
               TABELA, TABELA_ID, USUARIO, IP, HISTORICO)
               VALUES (
              'TBPDV_CFE', COALESCE((SELECT FIRST 1 C.PDV_CFE_ID FROM tbpdv_cfe_forma_pagamento C WHERE C.ID = OLD.pdv_cfe_forma_pagamento_id),0),
              (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),
               'PARCELA EXCLUIDA: PARC.'||FN_LPAD(OLD.PARCELA,2,0)||' VCTO.'||OLD.DATA_VENCIMENTO||' VALOR '||OLD.VALOR);
      END
End^

CREATE OR ALTER trigger ttbnfs_parcelamento_b9u for tbnfs_parcelamento
active before update position 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
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;

                   INSERT INTO TBNFS_PARCELAMENTO_VENCIMENTO
                   (NFS_PARCELAMENTO_ID, DATA_VENCIMENTO_ANTIGA, DATA_VENCIMENTO_NOVA)
                   VALUES (NEW.CONTROLE, 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_RECEBER_OPERACAO <> NEW.CONTA_RECEBER_OPERACAO) THEN
               BEGIN
               HISTORICO = HISTORICO||' OPER.'||OLD.CONTA_RECEBER_OPERACAO||'->'||NEW.CONTA_RECEBER_OPERACAO;
               END
           IF (OLD.CONTA_RECEBER_BANCO <> NEW.CONTA_RECEBER_BANCO) THEN
               BEGIN
               HISTORICO = HISTORICO||' BCO.'||OLD.CONTA_RECEBER_BANCO||'->'||NEW.CONTA_RECEBER_BANCO;
               END
           IF (OLD.CONTA_RECEBER_MODALIDADE <> NEW.CONTA_RECEBER_MODALIDADE) THEN
               BEGIN
               HISTORICO = HISTORICO||' MOD.'||OLD.CONTA_RECEBER_MODALIDADE||'->'||NEW.CONTA_RECEBER_MODALIDADE;
               END
           IF (OLD.CONTA_RECEBER_POSICAO <> NEW.CONTA_RECEBER_POSICAO) THEN
               BEGIN
               HISTORICO = HISTORICO||' POS.'||OLD.CONTA_RECEBER_POSICAO||'->'||NEW.CONTA_RECEBER_POSICAO;
               END
           IF (OLD.CONTA_RECEBER_COBRANCA <> NEW.CONTA_RECEBER_COBRANCA) THEN
               BEGIN
               HISTORICO = HISTORICO||' COB.'||OLD.CONTA_RECEBER_COBRANCA||'->'||NEW.CONTA_RECEBER_COBRANCA;
               END

           IF (OLD.PAGAMENTO_FORMA <> NEW.PAGAMENTO_FORMA) THEN
               BEGIN
               HISTORICO = HISTORICO||' PG.FORMA.'||OLD.PAGAMENTO_FORMA||'->'||NEW.PAGAMENTO_FORMA;
               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||' C.CUSTO '||OLD.CCUSTO||'->'||NEW.CCUSTO;
               END
           IF (OLD.ACEITE <> NEW.ACEITE) THEN
               BEGIN
               HISTORICO = HISTORICO||' ACEITE '||OLD.ACEITE||'->'||NEW.ACEITE;
               END
           IF (OLD.VIA_DUPLICATA <> NEW.VIA_DUPLICATA) THEN
               BEGIN
               HISTORICO = HISTORICO||' VIA DUP.'||OLD.VIA_DUPLICATA||'->'||NEW.VIA_DUPLICATA;
               END

          IF (OLD.REMESSA_NUMERO_BANCO <> NEW.REMESSA_NUMERO_BANCO) THEN
               BEGIN
               HISTORICO = HISTORICO||' NR.BCO.COB.'||OLD.REMESSA_NUMERO_BANCO||'->'||NEW.REMESSA_NUMERO_BANCO;
               END
           IF (OLD.REMESSA_ARQUIVO <> NEW.REMESSA_ARQUIVO) THEN
               BEGIN
               HISTORICO = HISTORICO||' ARQ.COB.'||OLD.REMESSA_ARQUIVO||'->'||NEW.REMESSA_ARQUIVO;
               END
           IF (OLD.REMESSA_DATA <> NEW.REMESSA_DATA) THEN
               BEGIN
               HISTORICO = HISTORICO||' DT.COB.'||OLD.REMESSA_DATA||'->'||NEW.REMESSA_DATA;
               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.REPRESENTANTE_COMISSAO <> NEW.REPRESENTANTE_COMISSAO) THEN
               BEGIN
               HISTORICO = HISTORICO||' %COM.'||OLD.REPRESENTANTE_COMISSAO||'->'||NEW.REPRESENTANTE_COMISSAO;
               END

           IF (OLD.FORMA_COMISSAO <> NEW.FORMA_COMISSAO) THEN
               BEGIN
               HISTORICO = HISTORICO||' FORMA COM.'||OLD.FORMA_COMISSAO||'->'||NEW.FORMA_COMISSAO;
               END

       if (HISTORICO <> '') then
           Begin
             INSERT INTO TBHISTORICO
                      (
                      TABELA,
                      TABELA_ID,
                      USUARIO, IP,
                      HISTORICO
                      )
               VALUES(
                      'TBNFS_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
                      );

              IF(NEW.nfs_controle > 0)THEN
              BEGIN
                  INSERT INTO TBHISTORICO
                      (
                      TABELA,
                      TABELA_ID,
                      USUARIO, IP,
                      HISTORICO
                      )
                    VALUES(
                      'TBNFS',
                      Old.nfs_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),
                      'PARC.'||fn_lpad(new.parcela, 2,0)||''||:Historico
                      );
              END

              IF(NEW.pdv_cfe_forma_pagamento_id > 0)THEN
              BEGIN
                  INSERT INTO TBHISTORICO
                     (
                      TABELA,
                      TABELA_ID,
                      USUARIO, IP,
                      HISTORICO
                      )
                    VALUES(
                      'TBPDV_CFE',
                      COALESCE((SELECT FIRST 1 C.PDV_CFE_ID FROM tbpdv_cfe_forma_pagamento C WHERE C.ID = NEW.pdv_cfe_forma_pagamento_id),0),
                      (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),
                      'PARC.'||fn_lpad(new.parcela, 2,0)||''||:Historico
                    );
              END

           End
       End

end^