SET TERM ^ ;

CREATE OR ALTER trigger ttbpdv_cfe_item_b09u for tbpdv_cfe_item
active before update position 9
AS
DECLARE VARIABLE HISTORICO VARCHAR(2000);
BEGIN

  HISTORICO = '';


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

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

    IF(OLD.OPERACAO_CODIGO <> NEW.OPERACAO_CODIGO) THEN
    BEGIN
     HISTORICO = HISTORICO||' OPER.'||OLD.OPERACAO_CODIGO||'->'||NEW.OPERACAO_CODIGO;
    END

    IF(OLD.PRODUTO_ID <> NEW.PRODUTO_ID) THEN
    BEGIN
     HISTORICO = HISTORICO||' PROD. ID: '||OLD.PRODUTO_ID||'->'||NEW.PRODUTO_ID;
    END

    IF(OLD.PRODUTO_DESCRICAO <> NEW.PRODUTO_DESCRICAO) THEN
    BEGIN
     HISTORICO = HISTORICO||' PROD. DESC.'||OLD.PRODUTO_DESCRICAO||'->'||NEW.PRODUTO_DESCRICAO;
    END

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

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

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

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

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

    IF(OLD.VALOR_UNITARIO <> NEW.VALOR_UNITARIO) THEN
    BEGIN
     HISTORICO = HISTORICO||' VL.UNIT:'||OLD.VALOR_UNITARIO||'->'||NEW.VALOR_UNITARIO;
    END

    IF(OLD.VALOR_DESCONTO <> NEW.VALOR_DESCONTO) THEN
    BEGIN
     HISTORICO = HISTORICO||' VL.DESC.'||OLD.VALOR_DESCONTO||'->'||NEW.VALOR_DESCONTO;
    END

    IF(OLD.VALOR_ACRESCIMO <> NEW.VALOR_ACRESCIMO) THEN
    BEGIN
     HISTORICO = HISTORICO||' VL.ACRES.'||OLD.VALOR_ACRESCIMO||'->'||NEW.VALOR_ACRESCIMO;
    END

    IF(OLD.VALOR_TOTAL <> NEW.VALOR_TOTAL) THEN
    BEGIN
     HISTORICO = HISTORICO||' VL.TOTAL:'||OLD.VALOR_TOTAL||'->'||NEW.VALOR_TOTAL;
    END

    IF(OLD.VALOR_LIQUIDO <> NEW.VALOR_LIQUIDO) THEN
    BEGIN
     HISTORICO = HISTORICO||' VL.LIQUIDO:'||OLD.VALOR_LIQUIDO||'->'||NEW.VALOR_LIQUIDO;
    END

    IF(OLD.VALOR_CONTABIL <> NEW.VALOR_CONTABIL) THEN
    BEGIN
     HISTORICO = HISTORICO||' VL.CONTABIL:'||OLD.VALOR_CONTABIL||'->'||NEW.VALOR_CONTABIL;
    END

    IF(OLD.TRIBUTACAO_ORIGEM <> NEW.TRIBUTACAO_ORIGEM) THEN
    BEGIN
     HISTORICO = HISTORICO||' TRIB.ORIGEM:'||OLD.TRIBUTACAO_ORIGEM||'->'||NEW.TRIBUTACAO_ORIGEM;
    END

    IF(OLD.TRIBUTACAO_ICMS <> NEW.TRIBUTACAO_ICMS) THEN
    BEGIN
     HISTORICO = HISTORICO||' TRIB.ICMS:'||OLD.TRIBUTACAO_ICMS||'->'||NEW.TRIBUTACAO_ICMS;
    END

    IF(OLD.PERCENTUAL_BASECALCULO_ICMS <> NEW.PERCENTUAL_BASECALCULO_ICMS) THEN
    BEGIN
     HISTORICO = HISTORICO||' % BASE CALC.ICMS:'||OLD.PERCENTUAL_BASECALCULO_ICMS||'->'||NEW.PERCENTUAL_BASECALCULO_ICMS;
    END

    IF(OLD.BASECALCULO_ICMS <> NEW.BASECALCULO_ICMS) THEN
    BEGIN
     HISTORICO = HISTORICO||' BASE CALC.ICMS:'||OLD.BASECALCULO_ICMS||'->'||NEW.BASECALCULO_ICMS;
    END

    IF(OLD.ALIQUOTA_ICMS <> NEW.ALIQUOTA_ICMS) THEN
    BEGIN
     HISTORICO = HISTORICO||' % ALIQ.ICMS:'||OLD.ALIQUOTA_ICMS||'->'||NEW.ALIQUOTA_ICMS;
    END

    IF(OLD.VALOR_ICMS <> NEW.VALOR_ICMS) THEN
    BEGIN
     HISTORICO = HISTORICO||' VL.ICMS:'||OLD.VALOR_ICMS||'->'||NEW.VALOR_ICMS;
    END

    IF(OLD.TRIBUTACAO_PIS <> NEW.TRIBUTACAO_PIS) THEN
    BEGIN
     HISTORICO = HISTORICO||' TRIB.PIS:'||OLD.TRIBUTACAO_PIS||'->'||NEW.TRIBUTACAO_PIS;
    END

    IF(OLD.BASECALCULO_PIS <> NEW.BASECALCULO_PIS) THEN
    BEGIN
     HISTORICO = HISTORICO||' BASE CALC.PIS:'||OLD.BASECALCULO_PIS||'->'||NEW.BASECALCULO_PIS;
    END

    IF(OLD.ALIQUOTA_PIS <> NEW.ALIQUOTA_PIS) THEN
    BEGIN
     HISTORICO = HISTORICO||' % ALIQ.PIS:'||OLD.ALIQUOTA_PIS||'->'||NEW.ALIQUOTA_PIS;
    END

    IF(OLD.VALOR_PIS <> NEW.VALOR_PIS) THEN
    BEGIN
     HISTORICO = HISTORICO||' VL.PIS:'||OLD.VALOR_PIS||'->'||NEW.VALOR_PIS;
    END

    IF(OLD.TRIBUTACAO_COFINS <> NEW.TRIBUTACAO_COFINS) THEN
    BEGIN
     HISTORICO = HISTORICO||' TRIB.COFINS:'||OLD.TRIBUTACAO_COFINS||'->'||NEW.TRIBUTACAO_COFINS;
    END

    IF(OLD.BASECALCULO_COFINS <> NEW.BASECALCULO_COFINS) THEN
    BEGIN
     HISTORICO = HISTORICO||' BASE CALC.COFINS:'||OLD.BASECALCULO_COFINS||'->'||NEW.BASECALCULO_COFINS;
    END

    IF(OLD.ALIQUOTA_COFINS <> NEW.ALIQUOTA_COFINS) THEN
    BEGIN
     HISTORICO = HISTORICO||' % ALIQ.COFINS:'||OLD.ALIQUOTA_COFINS||'->'||NEW.ALIQUOTA_COFINS;
    END

    IF(OLD.VALOR_OUTRAS_ICMS <> NEW.VALOR_OUTRAS_ICMS) THEN
    BEGIN
     HISTORICO = HISTORICO||' % ALIQ.COFINS:'||OLD.VALOR_OUTRAS_ICMS||'->'||NEW.VALOR_OUTRAS_ICMS;
    END

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

    IF(OLD.PEDIDO_ITEM_ID <> NEW.PEDIDO_ITEM_ID) THEN
    BEGIN
     HISTORICO = HISTORICO||' PEDIDO ITEM:'||OLD.PEDIDO_ITEM_ID||'->'||NEW.PEDIDO_ITEM_ID;
    END

    IF(OLD.REDUCAO_BASE_PISCOF <> NEW.REDUCAO_BASE_PISCOF) THEN
    BEGIN
     HISTORICO = HISTORICO||' RED.BASE.PISCOFINS:'||OLD.REDUCAO_BASE_PISCOF||'->'||NEW.REDUCAO_BASE_PISCOF;
    END

    IF(OLD.FISCAL_PERC_BASECALCULO_ICMS <> NEW.FISCAL_PERC_BASECALCULO_ICMS) THEN
    BEGIN
       HISTORICO = HISTORICO||' RED.BASE.PISCOFINS:'||OLD.FISCAL_PERC_BASECALCULO_ICMS||'->'||NEW.FISCAL_PERC_BASECALCULO_ICMS;
    END

    IF(OLD.FISCAL_BASECALCULO_ICMS <> NEW.FISCAL_BASECALCULO_ICMS) THEN
    BEGIN
       HISTORICO = HISTORICO||' RED.BASE.PISCOFINS:'||OLD.FISCAL_BASECALCULO_ICMS||'->'||NEW.FISCAL_BASECALCULO_ICMS;
    END

    IF(OLD.FISCAL_ALIQUOTA_ICMS <> NEW.FISCAL_ALIQUOTA_ICMS) THEN
    BEGIN
       HISTORICO = HISTORICO||' RED.BASE.PISCOFINS:'||OLD.FISCAL_ALIQUOTA_ICMS||'->'||NEW.FISCAL_ALIQUOTA_ICMS;
    END

    IF(OLD.FISCAL_VALOR_ICMS <> NEW.FISCAL_VALOR_ICMS) THEN
    BEGIN
       HISTORICO = HISTORICO||' RED.BASE.PISCOFINS:'||OLD.FISCAL_VALOR_ICMS||'->'||NEW.FISCAL_VALOR_ICMS;
    END

    IF(OLD.FISCAL_BASECALCULO_PIS <> NEW.FISCAL_BASECALCULO_PIS) THEN
    BEGIN
       HISTORICO = HISTORICO||' RED.BASE.PISCOFINS:'||OLD.FISCAL_BASECALCULO_PIS||'->'||NEW.FISCAL_BASECALCULO_PIS;
    END

    IF(OLD.FISCAL_VALOR_PIS <> NEW.FISCAL_VALOR_PIS) THEN
    BEGIN
       HISTORICO = HISTORICO||' RED.BASE.PISCOFINS:'||OLD.FISCAL_VALOR_PIS||'->'||NEW.FISCAL_VALOR_PIS;
    END

    IF(OLD.FISCAL_BASECALCULO_COFINS <> NEW.FISCAL_BASECALCULO_COFINS) THEN
    BEGIN
       HISTORICO = HISTORICO||' RED.BASE.PISCOFINS:'||OLD.FISCAL_BASECALCULO_COFINS||'->'||NEW.FISCAL_BASECALCULO_COFINS;
    END

    IF(OLD.FISCAL_VALOR_COFINS <> NEW.FISCAL_VALOR_COFINS) THEN
    BEGIN
       HISTORICO = HISTORICO||' RED.BASE.PISCOFINS:'||OLD.FISCAL_VALOR_COFINS||'->'||NEW.FISCAL_VALOR_COFINS;
    END

    IF(OLD.FISCAL_ALIQUOTA_PIS <> NEW.FISCAL_ALIQUOTA_PIS) THEN
    BEGIN
       HISTORICO = HISTORICO||' RED.BASE.PISCOFINS:'||OLD.FISCAL_ALIQUOTA_PIS||'->'||NEW.FISCAL_ALIQUOTA_PIS;
    END

    IF(OLD.FISCAL_ALIQUOTA_COFINS <> NEW.FISCAL_ALIQUOTA_COFINS) THEN
    BEGIN
       HISTORICO = HISTORICO||' RED.BASE.PISCOFINS:'||OLD.FISCAL_ALIQUOTA_COFINS||'->'||NEW.FISCAL_ALIQUOTA_COFINS;
    END

    IF(OLD.FISCAL_TRIBUTACAO_ORIGEM <> NEW.FISCAL_TRIBUTACAO_ORIGEM) THEN
    BEGIN
       HISTORICO = HISTORICO||' RED.BASE.PISCOFINS:'||OLD.FISCAL_TRIBUTACAO_ORIGEM||'->'||NEW.FISCAL_TRIBUTACAO_ORIGEM;
    END

    IF(OLD.FISCAL_TRIBUTACAO_ICMS <> NEW.FISCAL_TRIBUTACAO_ICMS) THEN
    BEGIN
       HISTORICO = HISTORICO||' RED.BASE.PISCOFINS:'||OLD.FISCAL_TRIBUTACAO_ICMS||'->'||NEW.FISCAL_TRIBUTACAO_ICMS;
    END

    IF(OLD.FISCAL_TRIBUTACAO_PIS <> NEW.FISCAL_TRIBUTACAO_PIS) THEN
    BEGIN
       HISTORICO = HISTORICO||' RED.BASE.PISCOFINS:'||OLD.FISCAL_TRIBUTACAO_PIS||'->'||NEW.FISCAL_TRIBUTACAO_PIS;
    END

    IF(OLD.FISCAL_TRIBUTACAO_COFINS <> NEW.FISCAL_TRIBUTACAO_COFINS) THEN
    BEGIN
       HISTORICO = HISTORICO||' RED.BASE.PISCOFINS:'||OLD.FISCAL_TRIBUTACAO_COFINS||'->'||NEW.FISCAL_TRIBUTACAO_COFINS;
    END

    IF(OLD.FISCAL_CFOP_CODIGO <> NEW.FISCAL_CFOP_CODIGO) THEN
    BEGIN
       HISTORICO = HISTORICO||' RED.BASE.PISCOFINS:'||OLD.FISCAL_CFOP_CODIGO||'->'||NEW.FISCAL_CFOP_CODIGO;
    END

    IF(OLD.FISCAL_PERC_BASECALCULO_ICMS <> NEW.FISCAL_PERC_BASECALCULO_ICMS) THEN          
    BEGIN
       HISTORICO = HISTORICO||' FIS.PERC.BS.CALC.ICMS:'||OLD.FISCAL_PERC_BASECALCULO_ICMS||'->'||NEW.FISCAL_PERC_BASECALCULO_ICMS;
    END

    IF(OLD.FISCAL_BASECALCULO_ICMS <> NEW.FISCAL_BASECALCULO_ICMS) THEN
    BEGIN
       HISTORICO = HISTORICO||'  FIS.BS.CALC.ICMS:'||OLD.FISCAL_BASECALCULO_ICMS||'->'||NEW.FISCAL_BASECALCULO_ICMS;
    END

    IF(OLD.FISCAL_ALIQUOTA_ICMS <> NEW.FISCAL_ALIQUOTA_ICMS) THEN
    BEGIN
       HISTORICO = HISTORICO||' FIS.ALIQ.ICMS:'||OLD.FISCAL_ALIQUOTA_ICMS||'->'||NEW.FISCAL_ALIQUOTA_ICMS;
    END

    IF(OLD.FISCAL_VALOR_ICMS <> NEW.FISCAL_VALOR_ICMS) THEN
    BEGIN
       HISTORICO = HISTORICO||' FIS.VL.ICMS:'||OLD.FISCAL_VALOR_ICMS||'->'||NEW.FISCAL_VALOR_ICMS;
    END

    IF(OLD.FISCAL_BASECALCULO_PIS <> NEW.FISCAL_BASECALCULO_PIS) THEN
    BEGIN
       HISTORICO = HISTORICO||' FIS.BS.CALCPISCOFINS:'||OLD.FISCAL_BASECALCULO_PIS||'->'||NEW.FISCAL_BASECALCULO_PIS;
    END

    IF(OLD.FISCAL_VALOR_PIS <> NEW.FISCAL_VALOR_PIS) THEN
    BEGIN
       HISTORICO = HISTORICO||' FIS.BASE.VL.PIS:'||OLD.FISCAL_VALOR_PIS||'->'||NEW.FISCAL_VALOR_PIS;
    END

    IF(OLD.FISCAL_BASECALCULO_COFINS <> NEW.FISCAL_BASECALCULO_COFINS) THEN
    BEGIN
       HISTORICO = HISTORICO||' FIS.BASE.COFINS:'||OLD.FISCAL_BASECALCULO_COFINS||'->'||NEW.FISCAL_BASECALCULO_COFINS;
    END

    IF(OLD.FISCAL_VALOR_COFINS <> NEW.FISCAL_VALOR_COFINS) THEN
    BEGIN
       HISTORICO = HISTORICO||' FIS.VL.COFINS:'||OLD.FISCAL_VALOR_COFINS||'->'||NEW.FISCAL_VALOR_COFINS;
    END

    IF(OLD.FISCAL_ALIQUOTA_PIS <> NEW.FISCAL_ALIQUOTA_PIS) THEN
    BEGIN
       HISTORICO = HISTORICO||' FIS.ALIQ.PIS:'||OLD.FISCAL_ALIQUOTA_PIS||'->'||NEW.FISCAL_ALIQUOTA_PIS;
    END

    IF(OLD.FISCAL_ALIQUOTA_COFINS <> NEW.FISCAL_ALIQUOTA_COFINS) THEN
    BEGIN
       HISTORICO = HISTORICO||' FIS.ALIQ.COFINS:'||OLD.FISCAL_ALIQUOTA_COFINS||'->'||NEW.FISCAL_ALIQUOTA_COFINS;
    END

    IF(OLD.FISCAL_TRIBUTACAO_ORIGEM <> NEW.FISCAL_TRIBUTACAO_ORIGEM) THEN
    BEGIN
       HISTORICO = HISTORICO||' FIS.TRIB.ORIGEM:'||OLD.FISCAL_TRIBUTACAO_ORIGEM||'->'||NEW.FISCAL_TRIBUTACAO_ORIGEM;
    END

    IF(OLD.FISCAL_TRIBUTACAO_ICMS <> NEW.FISCAL_TRIBUTACAO_ICMS) THEN
    BEGIN
       HISTORICO = HISTORICO||' FIS.TRIB.ICMS:'||OLD.FISCAL_TRIBUTACAO_ICMS||'->'||NEW.FISCAL_TRIBUTACAO_ICMS;
    END

    IF(OLD.FISCAL_TRIBUTACAO_PIS <> NEW.FISCAL_TRIBUTACAO_PIS) THEN
    BEGIN
       HISTORICO = HISTORICO||' FIS.TRIB.PIS:'||OLD.FISCAL_TRIBUTACAO_PIS||'->'||NEW.FISCAL_TRIBUTACAO_PIS;
    END

    IF(OLD.FISCAL_TRIBUTACAO_COFINS <> NEW.FISCAL_TRIBUTACAO_COFINS) THEN
    BEGIN
       HISTORICO = HISTORICO||' FIS.TRIB.COFINS:'||OLD.FISCAL_TRIBUTACAO_COFINS||'->'||NEW.FISCAL_TRIBUTACAO_COFINS;
    END

    IF(OLD.FISCAL_CFOP_CODIGO <> NEW.FISCAL_CFOP_CODIGO) THEN
    BEGIN
       HISTORICO = HISTORICO||' FIS.CFOP:'||OLD.FISCAL_CFOP_CODIGO||'->'||NEW.FISCAL_CFOP_CODIGO;
    END

    IF(HISTORICO <> '') THEN
    BEGIN
       HISTORICO = 'ITEM ID:'||OLD.ID||' ALTERADO:'||HISTORICO;
       EXECUTE PROCEDURE SPI_HISTORICO('TBPDV_CFE', OLD.PDV_CFE_ID, FN_ELIPSES(HISTORICO,500));
    END
END
^

SET TERM ; ^

