ALTER TABLE TBCLIENTE
ADD CONHECIMENTO INTEGER
DEFAULT 0;

CREATE OR ALTER TRIGGER TTBCLIENTE_B03U FOR TBCLIENTE
ACTIVE BEFORE UPDATE POSITION 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(3000);
DECLARE VARIABLE HISTORICO_OBS VARCHAR(3000);
begin

   HISTORICO = '';

   if (OLD.transportadora_codigo <> NEW.transportadora_codigo) then
       BEGIN
       HISTORICO = :HISTORICO||' TRANSP:'||OLD.transportadora_codigo||'->'||NEW.transportadora_codigo;
       END
   if (OLD.frete <> NEW.frete) then
       BEGIN
       HISTORICO = :HISTORICO||' FRETE:'||OLD.frete||'->'||NEW.frete;
       END
   if (OLD.tag <> NEW.tag) then
       BEGIN
       HISTORICO = :HISTORICO||' TAG:'||OLD.tag||'->'||NEW.tag;
       END

   if (OLD.representante_codigo <> NEW.representante_codigo) then
       BEGIN
       HISTORICO = :HISTORICO||' REPRES:'||OLD.representante_codigo||'->'||NEW.representante_codigo;
       END
   if (OLD.representante_comissao <> NEW.representante_comissao) then
       BEGIN
       HISTORICO = :HISTORICO||' %COM.REP:'||OLD.representante_comissao||'->'||NEW.representante_comissao;
       END
   if (OLD.vendedor_codigo <> NEW.vendedor_codigo) then
       BEGIN
       HISTORICO = :HISTORICO||' VEND:'||OLD.vendedor_codigo||'->'||NEW.vendedor_codigo;
       END
   if (OLD.vendedor_comissao <> NEW.vendedor_comissao) then
       BEGIN
       HISTORICO = :HISTORICO||' %COM.VEND:'||OLD.vendedor_comissao||'->'||NEW.vendedor_comissao;
       END

   if (OLD.pagamento_forma <> NEW.pagamento_forma) then
       BEGIN
       HISTORICO = :HISTORICO||' FORM.PG:'||OLD.pagamento_forma||'->'||NEW.pagamento_forma;
       END
   if (OLD.pagamento_condicao <> NEW.pagamento_condicao) then
       BEGIN
       HISTORICO = :HISTORICO||' COND.PG:'||OLD.pagamento_condicao||'->'||NEW.pagamento_condicao;
       END
   if (OLD.boqueia_pagamento_condicao <> NEW.boqueia_pagamento_condicao) then
       BEGIN
       HISTORICO = :HISTORICO||' BLQ.COND.PG:'||OLD.boqueia_pagamento_condicao||'->'||NEW.boqueia_pagamento_condicao;
       END
   if (OLD.limite_credito <> NEW.limite_credito) then
       BEGIN
       HISTORICO = :HISTORICO||' LIM.CRÉD:'||OLD.limite_credito||'->'||NEW.limite_credito;
       END

   if (OLD.tipo_codigo <> NEW.tipo_codigo) then
       BEGIN
       HISTORICO = :HISTORICO||' TP.EMP:'||OLD.tipo_codigo||'->'||NEW.tipo_codigo;
       END
   if (OLD.substituido_tributario <> NEW.substituido_tributario) then
       BEGIN
       HISTORICO = :HISTORICO||' SUBST.TRIB:'||OLD.substituido_tributario||'->'||NEW.substituido_tributario;
       END
   if (OLD.suframa <> NEW.suframa) then
       BEGIN
       HISTORICO = :HISTORICO||' INSC.SUF:'||OLD.suframa||'->'||NEW.suframa;
       END
   if (OLD.suframa_vencimento <> NEW.suframa_vencimento) then
       BEGIN
       HISTORICO = :HISTORICO||' VENC.SUF:'||OLD.suframa_vencimento||'->'||NEW.suframa_vencimento;
       END

   if (OLD.confirmacao_automatica <> NEW.confirmacao_automatica) then
       BEGIN
       HISTORICO = :HISTORICO||' CONF.AUT:'||OLD.confirmacao_automatica||'->'||NEW.confirmacao_automatica;
       END
   if (OLD.atende_grade_completa <> NEW.atende_grade_completa) then
       BEGIN
       HISTORICO = :HISTORICO||' AT.GRD.COMPL:'||OLD.atende_grade_completa||'->'||NEW.atende_grade_completa;
       END
   if (OLD.loja <> NEW.loja) then
       BEGIN
       HISTORICO = :HISTORICO||' LJ:'||OLD.loja||'->'||NEW.loja;
       END
   if (OLD.Etiqueta <> NEW.Etiqueta) then
       BEGIN
       HISTORICO = :HISTORICO||' ETIQ:'||OLD.Etiqueta||'->'||NEW.Etiqueta;
       END
   if (OLD.prioridade <> NEW.prioridade) then
       BEGIN
       HISTORICO = :HISTORICO||' PRIOR:'||OLD.prioridade||'->'||NEW.prioridade;
       END
   if (OLD.grupo <> NEW.grupo) then
       BEGIN
       HISTORICO = :HISTORICO||' GRP:'||OLD.grupo||'->'||NEW.grupo;
       END

   if (OLD.bloqueia_pedido <> NEW.bloqueia_pedido) then
       BEGIN
       HISTORICO = :HISTORICO||' BLQ.PED:'||OLD.bloqueia_pedido||'->'||NEW.bloqueia_pedido;
       END
   if (OLD.bloqueia_notafiscal <> NEW.bloqueia_notafiscal) then
       BEGIN
       HISTORICO = :HISTORICO||' BLQ.NF:'||OLD.bloqueia_notafiscal||'->'||NEW.bloqueia_notafiscal;
       END
   if (OLD.bloqueio_dias_atraso <> NEW.bloqueio_dias_atraso) then
       BEGIN
       HISTORICO = :HISTORICO||' DIAS BLQ.ATRASO PED:'||OLD.bloqueio_dias_atraso||'->'||NEW.bloqueio_dias_atraso;
       END
   if (OLD.bloqueio_dias_atraso_nf <> NEW.bloqueio_dias_atraso_nf) then
       BEGIN
       HISTORICO = :HISTORICO||' DIAS BLQ.ATRASO NF:'||OLD.bloqueio_dias_atraso_nf||'->'||NEW.bloqueio_dias_atraso_nf;
       END
   if (OLD.bloqueio_dias_semmov <> NEW.bloqueio_dias_semmov) then
       BEGIN
       HISTORICO = :HISTORICO||' DIAS BLQ.S/MOV:'||OLD.bloqueio_dias_semmov||'->'||NEW.bloqueio_dias_semmov;
       END
   if (OLD.data_bloqueio <> NEW.data_bloqueio) then
       BEGIN
       HISTORICO = :HISTORICO||' DT.BLOQ:'||OLD.data_bloqueio||'->'||NEW.data_bloqueio;
       END
   if (OLD.bloqueio_motivo <> NEW.bloqueio_motivo) then
       BEGIN
       HISTORICO = :HISTORICO||' MOT.BLOQ:'||OLD.bloqueio_motivo||'->'||NEW.bloqueio_motivo;
       END
   if (OLD.inativa_dias_semmov <> NEW.inativa_dias_semmov) then
       BEGIN
       HISTORICO = :HISTORICO||' DIAS INAT.S/MOV:'||OLD.inativa_dias_semmov||'->'||NEW.inativa_dias_semmov;
       END

   if (OLD.NOTIFICAR_ATRASO <> NEW.NOTIFICAR_ATRASO) then
       BEGIN
       HISTORICO = :HISTORICO||' NOTIF.ATRASO:'||OLD.NOTIFICAR_ATRASO||'->'||NEW.NOTIFICAR_ATRASO;
       END
   if (OLD.NOTIFICAR_DIAS_ATRASO <> NEW.NOTIFICAR_DIAS_ATRASO) then
       BEGIN
       HISTORICO = :HISTORICO||' DIAS NOTIF.ATRASO:'||OLD.NOTIFICAR_DIAS_ATRASO||'->'||NEW.NOTIFICAR_DIAS_ATRASO;
       END
   if (OLD.EMPRESA_VINCULO <> NEW.EMPRESA_VINCULO) then
       BEGIN
       HISTORICO = :HISTORICO||' VINC.EMPRESA:'||OLD.EMPRESA_VINCULO||'->'||NEW.EMPRESA_VINCULO;
       END

   if (OLD.observacao <> NEW.observacao) then
       BEGIN
       HISTORICO_OBS = :HISTORICO_OBS||' OBS:'||FN_ELIPSES(OLD.observacao,100)||'->'||FN_ELIPSES(NEW.observacao,100);
       END
                   
   if (OLD.CONHECIMENTO <> NEW.CONHECIMENTO) then
       BEGIN
       HISTORICO = :HISTORICO||' CONHECIMENTO:'||OLD.CONHECIMENTO||'->'||NEW.CONHECIMENTO;
       END


   if (:HISTORICO <> '') Then
       Begin
       INSERT INTO TBHISTORICO (
       TABELA, TABELA_ID, USUARIO, IP, HISTORICO) VALUES (
      'TBEMPRESA', 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
   if (:HISTORICO_OBS <> '') Then
       Begin
       INSERT INTO TBHISTORICO (
       TABELA, TABELA_ID, USUARIO, IP, HISTORICO) VALUES (
      'TBEMPRESA', 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_OBS);
       End
end;