CREATE OR ALTER TRIGGER TTBNFS_TRANSPORTADORA_B9U FOR TBNFS_TRANSPORTADORA
ACTIVE BEFORE UPDATE POSITION 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(500);
BEGIN

   HISTORICO = '';

   IF (COALESCE(OLD.TRANSPORTADORA_CODIGO, 0) <> COALESCE(NEW.TRANSPORTADORA_CODIGO, 0)) THEN BEGIN HISTORICO = HISTORICO||' TRANSP '||COALESCE(OLD.TRANSPORTADORA_CODIGO, 0)||'->'||COALESCE(NEW.TRANSPORTADORA_CODIGO, 0); END
   IF (OLD.FRETE <> NEW.FRETE) THEN BEGIN HISTORICO = HISTORICO||' TP.FRETE '||OLD.FRETE||'->'||NEW.FRETE; END
   IF (OLD.PLACA <> NEW.PLACA) THEN BEGIN HISTORICO = HISTORICO||' PLACA '||OLD.PLACA||'->'||NEW.PLACA; END
   IF (OLD.PLACA_UF <> NEW.PLACA_UF) THEN BEGIN HISTORICO = HISTORICO||' UF PLC '||OLD.PLACA_UF||'->'||NEW.PLACA_UF; END
   IF (OLD.VOLUMES <> NEW.VOLUMES) THEN BEGIN HISTORICO = HISTORICO||' TOT.VOL '||OLD.VOLUMES||'->'||NEW.VOLUMES; END
   IF (OLD.ESPECIE <> NEW.ESPECIE) THEN BEGIN HISTORICO = HISTORICO||' ESP.VOL '||OLD.ESPECIE||'->'||NEW.ESPECIE; END
   IF (OLD.PESO_BRUTO <> NEW.PESO_BRUTO) THEN BEGIN HISTORICO = HISTORICO||' TOT.PS.BRT '||OLD.PESO_BRUTO||'->'||NEW.PESO_BRUTO; END
   IF (OLD.PESO_LIQUIDO <> NEW.PESO_LIQUIDO) THEN BEGIN HISTORICO = HISTORICO||' TOT.PS.LIQ '||OLD.PESO_LIQUIDO||'->'||NEW.PESO_LIQUIDO; END
   IF (OLD.CUBAGEM <> NEW.CUBAGEM) THEN BEGIN HISTORICO = HISTORICO||' TOT.CUB '||OLD.CUBAGEM||'->'||NEW.CUBAGEM; END
   IF (OLD.MODALIDADE <> NEW.MODALIDADE) THEN BEGIN HISTORICO = HISTORICO||' MOD.FRETE '||OLD.MODALIDADE||'->'||NEW.MODALIDADE; END
   IF (OLD.AVERBACAO <> NEW.AVERBACAO) THEN BEGIN HISTORICO = HISTORICO||' AVERB '||OLD.AVERBACAO||'->'||NEW.AVERBACAO; END

   IF (HISTORICO <> '') 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),
       :HISTORICO);
       END
END;