
CREATE OR ALTER trigger ttbccusto_b9u for tbcentro_de_custo
active before update position 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
begin

end;

ALTER TABLE TBCENTRO_DE_CUSTO ADD OLD_PERFIL VARCHAR(10);
update TBCENTRO_DE_CUSTO set OLD_PERFIL = PERFIL;
ALTER TABLE TBCENTRO_DE_CUSTO DROP PERFIL;
ALTER TABLE TBCENTRO_DE_CUSTO ADD PERFIL VARCHAR(10) DEFAULT '';
update TBCENTRO_DE_CUSTO set PERFIL = OLD_PERFIL;
ALTER TABLE TBCENTRO_DE_CUSTO DROP OLD_PERFIL;

CREATE OR ALTER trigger ttbccusto_b9u for tbcentro_de_custo
active before update position 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
begin

   HISTORICO = '';

   if (OLD.DESCRICAO <> NEW.DESCRICAO) then
       BEGIN
       HISTORICO = HISTORICO||' Desc.'||OLD.DESCRICAO||'->'||NEW.DESCRICAO;
       END
   if (OLD.Conta_Contabil <> NEW.Conta_Contabil) then
       BEGIN
       HISTORICO = HISTORICO||' C.Cont.'||OLD.Conta_Contabil||'->'||NEW.Conta_Contabil;
       END
   if (OLD.Historico_Contabil<> NEW.Historico_Contabil) then
       BEGIN
       HISTORICO = HISTORICO||' Hist.Cont.'||OLD.Historico_Contabil||'->'||NEW.Historico_Contabil;
       END
   if (OLD.Gp_Id <> NEW.Gp_Id) then
       BEGIN
       HISTORICO = HISTORICO||' GP.'||OLD.Gp_Id||'->'||NEW.Gp_Id;
       END
   if (OLD.Estabelecimento_Id <> NEW.Estabelecimento_Id) then
       BEGIN
       HISTORICO = HISTORICO||' Estab.'||OLD.Estabelecimento_Id||'->'||NEW.Estabelecimento_Id;
       END
   if (OLD.Perfil <> NEW.Perfil) then
       BEGIN
       HISTORICO = HISTORICO||' Perf.'||OLD.Perfil||'->'||NEW.Perfil;
       END
   if (OLD.CT <> NEW.CT) then
       BEGIN
       HISTORICO = HISTORICO||' CT:'||OLD.CT||'->'||NEW.CT;
       END
   if (OLD.Reg_Indicador <> NEW.Reg_Indicador) then
       BEGIN
       HISTORICO = HISTORICO||' Reg.Ind.'||OLD.Reg_Indicador||'->'||NEW.Reg_Indicador;
       END
   if (OLD.Email <> NEW.Email) then
       BEGIN
       HISTORICO = HISTORICO||' Email:'||OLD.Email||'->'||NEW.Email;
       END
   if (OLD.Operacao_Codigo <> NEW.Operacao_Codigo) then
       BEGIN
       HISTORICO = HISTORICO||' Oper.'||OLD.Operacao_Codigo||'->'||NEW.Operacao_Codigo;
       END
   if (OLD.Operacao_Codigo_Pedido <> NEW.Operacao_Codigo_Pedido) then
       BEGIN
       HISTORICO = HISTORICO||' Oper.Ped.'||OLD.Operacao_Codigo_Pedido||'->'||NEW.Operacao_Codigo_Pedido;
       END
   if (OLD.NIVEL <> NEW.NIVEL) then
       BEGIN
       HISTORICO = HISTORICO||' Nív.'||OLD.NIVEL||'->'||NEW.NIVEL;
       END
   if (OLD.CCUSTO_CONTABILIZACAO <> NEW.CCUSTO_CONTABILIZACAO) then
       BEGIN
       HISTORICO = HISTORICO||' C.Custo Cont.'||OLD.CCUSTO_CONTABILIZACAO||'->'||NEW.CCUSTO_CONTABILIZACAO;
       END
   if (OLD.TIPO_CUSTO <> NEW.TIPO_CUSTO) then
       BEGIN
       HISTORICO = HISTORICO||' Tp.Custo:'||OLD.TIPO_CUSTO||'->'||NEW.TIPO_CUSTO;
       END

   if (OLD.STATUS <> NEW.STATUS) then
       BEGIN
       if (NEW.STATUS = '0') then
           HISTORICO = HISTORICO||' Status Inativado';
       if (NEW.STATUS = '1') then
           HISTORICO = HISTORICO||' Status Ativado';
       END

   if (HISTORICO <> '') Then
       Begin
       INSERT INTO TBHISTORICO (
       TABELA, TABELA_ID, USUARIO, IP, HISTORICO) VALUES (
      'TBCENTRO_DE_CUSTO', OLD.CODIGO,
      (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;