SET TERM ^ ;

CREATE OR ALTER trigger ttbcontacontabil_b9u for tbcontacontabil
active before update position 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

   HISTORICO = '';

   IF (OLD.CONTA <> NEW.CONTA) THEN
       BEGIN
       HISTORICO = HISTORICO||' CONTA:'||OLD.CONTA||'->'||NEW.CONTA;
       END
   IF (OLD.ANALITICA <> NEW.ANALITICA) THEN
       BEGIN
       HISTORICO = HISTORICO||' ANALITICA:'||OLD.ANALITICA||'->'||NEW.ANALITICA;
       END

   IF (OLD.DESCRICAO <> NEW.DESCRICAO) THEN
       BEGIN
       HISTORICO = HISTORICO||' DESCRICAO:'||OLD.DESCRICAO||'->'||NEW.DESCRICAO;
       END
   IF (OLD.DESCRED <> NEW.DESCRED) THEN
       BEGIN
       HISTORICO = HISTORICO||' DESC.REDUZ.'||OLD.DESCRED||'->'||NEW.DESCRED;
       END
   IF (OLD.NATUREZA <> NEW.NATUREZA) THEN
       BEGIN
       HISTORICO = HISTORICO||' NAT:'||OLD.NATUREZA||'->'||NEW.NATUREZA;
       END
   IF (OLD.GRUPOLALUR <> NEW.GRUPOLALUR) THEN
       BEGIN
       HISTORICO = HISTORICO||' GRP.LALUR:'||OLD.GRUPOLALUR||'->'||NEW.GRUPOLALUR;
       END
   IF (OLD.GRUPOCONTA <> NEW.GRUPOCONTA) THEN
       BEGIN
       HISTORICO = HISTORICO||' GRP.CONTA:'||OLD.GRUPOCONTA||'->'||NEW.GRUPOCONTA;
       END

   IF (OLD.RPCF <> NEW.RPCF) THEN
       BEGIN
       HISTORICO = HISTORICO||' RPCF:'||OLD.RPCF||'->'||NEW.RPCF;
       END
   IF (OLD.CODECD <> NEW.CODECD) THEN
       BEGIN
       HISTORICO = HISTORICO||' COD.ECD:'||OLD.CODECD||'->'||NEW.CODECD;
       END

   IF (OLD.CODREDUZIDO <> NEW.CODREDUZIDO) THEN
       BEGIN
       HISTORICO = HISTORICO||' COD RED:'||OLD.CODREDUZIDO||'->'||NEW.CODREDUZIDO;
       END
   IF (OLD.DATATIVINI <> NEW.DATATIVINI) THEN
       BEGIN
       HISTORICO = HISTORICO||' DATA:'||OLD.DATATIVINI||'->'||NEW.DATATIVINI;
       END
   IF (OLD.CST_PISCOF <> NEW.CST_PISCOF) THEN
       BEGIN
       HISTORICO = HISTORICO||' CST PIS/COF:'||OLD.CST_PISCOF||'->'||NEW.CST_PISCOF;
       END
   IF (OLD.NAT_BC_CRED <> NEW.NAT_BC_CRED) THEN
       BEGIN
       HISTORICO = HISTORICO||' NAT.BC.CRED.'||OLD.NAT_BC_CRED||'->'||NEW.NAT_BC_CRED;
       END
   IF (OLD.IND_ORIGEM <> NEW.IND_ORIGEM) THEN
       BEGIN
       HISTORICO = HISTORICO||' IND.ORIGEM:'||OLD.IND_ORIGEM||'->'||NEW.IND_ORIGEM;
       END
   IF (OLD.NAT_RECEITA <> NEW.NAT_RECEITA) THEN
       BEGIN
       HISTORICO = HISTORICO||' NAT.RECEITA:'||OLD.NAT_RECEITA||'->'||NEW.NAT_RECEITA;
       END
   IF (OLD.CCUSTO <> NEW.CCUSTO) THEN
       BEGIN
       HISTORICO = HISTORICO||' C.CUSTO:'||OLD.CCUSTO||'->'||NEW.CCUSTO;
       END

   IF (OLD.CONTROLE_ORCAMENTARIO <> NEW.CONTROLE_ORCAMENTARIO) THEN
       BEGIN
       HISTORICO = HISTORICO||' CONTR.ORCAMENT:'||OLD.CONTROLE_ORCAMENTARIO||'->'||NEW.CONTROLE_ORCAMENTARIO;
       END
   IF (OLD.PERFIL <> NEW.PERFIL) THEN
       BEGIN
       HISTORICO = HISTORICO||' PERF:'||OLD.PERFIL||'->'||NEW.PERFIL;
       END
   IF (OLD.GRUPO <> NEW.GRUPO) THEN
       BEGIN
       HISTORICO = HISTORICO||' GRUPO:'||OLD.GRUPO||'->'||NEW.GRUPO;
       END
   IF (OLD.STATUS <> NEW.STATUS) THEN
       BEGIN
       HISTORICO = HISTORICO||' STATUS:'||OLD.STATUS||'->'||NEW.STATUS;
       END
   IF (OLD.CALCULO_INSS <> NEW.CALCULO_INSS) THEN
       BEGIN
       HISTORICO = HISTORICO||' CALC.INSS:'||OLD.CALCULO_INSS||'->'||NEW.CALCULO_INSS;
       END

   IF (HISTORICO <> '') THEN
       BEGIN
       INSERT INTO TBHISTORICO (
       TABELA, TABELA_ID, USUARIO, IP, HISTORICO) VALUES (
      'TBCONTACONTABIL', OLD.ID,
      (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
^

SET TERM ; ^

