SET TERM ^ ;

CREATE OR ALTER trigger ttbnfe_item_b09u for tbnfe_item
active before update position 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(8000);
BEGIN
  
  HISTORICO = '';
    
    IF(NEW.SEQUENCIA <> OLD.SEQUENCIA) THEN
        BEGIN                
            HISTORICO = HISTORICO||' Seq:'||OLD.SEQUENCIA||' -> '||NEW.SEQUENCIA;
        END                  
    IF(NEW.OPERACAO_CODIGO <> OLD.OPERACAO_CODIGO) THEN
        BEGIN                    
            HISTORICO = HISTORICO||' Oper:'||OLD.OPERACAO_CODIGO||' -> '||NEW.OPERACAO_CODIGO;
        END                  
    IF(NEW.CFOP_CODIGO <> OLD.CFOP_CODIGO) THEN
        BEGIN                                    
            HISTORICO = HISTORICO||' CFOP:'||OLD.CFOP_CODIGO||' -> '||NEW.CFOP_CODIGO;
        END                  
    IF(NEW.PRODUTO_CODIGO <> OLD.PRODUTO_CODIGO) THEN
        BEGIN                                    
            HISTORICO = HISTORICO||' Id.Prod:'||OLD.PRODUTO_CODIGO||' -> '||NEW.PRODUTO_CODIGO;
        END                  
    IF(NEW.PRODUTO_DESCRICAO <> OLD.PRODUTO_DESCRICAO) THEN
        BEGIN                                        
            HISTORICO = HISTORICO||' Desc.Prod:'||OLD.PRODUTO_DESCRICAO||' -> '||NEW.PRODUTO_DESCRICAO;
        END                      
    IF(NEW.PRODUTO_UNIDADEMEDIDA <> OLD.PRODUTO_UNIDADEMEDIDA) THEN
        BEGIN                                        
            HISTORICO = HISTORICO||' UM:'||OLD.PRODUTO_UNIDADEMEDIDA||' -> '||NEW.PRODUTO_UNIDADEMEDIDA;
        END                      
    IF(NEW.NCM_CODIGO <> OLD.NCM_CODIGO) THEN
        BEGIN                                  
            HISTORICO = HISTORICO||' NCM:'||OLD.NCM_CODIGO||' -> '||NEW.NCM_CODIGO;
        END                
    IF(NEW.TRIBUTACAO_ICMS <> OLD.TRIBUTACAO_ICMS) THEN
        BEGIN                                  
            HISTORICO = HISTORICO||' CST.ICMS:'||OLD.TRIBUTACAO_ICMS||' -> '||NEW.TRIBUTACAO_ICMS;
        END                
    IF(NEW.TRIBUTACAO_IPI <> OLD.TRIBUTACAO_IPI) THEN
        BEGIN                    
            HISTORICO = HISTORICO||' CST.IPI:'||OLD.TRIBUTACAO_IPI||' -> '||NEW.TRIBUTACAO_IPI;
        END
    IF(NEW.TRIBUTACAO_ORIGEM <> OLD.TRIBUTACAO_ORIGEM) THEN
        BEGIN                    
            HISTORICO = HISTORICO||' Orig:'||OLD.TRIBUTACAO_ORIGEM||' -> '||NEW.TRIBUTACAO_ORIGEM;
        END
    IF(NEW.LOCALIZACAO_CODIGO <> OLD.LOCALIZACAO_CODIGO) THEN
        BEGIN                    
            HISTORICO = HISTORICO||' Loc:'||OLD.LOCALIZACAO_CODIGO||' -> '||NEW.LOCALIZACAO_CODIGO;
        END
    IF(NEW.QUANTIDADE <> OLD.QUANTIDADE) THEN
        BEGIN                                 
            HISTORICO = HISTORICO||' Qtd:'||OLD.QUANTIDADE||' -> '||NEW.QUANTIDADE;
        END               
    IF(NEW.VALOR_UNITARIO <> OLD.VALOR_UNITARIO) THEN
        BEGIN                                 
            HISTORICO = HISTORICO||' Vr.Unit:'||OLD.VALOR_UNITARIO||' -> '||NEW.VALOR_UNITARIO;
        END               
    IF(NEW.VALOR_TOTAL <> OLD.VALOR_TOTAL) THEN
        BEGIN
            HISTORICO = HISTORICO||' Vr.Total:'||OLD.VALOR_TOTAL||' -> '||NEW.VALOR_TOTAL;
        END
    IF(NEW.BASECALCULO_ICMS <> OLD.BASECALCULO_ICMS) THEN
        BEGIN
            HISTORICO = HISTORICO||' Bs.Calc.ICMS:'||OLD.BASECALCULO_ICMS||' -> '||NEW.BASECALCULO_ICMS;
        END
    IF(NEW.PERCENTUAL_ICMS <> OLD.PERCENTUAL_ICMS) THEN
        BEGIN
            HISTORICO = HISTORICO||' %ICMS:'||OLD.PERCENTUAL_ICMS||' -> '||NEW.PERCENTUAL_ICMS;
        END
    IF(NEW.PERCENTUAL_IPI <> OLD.PERCENTUAL_IPI) THEN
        BEGIN             
            HISTORICO = HISTORICO||' %IPI:'||OLD.PERCENTUAL_IPI||' -> '||NEW.PERCENTUAL_IPI;
        END               
    IF(NEW.VALOR_IPI <> OLD.VALOR_IPI) THEN
        BEGIN             
            HISTORICO = HISTORICO||' Vr.%IPI:'||OLD.VALOR_IPI||' -> '||NEW.VALOR_IPI;
        END               
    IF(NEW.PERCENTUAL_PIS <> OLD.PERCENTUAL_PIS) THEN
        BEGIN
            HISTORICO = HISTORICO||' %PIS:'||OLD.PERCENTUAL_PIS||' -> '||NEW.PERCENTUAL_PIS;
        END
    IF(NEW.VALOR_PIS <> OLD.VALOR_PIS) THEN
        BEGIN
            HISTORICO = HISTORICO||' Vr.PIS:'||OLD.VALOR_PIS||' -> '||NEW.VALOR_PIS;
        END
    IF(NEW.PERCENTUAL_COFINS <> OLD.PERCENTUAL_COFINS) THEN
        BEGIN
            HISTORICO = HISTORICO||' %COF:'||OLD.PERCENTUAL_COFINS||' -> '||NEW.PERCENTUAL_COFINS;
        END
    IF(NEW.VALOR_COFINS <> OLD.VALOR_COFINS) THEN
        BEGIN
            HISTORICO = HISTORICO||' Vr.Cof:'||OLD.VALOR_COFINS||' -> '||NEW.VALOR_COFINS;
        END
    IF(NEW.NFS <> OLD.NFS) THEN
        BEGIN
            HISTORICO = HISTORICO||' NFS:'||OLD.NFS||' -> '||NEW.NFS;
        END 
    IF(NEW.NFS_ITEM_CONTROLE <> OLD.NFS_ITEM_CONTROLE) THEN
        BEGIN
            HISTORICO = HISTORICO||' ID.Nf.Ref:'||OLD.NFS_ITEM_CONTROLE||' -> '||NEW.NFS_ITEM_CONTROLE;
        END
    IF(NEW.NF_EXTERNO <> OLD.NF_EXTERNO) THEN
        BEGIN
            HISTORICO = HISTORICO||' NFS:'||OLD.NF_EXTERNO||' -> '||NEW.NF_EXTERNO;
        END
    IF(NEW.NF_EXTERNO_ITEM_CONTROLE <> OLD.NF_EXTERNO_ITEM_CONTROLE) THEN
        BEGIN
            HISTORICO = HISTORICO||' ID.NF.Ref:'||OLD.NF_EXTERNO_ITEM_CONTROLE||' -> '||NEW.NF_EXTERNO_ITEM_CONTROLE;
        END 
    IF(NEW.OC <> OLD.OC) THEN
        BEGIN
            HISTORICO = HISTORICO||' OC:'||OLD.OC||' -> '||NEW.OC;
        END                             
    IF(NEW.OC_ITEM_CONTROLE <> OLD.OC_ITEM_CONTROLE) THEN
        BEGIN
            HISTORICO = HISTORICO||' Id.OC.Item:'||OLD.OC_ITEM_CONTROLE||' -> '||NEW.OC_ITEM_CONTROLE;
        END
    IF(NEW.T01 <> OLD.T01) THEN
        BEGIN
            HISTORICO = HISTORICO||' T01:'||OLD.T01||' -> '||NEW.T01;
        END
    IF(NEW.T02 <> OLD.T02) THEN
        BEGIN
            HISTORICO = HISTORICO||' T02:'||OLD.T02||' -> '||NEW.T02;
        END
    IF(NEW.T03 <> OLD.T03) THEN
        BEGIN
            HISTORICO = HISTORICO||' T03:'||OLD.T03||' -> '||NEW.T03;
        END
    IF(NEW.T04 <> OLD.T04) THEN
        BEGIN
            HISTORICO = HISTORICO||' T04:'||OLD.T04||' -> '||NEW.T04;
        END
    IF(NEW.T05 <> OLD.T05) THEN
        BEGIN
            HISTORICO = HISTORICO||' T05:'||OLD.T05||' -> '||NEW.T05;
        END
    IF(NEW.T06 <> OLD.T06) THEN
        BEGIN
            HISTORICO = HISTORICO||' T06:'||OLD.T06||' -> '||NEW.T06;
        END
    IF(NEW.T07 <> OLD.T07) THEN
        BEGIN
            HISTORICO = HISTORICO||' T07:'||OLD.T07||' -> '||NEW.T07;
        END
    IF(NEW.T08 <> OLD.T08) THEN
        BEGIN
            HISTORICO = HISTORICO||' T08:'||OLD.T08||' -> '||NEW.T08;
        END
    IF(NEW.T09 <> OLD.T09) THEN
        BEGIN
            HISTORICO = HISTORICO||' T09:'||OLD.T09||' -> '||NEW.T09;
        END
    IF(NEW.T10 <> OLD.T10) THEN
        BEGIN
            HISTORICO = HISTORICO||' T10:'||OLD.T10||' -> '||NEW.T10;
        END
    IF(NEW.T11 <> OLD.T11) THEN
        BEGIN
            HISTORICO = HISTORICO||' T11:'||OLD.T11||' -> '||NEW.T11;
        END
    IF(NEW.T12 <> OLD.T12) THEN
        BEGIN
            HISTORICO = HISTORICO||' T12:'||OLD.T12||' -> '||NEW.T12;
        END
    IF(NEW.T13 <> OLD.T13) THEN
        BEGIN
            HISTORICO = HISTORICO||' T13:'||OLD.T13||' -> '||NEW.T13;
        END
    IF(NEW.T14 <> OLD.T14) THEN
        BEGIN
            HISTORICO = HISTORICO||' T14:'||OLD.T14||' -> '||NEW.T14;
        END
    IF(NEW.T15 <> OLD.T15) THEN
        BEGIN
            HISTORICO = HISTORICO||' T15:'||OLD.T15||' -> '||NEW.T15;
        END
    IF(NEW.T16 <> OLD.T16) THEN
        BEGIN
            HISTORICO = HISTORICO||' T16:'||OLD.T16||' -> '||NEW.T16;
        END
    IF(NEW.T17 <> OLD.T17) THEN
        BEGIN
            HISTORICO = HISTORICO||' T17:'||OLD.T17||' -> '||NEW.T17;
        END
    IF(NEW.T18 <> OLD.T18) THEN
        BEGIN
            HISTORICO = HISTORICO||' T18:'||OLD.T18||' -> '||NEW.T18;
        END
    IF(NEW.T19 <> OLD.T19) THEN
        BEGIN
            HISTORICO = HISTORICO||' T19:'||OLD.T19||' -> '||NEW.T19;
        END
    IF(NEW.T20 <> OLD.T20) THEN
        BEGIN
            HISTORICO = HISTORICO||' T20:'||OLD.T20||' -> '||NEW.T20;
        END
    IF(NEW.ESTABELECIMENTO_CODIGO <> OLD.ESTABELECIMENTO_CODIGO) THEN
        BEGIN                  
            HISTORICO = HISTORICO||' Est:'||OLD.ESTABELECIMENTO_CODIGO||' -> '||NEW.ESTABELECIMENTO_CODIGO;
        END                    
    IF(NEW.EMPRESA_CODIGO <> OLD.EMPRESA_CODIGO) THEN
        BEGIN                
            HISTORICO = HISTORICO||' Emp:'||OLD.EMPRESA_CODIGO||' -> '||NEW.EMPRESA_CODIGO;
        END                  
    IF(NEW.NUMERO_NOTAFISCAL <> OLD.NUMERO_NOTAFISCAL and OLD.NUMERO_NOTAFISCAL > 0) THEN
        BEGIN                
            HISTORICO = HISTORICO||' NF:'||OLD.NUMERO_NOTAFISCAL||' -> '||NEW.NUMERO_NOTAFISCAL;
        END
--    IF(NEW.SITUACAO <> OLD.SITUACAO) THEN
--        BEGIN
--            HISTORICO = HISTORICO||' Sit:'||OLD.SITUACAO||' -> '||NEW.SITUACAO;
--        END
    IF(NEW.OUTROS_CUSTOS IS DISTINCT FROM OLD.OUTROS_CUSTOS) THEN
        BEGIN                
            HISTORICO = HISTORICO||' Out.Custos:'||OLD.OUTROS_CUSTOS||' -> '||NEW.OUTROS_CUSTOS;
        END 
    IF(NEW.VALOR_CUSTO <> OLD.VALOR_CUSTO) THEN
        BEGIN                
            HISTORICO = HISTORICO||' Vr.Custo:'||OLD.VALOR_CUSTO||' -> '||NEW.VALOR_CUSTO;
        END                  
    IF(NEW.TECELAGEM <> OLD.TECELAGEM) THEN
        BEGIN                
            HISTORICO = HISTORICO||' Tecel:'||OLD.TECELAGEM||' -> '||NEW.TECELAGEM;
        END                  
    IF(NEW.TRIBUTACAO_PIS <> OLD.TRIBUTACAO_PIS) THEN
        BEGIN 
            HISTORICO = HISTORICO||' CST PIS:'||OLD.TRIBUTACAO_PIS||' -> '||NEW.TRIBUTACAO_PIS;
        END                    
    IF(NEW.TRIBUTACAO_COFINS <> OLD.TRIBUTACAO_COFINS) THEN
        BEGIN                  
            HISTORICO = HISTORICO||' CST Cof:'||OLD.TRIBUTACAO_COFINS||' -> '||NEW.TRIBUTACAO_COFINS;
        END                    
    IF(NEW.DI <> OLD.DI) THEN
        BEGIN              
            HISTORICO = HISTORICO||' DI:'||OLD.DI||' -> '||NEW.DI;
        END                      
    IF(NEW.DI_DATA_REGISTRO <> OLD.DI_DATA_REGISTRO) THEN
        BEGIN              
            HISTORICO = HISTORICO||' DI.Dt.Reg:'||OLD.DI_DATA_REGISTRO||' -> '||NEW.DI_DATA_REGISTRO;
        END                      
    IF(NEW.DI_DATA_DESEMBARACO <> OLD.DI_DATA_DESEMBARACO) THEN
        BEGIN              
            HISTORICO = HISTORICO||' DI.Dt.Desem:'||OLD.DI_DATA_DESEMBARACO||' -> '||NEW.DI_DATA_DESEMBARACO;
        END                      
    IF(NEW.DI_LOCAL_DESEMBARACO <> OLD.DI_LOCAL_DESEMBARACO) THEN
        BEGIN              
            HISTORICO = HISTORICO||' DI.Lcl.Desem:'||OLD.DI_LOCAL_DESEMBARACO||' -> '||NEW.DI_LOCAL_DESEMBARACO;
        END                      
    IF(NEW.DI_UF_DESEMBARACO <> OLD.DI_UF_DESEMBARACO) THEN
        BEGIN              
            HISTORICO = HISTORICO||' DI.UF.Desem:'||OLD.DI_UF_DESEMBARACO||' -> '||NEW.DI_UF_DESEMBARACO;
        END                      
    IF(NEW.DI_CODIGO_EXPORTADOR <> OLD.DI_CODIGO_EXPORTADOR) THEN
        BEGIN              
            HISTORICO = HISTORICO||' DI.Cod.Exp:'||OLD.DI_CODIGO_EXPORTADOR||' -> '||NEW.DI_CODIGO_EXPORTADOR;
        END                      
    IF(NEW.DI_ADICAO <> OLD.DI_ADICAO) THEN
        BEGIN              
            HISTORICO = HISTORICO||' DI.Adic:'||OLD.DI_ADICAO||' -> '||NEW.DI_ADICAO;
        END                      
    IF(NEW.DI_SEQUENCIAL <> OLD.DI_SEQUENCIAL) THEN
        BEGIN              
            HISTORICO = HISTORICO||' DI.Seq:'||OLD.DI_SEQUENCIAL||' -> '||NEW.DI_SEQUENCIAL;
        END                      
    IF(NEW.DI_CODIGO_FABRICANTE <> OLD.DI_CODIGO_FABRICANTE) THEN
        BEGIN              
            HISTORICO = HISTORICO||' DI.Cod.Fab:'||OLD.DI_CODIGO_FABRICANTE||' -> '||NEW.DI_CODIGO_FABRICANTE;
        END                      
    IF(NEW.DI_DESCONTO_ADICAO <> OLD.DI_DESCONTO_ADICAO) THEN
        BEGIN              
            HISTORICO = HISTORICO||' DI.Desc.Adic:'||OLD.DI_DESCONTO_ADICAO||' -> '||NEW.DI_DESCONTO_ADICAO;
        END                      
    IF(NEW.DI_BASE_CALCULO <> OLD.DI_BASE_CALCULO) THEN
        BEGIN              
            HISTORICO = HISTORICO||' DI.BS.Calc:'||OLD.DI_BASE_CALCULO||' -> '||NEW.DI_BASE_CALCULO;
        END                      
    IF(NEW.DI_DESPESAS_ADUANEIRAS <> OLD.DI_DESPESAS_ADUANEIRAS) THEN
        BEGIN              
            HISTORICO = HISTORICO||' DI.Desp.Aduan:'||OLD.DI_DESPESAS_ADUANEIRAS||' -> '||NEW.DI_DESPESAS_ADUANEIRAS;
        END                      
    IF(NEW.DI_VALOR_II <> OLD.DI_VALOR_II) THEN
        BEGIN              
            HISTORICO = HISTORICO||' DI.Vr.II:'||OLD.DI_VALOR_II||' -> '||NEW.DI_VALOR_II;
        END                      
    IF(NEW.DI_VALOR_IOF <> OLD.DI_VALOR_IOF) THEN
        BEGIN              
            HISTORICO = HISTORICO||' DI.Vr.IOF:'||OLD.DI_VALOR_IOF||' -> '||NEW.DI_VALOR_IOF;
        END                
    IF(NEW.BASECALCULO_IPI <> OLD.BASECALCULO_IPI) THEN
        BEGIN              
            HISTORICO = HISTORICO||' Bs.Calc.IPI:'||OLD.BASECALCULO_IPI||' -> '||NEW.BASECALCULO_IPI;
        END                
    IF(NEW.BASECALCULO_PIS <> OLD.BASECALCULO_PIS) THEN
        BEGIN                  
            HISTORICO = HISTORICO||' Bs.Calc.PIS:'||OLD.BASECALCULO_PIS||' -> '||NEW.BASECALCULO_PIS;
        END                    
    IF(NEW.BASECALCULO_COFINS  <> OLD.BASECALCULO_COFINS) THEN
        BEGIN                  
            HISTORICO = HISTORICO||' Bs.Calc.Cof:'||OLD.BASECALCULO_COFINS||' -> '||NEW.BASECALCULO_COFINS;
        END                    
    IF(NEW.VALOR_ACRESCIMO <> OLD.VALOR_ACRESCIMO) THEN
        BEGIN              
            HISTORICO = HISTORICO||' Vr.Acresc:'||OLD.VALOR_ACRESCIMO||' -> '||NEW.VALOR_ACRESCIMO;
        END                
    IF(NEW.VALOR_DESCONTO <> OLD.VALOR_DESCONTO) THEN
        BEGIN                  
            HISTORICO = HISTORICO||' Vr.Desc:'||OLD.VALOR_DESCONTO||' -> '||NEW.VALOR_DESCONTO;
        END                    
    IF(NEW.FISCAL_ISENTAS_IPI  <> OLD.FISCAL_ISENTAS_IPI) THEN
        BEGIN                  
            HISTORICO = HISTORICO||' Fisc.Isen.IPI:'||OLD.FISCAL_ISENTAS_IPI||' -> '||NEW.FISCAL_ISENTAS_IPI;
        END                    
    IF(NEW.FISCAL_ISENTAS_ICMS <> OLD.FISCAL_ISENTAS_ICMS) THEN
        BEGIN                  
            HISTORICO = HISTORICO||' Fisc.Isen.ICMS:'||OLD.FISCAL_ISENTAS_ICMS||' -> '||NEW.FISCAL_ISENTAS_ICMS;
        END                    
    IF(NEW.FISCAL_OUTRAS_IPI <> OLD.FISCAL_OUTRAS_IPI) THEN
        BEGIN                  
            HISTORICO = HISTORICO||' Fisc.Out.IPI:'||OLD.FISCAL_OUTRAS_IPI||' -> '||NEW.FISCAL_OUTRAS_IPI;
        END                    
    IF(NEW.FISCAL_OUTRAS_ICMS <> OLD.FISCAL_OUTRAS_ICMS) THEN
        BEGIN                 
            HISTORICO = HISTORICO||' Fisc.Out.ICMS:'||OLD.FISCAL_OUTRAS_ICMS||' -> '||NEW.FISCAL_OUTRAS_ICMS;
        END                   
    IF(NEW.FISCAL_VALOR_ICMS <> OLD.FISCAL_VALOR_ICMS) THEN
        BEGIN                  
            HISTORICO = HISTORICO||' Fisc.Vr.ICMS:'||OLD.FISCAL_VALOR_ICMS||' -> '||NEW.FISCAL_VALOR_ICMS;
        END                    
    IF(NEW.FISCAL_VALOR_IPI <> OLD.FISCAL_VALOR_IPI) THEN
        BEGIN               
            HISTORICO = HISTORICO||' Fisc.Vr.IPI:'||OLD.FISCAL_VALOR_IPI||' -> '||NEW.FISCAL_VALOR_IPI;
        END                 
    IF(NEW.FISCAL_VALOR_PIS <> OLD.FISCAL_VALOR_PIS) THEN
        BEGIN                  
            HISTORICO = HISTORICO||' Fisc.Vr.PIS:'||OLD.FISCAL_VALOR_PIS||' -> '||NEW.FISCAL_VALOR_PIS;
        END                    
    IF(NEW.FISCAL_VALOR_COFINS <> OLD.FISCAL_VALOR_COFINS) THEN
        BEGIN   
            HISTORICO = HISTORICO||' Fisc.Vr.Cof:'||OLD.FISCAL_VALOR_COFINS||' -> '||NEW.FISCAL_VALOR_COFINS;
        END                       
    IF(NEW.FISCAL_PERCENTUAL_ICMS <> OLD.FISCAL_PERCENTUAL_ICMS) THEN
        BEGIN
            HISTORICO = HISTORICO||' Fisc.%.Icms:'||OLD.FISCAL_PERCENTUAL_ICMS||' -> '||NEW.FISCAL_PERCENTUAL_ICMS;
        END                       
    IF(NEW.FISCAL_PERCENTUAL_IPI  <> OLD.FISCAL_PERCENTUAL_IPI) THEN
        BEGIN                     
            HISTORICO = HISTORICO||' Fisc.%.IPI:'||OLD.FISCAL_PERCENTUAL_IPI||' -> '||NEW.FISCAL_PERCENTUAL_IPI;
        END                       
    IF(NEW.FISCAL_PERCENTUAL_PIS  <> OLD.FISCAL_PERCENTUAL_PIS) THEN
        BEGIN
            HISTORICO = HISTORICO||' Fisc.%.PIS:'||OLD.FISCAL_PERCENTUAL_PIS||' -> '||NEW.FISCAL_PERCENTUAL_PIS;
        END
    IF(NEW.FISCAL_PERCENTUAL_COFINS <> OLD.FISCAL_PERCENTUAL_COFINS) THEN
        BEGIN              
            HISTORICO = HISTORICO||' Fisc.%.Cof:'||OLD.FISCAL_PERCENTUAL_COFINS||' -> '||NEW.FISCAL_PERCENTUAL_COFINS;
        END                         
    IF(NEW.FISCAL_BASECALCULO_ICMS <> OLD.FISCAL_BASECALCULO_ICMS) THEN
        BEGIN                           
            HISTORICO = HISTORICO||' Fisc.Bs.Calc.ICMS:'||OLD.FISCAL_BASECALCULO_ICMS||' -> '||NEW.FISCAL_BASECALCULO_ICMS;
        END                         
    IF(NEW.FISCAL_BASECALCULO_IPI <> OLD.FISCAL_BASECALCULO_IPI) THEN
        BEGIN                           
            HISTORICO = HISTORICO||' Fisc.Bs.Calc.IPI:'||OLD.FISCAL_BASECALCULO_IPI||' -> '||NEW.FISCAL_BASECALCULO_IPI;
        END                         
    IF(NEW.FISCAL_BASECALCULO_PIS <> OLD.FISCAL_BASECALCULO_PIS) THEN
        BEGIN    
            HISTORICO = HISTORICO||' Fisc.Bs.Calc.PIS:'||OLD.FISCAL_BASECALCULO_PIS||' -> '||NEW.FISCAL_BASECALCULO_PIS;
        END
    IF(NEW.FISCAL_BASECALCULO_COFINS  <> OLD.FISCAL_BASECALCULO_COFINS) THEN
        BEGIN
            HISTORICO = HISTORICO||' Fisc.Bs.Calc.Cofins:'||OLD.FISCAL_BASECALCULO_COFINS||' -> '||NEW.FISCAL_BASECALCULO_COFINS;
        END
    IF(NEW.VALOR_ICMS <> OLD.VALOR_ICMS) THEN
        BEGIN           
            HISTORICO = HISTORICO||' Vr.ICMS:'||OLD.VALOR_ICMS||' -> '||NEW.VALOR_ICMS;
        END
    IF(NEW.FISCAL_TRIBUTACAO_ORIGEM <> OLD.FISCAL_TRIBUTACAO_ORIGEM) THEN
        BEGIN           
            HISTORICO = HISTORICO||' Fisc.Trib.Origem:'||OLD.FISCAL_TRIBUTACAO_ORIGEM||' -> '||NEW.FISCAL_TRIBUTACAO_ORIGEM;
        END                         
    IF(NEW.FISCAL_TRIBUTACAO_ICMS <> OLD.FISCAL_TRIBUTACAO_ICMS) THEN
        BEGIN               
            HISTORICO = HISTORICO||' Fisc.Trib.ICMS:'||OLD.FISCAL_TRIBUTACAO_ICMS||' -> '||NEW.FISCAL_TRIBUTACAO_ICMS;
        END                         
    IF(NEW.FISCAL_TRIBUTACAO_IPI <> OLD.FISCAL_TRIBUTACAO_IPI) THEN
        BEGIN
            HISTORICO = HISTORICO||' Fisc.Trib.IPI:'||OLD.FISCAL_TRIBUTACAO_IPI||' -> '||NEW.FISCAL_TRIBUTACAO_IPI;
        END                      
    IF(NEW.FISCAL_TRIBUTACAO_PIS <> OLD.FISCAL_TRIBUTACAO_PIS) THEN
        BEGIN
            HISTORICO = HISTORICO||' Fisc.Trib.PIS:'||OLD.FISCAL_TRIBUTACAO_PIS||' -> '||NEW.FISCAL_TRIBUTACAO_PIS;
        END                         
    IF(NEW.FISCAL_TRIBUTACAO_COFINS <> OLD.FISCAL_TRIBUTACAO_COFINS) THEN
        BEGIN
            HISTORICO = HISTORICO||' Fisc.Trib.Cof:'||OLD.FISCAL_TRIBUTACAO_COFINS||' -> '||NEW.FISCAL_TRIBUTACAO_COFINS;
        END                         
    IF(NEW.FISCAL_CFOP_CODIGO <> OLD.FISCAL_CFOP_CODIGO) THEN
        BEGIN
            HISTORICO = HISTORICO||' Fisc.CFOP:'||OLD.FISCAL_CFOP_CODIGO||' -> '||NEW.FISCAL_CFOP_CODIGO;
        END                   
    IF(NEW.VALOR_CONTABIL <> OLD.VALOR_CONTABIL) THEN
        BEGIN
            HISTORICO = HISTORICO||' Vr.Contabil:'||OLD.VALOR_CONTABIL||' -> '||NEW.VALOR_CONTABIL;
        END                    
    IF(NEW.VALOR_PEDAGIO <> OLD.VALOR_PEDAGIO) THEN
        BEGIN
            HISTORICO = HISTORICO||' Vr.Pedagio:'||OLD.VALOR_PEDAGIO||' -> '||NEW.VALOR_PEDAGIO;
        END
    IF(NEW.DESCONTO_BASECALCULO_ICMS <> OLD.DESCONTO_BASECALCULO_ICMS) THEN
        BEGIN
            HISTORICO = HISTORICO||' Desc.Bs.Calc.Cof:'||OLD.DESCONTO_BASECALCULO_ICMS||' -> '||NEW.DESCONTO_BASECALCULO_ICMS;
        END
    IF(NEW.VALOR_BASECALCULO_ICMS <> OLD.VALOR_BASECALCULO_ICMS) THEN
        BEGIN
            HISTORICO = HISTORICO||' Vr.BS.Calc.ICMS:'||OLD.VALOR_BASECALCULO_ICMS||' -> '||NEW.VALOR_BASECALCULO_ICMS;
        END
    IF(NEW.MODALIDADE_ICMS <> OLD.MODALIDADE_ICMS) THEN
        BEGIN                  
            HISTORICO = HISTORICO||' Mod.ICMS:'||OLD.MODALIDADE_ICMS||' -> '||NEW.MODALIDADE_ICMS;
        END                    
    IF(NEW.MODALIDADE_ICMS_ST <> OLD.MODALIDADE_ICMS_ST) THEN
        BEGIN                  
            HISTORICO = HISTORICO||' Mod.ICMS.St:'||OLD.MODALIDADE_ICMS_ST||' -> '||NEW.MODALIDADE_ICMS_ST;
        END                    
    IF(NEW.MARGEM_ICMS_ST <> OLD.MARGEM_ICMS_ST) THEN
        BEGIN              
            HISTORICO = HISTORICO||' Marg.ICMS.St:'||OLD.MARGEM_ICMS_ST||' -> '||NEW.MARGEM_ICMS_ST;
        END                
    IF(NEW.REDUCAO_ICMS_ST <> OLD.REDUCAO_ICMS_ST) THEN
        BEGIN                  
            HISTORICO = HISTORICO||' Red.ICMS.St:'||OLD.REDUCAO_ICMS_ST||' -> '||NEW.REDUCAO_ICMS_ST;
        END                    
    IF(NEW.BASECALCULO_ICMS_ST <> OLD.BASECALCULO_ICMS_ST) THEN
        BEGIN                  
            HISTORICO = HISTORICO||'BS.Calc.ICMS.St:'||OLD.BASECALCULO_ICMS_ST||' -> '||NEW.BASECALCULO_ICMS_ST;
        END                    
    IF(NEW.ALIQUOTA_ICMS_ST <> OLD.ALIQUOTA_ICMS_ST) THEN
        BEGIN               
            HISTORICO = HISTORICO||' Aliq.ICMS.St:'||OLD.ALIQUOTA_ICMS_ST||' -> '||NEW.ALIQUOTA_ICMS_ST;
        END                 
    IF(NEW.VALOR_ICMS_ST <> OLD.VALOR_ICMS_ST) THEN
        BEGIN               
            HISTORICO = HISTORICO||' Vl.ICMS.St:'||OLD.VALOR_ICMS_ST||' -> '||NEW.VALOR_ICMS_ST;
        END
    IF(NEW.INFORMACOES_COMPLEMENTARES <> OLD.INFORMACOES_COMPLEMENTARES) THEN
        BEGIN               
            HISTORICO = HISTORICO||' Inf.Comp:'||OLD.INFORMACOES_COMPLEMENTARES||' -> '||NEW.INFORMACOES_COMPLEMENTARES;
        END 
    IF(NEW.BASECALCULO_FCI <> OLD.BASECALCULO_FCI) THEN
        BEGIN               
            HISTORICO = HISTORICO||' Bs.Calc.FCI:'||OLD.BASECALCULO_FCI||' -> '||NEW.BASECALCULO_FCI;
        END
    IF(NEW.VALOR_FRETE <> OLD.VALOR_FRETE) THEN
        BEGIN                          
            HISTORICO = HISTORICO||' Vr.Frete:'||OLD.VALOR_FRETE||' -> '||NEW.VALOR_FRETE;
        END             
    IF(NEW.VALOR_SEGURO <> OLD.VALOR_SEGURO) THEN
        BEGIN                          
            HISTORICO = HISTORICO||' Vr.Seg:'||OLD.VALOR_SEGURO||' -> '||NEW.VALOR_SEGURO;
        END
    IF(NEW.FISCAL_REDUCAO_ICMS_ST <> OLD.FISCAL_REDUCAO_ICMS_ST) THEN
        BEGIN               
            HISTORICO = HISTORICO||' Fisc.Red.ICMS.St:'||OLD.FISCAL_REDUCAO_ICMS_ST||' -> '||NEW.FISCAL_REDUCAO_ICMS_ST;
        END
    IF(NEW.FISCAL_BASECALCULO_ICMS_ST <> OLD.FISCAL_BASECALCULO_ICMS_ST) THEN
        BEGIN               
            HISTORICO = HISTORICO||' Fisc.Bs.ICMS.St:'||OLD.FISCAL_BASECALCULO_ICMS_ST||' -> '||NEW.FISCAL_BASECALCULO_ICMS_ST;
        END
    IF(NEW.FISCAL_ALIQUOTA_ICMS_ST <> OLD.FISCAL_ALIQUOTA_ICMS_ST) THEN
        BEGIN               
            HISTORICO = HISTORICO||' Fisc.Aliq.ICMS.St:'||OLD.FISCAL_ALIQUOTA_ICMS_ST||' -> '||NEW.FISCAL_ALIQUOTA_ICMS_ST;
        END
    IF(NEW.FISCAL_VALOR_ICMS_ST <> OLD.FISCAL_VALOR_ICMS_ST) THEN
        BEGIN               
            HISTORICO = HISTORICO||' Fisc.Vr.ICMS.St:'||OLD.FISCAL_VALOR_ICMS_ST||' -> '||NEW.FISCAL_VALOR_ICMS_ST;
        END
    IF(NEW.DI_NVE <> OLD.DI_NVE) THEN
        BEGIN               
            HISTORICO = HISTORICO||' DI.NVE:'||OLD.DI_NVE||' -> '||NEW.DI_NVE;
        END
    IF(NEW.DI_TIPO_VIA_TRANSP <> OLD.DI_TIPO_VIA_TRANSP) THEN
        BEGIN               
            HISTORICO = HISTORICO||' DI.Tp.Via.Trsp:'||OLD.DI_TIPO_VIA_TRANSP||' -> '||NEW.DI_TIPO_VIA_TRANSP;
        END
    IF(NEW.DI_VALOR_AFRMM <> OLD.DI_VALOR_AFRMM) THEN
        BEGIN               
            HISTORICO = HISTORICO||' DI.Vr.Afrmm:'||OLD.DI_VALOR_AFRMM||' -> '||NEW.DI_VALOR_AFRMM;
        END
    IF(NEW.DI_TIPO_INTERMEDIO <> OLD.DI_TIPO_INTERMEDIO) THEN
        BEGIN               
            HISTORICO = HISTORICO||' DI.Tp.Inter:'||OLD.DI_TIPO_INTERMEDIO||' -> '||NEW.DI_TIPO_INTERMEDIO;
        END
    IF(NEW.DI_CNPJ_INTERMEDIO <> OLD.DI_CNPJ_INTERMEDIO) THEN
        BEGIN               
            HISTORICO = HISTORICO||' DI.Cnpj.Inter:'||OLD.DI_CNPJ_INTERMEDIO||' -> '||NEW.DI_CNPJ_INTERMEDIO;
        END
    IF(NEW.DI_UF_INTERMEDIO <> OLD.DI_UF_INTERMEDIO) THEN
        BEGIN               
            HISTORICO = HISTORICO||' DI.UF.Inter:'||OLD.DI_UF_INTERMEDIO||' -> '||NEW.DI_UF_INTERMEDIO;
        END
    IF(NEW.DI_NUMERO_DRAWBACK <> OLD.DI_NUMERO_DRAWBACK) THEN
        BEGIN               
            HISTORICO = HISTORICO||' DI.Num.Drawbck:'||OLD.DI_NUMERO_DRAWBACK||' -> '||NEW.DI_NUMERO_DRAWBACK;
        END
    IF(NEW.CONTA_CONTABIL <> OLD.CONTA_CONTABIL) THEN
        BEGIN                            
            HISTORICO = HISTORICO||' Conta Contab:'||OLD.CONTA_CONTABIL||' -> '||NEW.CONTA_CONTABIL;
        END               
    IF(NEW.CCUSTO <> OLD.CCUSTO) THEN
        BEGIN                                 
            HISTORICO = HISTORICO||' C.Custo:'||OLD.CCUSTO||' -> '||NEW.CCUSTO;
        END                    
    IF(NEW.ENQUADRAMENTO_IPI <> OLD.ENQUADRAMENTO_IPI) THEN
        BEGIN                                 
            HISTORICO = HISTORICO||' Enqrd.IPI:'||OLD.ENQUADRAMENTO_IPI||' -> '||NEW.ENQUADRAMENTO_IPI;
        END                     
    IF(NEW.STATUS_REVISAO <> OLD.STATUS_REVISAO) THEN
        BEGIN                                 
            HISTORICO = HISTORICO||' Status.Rev:'||OLD.STATUS_REVISAO||' -> '||NEW.STATUS_REVISAO;
        END
    IF(NEW.VALOR_FRETE_RATEADO <> OLD.VALOR_FRETE_RATEADO) THEN
        BEGIN               
            HISTORICO = HISTORICO||' Vr.Frete.Rt:'||OLD.VALOR_FRETE_RATEADO||' -> '||NEW.VALOR_FRETE_RATEADO;
        END
    IF(NEW.QUANTIDADE_ALTERNATIVA <> OLD.QUANTIDADE_ALTERNATIVA) THEN
        BEGIN                                    
            HISTORICO = HISTORICO||' Qtd. Alter:'||OLD.QUANTIDADE_ALTERNATIVA||' -> '||NEW.QUANTIDADE_ALTERNATIVA;
        END                       
    IF(NEW.UM_ALTERNATIVA <> OLD.UM_ALTERNATIVA) THEN
        BEGIN                               
            HISTORICO = HISTORICO||' UM.Alter:'||OLD.UM_ALTERNATIVA||' -> '||NEW.UM_ALTERNATIVA;
        END                  
    IF(NEW.VALOR_ALTERNATIVO <> OLD.VALOR_ALTERNATIVO) THEN
        BEGIN                                    
            HISTORICO = HISTORICO||' Vr.Alter:'||OLD.VALOR_ALTERNATIVO||' -> '||NEW.VALOR_ALTERNATIVO;
        END                       
    IF(NEW.CUSTO_FRETE_RATEADO <> OLD.CUSTO_FRETE_RATEADO) THEN
        BEGIN                                    
            HISTORICO = HISTORICO||' Cst.Frete.Rt:'||OLD.CUSTO_FRETE_RATEADO||' -> '||NEW.CUSTO_FRETE_RATEADO;
        END                        
    IF(NEW.ESTOQUE_ID <> OLD.ESTOQUE_ID) THEN
        BEGIN                                    
            HISTORICO = HISTORICO||' Estoq.ID:'||OLD.ESTOQUE_ID||' -> '||NEW.ESTOQUE_ID;
        END                       
    IF(NEW.MARGEM_ICMS_ST <> OLD.MARGEM_ICMS_ST) THEN
        BEGIN                                    
            HISTORICO = HISTORICO||' Mrg.ICMS.St:'||OLD.MARGEM_ICMS_ST||' -> '||NEW.MARGEM_ICMS_ST;
        END                       
    IF(NEW.REDUCAO_BASE_PISCOF <> OLD.REDUCAO_BASE_PISCOF) THEN
        BEGIN               
            HISTORICO = HISTORICO||' Red.Bs.PisCof:'||OLD.REDUCAO_BASE_PISCOF||' -> '||NEW.REDUCAO_BASE_PISCOF;
        END
    IF (HISTORICO <> '') THEN
    BEGIN
        HISTORICO = 'Item:'||NEW.SEQUENCIA||' alterado. '||HISTORICO;
        HISTORICO = FN_ELIPSES(HISTORICO,500);
        EXECUTE PROCEDURE SPI_HISTORICO('TBNFE', NEW.NFE_CONTROLE, HISTORICO);
    END
END
^

SET TERM ; ^

