SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER procedure SPC_NFE_ITEM7 (
    CONTROLE_1 integer)
returns (
    NFE_CONTROLE integer,
    SEQUENCIA integer,
    OPERACAO_CODIGO varchar(3),
    CFOP_CODIGO varchar(5),
    PRODUTO_CODIGO integer,
    PRODUTO_DESCRICAO varchar(100),
    PRODUTO_UNIDADEMEDIDA varchar(3),
    GRADE_CODIGO integer,
    NCM_CODIGO varchar(10),
    TRIBUTACAO_ICMS integer,
    TRIBUTACAO_IPI varchar(2),
    TRIBUTACAO_ORIGEM integer,
    LOCALIZACAO_CODIGO integer,
    LOCALIZACAO_DESCRICAO varchar(20),
    QUANTIDADE numeric(10,5),
    VALOR_UNITARIO numeric(10,5),
    VALOR_TOTAL numeric(10,5),
    BASECALCULO_ICMS numeric(10,5),
    PERCENTUAL_ICMS numeric(10,5),
    PERCENTUAL_IPI numeric(10,5),
    VALOR_IPI numeric(10,5),
    PERCENTUAL_PIS numeric(10,5),
    VALOR_PIS numeric(10,5),
    PERCENTUAL_COFINS numeric(10,5),
    VALOR_COFINS numeric(10,5),
    VALOR_FRETE numeric(10,2),
    VALOR_SEGURO numeric(10,2),
    NFS integer,
    NFS_ITEM_CONTROLE integer,
    NF_EXTERNO integer,
    NF_EXTERNO_ITEM_CONTROLE integer,
    OC integer,
    OC_ITEM_CONTROLE integer,
    T01 numeric(10,5),
    T02 numeric(10,5),
    T03 numeric(10,5),
    T04 numeric(10,5),
    T05 numeric(10,5),
    T06 numeric(10,5),
    T07 numeric(10,5),
    T08 numeric(10,5),
    T09 numeric(10,5),
    T10 numeric(10,5),
    T11 numeric(10,5),
    T12 numeric(10,5),
    T13 numeric(10,5),
    T14 numeric(10,5),
    T15 numeric(10,5),
    T16 numeric(10,5),
    T17 numeric(10,5),
    T18 numeric(10,5),
    T19 numeric(10,5),
    T20 numeric(10,5),
    ESTABELECIMENTO_CODIGO integer,
    EMPRESA_CODIGO integer,
    NUMERO_NOTAFISCAL integer,
    DATA_ENTRADA date,
    SITUACAO integer,
    CONTROLE integer,
    VALOR_CUSTO numeric(10,5),
    PRODUTO_GRADE_CODIGO integer,
    TRIBUTACAO_PIS varchar(2),
    TRIBUTACAO_COFINS varchar(2),
    DI varchar(12),
    DI_DATA_REGISTRO date,
    DI_DATA_DESEMBARACO date,
    DI_LOCAL_DESEMBARACO varchar(60),
    DI_UF_DESEMBARACO char(2),
    DI_CODIGO_EXPORTADOR varchar(60),
    DI_ADICAO integer,
    DI_SEQUENCIAL integer,
    DI_CODIGO_FABRICANTE varchar(60),
    DI_DESCONTO_ADICAO numeric(10,2),
    DI_BASE_CALCULO numeric(10,2),
    DI_DESPESAS_ADUANEIRAS numeric(10,2),
    DI_VALOR_II numeric(10,2),
    DI_VALOR_IOF numeric(10,2),
    VALOR_ICMS numeric(10,2),
    BASECALCULO_IPI numeric(10,2),
    BASECALCULO_PIS numeric(10,2),
    BASECALCULO_COFINS numeric(10,2),
    VALOR_ACRESCIMO numeric(10,2),
    VALOR_DESCONTO numeric(10,2),
    FISCAL_ISENTAS_IPI numeric(10,2),
    FISCAL_ISENTAS_ICMS numeric(10,2),
    FISCAL_OUTRAS_IPI numeric(10,2),
    FISCAL_OUTRAS_ICMS numeric(10,2),
    FISCAL_VALOR_ICMS numeric(10,2),
    FISCAL_VALOR_IPI numeric(10,2),
    FISCAL_VALOR_PIS numeric(10,2),
    FISCAL_VALOR_COFINS numeric(10,2),
    FISCAL_PERCENTUAL_ICMS numeric(10,2),
    FISCAL_PERCENTUAL_IPI numeric(10,2),
    FISCAL_PERCENTUAL_PIS numeric(10,2),
    FISCAL_PERCENTUAL_COFINS numeric(10,2),
    FISCAL_BASECALCULO_ICMS numeric(10,5),
    FISCAL_BASECALCULO_IPI numeric(10,2),
    FISCAL_BASECALCULO_PIS numeric(10,2),
    FISCAL_BASECALCULO_COFINS numeric(10,2),
    VALOR_CONTABIL numeric(10,2),
    VALOR_BASECALCULO_ICMS numeric(10,2),
    VALOR_PEDAGIO numeric(10,2),
    FISCAL_CFOP_CODIGO varchar(5),
    FISCAL_TRIBUTACAO_ORIGEM integer,
    FISCAL_TRIBUTACAO_ICMS integer,
    FISCAL_TRIBUTACAO_IPI char(2),
    FISCAL_TRIBUTACAO_PIS char(2),
    FISCAL_TRIBUTACAO_COFINS char(2),
    DESCONTO_BASECALCULO_ICMS numeric(10,2),
    BASECALCULO_FCI numeric(15,4),
    CODIGO_FCI varchar(50),
    MODALIDADE_ICMS char(1),
    MODALIDADE_ICMS_ST char(1),
    MARGEM_ICMS_ST numeric(15,4),
    REDUCAO_ICMS_ST numeric(15,4),
    BASECALCULO_ICMS_ST numeric(15,4),
    ALIQUOTA_ICMS_ST numeric(15,4),
    VALOR_ICMS_ST numeric(15,4),
    FISCAL_REDUCAO_ICMS_ST numeric(10,2),
    FISCAL_BASECALCULO_ICMS_ST numeric(10,2),
    FISCAL_ALIQUOTA_ICMS_ST numeric(10,2),
    FISCAL_VALOR_ICMS_ST numeric(10,2),
    INFORMACOES_COMPLEMENTARES varchar(200),
    DI_NVE varchar(60),
    DI_TIPO_VIA_TRANSP integer,
    DI_TIPO_VIA_TRANSP_DESCRICAO varchar(30),
    DI_VALOR_AFRMM numeric(15,2),
    DI_TIPO_INTERMEDIO varchar(1),
    DI_TIPO_INTERMEDIO_DESCRICAO varchar(30),
    DI_CNPJ_INTERMEDIO varchar(14),
    DI_UF_INTERMEDIO varchar(2),
    DI_NUMERO_DRAWBACK varchar(11))
as
begin
for select
A.NFe_CONTROLE      ,A.SEQUENCIA        ,A.OPERACAO_CODIGO      ,A.CFOP_CODIGO ,
A.PRODUTO_CODIGO    ,A.PRODUTO_DESCRICAO,A.PRODUTO_UNIDADEMEDIDA2,A.GRADE_CODIGO,
A.NCM_CODIGO        ,A.TRIBUTACAO_ICMS  ,A.TRIBUTACAO_IPI       ,A.TRIBUTACAO_ORIGEM,
A.LOCALIZACAO_CODIGO,(Select First 1 L.Descricao From TbLocalizacao L Where A.Localizacao_Codigo = L.Codigo),
A.QUANTIDADE        ,A.VALOR_UNITARIO       ,A.VALOR_TOTAL      ,
A.BASECALCULO_ICMS  ,A.PERCENTUAL_ICMS  ,A.PERCENTUAL_IPI       ,A.VALOR_IPI   ,
A.PERCENTUAL_PIS    ,A.VALOR_PIS        ,A.PERCENTUAL_COFINS    ,A.VALOR_COFINS,
A.VALOR_FRETE, A.VALOR_SEGURO, A.NFs, A.NFs_ITEM_CONTROLE,A.NF_EXTERNO ,
A.NF_EXTERNO_ITEM_CONTROLE, A.OC,A.OC_ITEM_CONTROLE,
A.T01,A.T02,A.T03,A.T04,A.T05,A.T06,A.T07,A.T08,A.T09,A.T10,
A.T11,A.T12,A.T13,A.T14,A.T15,A.T16,A.T17,A.T18,A.T19,A.T20,
A.ESTABELECIMENTO_CODIGO,A.EMPRESA_CODIGO,A.NUMERO_NOTAFISCAL,A.DATA_ENTRADA,
A.SITUACAO,A.CONTROLE,A.VALOR_CUSTO,
(Select First 1 B.GRADE_CODIGO From TbProduto B Where A.Produto_Codigo = B.Codigo),
A.tributacao_PIS, A.tributacao_cofins,A.DI,A.DI_DATA_REGISTRO,A.DI_DATA_DESEMBARACO,
A.DI_LOCAL_DESEMBARACO,A.DI_UF_DESEMBARACO,A.DI_CODIGO_EXPORTADOR,A.DI_ADICAO,
A.DI_SEQUENCIAL,A.DI_CODIGO_FABRICANTE,A.DI_DESCONTO_ADICAO,
A.di_base_calculo,A.di_despesas_aduaneiras,A.di_valor_ii,A.di_valor_iof,
A.VALOR_ICMS,A.BASECALCULO_IPI,A.BASECALCULO_PIS,A.BASECALCULO_COFINS,
A.VALOR_ACRESCIMO,A.VALOR_DESCONTO,A.FISCAL_ISENTAS_IPI,A.FISCAL_ISENTAS_ICMS,
A.FISCAL_OUTRAS_IPI,A.FISCAL_OUTRAS_ICMS,A.FISCAL_VALOR_ICMS,A.FISCAL_VALOR_IPI,
A.FISCAL_VALOR_PIS,A.FISCAL_VALOR_COFINS,A.FISCAL_PERCENTUAL_ICMS,A.FISCAL_PERCENTUAL_IPI,
A.FISCAL_PERCENTUAL_PIS,A.FISCAL_PERCENTUAL_COFINS,A.FISCAL_BASECALCULO_ICMS,
A.FISCAL_BASECALCULO_IPI,A.FISCAL_BASECALCULO_PIS,A.FISCAL_BASECALCULO_COFINS,
A.VALOR_CONTABIL, A.valor_basecalculo_icms, A.VALOR_PEDAGIO, A.FISCAL_CFOP_CODIGO,A.FISCAL_TRIBUTACAO_ORIGEM,
A.FISCAL_TRIBUTACAO_ICMS,A.FISCAL_TRIBUTACAO_IPI,A.FISCAL_TRIBUTACAO_PIS,
A.FISCAL_TRIBUTACAO_COFINS, A.DESCONTO_BASECALCULO_ICMS, A.BASECALCULO_FCI, A.Codigo_Fci,

A.MODALIDADE_ICMS, A.MODALIDADE_ICMS_ST, A.MARGEM_ICMS_ST, A.REDUCAO_ICMS_ST,
A.BASECALCULO_ICMS_ST, A.ALIQUOTA_ICMS_ST, A.VALOR_ICMS_ST,A.FISCAL_REDUCAO_ICMS_ST,
A.FISCAL_BASECALCULO_ICMS_ST, A.FISCAL_ALIQUOTA_ICMS_ST, A.FISCAL_VALOR_ICMS_ST,

A.INFORMACOES_COMPLEMENTARES, A.DI_NVE,
A.DI_TIPO_VIA_TRANSP, IIF(A.DI_TIPO_VIA_TRANSP=1,'Marítima',
                      IIF(A.DI_TIPO_VIA_TRANSP=2,'Fluvial',
                      IIF(A.DI_TIPO_VIA_TRANSP=3,'Lacustre',
                      IIF(A.DI_TIPO_VIA_TRANSP=4,'Aérea',
                      IIF(A.DI_TIPO_VIA_TRANSP=5,'Postal',
                      IIF(A.DI_TIPO_VIA_TRANSP=6,'Ferroviária',
                      IIF(A.DI_TIPO_VIA_TRANSP=7,'Rodoviária',
                      IIF(A.DI_TIPO_VIA_TRANSP=8,'Conduto/Rd.Trnsm',
                      IIF(A.DI_TIPO_VIA_TRANSP=9,'Meios Próprios',
                      IIF(A.DI_TIPO_VIA_TRANSP=10,'Entr/Saída ficta','')))))))))),
A.DI_VALOR_AFRMM,
A.DI_TIPO_INTERMEDIO, IIF(A.DI_TIPO_INTERMEDIO='1','Imp.Conta Própria',
                      IIF(A.DI_TIPO_INTERMEDIO='2','Imp.Conta e Ordem',
                      IIF(A.DI_TIPO_INTERMEDIO='3','Imp.por Encomenda',''))),
A.DI_CNPJ_INTERMEDIO, A.DI_UF_INTERMEDIO, A.DI_NUMERO_DRAWBACK

From TbNfE_Item A
Where (A.NFE_CONTROLE = :CONTROLE_1)
order by A.SEQUENCIA
into
    :NFE_CONTROLE      ,:SEQUENCIA        , :OPERACAO_CODIGO, :CFOP_CODIGO,
    :PRODUTO_CODIGO    ,:PRODUTO_DESCRICAO, :PRODUTO_UNIDADEMEDIDA,:GRADE_CODIGO,
    :NCM_CODIGO        ,:TRIBUTACAO_ICMS  , :TRIBUTACAO_IPI, :TRIBUTACAO_ORIGEM,
    :LOCALIZACAO_CODIGO,:LOCALIZACAO_DESCRICAO,
    :QUANTIDADE       , :VALOR_UNITARIO, :VALOR_TOTAL,
    :BASECALCULO_ICMS, :PERCENTUAL_ICMS   , :PERCENTUAL_IPI, :VALOR_IPI,
    :PERCENTUAL_PIS, :VALOR_PIS, :PERCENTUAL_COFINS ,:VALOR_COFINS,
    :VALOR_FRETE, :VALOR_SEGURO, :NFS,
    :NFS_ITEM_CONTROLE,:NF_EXTERNO, :NF_EXTERNO_ITEM_CONTROLE, :OC,:OC_ITEM_CONTROLE,
    :T01,:T02,:T03,:T04,:T05,:T06,:T07,:T08,:T09,:T10,
    :T11,:T12,:T13,:T14,:T15,:T16,:T17,:T18,:T19,:T20,
    :ESTABELECIMENTO_CODIGO,:EMPRESA_CODIGO,:NUMERO_NOTAFISCAL,:DATA_ENTRADA,
    :SITUACAO,:CONTROLE,:VALOR_CUSTO,:PRODUTO_GRADE_CODIGO,:tributacao_PIS,
    :tributacao_cofins, :DI, :DI_DATA_REGISTRO, :DI_DATA_DESEMBARACO,
    :DI_LOCAL_DESEMBARACO, :DI_UF_DESEMBARACO, :DI_CODIGO_EXPORTADOR,
    :DI_ADICAO, :DI_SEQUENCIAL, :DI_CODIGO_FABRICANTE, :DI_DESCONTO_ADICAO,
    :di_base_calculo,:di_despesas_aduaneiras,:di_valor_ii,:Di_valor_iof,
    :VALOR_ICMS,:BASECALCULO_IPI,:BASECALCULO_PIS,:BASECALCULO_COFINS,
    :VALOR_ACRESCIMO,:VALOR_DESCONTO,:FISCAL_ISENTAS_IPI,:FISCAL_ISENTAS_ICMS,
    :FISCAL_OUTRAS_IPI,:FISCAL_OUTRAS_ICMS,:FISCAL_VALOR_ICMS,:FISCAL_VALOR_IPI,
    :FISCAL_VALOR_PIS,:FISCAL_VALOR_COFINS,:FISCAL_PERCENTUAL_ICMS,:FISCAL_PERCENTUAL_IPI,
    :FISCAL_PERCENTUAL_PIS,:FISCAL_PERCENTUAL_COFINS,:FISCAL_BASECALCULO_ICMS,
    :FISCAL_BASECALCULO_IPI,:FISCAL_BASECALCULO_PIS,:FISCAL_BASECALCULO_COFINS,
    :VALOR_CONTABIL,:valor_basecalculo_icms, :VALOR_PEDAGIO,:FISCAL_CFOP_CODIGO,
    :FISCAL_TRIBUTACAO_ORIGEM, :FISCAL_TRIBUTACAO_ICMS,:FISCAL_TRIBUTACAO_IPI,
    :FISCAL_TRIBUTACAO_PIS, :FISCAL_TRIBUTACAO_COFINS , :DESCONTO_BASECALCULO_ICMS,
    :BASECALCULO_FCI, :Codigo_Fci,

    :MODALIDADE_ICMS, :MODALIDADE_ICMS_ST, :MARGEM_ICMS_ST, :REDUCAO_ICMS_ST,
    :BASECALCULO_ICMS_ST, :ALIQUOTA_ICMS_ST, :VALOR_ICMS_ST,:FISCAL_REDUCAO_ICMS_ST,
    :FISCAL_BASECALCULO_ICMS_ST, :FISCAL_ALIQUOTA_ICMS_ST, :FISCAL_VALOR_ICMS_ST,
    :INFORMACOES_COMPLEMENTARES, :DI_NVE, :DI_TIPO_VIA_TRANSP,
    :DI_TIPO_VIA_TRANSP_DESCRICAO, :DI_VALOR_AFRMM, :DI_TIPO_INTERMEDIO,
    :DI_TIPO_INTERMEDIO_DESCRICAO, :DI_CNPJ_INTERMEDIO, :DI_UF_INTERMEDIO, :DI_NUMERO_DRAWBACK

do suspend;
end
^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER procedure SPC_NFE_ITEM8 (
    CONTROLE_1 integer)
returns (
    NFE_CONTROLE integer,
    SEQUENCIA integer,
    OPERACAO_CODIGO varchar(3),
    CFOP_CODIGO varchar(5),
    PRODUTO_CODIGO integer,
    PRODUTO_DESCRICAO varchar(100),
    PRODUTO_UNIDADEMEDIDA varchar(3),
    GRADE_CODIGO integer,
    NCM_CODIGO varchar(10),
    TRIBUTACAO_ICMS integer,
    TRIBUTACAO_IPI varchar(2),
    TRIBUTACAO_ORIGEM integer,
    LOCALIZACAO_CODIGO integer,
    LOCALIZACAO_DESCRICAO varchar(20),
    QUANTIDADE numeric(10,5),
    VALOR_UNITARIO numeric(10,5),
    VALOR_TOTAL numeric(10,5),
    BASECALCULO_ICMS numeric(10,5),
    PERCENTUAL_ICMS numeric(10,5),
    PERCENTUAL_IPI numeric(10,5),
    VALOR_IPI numeric(10,5),
    PERCENTUAL_PIS numeric(10,5),
    VALOR_PIS numeric(10,5),
    PERCENTUAL_COFINS numeric(10,5),
    VALOR_COFINS numeric(10,5),
    VALOR_FRETE numeric(10,2),
    VALOR_SEGURO numeric(10,2),
    NFS integer,
    NFS_ITEM_CONTROLE integer,
    NF_EXTERNO integer,
    NF_EXTERNO_ITEM_CONTROLE integer,
    OC integer,
    OC_ITEM_CONTROLE integer,
    T01 numeric(10,5),
    T02 numeric(10,5),
    T03 numeric(10,5),
    T04 numeric(10,5),
    T05 numeric(10,5),
    T06 numeric(10,5),
    T07 numeric(10,5),
    T08 numeric(10,5),
    T09 numeric(10,5),
    T10 numeric(10,5),
    T11 numeric(10,5),
    T12 numeric(10,5),
    T13 numeric(10,5),
    T14 numeric(10,5),
    T15 numeric(10,5),
    T16 numeric(10,5),
    T17 numeric(10,5),
    T18 numeric(10,5),
    T19 numeric(10,5),
    T20 numeric(10,5),
    ESTABELECIMENTO_CODIGO integer,
    EMPRESA_CODIGO integer,
    NUMERO_NOTAFISCAL integer,
    DATA_ENTRADA date,
    SITUACAO integer,
    CONTROLE integer,
    VALOR_CUSTO numeric(10,5),
    PRODUTO_GRADE_CODIGO integer,
    TRIBUTACAO_PIS varchar(2),
    TRIBUTACAO_COFINS varchar(2),
    DI varchar(12),
    DI_DATA_REGISTRO date,
    DI_DATA_DESEMBARACO date,
    DI_LOCAL_DESEMBARACO varchar(60),
    DI_UF_DESEMBARACO char(2),
    DI_CODIGO_EXPORTADOR varchar(60),
    DI_ADICAO integer,
    DI_SEQUENCIAL integer,
    DI_CODIGO_FABRICANTE varchar(60),
    DI_DESCONTO_ADICAO numeric(10,2),
    DI_BASE_CALCULO numeric(10,2),
    DI_DESPESAS_ADUANEIRAS numeric(10,2),
    DI_VALOR_II numeric(10,2),
    DI_VALOR_IOF numeric(10,2),
    VALOR_ICMS numeric(10,2),
    BASECALCULO_IPI numeric(10,2),
    BASECALCULO_PIS numeric(10,2),
    BASECALCULO_COFINS numeric(10,2),
    VALOR_ACRESCIMO numeric(10,2),
    VALOR_DESCONTO numeric(10,2),
    FISCAL_ISENTAS_IPI numeric(10,2),
    FISCAL_ISENTAS_ICMS numeric(10,2),
    FISCAL_OUTRAS_IPI numeric(10,2),
    FISCAL_OUTRAS_ICMS numeric(10,2),
    FISCAL_VALOR_ICMS numeric(10,2),
    FISCAL_VALOR_IPI numeric(10,2),
    FISCAL_VALOR_PIS numeric(10,2),
    FISCAL_VALOR_COFINS numeric(10,2),
    FISCAL_PERCENTUAL_ICMS numeric(10,2),
    FISCAL_PERCENTUAL_IPI numeric(10,2),
    FISCAL_PERCENTUAL_PIS numeric(10,2),
    FISCAL_PERCENTUAL_COFINS numeric(10,2),
    FISCAL_BASECALCULO_ICMS numeric(10,5),
    FISCAL_BASECALCULO_IPI numeric(10,2),
    FISCAL_BASECALCULO_PIS numeric(10,2),
    FISCAL_BASECALCULO_COFINS numeric(10,2),
    VALOR_CONTABIL numeric(10,2),
    VALOR_BASECALCULO_ICMS numeric(10,2),
    VALOR_PEDAGIO numeric(10,2),
    FISCAL_CFOP_CODIGO varchar(5),
    FISCAL_TRIBUTACAO_ORIGEM integer,
    FISCAL_TRIBUTACAO_ICMS integer,
    FISCAL_TRIBUTACAO_IPI char(2),
    FISCAL_TRIBUTACAO_PIS char(2),
    FISCAL_TRIBUTACAO_COFINS char(2),
    DESCONTO_BASECALCULO_ICMS numeric(10,2),
    BASECALCULO_FCI numeric(15,4),
    CODIGO_FCI varchar(50),
    MODALIDADE_ICMS char(1),
    MODALIDADE_ICMS_ST char(1),
    MARGEM_ICMS_ST numeric(15,4),
    REDUCAO_ICMS_ST numeric(15,4),
    BASECALCULO_ICMS_ST numeric(15,4),
    ALIQUOTA_ICMS_ST numeric(15,4),
    VALOR_ICMS_ST numeric(15,4),
    FISCAL_REDUCAO_ICMS_ST numeric(10,2),
    FISCAL_BASECALCULO_ICMS_ST numeric(10,2),
    FISCAL_ALIQUOTA_ICMS_ST numeric(10,2),
    FISCAL_VALOR_ICMS_ST numeric(10,2),
    INFORMACOES_COMPLEMENTARES varchar(200),
    DI_NVE varchar(60),
    DI_TIPO_VIA_TRANSP integer,
    DI_TIPO_VIA_TRANSP_DESCRICAO varchar(30),
    DI_VALOR_AFRMM numeric(15,2),
    DI_TIPO_INTERMEDIO varchar(1),
    DI_TIPO_INTERMEDIO_DESCRICAO varchar(30),
    DI_CNPJ_INTERMEDIO varchar(14),
    DI_UF_INTERMEDIO varchar(2),
    DI_NUMERO_DRAWBACK varchar(11),
    CONTA_CONTABIL varchar(11),
    CCUSTO varchar(8),
    CCUSTO_DESCRICAO varchar(130),
    ENQUADRAMENTO_IPI varchar(3))
as
begin
for select
A.NFe_CONTROLE      ,A.SEQUENCIA        ,A.OPERACAO_CODIGO      ,A.CFOP_CODIGO ,
A.PRODUTO_CODIGO    ,A.PRODUTO_DESCRICAO,A.PRODUTO_UNIDADEMEDIDA2,A.GRADE_CODIGO,
A.NCM_CODIGO        ,A.TRIBUTACAO_ICMS  ,A.TRIBUTACAO_IPI       ,A.TRIBUTACAO_ORIGEM,
A.LOCALIZACAO_CODIGO,(Select First 1 L.Descricao From TbLocalizacao L Where A.Localizacao_Codigo = L.Codigo),
A.QUANTIDADE        ,A.VALOR_UNITARIO       ,A.VALOR_TOTAL      ,
A.BASECALCULO_ICMS  ,A.PERCENTUAL_ICMS  ,A.PERCENTUAL_IPI       ,A.VALOR_IPI   ,
A.PERCENTUAL_PIS    ,A.VALOR_PIS        ,A.PERCENTUAL_COFINS    ,A.VALOR_COFINS,
A.VALOR_FRETE, A.VALOR_SEGURO, A.NFs, A.NFs_ITEM_CONTROLE,A.NF_EXTERNO ,
A.NF_EXTERNO_ITEM_CONTROLE, A.OC,A.OC_ITEM_CONTROLE,
A.T01,A.T02,A.T03,A.T04,A.T05,A.T06,A.T07,A.T08,A.T09,A.T10,
A.T11,A.T12,A.T13,A.T14,A.T15,A.T16,A.T17,A.T18,A.T19,A.T20,
A.ESTABELECIMENTO_CODIGO,A.EMPRESA_CODIGO,A.NUMERO_NOTAFISCAL,A.DATA_ENTRADA,
A.SITUACAO,A.CONTROLE,A.VALOR_CUSTO,
(Select First 1 B.GRADE_CODIGO From TbProduto B Where A.Produto_Codigo = B.Codigo),
A.tributacao_PIS, A.tributacao_cofins,A.DI,A.DI_DATA_REGISTRO,A.DI_DATA_DESEMBARACO,
A.DI_LOCAL_DESEMBARACO,A.DI_UF_DESEMBARACO,A.DI_CODIGO_EXPORTADOR,A.DI_ADICAO,
A.DI_SEQUENCIAL,A.DI_CODIGO_FABRICANTE,A.DI_DESCONTO_ADICAO,
A.di_base_calculo,A.di_despesas_aduaneiras,A.di_valor_ii,A.di_valor_iof,
A.VALOR_ICMS,A.BASECALCULO_IPI,A.BASECALCULO_PIS,A.BASECALCULO_COFINS,
A.VALOR_ACRESCIMO,A.VALOR_DESCONTO,A.FISCAL_ISENTAS_IPI,A.FISCAL_ISENTAS_ICMS,
A.FISCAL_OUTRAS_IPI,A.FISCAL_OUTRAS_ICMS,A.FISCAL_VALOR_ICMS,A.FISCAL_VALOR_IPI,
A.FISCAL_VALOR_PIS,A.FISCAL_VALOR_COFINS,A.FISCAL_PERCENTUAL_ICMS,A.FISCAL_PERCENTUAL_IPI,
A.FISCAL_PERCENTUAL_PIS,A.FISCAL_PERCENTUAL_COFINS,A.FISCAL_BASECALCULO_ICMS,
A.FISCAL_BASECALCULO_IPI,A.FISCAL_BASECALCULO_PIS,A.FISCAL_BASECALCULO_COFINS,
A.VALOR_CONTABIL, A.valor_basecalculo_icms, A.VALOR_PEDAGIO, A.FISCAL_CFOP_CODIGO,A.FISCAL_TRIBUTACAO_ORIGEM,
A.FISCAL_TRIBUTACAO_ICMS,A.FISCAL_TRIBUTACAO_IPI,A.FISCAL_TRIBUTACAO_PIS,
A.FISCAL_TRIBUTACAO_COFINS, A.DESCONTO_BASECALCULO_ICMS, A.BASECALCULO_FCI, A.Codigo_Fci,

A.MODALIDADE_ICMS, A.MODALIDADE_ICMS_ST, A.MARGEM_ICMS_ST, A.REDUCAO_ICMS_ST,
A.BASECALCULO_ICMS_ST, A.ALIQUOTA_ICMS_ST, A.VALOR_ICMS_ST,A.FISCAL_REDUCAO_ICMS_ST,
A.FISCAL_BASECALCULO_ICMS_ST, A.FISCAL_ALIQUOTA_ICMS_ST, A.FISCAL_VALOR_ICMS_ST,

A.INFORMACOES_COMPLEMENTARES, A.DI_NVE,
A.DI_TIPO_VIA_TRANSP, IIF(A.DI_TIPO_VIA_TRANSP=1,'MarÃ­tima',
                      IIF(A.DI_TIPO_VIA_TRANSP=2,'Fluvial',
                      IIF(A.DI_TIPO_VIA_TRANSP=3,'Lacustre',
                      IIF(A.DI_TIPO_VIA_TRANSP=4,'AÃ©rea',
                      IIF(A.DI_TIPO_VIA_TRANSP=5,'Postal',
                      IIF(A.DI_TIPO_VIA_TRANSP=6,'FerroviÃ¡ria',
                      IIF(A.DI_TIPO_VIA_TRANSP=7,'RodoviÃ¡ria',
                      IIF(A.DI_TIPO_VIA_TRANSP=8,'Conduto/Rd.Trnsm',
                      IIF(A.DI_TIPO_VIA_TRANSP=9,'Meios PrÃ³prios',
                      IIF(A.DI_TIPO_VIA_TRANSP=10,'Entr/SaÃ­da ficta','')))))))))),
A.DI_VALOR_AFRMM,
A.DI_TIPO_INTERMEDIO, IIF(A.DI_TIPO_INTERMEDIO='1','Imp.Conta PrÃ³pria',
                      IIF(A.DI_TIPO_INTERMEDIO='2','Imp.Conta e Ordem',
                      IIF(A.DI_TIPO_INTERMEDIO='3','Imp.por Encomenda',''))),
A.DI_CNPJ_INTERMEDIO, A.DI_UF_INTERMEDIO, A.DI_NUMERO_DRAWBACK, A.Conta_Contabil, A.CCusto,

       IIF(char_length(A.CCusto)=2,
      (Select First 1 C.Descricao From TbCentro_de_Custo C Where C.CODIGO = SUBSTRING(A.CCusto FROM 1 FOR 2)),
       IIF(char_length(A.CCusto)=5,
      (Select First 1 C.Descricao From TbCentro_de_Custo C Where C.CODIGO = SUBSTRING(A.CCusto FROM 1 FOR 2))||' - '||
      (Select First 1 C.Descricao From TbCentro_de_Custo C Where C.CODIGO = SUBSTRING(A.CCusto FROM 1 FOR 5)),
       IIF(char_length(A.CCusto)=8,
      (Select First 1 C.Descricao From TbCentro_de_Custo C Where C.CODIGO = SUBSTRING(A.CCusto FROM 1 FOR 5))||' - '||
      (Select First 1 C.Descricao From TbCentro_de_Custo C Where C.CODIGO = SUBSTRING(A.CCusto FROM 1 FOR 8)),''))) CCUSTO_DESCRICAO,

       A.ENQUADRAMENTO_IPI


From TbNfE_Item A
Where (A.NFE_CONTROLE = :CONTROLE_1)
order by A.SEQUENCIA
into
    :NFE_CONTROLE      ,:SEQUENCIA        , :OPERACAO_CODIGO, :CFOP_CODIGO,
    :PRODUTO_CODIGO    ,:PRODUTO_DESCRICAO, :PRODUTO_UNIDADEMEDIDA,:GRADE_CODIGO,
    :NCM_CODIGO        ,:TRIBUTACAO_ICMS  , :TRIBUTACAO_IPI, :TRIBUTACAO_ORIGEM,
    :LOCALIZACAO_CODIGO,:LOCALIZACAO_DESCRICAO,
    :QUANTIDADE       , :VALOR_UNITARIO, :VALOR_TOTAL,
    :BASECALCULO_ICMS, :PERCENTUAL_ICMS   , :PERCENTUAL_IPI, :VALOR_IPI,
    :PERCENTUAL_PIS, :VALOR_PIS, :PERCENTUAL_COFINS ,:VALOR_COFINS,
    :VALOR_FRETE, :VALOR_SEGURO, :NFS,
    :NFS_ITEM_CONTROLE,:NF_EXTERNO, :NF_EXTERNO_ITEM_CONTROLE, :OC,:OC_ITEM_CONTROLE,
    :T01,:T02,:T03,:T04,:T05,:T06,:T07,:T08,:T09,:T10,
    :T11,:T12,:T13,:T14,:T15,:T16,:T17,:T18,:T19,:T20,
    :ESTABELECIMENTO_CODIGO,:EMPRESA_CODIGO,:NUMERO_NOTAFISCAL,:DATA_ENTRADA,
    :SITUACAO,:CONTROLE,:VALOR_CUSTO,:PRODUTO_GRADE_CODIGO,:tributacao_PIS,
    :tributacao_cofins, :DI, :DI_DATA_REGISTRO, :DI_DATA_DESEMBARACO,
    :DI_LOCAL_DESEMBARACO, :DI_UF_DESEMBARACO, :DI_CODIGO_EXPORTADOR,
    :DI_ADICAO, :DI_SEQUENCIAL, :DI_CODIGO_FABRICANTE, :DI_DESCONTO_ADICAO,
    :di_base_calculo,:di_despesas_aduaneiras,:di_valor_ii,:Di_valor_iof,
    :VALOR_ICMS,:BASECALCULO_IPI,:BASECALCULO_PIS,:BASECALCULO_COFINS,
    :VALOR_ACRESCIMO,:VALOR_DESCONTO,:FISCAL_ISENTAS_IPI,:FISCAL_ISENTAS_ICMS,
    :FISCAL_OUTRAS_IPI,:FISCAL_OUTRAS_ICMS,:FISCAL_VALOR_ICMS,:FISCAL_VALOR_IPI,
    :FISCAL_VALOR_PIS,:FISCAL_VALOR_COFINS,:FISCAL_PERCENTUAL_ICMS,:FISCAL_PERCENTUAL_IPI,
    :FISCAL_PERCENTUAL_PIS,:FISCAL_PERCENTUAL_COFINS,:FISCAL_BASECALCULO_ICMS,
    :FISCAL_BASECALCULO_IPI,:FISCAL_BASECALCULO_PIS,:FISCAL_BASECALCULO_COFINS,
    :VALOR_CONTABIL,:valor_basecalculo_icms, :VALOR_PEDAGIO,:FISCAL_CFOP_CODIGO,
    :FISCAL_TRIBUTACAO_ORIGEM, :FISCAL_TRIBUTACAO_ICMS,:FISCAL_TRIBUTACAO_IPI,
    :FISCAL_TRIBUTACAO_PIS, :FISCAL_TRIBUTACAO_COFINS , :DESCONTO_BASECALCULO_ICMS,
    :BASECALCULO_FCI, :Codigo_Fci,

    :MODALIDADE_ICMS, :MODALIDADE_ICMS_ST, :MARGEM_ICMS_ST, :REDUCAO_ICMS_ST,
    :BASECALCULO_ICMS_ST, :ALIQUOTA_ICMS_ST, :VALOR_ICMS_ST,:FISCAL_REDUCAO_ICMS_ST,
    :FISCAL_BASECALCULO_ICMS_ST, :FISCAL_ALIQUOTA_ICMS_ST, :FISCAL_VALOR_ICMS_ST,
    :INFORMACOES_COMPLEMENTARES, :DI_NVE, :DI_TIPO_VIA_TRANSP,
    :DI_TIPO_VIA_TRANSP_DESCRICAO, :DI_VALOR_AFRMM, :DI_TIPO_INTERMEDIO,
    :DI_TIPO_INTERMEDIO_DESCRICAO, :DI_CNPJ_INTERMEDIO, :DI_UF_INTERMEDIO,
    :DI_NUMERO_DRAWBACK, :Conta_Contabil, :CCusto, :CCUSTO_DESCRICAO, :ENQUADRAMENTO_IPI

do suspend;
end
^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER procedure SPC_NFE_ITEM9 (
    CONTROLE_1 integer)
returns (
    NFE_CONTROLE integer,
    SEQUENCIA integer,
    OPERACAO_CODIGO varchar(3),
    CFOP_CODIGO varchar(5),
    PRODUTO_CODIGO integer,
    PRODUTO_DESCRICAO varchar(100),
    PRODUTO_UNIDADEMEDIDA varchar(3),
    GRADE_CODIGO integer,
    NCM_CODIGO varchar(10),
    TRIBUTACAO_ICMS integer,
    TRIBUTACAO_IPI varchar(2),
    TRIBUTACAO_ORIGEM integer,
    LOCALIZACAO_CODIGO integer,
    LOCALIZACAO_DESCRICAO varchar(20),
    QUANTIDADE numeric(10,5),
    VALOR_UNITARIO numeric(10,5),
    VALOR_TOTAL numeric(10,5),
    BASECALCULO_ICMS numeric(10,5),
    PERCENTUAL_ICMS numeric(10,5),
    PERCENTUAL_IPI numeric(10,5),
    VALOR_IPI numeric(10,5),
    PERCENTUAL_PIS numeric(10,5),
    VALOR_PIS numeric(10,5),
    PERCENTUAL_COFINS numeric(10,5),
    VALOR_COFINS numeric(10,5),
    VALOR_FRETE numeric(10,2),
    VALOR_SEGURO numeric(10,2),
    NFS integer,
    NFS_ITEM_CONTROLE integer,
    NF_EXTERNO integer,
    NF_EXTERNO_ITEM_CONTROLE integer,
    OC integer,
    OC_ITEM_CONTROLE integer,
    T01 numeric(10,5),
    T02 numeric(10,5),
    T03 numeric(10,5),
    T04 numeric(10,5),
    T05 numeric(10,5),
    T06 numeric(10,5),
    T07 numeric(10,5),
    T08 numeric(10,5),
    T09 numeric(10,5),
    T10 numeric(10,5),
    T11 numeric(10,5),
    T12 numeric(10,5),
    T13 numeric(10,5),
    T14 numeric(10,5),
    T15 numeric(10,5),
    T16 numeric(10,5),
    T17 numeric(10,5),
    T18 numeric(10,5),
    T19 numeric(10,5),
    T20 numeric(10,5),
    ESTABELECIMENTO_CODIGO integer,
    EMPRESA_CODIGO integer,
    NUMERO_NOTAFISCAL integer,
    DATA_ENTRADA date,
    SITUACAO integer,
    CONTROLE integer,
    VALOR_CUSTO numeric(10,5),
    PRODUTO_GRADE_CODIGO integer,
    TRIBUTACAO_PIS varchar(2),
    TRIBUTACAO_COFINS varchar(2),
    DI varchar(12),
    DI_DATA_REGISTRO date,
    DI_DATA_DESEMBARACO date,
    DI_LOCAL_DESEMBARACO varchar(60),
    DI_UF_DESEMBARACO char(2),
    DI_CODIGO_EXPORTADOR varchar(60),
    DI_ADICAO integer,
    DI_SEQUENCIAL integer,
    DI_CODIGO_FABRICANTE varchar(60),
    DI_DESCONTO_ADICAO numeric(10,2),
    DI_BASE_CALCULO numeric(10,2),
    DI_DESPESAS_ADUANEIRAS numeric(10,2),
    DI_VALOR_II numeric(10,2),
    DI_VALOR_IOF numeric(10,2),
    VALOR_ICMS numeric(10,2),
    BASECALCULO_IPI numeric(10,2),
    BASECALCULO_PIS numeric(10,2),
    BASECALCULO_COFINS numeric(10,2),
    VALOR_ACRESCIMO numeric(10,2),
    VALOR_DESCONTO numeric(10,2),
    FISCAL_ISENTAS_IPI numeric(10,2),
    FISCAL_ISENTAS_ICMS numeric(10,2),
    FISCAL_OUTRAS_IPI numeric(10,2),
    FISCAL_OUTRAS_ICMS numeric(10,2),
    FISCAL_VALOR_ICMS numeric(10,2),
    FISCAL_VALOR_IPI numeric(10,2),
    FISCAL_VALOR_PIS numeric(10,2),
    FISCAL_VALOR_COFINS numeric(10,2),
    FISCAL_PERCENTUAL_ICMS numeric(10,2),
    FISCAL_PERCENTUAL_IPI numeric(10,2),
    FISCAL_PERCENTUAL_PIS numeric(10,2),
    FISCAL_PERCENTUAL_COFINS numeric(10,2),
    FISCAL_BASECALCULO_ICMS numeric(10,5),
    FISCAL_BASECALCULO_IPI numeric(10,2),
    FISCAL_BASECALCULO_PIS numeric(10,2),
    FISCAL_BASECALCULO_COFINS numeric(10,2),
    VALOR_CONTABIL numeric(10,2),
    VALOR_BASECALCULO_ICMS numeric(10,2),
    VALOR_PEDAGIO numeric(10,2),
    FISCAL_CFOP_CODIGO varchar(5),
    FISCAL_TRIBUTACAO_ORIGEM integer,
    FISCAL_TRIBUTACAO_ICMS integer,
    FISCAL_TRIBUTACAO_IPI char(2),
    FISCAL_TRIBUTACAO_PIS char(2),
    FISCAL_TRIBUTACAO_COFINS char(2),
    DESCONTO_BASECALCULO_ICMS numeric(10,2),
    BASECALCULO_FCI numeric(15,4),
    CODIGO_FCI varchar(50),
    MODALIDADE_ICMS char(1),
    MODALIDADE_ICMS_ST char(1),
    MARGEM_ICMS_ST numeric(15,4),
    REDUCAO_ICMS_ST numeric(15,4),
    BASECALCULO_ICMS_ST numeric(15,4),
    ALIQUOTA_ICMS_ST numeric(15,4),
    VALOR_ICMS_ST numeric(15,4),
    FISCAL_REDUCAO_ICMS_ST numeric(10,2),
    FISCAL_BASECALCULO_ICMS_ST numeric(10,2),
    FISCAL_ALIQUOTA_ICMS_ST numeric(10,2),
    FISCAL_VALOR_ICMS_ST numeric(10,2),
    INFORMACOES_COMPLEMENTARES varchar(200),
    DI_NVE varchar(60),
    DI_TIPO_VIA_TRANSP integer,
    DI_TIPO_VIA_TRANSP_DESCRICAO varchar(30),
    DI_VALOR_AFRMM numeric(15,2),
    DI_TIPO_INTERMEDIO varchar(1),
    DI_TIPO_INTERMEDIO_DESCRICAO varchar(30),
    DI_CNPJ_INTERMEDIO varchar(14),
    DI_UF_INTERMEDIO varchar(2),
    DI_NUMERO_DRAWBACK varchar(11),
    CONTA_CONTABIL varchar(11),
    CCUSTO varchar(8),
    CCUSTO_DESCRICAO varchar(130),
    ENQUADRAMENTO_IPI varchar(3),
    QUANTIDADE_ALTERNATIVA numeric(18,4),
    UM_ALTERNATIVA varchar(3),
    VALOR_ALTERNATIVO numeric(18,10))
as
begin
for select
A.NFe_CONTROLE      ,A.SEQUENCIA        ,A.OPERACAO_CODIGO      ,A.CFOP_CODIGO ,
A.PRODUTO_CODIGO    ,A.PRODUTO_DESCRICAO,A.PRODUTO_UNIDADEMEDIDA2,A.GRADE_CODIGO,
A.NCM_CODIGO        ,A.TRIBUTACAO_ICMS  ,A.TRIBUTACAO_IPI       ,A.TRIBUTACAO_ORIGEM,
A.LOCALIZACAO_CODIGO,(Select First 1 L.Descricao From TbLocalizacao L Where A.Localizacao_Codigo = L.Codigo),
A.QUANTIDADE        ,A.VALOR_UNITARIO       ,A.VALOR_TOTAL      ,
A.BASECALCULO_ICMS  ,A.PERCENTUAL_ICMS  ,A.PERCENTUAL_IPI       ,A.VALOR_IPI   ,
A.PERCENTUAL_PIS    ,A.VALOR_PIS        ,A.PERCENTUAL_COFINS    ,A.VALOR_COFINS,
A.VALOR_FRETE, A.VALOR_SEGURO, A.NFs, A.NFs_ITEM_CONTROLE,A.NF_EXTERNO ,
A.NF_EXTERNO_ITEM_CONTROLE, A.OC,A.OC_ITEM_CONTROLE,
A.T01,A.T02,A.T03,A.T04,A.T05,A.T06,A.T07,A.T08,A.T09,A.T10,
A.T11,A.T12,A.T13,A.T14,A.T15,A.T16,A.T17,A.T18,A.T19,A.T20,
A.ESTABELECIMENTO_CODIGO,A.EMPRESA_CODIGO,A.NUMERO_NOTAFISCAL,A.DATA_ENTRADA,
A.SITUACAO,A.CONTROLE,A.VALOR_CUSTO,
(Select First 1 B.GRADE_CODIGO From TbProduto B Where A.Produto_Codigo = B.Codigo),
A.tributacao_PIS, A.tributacao_cofins,A.DI,A.DI_DATA_REGISTRO,A.DI_DATA_DESEMBARACO,
A.DI_LOCAL_DESEMBARACO,A.DI_UF_DESEMBARACO,A.DI_CODIGO_EXPORTADOR,A.DI_ADICAO,
A.DI_SEQUENCIAL,A.DI_CODIGO_FABRICANTE,A.DI_DESCONTO_ADICAO,
A.di_base_calculo,A.di_despesas_aduaneiras,A.di_valor_ii,A.di_valor_iof,
A.VALOR_ICMS,A.BASECALCULO_IPI,A.BASECALCULO_PIS,A.BASECALCULO_COFINS,
A.VALOR_ACRESCIMO,A.VALOR_DESCONTO,A.FISCAL_ISENTAS_IPI,A.FISCAL_ISENTAS_ICMS,
A.FISCAL_OUTRAS_IPI,A.FISCAL_OUTRAS_ICMS,A.FISCAL_VALOR_ICMS,A.FISCAL_VALOR_IPI,
A.FISCAL_VALOR_PIS,A.FISCAL_VALOR_COFINS,A.FISCAL_PERCENTUAL_ICMS,A.FISCAL_PERCENTUAL_IPI,
A.FISCAL_PERCENTUAL_PIS,A.FISCAL_PERCENTUAL_COFINS,A.FISCAL_BASECALCULO_ICMS,
A.FISCAL_BASECALCULO_IPI,A.FISCAL_BASECALCULO_PIS,A.FISCAL_BASECALCULO_COFINS,
A.VALOR_CONTABIL, A.valor_basecalculo_icms, A.VALOR_PEDAGIO, A.FISCAL_CFOP_CODIGO,A.FISCAL_TRIBUTACAO_ORIGEM,
A.FISCAL_TRIBUTACAO_ICMS,A.FISCAL_TRIBUTACAO_IPI,A.FISCAL_TRIBUTACAO_PIS,
A.FISCAL_TRIBUTACAO_COFINS, A.DESCONTO_BASECALCULO_ICMS, A.BASECALCULO_FCI, A.Codigo_Fci,

A.MODALIDADE_ICMS, A.MODALIDADE_ICMS_ST, A.MARGEM_ICMS_ST, A.REDUCAO_ICMS_ST,
A.BASECALCULO_ICMS_ST, A.ALIQUOTA_ICMS_ST, A.VALOR_ICMS_ST,A.FISCAL_REDUCAO_ICMS_ST,
A.FISCAL_BASECALCULO_ICMS_ST, A.FISCAL_ALIQUOTA_ICMS_ST, A.FISCAL_VALOR_ICMS_ST,

A.INFORMACOES_COMPLEMENTARES, A.DI_NVE,
A.DI_TIPO_VIA_TRANSP, IIF(A.DI_TIPO_VIA_TRANSP=1,'Maritima',
                      IIF(A.DI_TIPO_VIA_TRANSP=2,'Fluvial',
                      IIF(A.DI_TIPO_VIA_TRANSP=3,'Lacustre',
                      IIF(A.DI_TIPO_VIA_TRANSP=4,'Aerea',
                      IIF(A.DI_TIPO_VIA_TRANSP=5,'Postal',
                      IIF(A.DI_TIPO_VIA_TRANSP=6,'Ferroviaria',
                      IIF(A.DI_TIPO_VIA_TRANSP=7,'Rodoviaria',
                      IIF(A.DI_TIPO_VIA_TRANSP=8,'Conduto/Rd.Trnsm',
                      IIF(A.DI_TIPO_VIA_TRANSP=9,'Meios Proprios',
                      IIF(A.DI_TIPO_VIA_TRANSP=10,'Entr/Saida ficta','')))))))))),
A.DI_VALOR_AFRMM,
A.DI_TIPO_INTERMEDIO, IIF(A.DI_TIPO_INTERMEDIO='1','Imp.Conta Propria',
                      IIF(A.DI_TIPO_INTERMEDIO='2','Imp.Conta e Ordem',
                      IIF(A.DI_TIPO_INTERMEDIO='3','Imp.por Encomenda',''))),
A.DI_CNPJ_INTERMEDIO, A.DI_UF_INTERMEDIO, A.DI_NUMERO_DRAWBACK, A.Conta_Contabil, A.CCusto,

IIF(char_length(A.CCusto)=2,
(Select First 1 C.Descricao From TbCentro_de_Custo C Where C.CODIGO = SUBSTRING(A.CCusto FROM 1 FOR 2)),
IIF(char_length(A.CCusto)=5,
(Select First 1 C.Descricao From TbCentro_de_Custo C Where C.CODIGO = SUBSTRING(A.CCusto FROM 1 FOR 2))||' - '||
(Select First 1 C.Descricao From TbCentro_de_Custo C Where C.CODIGO = SUBSTRING(A.CCusto FROM 1 FOR 5)),
IIF(char_length(A.CCusto)=8,
(Select First 1 C.Descricao From TbCentro_de_Custo C Where C.CODIGO = SUBSTRING(A.CCusto FROM 1 FOR 5))||' - '||
(Select First 1 C.Descricao From TbCentro_de_Custo C Where C.CODIGO = SUBSTRING(A.CCusto FROM 1 FOR 8)),''))) CCUSTO_DESCRICAO,

A.ENQUADRAMENTO_IPI,
A.QUANTIDADE_ALTERNATIVA, A.UM_ALTERNATIVA, A.VALOR_ALTERNATIVO

From TbNfE_Item A
Where (A.NFE_CONTROLE = :CONTROLE_1)
order by A.SEQUENCIA
into
    :NFE_CONTROLE      ,:SEQUENCIA        , :OPERACAO_CODIGO, :CFOP_CODIGO,
    :PRODUTO_CODIGO    ,:PRODUTO_DESCRICAO, :PRODUTO_UNIDADEMEDIDA,:GRADE_CODIGO,
    :NCM_CODIGO        ,:TRIBUTACAO_ICMS  , :TRIBUTACAO_IPI, :TRIBUTACAO_ORIGEM,
    :LOCALIZACAO_CODIGO,:LOCALIZACAO_DESCRICAO,
    :QUANTIDADE       , :VALOR_UNITARIO, :VALOR_TOTAL,
    :BASECALCULO_ICMS, :PERCENTUAL_ICMS   , :PERCENTUAL_IPI, :VALOR_IPI,
    :PERCENTUAL_PIS, :VALOR_PIS, :PERCENTUAL_COFINS ,:VALOR_COFINS,
    :VALOR_FRETE, :VALOR_SEGURO, :NFS,
    :NFS_ITEM_CONTROLE,:NF_EXTERNO, :NF_EXTERNO_ITEM_CONTROLE, :OC,:OC_ITEM_CONTROLE,
    :T01,:T02,:T03,:T04,:T05,:T06,:T07,:T08,:T09,:T10,
    :T11,:T12,:T13,:T14,:T15,:T16,:T17,:T18,:T19,:T20,
    :ESTABELECIMENTO_CODIGO,:EMPRESA_CODIGO,:NUMERO_NOTAFISCAL,:DATA_ENTRADA,
    :SITUACAO,:CONTROLE,:VALOR_CUSTO,:PRODUTO_GRADE_CODIGO,:tributacao_PIS,
    :tributacao_cofins, :DI, :DI_DATA_REGISTRO, :DI_DATA_DESEMBARACO,
    :DI_LOCAL_DESEMBARACO, :DI_UF_DESEMBARACO, :DI_CODIGO_EXPORTADOR,
    :DI_ADICAO, :DI_SEQUENCIAL, :DI_CODIGO_FABRICANTE, :DI_DESCONTO_ADICAO,
    :di_base_calculo,:di_despesas_aduaneiras,:di_valor_ii,:Di_valor_iof,
    :VALOR_ICMS,:BASECALCULO_IPI,:BASECALCULO_PIS,:BASECALCULO_COFINS,
    :VALOR_ACRESCIMO,:VALOR_DESCONTO,:FISCAL_ISENTAS_IPI,:FISCAL_ISENTAS_ICMS,
    :FISCAL_OUTRAS_IPI,:FISCAL_OUTRAS_ICMS,:FISCAL_VALOR_ICMS,:FISCAL_VALOR_IPI,
    :FISCAL_VALOR_PIS,:FISCAL_VALOR_COFINS,:FISCAL_PERCENTUAL_ICMS,:FISCAL_PERCENTUAL_IPI,
    :FISCAL_PERCENTUAL_PIS,:FISCAL_PERCENTUAL_COFINS,:FISCAL_BASECALCULO_ICMS,
    :FISCAL_BASECALCULO_IPI,:FISCAL_BASECALCULO_PIS,:FISCAL_BASECALCULO_COFINS,
    :VALOR_CONTABIL,:valor_basecalculo_icms, :VALOR_PEDAGIO,:FISCAL_CFOP_CODIGO,
    :FISCAL_TRIBUTACAO_ORIGEM, :FISCAL_TRIBUTACAO_ICMS,:FISCAL_TRIBUTACAO_IPI,
    :FISCAL_TRIBUTACAO_PIS, :FISCAL_TRIBUTACAO_COFINS , :DESCONTO_BASECALCULO_ICMS,
    :BASECALCULO_FCI, :Codigo_Fci,

    :MODALIDADE_ICMS, :MODALIDADE_ICMS_ST, :MARGEM_ICMS_ST, :REDUCAO_ICMS_ST,
    :BASECALCULO_ICMS_ST, :ALIQUOTA_ICMS_ST, :VALOR_ICMS_ST,:FISCAL_REDUCAO_ICMS_ST,
    :FISCAL_BASECALCULO_ICMS_ST, :FISCAL_ALIQUOTA_ICMS_ST, :FISCAL_VALOR_ICMS_ST,
    :INFORMACOES_COMPLEMENTARES, :DI_NVE, :DI_TIPO_VIA_TRANSP,
    :DI_TIPO_VIA_TRANSP_DESCRICAO, :DI_VALOR_AFRMM, :DI_TIPO_INTERMEDIO,
    :DI_TIPO_INTERMEDIO_DESCRICAO, :DI_CNPJ_INTERMEDIO, :DI_UF_INTERMEDIO,
    :DI_NUMERO_DRAWBACK, :Conta_Contabil, :CCusto, :CCUSTO_DESCRICAO, :ENQUADRAMENTO_IPI,
    :QUANTIDADE_ALTERNATIVA, :UM_ALTERNATIVA, :VALOR_ALTERNATIVO


do suspend;
end
^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER procedure SPC_NFE_ITEM_VINCULO (
    ESTABELECIMENTO_CODIGO_1 integer,
    EMPRESA_CODIGO_1 integer,
    NUMERO_NOTAFISCAL_T integer,
    NUMERO_NOTAFISCAL_1 integer,
    NUMERO_NOTAFISCAL_2 integer,
    NUMERO_NOTAFISCAL_3 integer,
    NUMERO_NOTAFISCAL_4 integer,
    NUMERO_NOTAFISCAL_5 integer,
    NUMERO_NOTAFISCAL_6 integer,
    NUMERO_NOTAFISCAL_7 integer,
    NUMERO_NOTAFISCAL_8 integer)
returns (
    NUMERO_NOTAFISCAL integer,
    SEQUENCIA integer,
    CONTROLE integer,
    PRODUTO_CODIGO integer,
    PRODUTO_DESCRICAO varchar(100),
    PRODUTO_UNIDADEMEDIDA varchar(3),
    QUANTIDADE numeric(10,5),
    VALOR_UNITARIO numeric(10,5),
    VALOR_TOTAL numeric(10,5),
    VALOR_CUSTO numeric(10,5),
    OPERACAO_CODIGO varchar(3))
as
BEGIN
For Select Numero_NotaFiscal,Sequencia,Controle,Produto_Codigo,
Produto_Descricao,Produto_UnidadeMedida2,
Quantidade,Valor_Unitario,Valor_Total,Valor_Custo,Operacao_Codigo
From TbNfe_Item

Where  Estabelecimento_Codigo = :ESTABELECIMENTO_CODIGO_1
  and  Empresa_Codigo         = :EMPRESA_CODIGO_1

  and (Numero_NotaFiscal  <>:Numero_NotaFiscal_T or
       Numero_NotaFiscal  = :Numero_NotaFiscal_1 or
       Numero_NotaFiscal  = :Numero_NotaFiscal_2 or
       Numero_NotaFiscal  = :Numero_NotaFiscal_3 or
       Numero_NotaFiscal  = :Numero_NotaFiscal_4 or
       Numero_NotaFiscal  = :Numero_NotaFiscal_5 or
       Numero_NotaFiscal  = :Numero_NotaFiscal_6 or
       Numero_NotaFiscal  = :Numero_NotaFiscal_7 or
       Numero_NotaFiscal  = :Numero_NotaFiscal_8)

Order By Numero_NotaFiscal,Sequencia

INTO
   :Numero_NotaFiscal,
   :Sequencia,
   :Controle,
   :Produto_Codigo,
   :Produto_Descricao,
   :Produto_UnidadeMedida,
   :Quantidade,
   :Valor_Unitario,
   :Valor_Total,
   :Valor_Custo,
   :Operacao_Codigo
DO SUSPEND;
END
^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER procedure SPC_NFS_NFE2 (
    ESTABELECIMENTO_1 integer,
    EMPRESA_1 integer)
returns (
    CONTROLE integer,
    PRODUTO_CODIGO integer,
    DESCRICAO varchar(100),
    UNIDADEMEDIDA_SIGLA varchar(3),
    LOCALIZACAO_CODIGO integer,
    NCM_CODIGO varchar(10),
    GRADE_CODIGO integer,
    NOTAFISCAL_NUMERO integer,
    PRODUTO_VALOR_UNITARIO numeric(10,5),
    QUANTIDADE numeric(10,5),
    QUANTIDADE_SALDO numeric(10,5),
    T01 numeric(10,5),
    T02 numeric(10,5),
    T03 numeric(10,5),
    T04 numeric(10,5),
    T05 numeric(10,5),
    T06 numeric(10,5),
    T07 numeric(10,5),
    T08 numeric(10,5),
    T09 numeric(10,5),
    T10 numeric(10,5),
    T11 numeric(10,5),
    T12 numeric(10,5),
    T13 numeric(10,5),
    T14 numeric(10,5),
    T15 numeric(10,5),
    T16 numeric(10,5),
    T17 numeric(10,5),
    T18 numeric(10,5),
    T19 numeric(10,5),
    T20 numeric(10,5),
    TRIBUTACAO_ICMS integer,
    TRIBUTACAO_IPI varchar(2),
    TRIBUTACAO_ORIGEM integer,
    BASECALCULO_ICMS numeric(10,5),
    PERCENTUAL_ICMS numeric(10,5),
    PERCENTUAL_IPI numeric(10,5),
    PERCENTUAL_PIS numeric(10,5),
    PERCENTUAL_COFINS numeric(10,5),
    SEQUENCIA integer,
    DATA_ENTRADA date,
    CFOP_CODIGO varchar(5),
    OPERACAO_CODIGO varchar(3),
    TRIBUTACAO_PIS char(2),
    TRIBUTACAO_COFINS char(2),
    MODALIDADE_ICMS char(1),
    MODALIDADE_ICMS_ST char(1),
    MARGEM_ICMS_ST numeric(15,4),
    REDUCAO_ICMS_ST numeric(15,4),
    BASECALCULO_ICMS_ST numeric(15,4),
    ALIQUOTA_ICMS_ST numeric(15,4),
    VALOR_ICMS_ST numeric(15,4),
    SALDO_REVISAO numeric(15,4))
as
BEGIN
FOR
Select B.CONTROLE, B.PRODUTO_CODIGO, B.PRODUTO_DESCRICAO, B.PRODUTO_UNIDADEMEDIDA2,
       B.LOCALIZACAO_CODIGO, B.NCM_CODIGO, C.GRADE_CODIGO, B.NUMERO_NOTAFISCAL,
       B.VALOR_UNITARIO, B.QUANTIDADE, A.QUANTIDADE,
       A.T01,A.T02,A.T03,A.T04,A.T05,A.T06,A.T07,A.T08,A.T09,A.T10,
       A.T11,A.T12,A.T13,A.T14,A.T15,A.T16,A.T17,A.T18,A.T19,A.T20,
       B.TRIBUTACAO_ICMS, B.TRIBUTACAO_IPI, B.TRIBUTACAO_ORIGEM, B.BASECALCULO_ICMS,
       B.PERCENTUAL_ICMS, B.PERCENTUAL_IPI, B.PERCENTUAL_PIS, B.PERCENTUAL_COFINS,
       B.SEQUENCIA, B.DATA_ENTRADA, B.CFOP_CODIGO, B.OPERACAO_CODIGO,
       B.TRIBUTACAO_PIS, B.TRIBUTACAO_COFINS,
       B.MODALIDADE_ICMS, B.MODALIDADE_ICMS_ST, B.MARGEM_ICMS_ST, B.REDUCAO_ICMS_ST,
       B.BASECALCULO_ICMS_ST, B.ALIQUOTA_ICMS_ST, B.VALOR_ICMS_ST, A.SALDO_REVISAO
From TbNfe_Item B, TbNfe_Item_Saldo A, TbOperacao D, TbProduto C
Where A.Nfe_Item_Controle =  B.Controle
  AND B.Operacao_Codigo = D.Codigo
  and B.Produto_Codigo = C.Codigo
  and B.Situacao < 3 and B.Numero_NotaFiscal > 0 and A.Quantidade > 0
  and B.Estabelecimento_Codigo   = :ESTABELECIMENTO_1
  and B.Empresa_Codigo           = :EMPRESA_1
  and D.Controle_Estoque_Externo = '0'
  and D.Exige_Nf_Referencia      = '0'
Order By B.Numero_NotaFiscal, B.Sequencia
INTO
    :CONTROLE, :PRODUTO_CODIGO, :DESCRICAO, :UNIDADEMEDIDA_SIGLA,
    :LOCALIZACAO_CODIGO, :NCM_CODIGO, GRADE_CODIGO, :NOTAFISCAL_NUMERO,
    :PRODUTO_VALOR_UNITARIO, :QUANTIDADE, :QUANTIDADE_SALDO,
    :T01,:T02,:T03,:T04,:T05,:T06,:T07,:T08,:T09,:T10,
    :T11,:T12,:T13,:T14,:T15,:T16,:T17,:T18,:T19,:T20,
    :TRIBUTACAO_ICMS, :TRIBUTACAO_IPI, :TRIBUTACAO_ORIGEM, :BASECALCULO_ICMS,
    :PERCENTUAL_ICMS, :PERCENTUAL_IPI, :PERCENTUAL_PIS, :PERCENTUAL_COFINS,
    :SEQUENCIA, :DATA_ENTRADA, :CFOP_CODIGO, :OPERACAO_CODIGO,
    :TRIBUTACAO_PIS, :TRIBUTACAO_COFINS,
    :MODALIDADE_ICMS, :MODALIDADE_ICMS_ST, :MARGEM_ICMS_ST, :REDUCAO_ICMS_ST,
    :BASECALCULO_ICMS_ST, :ALIQUOTA_ICMS_ST, :VALOR_ICMS_ST, :SALDO_REVISAO
DO SUSPEND;
END
^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER procedure SPC_NFS_NFEXTERNO2 (
    ESTABELECIMENTO_1 integer,
    EMPRESA_1 integer)
returns (
    CONTROLE integer,
    PRODUTO_CODIGO integer,
    DESCRICAO varchar(100),
    UNIDADEMEDIDA_SIGLA varchar(3),
    LOCALIZACAO_CODIGO integer,
    NCM_CODIGO varchar(10),
    GRADE_CODIGO integer,
    NOTAFISCAL_NUMERO integer,
    PRODUTO_VALOR_UNITARIO numeric(10,5),
    QUANTIDADE numeric(10,5),
    QUANTIDADE_SALDO numeric(10,5),
    T01 numeric(10,5),
    T02 numeric(10,5),
    T03 numeric(10,5),
    T04 numeric(10,5),
    T05 numeric(10,5),
    T06 numeric(10,5),
    T07 numeric(10,5),
    T08 numeric(10,5),
    T09 numeric(10,5),
    T10 numeric(10,5),
    T11 numeric(10,5),
    T12 numeric(10,5),
    T13 numeric(10,5),
    T14 numeric(10,5),
    T15 numeric(10,5),
    T16 numeric(10,5),
    T17 numeric(10,5),
    T18 numeric(10,5),
    T19 numeric(10,5),
    T20 numeric(10,5),
    NOTAFISCAL_DATA_ENTRADA date,
    OPERACAO_CODIGO varchar(3))
as
BEGIN
FOR
Select B.CONTROLE, B.PRODUTO_CODIGO, B.PRODUTO_DESCRICAO, B.PRODUTO_UNIDADEMEDIDA2,
       B.LOCALIZACAO_CODIGO, B.NCM_CODIGO, C.GRADE_CODIGO, B.NUMERO_NOTAFISCAL,
       B.VALOR_UNITARIO, B.QUANTIDADE, A.QUANTIDADE,
       A.T01,A.T02,A.T03,A.T04,A.T05,A.T06,A.T07,A.T08,A.T09,A.T10,
       A.T11,A.T12,A.T13,A.T14,A.T15,A.T16,A.T17,A.T18,A.T19,A.T20,
       B.DATA_ENTRADA, B.OPERACAO_CODIGO
From TbNfe_Item B, TbNfe_Item_Saldo A, TbOperacao D, TbProduto C
WHERE A.Nfe_Item_Controle = B.Controle
  AND B.produto_codigo    = C.Codigo
  AND B.Operacao_Codigo   = D.Codigo
  and B.Situacao < 3 and B.Numero_NotaFiscal > 0 and A.Quantidade > 0
  and B.Estabelecimento_Codigo   = :ESTABELECIMENTO_1
  and B.Empresa_Codigo           = :EMPRESA_1
  and D.Controle_Estoque_Externo = '1'
  and D.Exige_Nf_Referencia      = '0'
Order By B.Numero_NotaFiscal 
INTO
    :CONTROLE, :PRODUTO_CODIGO, :DESCRICAO, :UNIDADEMEDIDA_SIGLA,
    :LOCALIZACAO_CODIGO, :NCM_CODIGO, GRADE_CODIGO, :NOTAFISCAL_NUMERO,
    :PRODUTO_VALOR_UNITARIO, :QUANTIDADE, :QUANTIDADE_SALDO,
    :T01,:T02,:T03,:T04,:T05,:T06,:T07,:T08,:T09,:T10,
    :T11,:T12,:T13,:T14,:T15,:T16,:T17,:T18,:T19,:T20,
    :NOTAFISCAL_DATA_ENTRADA, :OPERACAO_CODIGO
DO SUSPEND;
END
^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER procedure SPC_REL_NFE_EMPRESA_ITEM (
    CONTROLE_1 integer,
    CFOP_CODIGO_T varchar(5),
    CFOP_CODIGO_1 varchar(5),
    CFOP_CODIGO_2 varchar(5),
    CFOP_CODIGO_3 varchar(5),
    CFOP_CODIGO_4 varchar(5),
    CFOP_CODIGO_5 varchar(5),
    CFOP_CODIGO_6 varchar(5),
    CFOP_CODIGO_7 varchar(5),
    CFOP_CODIGO_8 varchar(5),
    CFOP_CODIGO_9 varchar(5),
    CFOP_CODIGO_10 varchar(5))
returns (
    OPERACAO_CODIGO varchar(3),
    CFOP_CODIGO varchar(5),
    PRODUTO_CODIGO integer,
    PRODUTO_DESCRICAO varchar(100),
    PRODUTO_UNIDADEMEDIDA varchar(3),
    QUANTIDADE numeric(10,5),
    VALOR_UNITARIO numeric(10,5),
    VALOR_TOTAL numeric(10,5),
    T01 numeric(10,5),
    T02 numeric(10,5),
    T03 numeric(10,5),
    T04 numeric(10,5),
    T05 numeric(10,5),
    T06 numeric(10,5),
    T07 numeric(10,5),
    T08 numeric(10,5),
    T09 numeric(10,5),
    T10 numeric(10,5),
    T11 numeric(10,5),
    T12 numeric(10,5),
    T13 numeric(10,5),
    T14 numeric(10,5),
    T15 numeric(10,5),
    T16 numeric(10,5),
    T17 numeric(10,5),
    T18 numeric(10,5),
    T19 numeric(10,5),
    T20 numeric(10,5),
    SEQUENCIA integer,
    GRADE_CODIGO integer)
as
BEGIN
FOR Select B.OPERACAO_CODIGO, B.CFOP_CODIGO, B.PRODUTO_CODIGO, B.PRODUTO_DESCRICAO,
       B.PRODUTO_UNIDADEMEDIDA2, B.QUANTIDADE, B.VALOR_UNITARIO, B.VALOR_TOTAL,
       B.T01,B.T02,B.T03,B.T04,B.T05,B.T06,B.T07,B.T08,B.T09,B.T10,
       B.T11,B.T12,B.T13,B.T14,B.T15,B.T16,B.T17,B.T18,B.T19,B.T20,
       B.SEQUENCIA,(Select C.GRADE_CODIGO From Tbproduto C Where B.Produto_Codigo = C.Codigo)

From TbNfe_Item     B
Inner Join TbNfe     A On B.Nfe_Controle   = A.Controle
Where  B.Nfe_Controle = :CONTROLE_1
  and (B.Cfop_Codigo <>:CFOP_CODIGO_T or
       B.Cfop_Codigo = :CFOP_CODIGO_1 or
       B.Cfop_Codigo = :CFOP_CODIGO_2 or
       B.Cfop_Codigo = :CFOP_CODIGO_3 or
       B.Cfop_Codigo = :CFOP_CODIGO_4 or
       B.Cfop_Codigo = :CFOP_CODIGO_5 or
       B.Cfop_Codigo = :CFOP_CODIGO_6 or
       B.Cfop_Codigo = :CFOP_CODIGO_7 or
       B.Cfop_Codigo = :CFOP_CODIGO_8 or
       B.Cfop_Codigo = :CFOP_CODIGO_9 or
       B.Cfop_Codigo = :CFOP_CODIGO_10)
Order By B.SEQUENCIA

INTO
   :OPERACAO_CODIGO,
   :CFOP_CODIGO,
   :PRODUTO_CODIGO,
   :PRODUTO_DESCRICAO,
   :PRODUTO_UNIDADEMEDIDA,
   :QUANTIDADE,
   :VALOR_UNITARIO,
   :VALOR_TOTAL,
   :T01,:T02,:T03,:T04,:T05,:T06,:T07,:T08,:T09,:T10,
   :T11,:T12,:T13,:T14,:T15,:T16,:T17,:T18,:T19,:T20,
   :SEQUENCIA,
   :GRADE_CODIGO
DO SUSPEND;
END
^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER procedure SPI_NFE_ITEM (
    NFE_CONTROLE integer,
    ESTABELECIMENTO_CODIGO integer,
    EMPRESA_CODIGO integer,
    NUMERO_NOTAFISCAL integer,
    DATA_ENTRADA date,
    SITUACAO integer,
    NF_NATUREZA integer,
    NFS integer,
    NFS_ITEM_CONTROLE integer,
    PDV_CFE_ID integer,
    PDV_CFE_ITEM_ID integer,
    OC integer,
    OC_ITEM_CONTROLE integer,
    NF_EXTERNO integer,
    NF_EXTERNO_ITEM_CONTROLE integer,
    CONTROLE integer,
    SEQUENCIA integer,
    OPERACAO_CODIGO varchar(3),
    CFOP_CODIGO varchar(5),
    PRODUTO_CODIGO integer,
    PRODUTO_DESCRICAO varchar(100),
    PRODUTO_UNIDADEMEDIDA varchar(3),
    NCM_CODIGO varchar(10),
    TRIBUTACAO_ORIGEM integer,
    TRIBUTACAO_IPI varchar(2),
    TRIBUTACAO_ICMS integer,
    TRIBUTACAO_PIS char(2),
    TRIBUTACAO_COFINS char(2),
    LOCALIZACAO_CODIGO integer,
    QUANTIDADE numeric(10,5),
    VALOR_UNITARIO numeric(15,6),
    VALOR_CUSTO numeric(10,5),
    OUTROS_CUSTOS numeric(15,2),
    VALOR_TOTAL numeric(10,5),
    BASECALCULO_ICMS numeric(10,5),
    PERCENTUAL_ICMS numeric(10,5),
    PERCENTUAL_IPI numeric(10,5),
    VALOR_IPI numeric(10,5),
    PERCENTUAL_PIS numeric(10,5),
    VALOR_PIS numeric(10,5),
    PERCENTUAL_COFINS numeric(10,5),
    VALOR_COFINS numeric(10,5),
    T01 numeric(10,5),
    T02 numeric(10,5),
    T03 numeric(10,5),
    T04 numeric(10,5),
    T05 numeric(10,5),
    T06 numeric(10,5),
    T07 numeric(10,5),
    T08 numeric(10,5),
    T09 numeric(10,5),
    T10 numeric(10,5),
    T11 numeric(10,5),
    T12 numeric(10,5),
    T13 numeric(10,5),
    T14 numeric(10,5),
    T15 numeric(10,5),
    T16 numeric(10,5),
    T17 numeric(10,5),
    T18 numeric(10,5),
    T19 numeric(10,5),
    T20 numeric(10,5),
    DI varchar(12),
    DI_DATA_REGISTRO date,
    DI_DATA_DESEMBARACO date,
    DI_LOCAL_DESEMBARACO varchar(60),
    DI_UF_DESEMBARACO char(2),
    DI_CODIGO_EXPORTADOR varchar(60),
    DI_ADICAO integer,
    DI_SEQUENCIAL integer,
    DI_CODIGO_FABRICANTE varchar(60),
    DI_DESCONTO_ADICAO numeric(10,2),
    DI_BASE_CALCULO numeric(10,2),
    DI_DESPESAS_ADUANEIRAS numeric(10,2),
    DI_VALOR_II numeric(10,2),
    DI_VALOR_IOF numeric(10,2),
    VALOR_ICMS numeric(10,2),
    BASECALCULO_IPI numeric(10,2),
    BASECALCULO_PIS numeric(10,2),
    BASECALCULO_COFINS numeric(10,2),
    VALOR_ACRESCIMO numeric(10,2),
    VALOR_FRETE numeric(10,2),
    VALOR_SEGURO numeric(10,2),
    VALOR_DESCONTO numeric(10,2),
    FISCAL_ISENTAS_IPI numeric(10,2),
    FISCAL_ISENTAS_ICMS numeric(10,2),
    FISCAL_OUTRAS_IPI numeric(10,2),
    FISCAL_OUTRAS_ICMS numeric(10,2),
    FISCAL_VALOR_ICMS numeric(10,2),
    FISCAL_VALOR_IPI numeric(10,2),
    FISCAL_VALOR_PIS numeric(10,2),
    FISCAL_VALOR_COFINS numeric(10,2),
    FISCAL_PERCENTUAL_ICMS numeric(10,2),
    FISCAL_PERCENTUAL_IPI numeric(10,2),
    FISCAL_PERCENTUAL_PIS numeric(10,2),
    FISCAL_PERCENTUAL_COFINS numeric(10,2),
    FISCAL_BASECALCULO_ICMS numeric(10,5),
    FISCAL_BASECALCULO_IPI numeric(10,2),
    FISCAL_BASECALCULO_PIS numeric(10,2),
    FISCAL_BASECALCULO_COFINS numeric(10,2),
    VALOR_PEDAGIO numeric(10,2),
    VALOR_CONTABIL numeric(10,2),
    VALOR_BASECALCULO_ICMS numeric(10,2),
    BASECALCULO_FCI numeric(15,4),
    CODIGO_FCI varchar(50),
    FISCAL_CFOP_CODIGO varchar(5),
    FISCAL_TRIBUTACAO_ORIGEM integer,
    FISCAL_TRIBUTACAO_ICMS integer,
    FISCAL_TRIBUTACAO_IPI char(2),
    FISCAL_TRIBUTACAO_PIS char(2),
    FISCAL_TRIBUTACAO_COFINS char(2),
    MODALIDADE_ICMS char(1),
    MODALIDADE_ICMS_ST char(1),
    MARGEM_ICMS_ST numeric(15,4),
    REDUCAO_ICMS_ST numeric(15,4),
    BASECALCULO_ICMS_ST numeric(15,4),
    ALIQUOTA_ICMS_ST numeric(15,4),
    VALOR_ICMS_ST numeric(15,4),
    FISCAL_REDUCAO_ICMS_ST numeric(10,2),
    FISCAL_BASECALCULO_ICMS_ST numeric(10,2),
    FISCAL_ALIQUOTA_ICMS_ST numeric(10,2),
    FISCAL_VALOR_ICMS_ST numeric(10,2),
    INFORMACOES_COMPLEMENTARES varchar(500),
    DI_NVE varchar(60),
    DI_TIPO_VIA_TRANSP integer,
    DI_VALOR_AFRMM numeric(15,2),
    DI_TIPO_INTERMEDIO varchar(1),
    DI_CNPJ_INTERMEDIO varchar(14),
    DI_UF_INTERMEDIO varchar(2),
    DI_NUMERO_DRAWBACK varchar(11),
    CCUSTO varchar(8),
    CONTA_CONTABIL varchar(11),
    ENQUADRAMENTO_IPI varchar(3),
    QUANTIDADE_ALTERNATIVA numeric(18,4),
    UM_ALTERNATIVA varchar(3),
    VALOR_ALTERNATIVO numeric(18,10),
    REDUCAO_BASE_PISCOF char(1),
    OPERACAO_TIPO_DESCONTO varchar(1),
    GC_WEB smallint)
as
BEGIN
INSERT INTO TBNFE_ITEM  (
NFE_CONTROLE,ESTABELECIMENTO_CODIGO,EMPRESA_CODIGO,NUMERO_NOTAFISCAL,DATA_ENTRADA,NF_SITUACAO, NF_NATUREZA,
NFS,NFS_ITEM_CONTROLE,PDV_CFE_ID, PDV_CFE_ITEM_ID, OC,OC_ITEM_CONTROLE,NF_EXTERNO,NF_EXTERNO_ITEM_CONTROLE             ,
CONTROLE,SEQUENCIA,OPERACAO_CODIGO,CFOP_CODIGO,PRODUTO_CODIGO,PRODUTO_DESCRICAO           ,
PRODUTO_UNIDADEMEDIDA2,NCM_CODIGO,TRIBUTACAO_ORIGEM,TRIBUTACAO_IPI,TRIBUTACAO_ICMS         ,
TRIBUTACAO_PIS,TRIBUTACAO_COFINS                                                          ,
LOCALIZACAO_CODIGO,QUANTIDADE,VALOR_UNITARIO,VALOR_CUSTO,OUTROS_CUSTOS,VALOR_TOTAL,BASECALCULO_ICMS,PERCENTUAL_ICMS ,
PERCENTUAL_IPI,VALOR_IPI,PERCENTUAL_PIS,VALOR_PIS,PERCENTUAL_COFINS,VALOR_COFINS          ,
T01,T02,T03,T04,T05,T06,T07,T08,T09,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,
DI,DI_DATA_REGISTRO,DI_DATA_DESEMBARACO,DI_LOCAL_DESEMBARACO,DI_UF_DESEMBARACO,
DI_CODIGO_EXPORTADOR,DI_ADICAO,DI_SEQUENCIAL,DI_CODIGO_FABRICANTE,DI_DESCONTO_ADICAO,
DI_BASE_CALCULO,DI_DESPESAS_ADUANEIRAS,DI_VALOR_II,DI_VALOR_IOF,
VALOR_ICMS,BASECALCULO_IPI,BASECALCULO_PIS,BASECALCULO_COFINS,
VALOR_ACRESCIMO,VALOR_FRETE,VALOR_SEGURO,VALOR_DESCONTO,FISCAL_ISENTAS_IPI,
FISCAL_ISENTAS_ICMS,FISCAL_OUTRAS_IPI,FISCAL_OUTRAS_ICMS,FISCAL_VALOR_ICMS,FISCAL_VALOR_IPI,
FISCAL_VALOR_PIS,FISCAL_VALOR_COFINS,FISCAL_PERCENTUAL_ICMS,FISCAL_PERCENTUAL_IPI,
FISCAL_PERCENTUAL_PIS,FISCAL_PERCENTUAL_COFINS,FISCAL_BASECALCULO_ICMS,
FISCAL_BASECALCULO_IPI,FISCAL_BASECALCULO_PIS,FISCAL_BASECALCULO_COFINS,
VALOR_PEDAGIO, VALOR_CONTABIL, VALOR_BASECALCULO_ICMS, BASECALCULO_FCI, CODIGO_FCI,
FISCAL_CFOP_CODIGO,FISCAL_TRIBUTACAO_ORIGEM,
FISCAL_TRIBUTACAO_ICMS,FISCAL_TRIBUTACAO_IPI,FISCAL_TRIBUTACAO_PIS,FISCAL_TRIBUTACAO_COFINS,
MODALIDADE_ICMS, MODALIDADE_ICMS_ST, MARGEM_ICMS_ST,
REDUCAO_ICMS_ST, BASECALCULO_ICMS_ST, ALIQUOTA_ICMS_ST, VALOR_ICMS_ST,
FISCAL_REDUCAO_ICMS_ST, FISCAL_BASECALCULO_ICMS_ST, FISCAL_ALIQUOTA_ICMS_ST, FISCAL_VALOR_ICMS_ST,
INFORMACOES_COMPLEMENTARES, DI_NVE, DI_TIPO_VIA_TRANSP, DI_VALOR_AFRMM,
DI_TIPO_INTERMEDIO, DI_CNPJ_INTERMEDIO, DI_UF_INTERMEDIO, DI_NUMERO_DRAWBACK,
CCUSTO, CONTA_CONTABIL, ENQUADRAMENTO_IPI,
QUANTIDADE_ALTERNATIVA, UM_ALTERNATIVA, VALOR_ALTERNATIVO,
REDUCAO_BASE_PISCOF, TIPO_DESCONTO, GC_WEB)
VALUES  (
:NFE_CONTROLE,:ESTABELECIMENTO_CODIGO,:EMPRESA_CODIGO,:NUMERO_NOTAFISCAL,
:DATA_ENTRADA,:SITUACAO,:NF_NATUREZA,:NFS,:NFS_ITEM_CONTROLE,:PDV_CFE_ID, :PDV_CFE_ITEM_ID, :OC,:OC_ITEM_CONTROLE,
:NF_EXTERNO,:NF_EXTERNO_ITEM_CONTROLE,:CONTROLE,:SEQUENCIA,:OPERACAO_CODIGO,:CFOP_CODIGO,
:PRODUTO_CODIGO,:PRODUTO_DESCRICAO,:PRODUTO_UNIDADEMEDIDA,:NCM_CODIGO,:TRIBUTACAO_ORIGEM,
:TRIBUTACAO_IPI,:TRIBUTACAO_ICMS,:TRIBUTACAO_PIS,:TRIBUTACAO_COFINS,:LOCALIZACAO_CODIGO,
:QUANTIDADE,:VALOR_UNITARIO,:VALOR_CUSTO,:OUTROS_CUSTOS, :VALOR_TOTAL,:BASECALCULO_ICMS,:PERCENTUAL_ICMS,
:PERCENTUAL_IPI,:VALOR_IPI,:PERCENTUAL_PIS,:VALOR_PIS,:PERCENTUAL_COFINS,
:VALOR_COFINS,:T01,:T02,:T03,:T04,:T05,:T06,:T07,:T08,:T09,:T10,
:T11,:T12,:T13,:T14,:T15,:T16,:T17,:T18,:T19,:T20,
:DI,:DI_DATA_REGISTRO,:DI_DATA_DESEMBARACO,:DI_LOCAL_DESEMBARACO,:DI_UF_DESEMBARACO,
:DI_CODIGO_EXPORTADOR,:DI_ADICAO,:DI_SEQUENCIAL,:DI_CODIGO_FABRICANTE,:DI_DESCONTO_ADICAO,
:DI_BASE_CALCULO,:DI_DESPESAS_ADUANEIRAS,:DI_VALOR_II,:DI_VALOR_IOF,
:VALOR_ICMS,:BASECALCULO_IPI,:BASECALCULO_PIS,:BASECALCULO_COFINS,
:VALOR_ACRESCIMO,:VALOR_FRETE,:VALOR_SEGURO,:VALOR_DESCONTO,:FISCAL_ISENTAS_IPI,:FISCAL_ISENTAS_ICMS,
:FISCAL_OUTRAS_IPI,:FISCAL_OUTRAS_ICMS,:FISCAL_VALOR_ICMS,:FISCAL_VALOR_IPI,
:FISCAL_VALOR_PIS,:FISCAL_VALOR_COFINS,:FISCAL_PERCENTUAL_ICMS,:FISCAL_PERCENTUAL_IPI,
:FISCAL_PERCENTUAL_PIS,:FISCAL_PERCENTUAL_COFINS,:FISCAL_BASECALCULO_ICMS,
:FISCAL_BASECALCULO_IPI,:FISCAL_BASECALCULO_PIS,:FISCAL_BASECALCULO_COFINS,
:VALOR_PEDAGIO, :VALOR_CONTABIL, :VALOR_BASECALCULO_ICMS, :BASECALCULO_FCI, :CODIGO_FCI,
:FISCAL_CFOP_CODIGO,:FISCAL_TRIBUTACAO_ORIGEM,
:FISCAL_TRIBUTACAO_ICMS,:FISCAL_TRIBUTACAO_IPI,:FISCAL_TRIBUTACAO_PIS,
:FISCAL_TRIBUTACAO_COFINS,:MODALIDADE_ICMS, :MODALIDADE_ICMS_ST, :MARGEM_ICMS_ST,
:REDUCAO_ICMS_ST, :BASECALCULO_ICMS_ST, :ALIQUOTA_ICMS_ST, :VALOR_ICMS_ST,
:FISCAL_REDUCAO_ICMS_ST, :FISCAL_BASECALCULO_ICMS_ST, :FISCAL_ALIQUOTA_ICMS_ST, :FISCAL_VALOR_ICMS_ST,
:INFORMACOES_COMPLEMENTARES, :DI_NVE, :DI_TIPO_VIA_TRANSP, :DI_VALOR_AFRMM,
:DI_TIPO_INTERMEDIO, :DI_CNPJ_INTERMEDIO, :DI_UF_INTERMEDIO, :DI_NUMERO_DRAWBACK,
:CCUSTO, :CONTA_CONTABIL, :ENQUADRAMENTO_IPI,
:QUANTIDADE_ALTERNATIVA, :UM_ALTERNATIVA, :VALOR_ALTERNATIVO,
:REDUCAO_BASE_PISCOF, :OPERACAO_TIPO_DESCONTO, :GC_WEB);

INSERT INTO TBNFE_ITEM_SALDO (
NFE_ITEM_CONTROLE,NFE_CONTROLE,QUANTIDADE,
T01,T02,T03,T04,T05,T06,T07,T08,T09,T10,  
T11,T12,T13,T14,T15,T16,T17,T18,T19,T20)  
VALUES (                                  
:CONTROLE,:NFE_CONTROLE,:QUANTIDADE,
:T01,:T02,:T03,:T04,:T05,:T06,:T07,:T08,:T09,:T10,
:T11,:T12,:T13,:T14,:T15,:T16,:T17,:T18,:T19,:T20);
END
^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER procedure SPI_NFE_ITEM10 (
    NFE_CONTROLE integer,
    ESTABELECIMENTO_CODIGO integer,
    EMPRESA_CODIGO integer,
    NUMERO_NOTAFISCAL integer,
    DATA_ENTRADA date,
    SITUACAO integer,
    NFS integer,
    NFS_ITEM_CONTROLE integer,
    OC integer,
    OC_ITEM_CONTROLE integer,
    NF_EXTERNO integer,
    NF_EXTERNO_ITEM_CONTROLE integer,
    CONTROLE integer,
    SEQUENCIA integer,
    OPERACAO_CODIGO varchar(3),
    CFOP_CODIGO varchar(5),
    PRODUTO_CODIGO integer,
    PRODUTO_DESCRICAO varchar(100),
    PRODUTO_UNIDADEMEDIDA varchar(3),
    NCM_CODIGO varchar(10),
    TRIBUTACAO_ORIGEM integer,
    TRIBUTACAO_IPI varchar(2),
    TRIBUTACAO_ICMS integer,
    TRIBUTACAO_PIS char(2),
    TRIBUTACAO_COFINS char(2),
    LOCALIZACAO_CODIGO integer,
    QUANTIDADE numeric(10,5),
    VALOR_UNITARIO numeric(10,5),
    VALOR_CUSTO numeric(10,5),
    VALOR_TOTAL numeric(10,5),
    BASECALCULO_ICMS numeric(10,5),
    PERCENTUAL_ICMS numeric(10,5),
    PERCENTUAL_IPI numeric(10,5),
    VALOR_IPI numeric(10,5),
    PERCENTUAL_PIS numeric(10,5),
    VALOR_PIS numeric(10,5),
    PERCENTUAL_COFINS numeric(10,5),
    VALOR_COFINS numeric(10,5),
    T01 numeric(10,5),
    T02 numeric(10,5),
    T03 numeric(10,5),
    T04 numeric(10,5),
    T05 numeric(10,5),
    T06 numeric(10,5),
    T07 numeric(10,5),
    T08 numeric(10,5),
    T09 numeric(10,5),
    T10 numeric(10,5),
    T11 numeric(10,5),
    T12 numeric(10,5),
    T13 numeric(10,5),
    T14 numeric(10,5),
    T15 numeric(10,5),
    T16 numeric(10,5),
    T17 numeric(10,5),
    T18 numeric(10,5),
    T19 numeric(10,5),
    T20 numeric(10,5),
    DI varchar(12),
    DI_DATA_REGISTRO date,
    DI_DATA_DESEMBARACO date,
    DI_LOCAL_DESEMBARACO varchar(60),
    DI_UF_DESEMBARACO char(2),
    DI_CODIGO_EXPORTADOR varchar(60),
    DI_ADICAO integer,
    DI_SEQUENCIAL integer,
    DI_CODIGO_FABRICANTE varchar(60),
    DI_DESCONTO_ADICAO numeric(10,2),
    DI_BASE_CALCULO numeric(10,2),
    DI_DESPESAS_ADUANEIRAS numeric(10,2),
    DI_VALOR_II numeric(10,2),
    DI_VALOR_IOF numeric(10,2),
    VALOR_ICMS numeric(10,2),
    BASECALCULO_IPI numeric(10,2),
    BASECALCULO_PIS numeric(10,2),
    BASECALCULO_COFINS numeric(10,2),
    VALOR_ACRESCIMO numeric(10,2),
    VALOR_FRETE numeric(10,2),
    VALOR_SEGURO numeric(10,2),
    VALOR_DESCONTO numeric(10,2),
    FISCAL_ISENTAS_IPI numeric(10,2),
    FISCAL_ISENTAS_ICMS numeric(10,2),
    FISCAL_OUTRAS_IPI numeric(10,2),
    FISCAL_OUTRAS_ICMS numeric(10,2),
    FISCAL_VALOR_ICMS numeric(10,2),
    FISCAL_VALOR_IPI numeric(10,2),
    FISCAL_VALOR_PIS numeric(10,2),
    FISCAL_VALOR_COFINS numeric(10,2),
    FISCAL_PERCENTUAL_ICMS numeric(10,2),
    FISCAL_PERCENTUAL_IPI numeric(10,2),
    FISCAL_PERCENTUAL_PIS numeric(10,2),
    FISCAL_PERCENTUAL_COFINS numeric(10,2),
    FISCAL_BASECALCULO_ICMS numeric(10,5),
    FISCAL_BASECALCULO_IPI numeric(10,2),
    FISCAL_BASECALCULO_PIS numeric(10,2),
    FISCAL_BASECALCULO_COFINS numeric(10,2),
    VALOR_PEDAGIO numeric(10,2),
    VALOR_CONTABIL numeric(10,2),
    VALOR_BASECALCULO_ICMS numeric(10,2),
    BASECALCULO_FCI numeric(15,4),
    CODIGO_FCI varchar(50),
    FISCAL_CFOP_CODIGO varchar(5),
    FISCAL_TRIBUTACAO_ORIGEM integer,
    FISCAL_TRIBUTACAO_ICMS integer,
    FISCAL_TRIBUTACAO_IPI char(2),
    FISCAL_TRIBUTACAO_PIS char(2),
    FISCAL_TRIBUTACAO_COFINS char(2),
    MODALIDADE_ICMS char(1),
    MODALIDADE_ICMS_ST char(1),
    MARGEM_ICMS_ST numeric(15,4),
    REDUCAO_ICMS_ST numeric(15,4),
    BASECALCULO_ICMS_ST numeric(15,4),
    ALIQUOTA_ICMS_ST numeric(15,4),
    VALOR_ICMS_ST numeric(15,4),
    FISCAL_REDUCAO_ICMS_ST numeric(10,2),
    FISCAL_BASECALCULO_ICMS_ST numeric(10,2),
    FISCAL_ALIQUOTA_ICMS_ST numeric(10,2),
    FISCAL_VALOR_ICMS_ST numeric(10,2),
    INFORMACOES_COMPLEMENTARES varchar(200),
    DI_NVE varchar(60),
    DI_TIPO_VIA_TRANSP integer,
    DI_VALOR_AFRMM numeric(15,2),
    DI_TIPO_INTERMEDIO varchar(1),
    DI_CNPJ_INTERMEDIO varchar(14),
    DI_UF_INTERMEDIO varchar(2),
    DI_NUMERO_DRAWBACK varchar(11),
    CCUSTO varchar(8),
    CONTA_CONTABIL varchar(11),
    ENQUADRAMENTO_IPI varchar(3),
    QUANTIDADE_ALTERNATIVA numeric(18,4),
    UM_ALTERNATIVA varchar(3),
    VALOR_ALTERNATIVO numeric(18,10),
    REDUCAO_BASE_PISCOF char(1))
as
BEGIN
INSERT INTO TbNfe_Item  (
Nfe_Controle,Estabelecimento_Codigo,Empresa_Codigo,Numero_NotaFiscal,Data_Entrada,Situacao,
Nfs,Nfs_Item_Controle,OC,OC_Item_Controle,Nf_Externo,Nf_Externo_Item_Controle             ,
Controle,Sequencia,Operacao_Codigo,Cfop_Codigo,Produto_Codigo,Produto_Descricao           ,
Produto_UnidadeMedida2,Ncm_Codigo,Tributacao_Origem,Tributacao_Ipi,Tributacao_Icms         ,
Tributacao_Pis,Tributacao_Cofins                                                          ,
Localizacao_Codigo,Quantidade,Valor_Unitario,Valor_Custo,Valor_Total,BaseCalculo_Icms,Percentual_Icms ,
Percentual_Ipi,Valor_Ipi,Percentual_Pis,Valor_Pis,Percentual_Cofins,Valor_Cofins          ,
T01,T02,T03,T04,T05,T06,T07,T08,T09,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,
DI,DI_DATA_REGISTRO,DI_DATA_DESEMBARACO,DI_LOCAL_DESEMBARACO,DI_UF_DESEMBARACO,
DI_CODIGO_EXPORTADOR,DI_ADICAO,DI_SEQUENCIAL,DI_CODIGO_FABRICANTE,DI_DESCONTO_ADICAO,
di_base_calculo,di_despesas_aduaneiras,di_valor_ii,di_valor_iof,
VALOR_ICMS,BASECALCULO_IPI,BASECALCULO_PIS,BASECALCULO_COFINS,
VALOR_ACRESCIMO,VALOR_FRETE,VALOR_SEGURO,VALOR_DESCONTO,FISCAL_ISENTAS_IPI,
FISCAL_ISENTAS_ICMS,FISCAL_OUTRAS_IPI,FISCAL_OUTRAS_ICMS,FISCAL_VALOR_ICMS,FISCAL_VALOR_IPI,
FISCAL_VALOR_PIS,FISCAL_VALOR_COFINS,FISCAL_PERCENTUAL_ICMS,FISCAL_PERCENTUAL_IPI,
FISCAL_PERCENTUAL_PIS,FISCAL_PERCENTUAL_COFINS,FISCAL_BASECALCULO_ICMS,
FISCAL_BASECALCULO_IPI,FISCAL_BASECALCULO_PIS,FISCAL_BASECALCULO_COFINS,
VALOR_PEDAGIO, VALOR_CONTABIL, valor_basecalculo_icms, basecalculo_FCI, CODIGO_FCI,
FISCAL_CFOP_CODIGO,FISCAL_TRIBUTACAO_ORIGEM,
FISCAL_TRIBUTACAO_ICMS,FISCAL_TRIBUTACAO_IPI,FISCAL_TRIBUTACAO_PIS,FISCAL_TRIBUTACAO_COFINS,
MODALIDADE_ICMS, MODALIDADE_ICMS_ST, MARGEM_ICMS_ST,
REDUCAO_ICMS_ST, BASECALCULO_ICMS_ST, ALIQUOTA_ICMS_ST, VALOR_ICMS_ST,
FISCAL_REDUCAO_ICMS_ST, FISCAL_BASECALCULO_ICMS_ST, FISCAL_ALIQUOTA_ICMS_ST, FISCAL_VALOR_ICMS_ST,
INFORMACOES_COMPLEMENTARES, DI_NVE, DI_TIPO_VIA_TRANSP, DI_VALOR_AFRMM,
DI_TIPO_INTERMEDIO, DI_CNPJ_INTERMEDIO, DI_UF_INTERMEDIO, DI_NUMERO_DRAWBACK,
CCUSTO, CONTA_CONTABIL, Enquadramento_Ipi,
QUANTIDADE_ALTERNATIVA, UM_ALTERNATIVA, VALOR_ALTERNATIVO,
REDUCAO_BASE_PISCOF)
VALUES  (
:Nfe_Controle,:Estabelecimento_Codigo,:Empresa_Codigo,:Numero_NotaFiscal,
:Data_Entrada,:Situacao,:Nfs,:Nfs_Item_Controle,:OC,:OC_Item_Controle,
:Nf_Externo,:Nf_Externo_Item_Controle,:Controle,:Sequencia,:Operacao_Codigo,:Cfop_Codigo,
:Produto_Codigo,:Produto_Descricao,:Produto_UnidadeMedida,:Ncm_Codigo,:Tributacao_Origem,
:Tributacao_Ipi,:Tributacao_Icms,:Tributacao_Pis,:Tributacao_Cofins,:Localizacao_Codigo,
:Quantidade,:Valor_Unitario,:Valor_Custo,:Valor_Total,:BaseCalculo_Icms,:Percentual_Icms,
:Percentual_Ipi,:Valor_Ipi,:Percentual_Pis,:Valor_Pis,:Percentual_Cofins,
:Valor_Cofins,:T01,:T02,:T03,:T04,:T05,:T06,:T07,:T08,:T09,:T10,
:T11,:T12,:T13,:T14,:T15,:T16,:T17,:T18,:T19,:T20,
:DI,:DI_DATA_REGISTRO,:DI_DATA_DESEMBARACO,:DI_LOCAL_DESEMBARACO,:DI_UF_DESEMBARACO,
:DI_CODIGO_EXPORTADOR,:DI_ADICAO,:DI_SEQUENCIAL,:DI_CODIGO_FABRICANTE,:DI_DESCONTO_ADICAO,
:di_base_calculo,:di_despesas_aduaneiras,:di_valor_ii,:di_valor_iof,
:VALOR_ICMS,:BASECALCULO_IPI,:BASECALCULO_PIS,:BASECALCULO_COFINS,
:VALOR_ACRESCIMO,:VALOR_FRETE,:VALOR_SEGURO,:VALOR_DESCONTO,:FISCAL_ISENTAS_IPI,:FISCAL_ISENTAS_ICMS,
:FISCAL_OUTRAS_IPI,:FISCAL_OUTRAS_ICMS,:FISCAL_VALOR_ICMS,:FISCAL_VALOR_IPI,
:FISCAL_VALOR_PIS,:FISCAL_VALOR_COFINS,:FISCAL_PERCENTUAL_ICMS,:FISCAL_PERCENTUAL_IPI,
:FISCAL_PERCENTUAL_PIS,:FISCAL_PERCENTUAL_COFINS,:FISCAL_BASECALCULO_ICMS,
:FISCAL_BASECALCULO_IPI,:FISCAL_BASECALCULO_PIS,:FISCAL_BASECALCULO_COFINS,
:VALOR_PEDAGIO, :VALOR_CONTABIL, :valor_basecalculo_icms, :basecalculo_FCI, :CODIGO_FCI,
:FISCAL_CFOP_CODIGO,:FISCAL_TRIBUTACAO_ORIGEM,
:FISCAL_TRIBUTACAO_ICMS,:FISCAL_TRIBUTACAO_IPI,:FISCAL_TRIBUTACAO_PIS,
:FISCAL_TRIBUTACAO_COFINS,:MODALIDADE_ICMS, :MODALIDADE_ICMS_ST, :MARGEM_ICMS_ST,
:REDUCAO_ICMS_ST, :BASECALCULO_ICMS_ST, :ALIQUOTA_ICMS_ST, :VALOR_ICMS_ST,
:FISCAL_REDUCAO_ICMS_ST, :FISCAL_BASECALCULO_ICMS_ST, :FISCAL_ALIQUOTA_ICMS_ST, :FISCAL_VALOR_ICMS_ST,
:INFORMACOES_COMPLEMENTARES, :DI_NVE, :DI_TIPO_VIA_TRANSP, :DI_VALOR_AFRMM,
:DI_TIPO_INTERMEDIO, :DI_CNPJ_INTERMEDIO, :DI_UF_INTERMEDIO, :DI_NUMERO_DRAWBACK,
:CCUSTO, :CONTA_CONTABIL, :Enquadramento_Ipi,
:QUANTIDADE_ALTERNATIVA, :UM_ALTERNATIVA, :VALOR_ALTERNATIVO,
:REDUCAO_BASE_PISCOF);

INSERT INTO TbNfe_Item_Saldo (
Nfe_Item_Controle,Nfe_Controle,Quantidade,
T01,T02,T03,T04,T05,T06,T07,T08,T09,T10,  
T11,T12,T13,T14,T15,T16,T17,T18,T19,T20)  
VALUES (                                  
:Controle,:Nfe_Controle,:Quantidade,
:T01,:T02,:T03,:T04,:T05,:T06,:T07,:T08,:T09,:T10,
:T11,:T12,:T13,:T14,:T15,:T16,:T17,:T18,:T19,:T20);
END
^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER procedure SPI_NFE_ITEM11 (
    NFE_CONTROLE integer,
    ESTABELECIMENTO_CODIGO integer,
    EMPRESA_CODIGO integer,
    NUMERO_NOTAFISCAL integer,
    DATA_ENTRADA date,
    SITUACAO integer,
    NFS integer,
    NFS_ITEM_CONTROLE integer,
    OC integer,
    OC_ITEM_CONTROLE integer,
    NF_EXTERNO integer,
    NF_EXTERNO_ITEM_CONTROLE integer,
    CONTROLE integer,
    SEQUENCIA integer,
    OPERACAO_CODIGO varchar(3),
    CFOP_CODIGO varchar(5),
    PRODUTO_CODIGO integer,
    PRODUTO_DESCRICAO varchar(100),
    PRODUTO_UNIDADEMEDIDA varchar(3),
    NCM_CODIGO varchar(10),
    TRIBUTACAO_ORIGEM integer,
    TRIBUTACAO_IPI varchar(2),
    TRIBUTACAO_ICMS integer,
    TRIBUTACAO_PIS char(2),
    TRIBUTACAO_COFINS char(2),
    LOCALIZACAO_CODIGO integer,
    QUANTIDADE numeric(10,5),
    VALOR_UNITARIO numeric(10,5),
    VALOR_CUSTO numeric(10,5),
    VALOR_TOTAL numeric(10,5),
    BASECALCULO_ICMS numeric(10,5),
    PERCENTUAL_ICMS numeric(10,5),
    PERCENTUAL_IPI numeric(10,5),
    VALOR_IPI numeric(10,5),
    PERCENTUAL_PIS numeric(10,5),
    VALOR_PIS numeric(10,5),
    PERCENTUAL_COFINS numeric(10,5),
    VALOR_COFINS numeric(10,5),
    T01 numeric(10,5),
    T02 numeric(10,5),
    T03 numeric(10,5),
    T04 numeric(10,5),
    T05 numeric(10,5),
    T06 numeric(10,5),
    T07 numeric(10,5),
    T08 numeric(10,5),
    T09 numeric(10,5),
    T10 numeric(10,5),
    T11 numeric(10,5),
    T12 numeric(10,5),
    T13 numeric(10,5),
    T14 numeric(10,5),
    T15 numeric(10,5),
    T16 numeric(10,5),
    T17 numeric(10,5),
    T18 numeric(10,5),
    T19 numeric(10,5),
    T20 numeric(10,5),
    DI varchar(12),
    DI_DATA_REGISTRO date,
    DI_DATA_DESEMBARACO date,
    DI_LOCAL_DESEMBARACO varchar(60),
    DI_UF_DESEMBARACO char(2),
    DI_CODIGO_EXPORTADOR varchar(60),
    DI_ADICAO integer,
    DI_SEQUENCIAL integer,
    DI_CODIGO_FABRICANTE varchar(60),
    DI_DESCONTO_ADICAO numeric(10,2),
    DI_BASE_CALCULO numeric(10,2),
    DI_DESPESAS_ADUANEIRAS numeric(10,2),
    DI_VALOR_II numeric(10,2),
    DI_VALOR_IOF numeric(10,2),
    VALOR_ICMS numeric(10,2),
    BASECALCULO_IPI numeric(10,2),
    BASECALCULO_PIS numeric(10,2),
    BASECALCULO_COFINS numeric(10,2),
    VALOR_ACRESCIMO numeric(10,2),
    VALOR_FRETE numeric(10,2),
    VALOR_SEGURO numeric(10,2),
    VALOR_DESCONTO numeric(10,2),
    FISCAL_ISENTAS_IPI numeric(10,2),
    FISCAL_ISENTAS_ICMS numeric(10,2),
    FISCAL_OUTRAS_IPI numeric(10,2),
    FISCAL_OUTRAS_ICMS numeric(10,2),
    FISCAL_VALOR_ICMS numeric(10,2),
    FISCAL_VALOR_IPI numeric(10,2),
    FISCAL_VALOR_PIS numeric(10,2),
    FISCAL_VALOR_COFINS numeric(10,2),
    FISCAL_PERCENTUAL_ICMS numeric(10,2),
    FISCAL_PERCENTUAL_IPI numeric(10,2),
    FISCAL_PERCENTUAL_PIS numeric(10,2),
    FISCAL_PERCENTUAL_COFINS numeric(10,2),
    FISCAL_BASECALCULO_ICMS numeric(10,5),
    FISCAL_BASECALCULO_IPI numeric(10,2),
    FISCAL_BASECALCULO_PIS numeric(10,2),
    FISCAL_BASECALCULO_COFINS numeric(10,2),
    VALOR_PEDAGIO numeric(10,2),
    VALOR_CONTABIL numeric(10,2),
    VALOR_BASECALCULO_ICMS numeric(10,2),
    BASECALCULO_FCI numeric(15,4),
    CODIGO_FCI varchar(50),
    FISCAL_CFOP_CODIGO varchar(5),
    FISCAL_TRIBUTACAO_ORIGEM integer,
    FISCAL_TRIBUTACAO_ICMS integer,
    FISCAL_TRIBUTACAO_IPI char(2),
    FISCAL_TRIBUTACAO_PIS char(2),
    FISCAL_TRIBUTACAO_COFINS char(2),
    MODALIDADE_ICMS char(1),
    MODALIDADE_ICMS_ST char(1),
    MARGEM_ICMS_ST numeric(15,4),
    REDUCAO_ICMS_ST numeric(15,4),
    BASECALCULO_ICMS_ST numeric(15,4),
    ALIQUOTA_ICMS_ST numeric(15,4),
    VALOR_ICMS_ST numeric(15,4),
    FISCAL_REDUCAO_ICMS_ST numeric(10,2),
    FISCAL_BASECALCULO_ICMS_ST numeric(10,2),
    FISCAL_ALIQUOTA_ICMS_ST numeric(10,2),
    FISCAL_VALOR_ICMS_ST numeric(10,2),
    INFORMACOES_COMPLEMENTARES varchar(500),
    DI_NVE varchar(60),
    DI_TIPO_VIA_TRANSP integer,
    DI_VALOR_AFRMM numeric(15,2),
    DI_TIPO_INTERMEDIO varchar(1),
    DI_CNPJ_INTERMEDIO varchar(14),
    DI_UF_INTERMEDIO varchar(2),
    DI_NUMERO_DRAWBACK varchar(11),
    CCUSTO varchar(8),
    CONTA_CONTABIL varchar(11),
    ENQUADRAMENTO_IPI varchar(3),
    QUANTIDADE_ALTERNATIVA numeric(18,4),
    UM_ALTERNATIVA varchar(3),
    VALOR_ALTERNATIVO numeric(18,10),
    REDUCAO_BASE_PISCOF char(1))
as
BEGIN
INSERT INTO TbNfe_Item  (
Nfe_Controle,Estabelecimento_Codigo,Empresa_Codigo,Numero_NotaFiscal,Data_Entrada,Situacao,
Nfs,Nfs_Item_Controle,OC,OC_Item_Controle,Nf_Externo,Nf_Externo_Item_Controle             ,
Controle,Sequencia,Operacao_Codigo,Cfop_Codigo,Produto_Codigo,Produto_Descricao           ,
Produto_UnidadeMedida2,Ncm_Codigo,Tributacao_Origem,Tributacao_Ipi,Tributacao_Icms         ,
Tributacao_Pis,Tributacao_Cofins                                                          ,
Localizacao_Codigo,Quantidade,Valor_Unitario,Valor_Custo,Valor_Total,BaseCalculo_Icms,Percentual_Icms ,
Percentual_Ipi,Valor_Ipi,Percentual_Pis,Valor_Pis,Percentual_Cofins,Valor_Cofins          ,
T01,T02,T03,T04,T05,T06,T07,T08,T09,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,
DI,DI_DATA_REGISTRO,DI_DATA_DESEMBARACO,DI_LOCAL_DESEMBARACO,DI_UF_DESEMBARACO,
DI_CODIGO_EXPORTADOR,DI_ADICAO,DI_SEQUENCIAL,DI_CODIGO_FABRICANTE,DI_DESCONTO_ADICAO,
di_base_calculo,di_despesas_aduaneiras,di_valor_ii,di_valor_iof,
VALOR_ICMS,BASECALCULO_IPI,BASECALCULO_PIS,BASECALCULO_COFINS,
VALOR_ACRESCIMO,VALOR_FRETE,VALOR_SEGURO,VALOR_DESCONTO,FISCAL_ISENTAS_IPI,
FISCAL_ISENTAS_ICMS,FISCAL_OUTRAS_IPI,FISCAL_OUTRAS_ICMS,FISCAL_VALOR_ICMS,FISCAL_VALOR_IPI,
FISCAL_VALOR_PIS,FISCAL_VALOR_COFINS,FISCAL_PERCENTUAL_ICMS,FISCAL_PERCENTUAL_IPI,
FISCAL_PERCENTUAL_PIS,FISCAL_PERCENTUAL_COFINS,FISCAL_BASECALCULO_ICMS,
FISCAL_BASECALCULO_IPI,FISCAL_BASECALCULO_PIS,FISCAL_BASECALCULO_COFINS,
VALOR_PEDAGIO, VALOR_CONTABIL, valor_basecalculo_icms, basecalculo_FCI, CODIGO_FCI,
FISCAL_CFOP_CODIGO,FISCAL_TRIBUTACAO_ORIGEM,
FISCAL_TRIBUTACAO_ICMS,FISCAL_TRIBUTACAO_IPI,FISCAL_TRIBUTACAO_PIS,FISCAL_TRIBUTACAO_COFINS,
MODALIDADE_ICMS, MODALIDADE_ICMS_ST, MARGEM_ICMS_ST,
REDUCAO_ICMS_ST, BASECALCULO_ICMS_ST, ALIQUOTA_ICMS_ST, VALOR_ICMS_ST,
FISCAL_REDUCAO_ICMS_ST, FISCAL_BASECALCULO_ICMS_ST, FISCAL_ALIQUOTA_ICMS_ST, FISCAL_VALOR_ICMS_ST,
INFORMACOES_COMPLEMENTARES, DI_NVE, DI_TIPO_VIA_TRANSP, DI_VALOR_AFRMM,
DI_TIPO_INTERMEDIO, DI_CNPJ_INTERMEDIO, DI_UF_INTERMEDIO, DI_NUMERO_DRAWBACK,
CCUSTO, CONTA_CONTABIL, Enquadramento_Ipi,
QUANTIDADE_ALTERNATIVA, UM_ALTERNATIVA, VALOR_ALTERNATIVO,
REDUCAO_BASE_PISCOF)
VALUES  (
:Nfe_Controle,:Estabelecimento_Codigo,:Empresa_Codigo,:Numero_NotaFiscal,
:Data_Entrada,:Situacao,:Nfs,:Nfs_Item_Controle,:OC,:OC_Item_Controle,
:Nf_Externo,:Nf_Externo_Item_Controle,:Controle,:Sequencia,:Operacao_Codigo,:Cfop_Codigo,
:Produto_Codigo,:Produto_Descricao,:Produto_UnidadeMedida,:Ncm_Codigo,:Tributacao_Origem,
:Tributacao_Ipi,:Tributacao_Icms,:Tributacao_Pis,:Tributacao_Cofins,:Localizacao_Codigo,
:Quantidade,:Valor_Unitario,:Valor_Custo,:Valor_Total,:BaseCalculo_Icms,:Percentual_Icms,
:Percentual_Ipi,:Valor_Ipi,:Percentual_Pis,:Valor_Pis,:Percentual_Cofins,
:Valor_Cofins,:T01,:T02,:T03,:T04,:T05,:T06,:T07,:T08,:T09,:T10,
:T11,:T12,:T13,:T14,:T15,:T16,:T17,:T18,:T19,:T20,
:DI,:DI_DATA_REGISTRO,:DI_DATA_DESEMBARACO,:DI_LOCAL_DESEMBARACO,:DI_UF_DESEMBARACO,
:DI_CODIGO_EXPORTADOR,:DI_ADICAO,:DI_SEQUENCIAL,:DI_CODIGO_FABRICANTE,:DI_DESCONTO_ADICAO,
:di_base_calculo,:di_despesas_aduaneiras,:di_valor_ii,:di_valor_iof,
:VALOR_ICMS,:BASECALCULO_IPI,:BASECALCULO_PIS,:BASECALCULO_COFINS,
:VALOR_ACRESCIMO,:VALOR_FRETE,:VALOR_SEGURO,:VALOR_DESCONTO,:FISCAL_ISENTAS_IPI,:FISCAL_ISENTAS_ICMS,
:FISCAL_OUTRAS_IPI,:FISCAL_OUTRAS_ICMS,:FISCAL_VALOR_ICMS,:FISCAL_VALOR_IPI,
:FISCAL_VALOR_PIS,:FISCAL_VALOR_COFINS,:FISCAL_PERCENTUAL_ICMS,:FISCAL_PERCENTUAL_IPI,
:FISCAL_PERCENTUAL_PIS,:FISCAL_PERCENTUAL_COFINS,:FISCAL_BASECALCULO_ICMS,
:FISCAL_BASECALCULO_IPI,:FISCAL_BASECALCULO_PIS,:FISCAL_BASECALCULO_COFINS,
:VALOR_PEDAGIO, :VALOR_CONTABIL, :valor_basecalculo_icms, :basecalculo_FCI, :CODIGO_FCI,
:FISCAL_CFOP_CODIGO,:FISCAL_TRIBUTACAO_ORIGEM,
:FISCAL_TRIBUTACAO_ICMS,:FISCAL_TRIBUTACAO_IPI,:FISCAL_TRIBUTACAO_PIS,
:FISCAL_TRIBUTACAO_COFINS,:MODALIDADE_ICMS, :MODALIDADE_ICMS_ST, :MARGEM_ICMS_ST,
:REDUCAO_ICMS_ST, :BASECALCULO_ICMS_ST, :ALIQUOTA_ICMS_ST, :VALOR_ICMS_ST,
:FISCAL_REDUCAO_ICMS_ST, :FISCAL_BASECALCULO_ICMS_ST, :FISCAL_ALIQUOTA_ICMS_ST, :FISCAL_VALOR_ICMS_ST,
:INFORMACOES_COMPLEMENTARES, :DI_NVE, :DI_TIPO_VIA_TRANSP, :DI_VALOR_AFRMM,
:DI_TIPO_INTERMEDIO, :DI_CNPJ_INTERMEDIO, :DI_UF_INTERMEDIO, :DI_NUMERO_DRAWBACK,
:CCUSTO, :CONTA_CONTABIL, :Enquadramento_Ipi,
:QUANTIDADE_ALTERNATIVA, :UM_ALTERNATIVA, :VALOR_ALTERNATIVO,
:REDUCAO_BASE_PISCOF);

INSERT INTO TbNfe_Item_Saldo (
Nfe_Item_Controle,Nfe_Controle,Quantidade,
T01,T02,T03,T04,T05,T06,T07,T08,T09,T10,  
T11,T12,T13,T14,T15,T16,T17,T18,T19,T20)  
VALUES (                                  
:Controle,:Nfe_Controle,:Quantidade,
:T01,:T02,:T03,:T04,:T05,:T06,:T07,:T08,:T09,:T10,
:T11,:T12,:T13,:T14,:T15,:T16,:T17,:T18,:T19,:T20);
END
^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER procedure SPI_NFE_ITEM8 (
    NFE_CONTROLE integer,
    ESTABELECIMENTO_CODIGO integer,
    EMPRESA_CODIGO integer,
    NUMERO_NOTAFISCAL integer,
    DATA_ENTRADA date,
    SITUACAO integer,
    NFS integer,
    NFS_ITEM_CONTROLE integer,
    OC integer,
    OC_ITEM_CONTROLE integer,
    NF_EXTERNO integer,
    NF_EXTERNO_ITEM_CONTROLE integer,
    CONTROLE integer,
    SEQUENCIA integer,
    OPERACAO_CODIGO varchar(3),
    CFOP_CODIGO varchar(5),
    PRODUTO_CODIGO integer,
    PRODUTO_DESCRICAO varchar(100),
    PRODUTO_UNIDADEMEDIDA varchar(3),
    NCM_CODIGO varchar(10),
    TRIBUTACAO_ORIGEM integer,
    TRIBUTACAO_IPI varchar(2),
    TRIBUTACAO_ICMS integer,
    TRIBUTACAO_PIS char(2),
    TRIBUTACAO_COFINS char(2),
    LOCALIZACAO_CODIGO integer,
    QUANTIDADE numeric(10,5),
    VALOR_UNITARIO numeric(10,5),
    VALOR_CUSTO numeric(10,5),
    VALOR_TOTAL numeric(10,5),
    BASECALCULO_ICMS numeric(10,5),
    PERCENTUAL_ICMS numeric(10,5),
    PERCENTUAL_IPI numeric(10,5),
    VALOR_IPI numeric(10,5),
    PERCENTUAL_PIS numeric(10,5),
    VALOR_PIS numeric(10,5),
    PERCENTUAL_COFINS numeric(10,5),
    VALOR_COFINS numeric(10,5),
    T01 numeric(10,5),
    T02 numeric(10,5),
    T03 numeric(10,5),
    T04 numeric(10,5),
    T05 numeric(10,5),
    T06 numeric(10,5),
    T07 numeric(10,5),
    T08 numeric(10,5),
    T09 numeric(10,5),
    T10 numeric(10,5),
    T11 numeric(10,5),
    T12 numeric(10,5),
    T13 numeric(10,5),
    T14 numeric(10,5),
    T15 numeric(10,5),
    T16 numeric(10,5),
    T17 numeric(10,5),
    T18 numeric(10,5),
    T19 numeric(10,5),
    T20 numeric(10,5),
    DI varchar(12),
    DI_DATA_REGISTRO date,
    DI_DATA_DESEMBARACO date,
    DI_LOCAL_DESEMBARACO varchar(60),
    DI_UF_DESEMBARACO char(2),
    DI_CODIGO_EXPORTADOR varchar(60),
    DI_ADICAO integer,
    DI_SEQUENCIAL integer,
    DI_CODIGO_FABRICANTE varchar(60),
    DI_DESCONTO_ADICAO numeric(10,2),
    DI_BASE_CALCULO numeric(10,2),
    DI_DESPESAS_ADUANEIRAS numeric(10,2),
    DI_VALOR_II numeric(10,2),
    DI_VALOR_IOF numeric(10,2),
    VALOR_ICMS numeric(10,2),
    BASECALCULO_IPI numeric(10,2),
    BASECALCULO_PIS numeric(10,2),
    BASECALCULO_COFINS numeric(10,2),
    VALOR_ACRESCIMO numeric(10,2),
    VALOR_FRETE numeric(10,2),
    VALOR_SEGURO numeric(10,2),
    VALOR_DESCONTO numeric(10,2),
    FISCAL_ISENTAS_IPI numeric(10,2),
    FISCAL_ISENTAS_ICMS numeric(10,2),
    FISCAL_OUTRAS_IPI numeric(10,2),
    FISCAL_OUTRAS_ICMS numeric(10,2),
    FISCAL_VALOR_ICMS numeric(10,2),
    FISCAL_VALOR_IPI numeric(10,2),
    FISCAL_VALOR_PIS numeric(10,2),
    FISCAL_VALOR_COFINS numeric(10,2),
    FISCAL_PERCENTUAL_ICMS numeric(10,2),
    FISCAL_PERCENTUAL_IPI numeric(10,2),
    FISCAL_PERCENTUAL_PIS numeric(10,2),
    FISCAL_PERCENTUAL_COFINS numeric(10,2),
    FISCAL_BASECALCULO_ICMS numeric(10,5),
    FISCAL_BASECALCULO_IPI numeric(10,2),
    FISCAL_BASECALCULO_PIS numeric(10,2),
    FISCAL_BASECALCULO_COFINS numeric(10,2),
    VALOR_PEDAGIO numeric(10,2),
    VALOR_CONTABIL numeric(10,2),
    VALOR_BASECALCULO_ICMS numeric(10,2),
    BASECALCULO_FCI numeric(15,4),
    CODIGO_FCI varchar(50),
    FISCAL_CFOP_CODIGO varchar(5),
    FISCAL_TRIBUTACAO_ORIGEM integer,
    FISCAL_TRIBUTACAO_ICMS integer,
    FISCAL_TRIBUTACAO_IPI char(2),
    FISCAL_TRIBUTACAO_PIS char(2),
    FISCAL_TRIBUTACAO_COFINS char(2),
    MODALIDADE_ICMS char(1),
    MODALIDADE_ICMS_ST char(1),
    MARGEM_ICMS_ST numeric(15,4),
    REDUCAO_ICMS_ST numeric(15,4),
    BASECALCULO_ICMS_ST numeric(15,4),
    ALIQUOTA_ICMS_ST numeric(15,4),
    VALOR_ICMS_ST numeric(15,4),
    FISCAL_REDUCAO_ICMS_ST numeric(10,2),
    FISCAL_BASECALCULO_ICMS_ST numeric(10,2),
    FISCAL_ALIQUOTA_ICMS_ST numeric(10,2),
    FISCAL_VALOR_ICMS_ST numeric(10,2),
    INFORMACOES_COMPLEMENTARES varchar(200),
    DI_NVE varchar(60),
    DI_TIPO_VIA_TRANSP integer,
    DI_VALOR_AFRMM numeric(15,2),
    DI_TIPO_INTERMEDIO varchar(1),
    DI_CNPJ_INTERMEDIO varchar(14),
    DI_UF_INTERMEDIO varchar(2),
    DI_NUMERO_DRAWBACK varchar(11),
    CCUSTO varchar(8),
    CONTA_CONTABIL varchar(11),
    ENQUADRAMENTO_IPI varchar(3))
as
BEGIN
INSERT INTO TbNfe_Item  (
Nfe_Controle,Estabelecimento_Codigo,Empresa_Codigo,Numero_NotaFiscal,Data_Entrada,Situacao,
Nfs,Nfs_Item_Controle,OC,OC_Item_Controle,Nf_Externo,Nf_Externo_Item_Controle             ,
Controle,Sequencia,Operacao_Codigo,Cfop_Codigo,Produto_Codigo,Produto_Descricao           ,
Produto_UnidadeMedida2,Ncm_Codigo,Tributacao_Origem,Tributacao_Ipi,Tributacao_Icms         ,
Tributacao_Pis,Tributacao_Cofins                                                          ,
Localizacao_Codigo,Quantidade,Valor_Unitario,Valor_Custo,Valor_Total,BaseCalculo_Icms,Percentual_Icms ,
Percentual_Ipi,Valor_Ipi,Percentual_Pis,Valor_Pis,Percentual_Cofins,Valor_Cofins          ,
T01,T02,T03,T04,T05,T06,T07,T08,T09,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,
DI,DI_DATA_REGISTRO,DI_DATA_DESEMBARACO,DI_LOCAL_DESEMBARACO,DI_UF_DESEMBARACO,
DI_CODIGO_EXPORTADOR,DI_ADICAO,DI_SEQUENCIAL,DI_CODIGO_FABRICANTE,DI_DESCONTO_ADICAO,
di_base_calculo,di_despesas_aduaneiras,di_valor_ii,di_valor_iof,
VALOR_ICMS,BASECALCULO_IPI,BASECALCULO_PIS,BASECALCULO_COFINS,
VALOR_ACRESCIMO,VALOR_FRETE,VALOR_SEGURO,VALOR_DESCONTO,FISCAL_ISENTAS_IPI,
FISCAL_ISENTAS_ICMS,FISCAL_OUTRAS_IPI,FISCAL_OUTRAS_ICMS,FISCAL_VALOR_ICMS,FISCAL_VALOR_IPI,
FISCAL_VALOR_PIS,FISCAL_VALOR_COFINS,FISCAL_PERCENTUAL_ICMS,FISCAL_PERCENTUAL_IPI,
FISCAL_PERCENTUAL_PIS,FISCAL_PERCENTUAL_COFINS,FISCAL_BASECALCULO_ICMS,
FISCAL_BASECALCULO_IPI,FISCAL_BASECALCULO_PIS,FISCAL_BASECALCULO_COFINS,
VALOR_PEDAGIO, VALOR_CONTABIL, valor_basecalculo_icms, basecalculo_FCI, CODIGO_FCI,
FISCAL_CFOP_CODIGO,FISCAL_TRIBUTACAO_ORIGEM,
FISCAL_TRIBUTACAO_ICMS,FISCAL_TRIBUTACAO_IPI,FISCAL_TRIBUTACAO_PIS,FISCAL_TRIBUTACAO_COFINS,
MODALIDADE_ICMS, MODALIDADE_ICMS_ST, MARGEM_ICMS_ST,
REDUCAO_ICMS_ST, BASECALCULO_ICMS_ST, ALIQUOTA_ICMS_ST, VALOR_ICMS_ST,
FISCAL_REDUCAO_ICMS_ST, FISCAL_BASECALCULO_ICMS_ST, FISCAL_ALIQUOTA_ICMS_ST, FISCAL_VALOR_ICMS_ST,
INFORMACOES_COMPLEMENTARES, DI_NVE, DI_TIPO_VIA_TRANSP, DI_VALOR_AFRMM,
DI_TIPO_INTERMEDIO, DI_CNPJ_INTERMEDIO, DI_UF_INTERMEDIO, DI_NUMERO_DRAWBACK,
CCUSTO, CONTA_CONTABIL, Enquadramento_Ipi)
VALUES  (
:Nfe_Controle,:Estabelecimento_Codigo,:Empresa_Codigo,:Numero_NotaFiscal,
:Data_Entrada,:Situacao,:Nfs,:Nfs_Item_Controle,:OC,:OC_Item_Controle,
:Nf_Externo,:Nf_Externo_Item_Controle,:Controle,:Sequencia,:Operacao_Codigo,:Cfop_Codigo,
:Produto_Codigo,:Produto_Descricao,:Produto_UnidadeMedida,:Ncm_Codigo,:Tributacao_Origem,
:Tributacao_Ipi,:Tributacao_Icms,:Tributacao_Pis,:Tributacao_Cofins,:Localizacao_Codigo,
:Quantidade,:Valor_Unitario,:Valor_Custo,:Valor_Total,:BaseCalculo_Icms,:Percentual_Icms,
:Percentual_Ipi,:Valor_Ipi,:Percentual_Pis,:Valor_Pis,:Percentual_Cofins,
:Valor_Cofins,:T01,:T02,:T03,:T04,:T05,:T06,:T07,:T08,:T09,:T10,
:T11,:T12,:T13,:T14,:T15,:T16,:T17,:T18,:T19,:T20,
:DI,:DI_DATA_REGISTRO,:DI_DATA_DESEMBARACO,:DI_LOCAL_DESEMBARACO,:DI_UF_DESEMBARACO,
:DI_CODIGO_EXPORTADOR,:DI_ADICAO,:DI_SEQUENCIAL,:DI_CODIGO_FABRICANTE,:DI_DESCONTO_ADICAO,
:di_base_calculo,:di_despesas_aduaneiras,:di_valor_ii,:di_valor_iof,
:VALOR_ICMS,:BASECALCULO_IPI,:BASECALCULO_PIS,:BASECALCULO_COFINS,
:VALOR_ACRESCIMO,:VALOR_FRETE,:VALOR_SEGURO,:VALOR_DESCONTO,:FISCAL_ISENTAS_IPI,:FISCAL_ISENTAS_ICMS,
:FISCAL_OUTRAS_IPI,:FISCAL_OUTRAS_ICMS,:FISCAL_VALOR_ICMS,:FISCAL_VALOR_IPI,
:FISCAL_VALOR_PIS,:FISCAL_VALOR_COFINS,:FISCAL_PERCENTUAL_ICMS,:FISCAL_PERCENTUAL_IPI,
:FISCAL_PERCENTUAL_PIS,:FISCAL_PERCENTUAL_COFINS,:FISCAL_BASECALCULO_ICMS,
:FISCAL_BASECALCULO_IPI,:FISCAL_BASECALCULO_PIS,:FISCAL_BASECALCULO_COFINS,
:VALOR_PEDAGIO, :VALOR_CONTABIL, :valor_basecalculo_icms, :basecalculo_FCI, :CODIGO_FCI,
:FISCAL_CFOP_CODIGO,:FISCAL_TRIBUTACAO_ORIGEM,
:FISCAL_TRIBUTACAO_ICMS,:FISCAL_TRIBUTACAO_IPI,:FISCAL_TRIBUTACAO_PIS,
:FISCAL_TRIBUTACAO_COFINS,:MODALIDADE_ICMS, :MODALIDADE_ICMS_ST, :MARGEM_ICMS_ST,
:REDUCAO_ICMS_ST, :BASECALCULO_ICMS_ST, :ALIQUOTA_ICMS_ST, :VALOR_ICMS_ST,
:FISCAL_REDUCAO_ICMS_ST, :FISCAL_BASECALCULO_ICMS_ST, :FISCAL_ALIQUOTA_ICMS_ST, :FISCAL_VALOR_ICMS_ST,
:INFORMACOES_COMPLEMENTARES, :DI_NVE, :DI_TIPO_VIA_TRANSP, :DI_VALOR_AFRMM,
:DI_TIPO_INTERMEDIO, :DI_CNPJ_INTERMEDIO, :DI_UF_INTERMEDIO, :DI_NUMERO_DRAWBACK,
:CCUSTO, :CONTA_CONTABIL, :Enquadramento_Ipi);

INSERT INTO TbNfe_Item_Saldo (
Nfe_Item_Controle,Nfe_Controle,Quantidade,
T01,T02,T03,T04,T05,T06,T07,T08,T09,T10,  
T11,T12,T13,T14,T15,T16,T17,T18,T19,T20)  
VALUES (                                  
:Controle,:Nfe_Controle,:Quantidade,
:T01,:T02,:T03,:T04,:T05,:T06,:T07,:T08,:T09,:T10,
:T11,:T12,:T13,:T14,:T15,:T16,:T17,:T18,:T19,:T20);
END
^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER procedure SPI_NFE_ITEM9 (
    NFE_CONTROLE integer,
    ESTABELECIMENTO_CODIGO integer,
    EMPRESA_CODIGO integer,
    NUMERO_NOTAFISCAL integer,
    DATA_ENTRADA date,
    SITUACAO integer,
    NFS integer,
    NFS_ITEM_CONTROLE integer,
    OC integer,
    OC_ITEM_CONTROLE integer,
    NF_EXTERNO integer,
    NF_EXTERNO_ITEM_CONTROLE integer,
    CONTROLE integer,
    SEQUENCIA integer,
    OPERACAO_CODIGO varchar(3),
    CFOP_CODIGO varchar(5),
    PRODUTO_CODIGO integer,
    PRODUTO_DESCRICAO varchar(100),
    PRODUTO_UNIDADEMEDIDA varchar(3),
    NCM_CODIGO varchar(10),
    TRIBUTACAO_ORIGEM integer,
    TRIBUTACAO_IPI varchar(2),
    TRIBUTACAO_ICMS integer,
    TRIBUTACAO_PIS char(2),
    TRIBUTACAO_COFINS char(2),
    LOCALIZACAO_CODIGO integer,
    QUANTIDADE numeric(10,5),
    VALOR_UNITARIO numeric(10,5),
    VALOR_CUSTO numeric(10,5),
    VALOR_TOTAL numeric(10,5),
    BASECALCULO_ICMS numeric(10,5),
    PERCENTUAL_ICMS numeric(10,5),
    PERCENTUAL_IPI numeric(10,5),
    VALOR_IPI numeric(10,5),
    PERCENTUAL_PIS numeric(10,5),
    VALOR_PIS numeric(10,5),
    PERCENTUAL_COFINS numeric(10,5),
    VALOR_COFINS numeric(10,5),
    T01 numeric(10,5),
    T02 numeric(10,5),
    T03 numeric(10,5),
    T04 numeric(10,5),
    T05 numeric(10,5),
    T06 numeric(10,5),
    T07 numeric(10,5),
    T08 numeric(10,5),
    T09 numeric(10,5),
    T10 numeric(10,5),
    T11 numeric(10,5),
    T12 numeric(10,5),
    T13 numeric(10,5),
    T14 numeric(10,5),
    T15 numeric(10,5),
    T16 numeric(10,5),
    T17 numeric(10,5),
    T18 numeric(10,5),
    T19 numeric(10,5),
    T20 numeric(10,5),
    DI varchar(12),
    DI_DATA_REGISTRO date,
    DI_DATA_DESEMBARACO date,
    DI_LOCAL_DESEMBARACO varchar(60),
    DI_UF_DESEMBARACO char(2),
    DI_CODIGO_EXPORTADOR varchar(60),
    DI_ADICAO integer,
    DI_SEQUENCIAL integer,
    DI_CODIGO_FABRICANTE varchar(60),
    DI_DESCONTO_ADICAO numeric(10,2),
    DI_BASE_CALCULO numeric(10,2),
    DI_DESPESAS_ADUANEIRAS numeric(10,2),
    DI_VALOR_II numeric(10,2),
    DI_VALOR_IOF numeric(10,2),
    VALOR_ICMS numeric(10,2),
    BASECALCULO_IPI numeric(10,2),
    BASECALCULO_PIS numeric(10,2),
    BASECALCULO_COFINS numeric(10,2),
    VALOR_ACRESCIMO numeric(10,2),
    VALOR_FRETE numeric(10,2),
    VALOR_SEGURO numeric(10,2),
    VALOR_DESCONTO numeric(10,2),
    FISCAL_ISENTAS_IPI numeric(10,2),
    FISCAL_ISENTAS_ICMS numeric(10,2),
    FISCAL_OUTRAS_IPI numeric(10,2),
    FISCAL_OUTRAS_ICMS numeric(10,2),
    FISCAL_VALOR_ICMS numeric(10,2),
    FISCAL_VALOR_IPI numeric(10,2),
    FISCAL_VALOR_PIS numeric(10,2),
    FISCAL_VALOR_COFINS numeric(10,2),
    FISCAL_PERCENTUAL_ICMS numeric(10,2),
    FISCAL_PERCENTUAL_IPI numeric(10,2),
    FISCAL_PERCENTUAL_PIS numeric(10,2),
    FISCAL_PERCENTUAL_COFINS numeric(10,2),
    FISCAL_BASECALCULO_ICMS numeric(10,5),
    FISCAL_BASECALCULO_IPI numeric(10,2),
    FISCAL_BASECALCULO_PIS numeric(10,2),
    FISCAL_BASECALCULO_COFINS numeric(10,2),
    VALOR_PEDAGIO numeric(10,2),
    VALOR_CONTABIL numeric(10,2),
    VALOR_BASECALCULO_ICMS numeric(10,2),
    BASECALCULO_FCI numeric(15,4),
    CODIGO_FCI varchar(50),
    FISCAL_CFOP_CODIGO varchar(5),
    FISCAL_TRIBUTACAO_ORIGEM integer,
    FISCAL_TRIBUTACAO_ICMS integer,
    FISCAL_TRIBUTACAO_IPI char(2),
    FISCAL_TRIBUTACAO_PIS char(2),
    FISCAL_TRIBUTACAO_COFINS char(2),
    MODALIDADE_ICMS char(1),
    MODALIDADE_ICMS_ST char(1),
    MARGEM_ICMS_ST numeric(15,4),
    REDUCAO_ICMS_ST numeric(15,4),
    BASECALCULO_ICMS_ST numeric(15,4),
    ALIQUOTA_ICMS_ST numeric(15,4),
    VALOR_ICMS_ST numeric(15,4),
    FISCAL_REDUCAO_ICMS_ST numeric(10,2),
    FISCAL_BASECALCULO_ICMS_ST numeric(10,2),
    FISCAL_ALIQUOTA_ICMS_ST numeric(10,2),
    FISCAL_VALOR_ICMS_ST numeric(10,2),
    INFORMACOES_COMPLEMENTARES varchar(200),
    DI_NVE varchar(60),
    DI_TIPO_VIA_TRANSP integer,
    DI_VALOR_AFRMM numeric(15,2),
    DI_TIPO_INTERMEDIO varchar(1),
    DI_CNPJ_INTERMEDIO varchar(14),
    DI_UF_INTERMEDIO varchar(2),
    DI_NUMERO_DRAWBACK varchar(11),
    CCUSTO varchar(8),
    CONTA_CONTABIL varchar(11),
    ENQUADRAMENTO_IPI varchar(3),
    QUANTIDADE_ALTERNATIVA numeric(18,4),
    UM_ALTERNATIVA varchar(3),
    VALOR_ALTERNATIVO numeric(18,10))
as
BEGIN
INSERT INTO TbNfe_Item  (
Nfe_Controle,Estabelecimento_Codigo,Empresa_Codigo,Numero_NotaFiscal,Data_Entrada,Situacao,
Nfs,Nfs_Item_Controle,OC,OC_Item_Controle,Nf_Externo,Nf_Externo_Item_Controle             ,
Controle,Sequencia,Operacao_Codigo,Cfop_Codigo,Produto_Codigo,Produto_Descricao           ,
Produto_UnidadeMedida2,Ncm_Codigo,Tributacao_Origem,Tributacao_Ipi,Tributacao_Icms         ,
Tributacao_Pis,Tributacao_Cofins                                                          ,
Localizacao_Codigo,Quantidade,Valor_Unitario,Valor_Custo,Valor_Total,BaseCalculo_Icms,Percentual_Icms ,
Percentual_Ipi,Valor_Ipi,Percentual_Pis,Valor_Pis,Percentual_Cofins,Valor_Cofins          ,
T01,T02,T03,T04,T05,T06,T07,T08,T09,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,
DI,DI_DATA_REGISTRO,DI_DATA_DESEMBARACO,DI_LOCAL_DESEMBARACO,DI_UF_DESEMBARACO,
DI_CODIGO_EXPORTADOR,DI_ADICAO,DI_SEQUENCIAL,DI_CODIGO_FABRICANTE,DI_DESCONTO_ADICAO,
di_base_calculo,di_despesas_aduaneiras,di_valor_ii,di_valor_iof,
VALOR_ICMS,BASECALCULO_IPI,BASECALCULO_PIS,BASECALCULO_COFINS,
VALOR_ACRESCIMO,VALOR_FRETE,VALOR_SEGURO,VALOR_DESCONTO,FISCAL_ISENTAS_IPI,
FISCAL_ISENTAS_ICMS,FISCAL_OUTRAS_IPI,FISCAL_OUTRAS_ICMS,FISCAL_VALOR_ICMS,FISCAL_VALOR_IPI,
FISCAL_VALOR_PIS,FISCAL_VALOR_COFINS,FISCAL_PERCENTUAL_ICMS,FISCAL_PERCENTUAL_IPI,
FISCAL_PERCENTUAL_PIS,FISCAL_PERCENTUAL_COFINS,FISCAL_BASECALCULO_ICMS,
FISCAL_BASECALCULO_IPI,FISCAL_BASECALCULO_PIS,FISCAL_BASECALCULO_COFINS,
VALOR_PEDAGIO, VALOR_CONTABIL, valor_basecalculo_icms, basecalculo_FCI, CODIGO_FCI,
FISCAL_CFOP_CODIGO,FISCAL_TRIBUTACAO_ORIGEM,
FISCAL_TRIBUTACAO_ICMS,FISCAL_TRIBUTACAO_IPI,FISCAL_TRIBUTACAO_PIS,FISCAL_TRIBUTACAO_COFINS,
MODALIDADE_ICMS, MODALIDADE_ICMS_ST, MARGEM_ICMS_ST,
REDUCAO_ICMS_ST, BASECALCULO_ICMS_ST, ALIQUOTA_ICMS_ST, VALOR_ICMS_ST,
FISCAL_REDUCAO_ICMS_ST, FISCAL_BASECALCULO_ICMS_ST, FISCAL_ALIQUOTA_ICMS_ST, FISCAL_VALOR_ICMS_ST,
INFORMACOES_COMPLEMENTARES, DI_NVE, DI_TIPO_VIA_TRANSP, DI_VALOR_AFRMM,
DI_TIPO_INTERMEDIO, DI_CNPJ_INTERMEDIO, DI_UF_INTERMEDIO, DI_NUMERO_DRAWBACK,
CCUSTO, CONTA_CONTABIL, Enquadramento_Ipi,
QUANTIDADE_ALTERNATIVA, UM_ALTERNATIVA, VALOR_ALTERNATIVO)
VALUES  (
:Nfe_Controle,:Estabelecimento_Codigo,:Empresa_Codigo,:Numero_NotaFiscal,
:Data_Entrada,:Situacao,:Nfs,:Nfs_Item_Controle,:OC,:OC_Item_Controle,
:Nf_Externo,:Nf_Externo_Item_Controle,:Controle,:Sequencia,:Operacao_Codigo,:Cfop_Codigo,
:Produto_Codigo,:Produto_Descricao,:Produto_UnidadeMedida,:Ncm_Codigo,:Tributacao_Origem,
:Tributacao_Ipi,:Tributacao_Icms,:Tributacao_Pis,:Tributacao_Cofins,:Localizacao_Codigo,
:Quantidade,:Valor_Unitario,:Valor_Custo,:Valor_Total,:BaseCalculo_Icms,:Percentual_Icms,
:Percentual_Ipi,:Valor_Ipi,:Percentual_Pis,:Valor_Pis,:Percentual_Cofins,
:Valor_Cofins,:T01,:T02,:T03,:T04,:T05,:T06,:T07,:T08,:T09,:T10,
:T11,:T12,:T13,:T14,:T15,:T16,:T17,:T18,:T19,:T20,
:DI,:DI_DATA_REGISTRO,:DI_DATA_DESEMBARACO,:DI_LOCAL_DESEMBARACO,:DI_UF_DESEMBARACO,
:DI_CODIGO_EXPORTADOR,:DI_ADICAO,:DI_SEQUENCIAL,:DI_CODIGO_FABRICANTE,:DI_DESCONTO_ADICAO,
:di_base_calculo,:di_despesas_aduaneiras,:di_valor_ii,:di_valor_iof,
:VALOR_ICMS,:BASECALCULO_IPI,:BASECALCULO_PIS,:BASECALCULO_COFINS,
:VALOR_ACRESCIMO,:VALOR_FRETE,:VALOR_SEGURO,:VALOR_DESCONTO,:FISCAL_ISENTAS_IPI,:FISCAL_ISENTAS_ICMS,
:FISCAL_OUTRAS_IPI,:FISCAL_OUTRAS_ICMS,:FISCAL_VALOR_ICMS,:FISCAL_VALOR_IPI,
:FISCAL_VALOR_PIS,:FISCAL_VALOR_COFINS,:FISCAL_PERCENTUAL_ICMS,:FISCAL_PERCENTUAL_IPI,
:FISCAL_PERCENTUAL_PIS,:FISCAL_PERCENTUAL_COFINS,:FISCAL_BASECALCULO_ICMS,
:FISCAL_BASECALCULO_IPI,:FISCAL_BASECALCULO_PIS,:FISCAL_BASECALCULO_COFINS,
:VALOR_PEDAGIO, :VALOR_CONTABIL, :valor_basecalculo_icms, :basecalculo_FCI, :CODIGO_FCI,
:FISCAL_CFOP_CODIGO,:FISCAL_TRIBUTACAO_ORIGEM,
:FISCAL_TRIBUTACAO_ICMS,:FISCAL_TRIBUTACAO_IPI,:FISCAL_TRIBUTACAO_PIS,
:FISCAL_TRIBUTACAO_COFINS,:MODALIDADE_ICMS, :MODALIDADE_ICMS_ST, :MARGEM_ICMS_ST,
:REDUCAO_ICMS_ST, :BASECALCULO_ICMS_ST, :ALIQUOTA_ICMS_ST, :VALOR_ICMS_ST,
:FISCAL_REDUCAO_ICMS_ST, :FISCAL_BASECALCULO_ICMS_ST, :FISCAL_ALIQUOTA_ICMS_ST, :FISCAL_VALOR_ICMS_ST,
:INFORMACOES_COMPLEMENTARES, :DI_NVE, :DI_TIPO_VIA_TRANSP, :DI_VALOR_AFRMM,
:DI_TIPO_INTERMEDIO, :DI_CNPJ_INTERMEDIO, :DI_UF_INTERMEDIO, :DI_NUMERO_DRAWBACK,
:CCUSTO, :CONTA_CONTABIL, :Enquadramento_Ipi,
:QUANTIDADE_ALTERNATIVA, :UM_ALTERNATIVA, :VALOR_ALTERNATIVO);

INSERT INTO TbNfe_Item_Saldo (
Nfe_Item_Controle,Nfe_Controle,Quantidade,
T01,T02,T03,T04,T05,T06,T07,T08,T09,T10,  
T11,T12,T13,T14,T15,T16,T17,T18,T19,T20)  
VALUES (                                  
:Controle,:Nfe_Controle,:Quantidade,
:T01,:T02,:T03,:T04,:T05,:T06,:T07,:T08,:T09,:T10,
:T11,:T12,:T13,:T14,:T15,:T16,:T17,:T18,:T19,:T20);
END
^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER procedure SPU_NFE_ITEM (
    NFE_CONTROLE integer,
    CONTROLE integer,
    ESTABELECIMENTO_CODIGO integer,
    EMPRESA_CODIGO integer,
    PRODUTO_DESCRICAO varchar(100),
    PRODUTO_UNIDADEMEDIDA varchar(3),
    LOCALIZACAO_CODIGO integer,
    NUMERO_NOTAFISCAL integer,
    DATA_ENTRADA date,
    SITUACAO integer,
    NF_NATUREZA integer,
    CFOP_CODIGO varchar(5),
    NCM_CODIGO varchar(10),
    TRIBUTACAO_ORIGEM integer,
    TRIBUTACAO_IPI varchar(2),
    TRIBUTACAO_ICMS integer,
    TRIBUTACAO_PIS char(2),
    TRIBUTACAO_COFINS char(2),
    BASECALCULO_ICMS numeric(10,5),
    PERCENTUAL_ICMS numeric(10,5),
    PERCENTUAL_IPI numeric(10,5),
    VALOR_IPI numeric(10,5),
    PERCENTUAL_PIS numeric(10,5),
    VALOR_PIS numeric(10,5),
    PERCENTUAL_COFINS numeric(10,5),
    VALOR_COFINS numeric(10,5),
    VALOR_ICMS numeric(10,2),
    BASECALCULO_IPI numeric(10,2),
    BASECALCULO_PIS numeric(10,2),
    BASECALCULO_COFINS numeric(10,2),
    VALOR_ACRESCIMO numeric(10,2),
    VALOR_DESCONTO numeric(10,2),
    VALOR_FRETE numeric(10,2),
    VALOR_SEGURO numeric(10,2),
    FISCAL_ISENTAS_IPI numeric(10,2),
    FISCAL_ISENTAS_ICMS numeric(10,2),
    FISCAL_OUTRAS_IPI numeric(10,2),
    FISCAL_OUTRAS_ICMS numeric(10,2),
    FISCAL_VALOR_ICMS numeric(10,2),
    FISCAL_VALOR_IPI numeric(10,2),
    FISCAL_VALOR_PIS numeric(10,2),
    FISCAL_VALOR_COFINS numeric(10,2),
    FISCAL_PERCENTUAL_ICMS numeric(10,2),
    FISCAL_PERCENTUAL_IPI numeric(10,2),
    FISCAL_PERCENTUAL_PIS numeric(10,2),
    FISCAL_PERCENTUAL_COFINS numeric(10,2),
    FISCAL_BASECALCULO_ICMS numeric(10,2),
    FISCAL_BASECALCULO_IPI numeric(10,2),
    FISCAL_BASECALCULO_PIS numeric(10,2),
    FISCAL_BASECALCULO_COFINS numeric(10,2),
    VALOR_PEDAGIO numeric(10,2),
    VALOR_CONTABIL numeric(10,2),
    FISCAL_CFOP_CODIGO varchar(5),
    FISCAL_TRIBUTACAO_ORIGEM integer,
    FISCAL_TRIBUTACAO_ICMS integer,
    FISCAL_TRIBUTACAO_IPI char(2),
    FISCAL_TRIBUTACAO_PIS char(2),
    FISCAL_TRIBUTACAO_COFINS char(2),
    VALOR_UNITARIO numeric(15,6),
    VALOR_TOTAL numeric(10,5),
    VALOR_BASECALCULO_ICMS numeric(10,2),
    MODALIDADE_ICMS char(1),
    MODALIDADE_ICMS_ST char(1),
    MARGEM_ICMS_ST numeric(15,4),
    REDUCAO_ICMS_ST numeric(15,4),
    BASECALCULO_ICMS_ST numeric(15,4),
    ALIQUOTA_ICMS_ST numeric(15,4),
    VALOR_ICMS_ST numeric(15,4),
    FISCAL_REDUCAO_ICMS_ST numeric(10,2),
    FISCAL_BASECALCULO_ICMS_ST numeric(10,2),
    FISCAL_ALIQUOTA_ICMS_ST numeric(10,2),
    FISCAL_VALOR_ICMS_ST numeric(15,4),
    GC_WEB integer,
    QUANTIDADE numeric(10,5),
    QUANTIDADE_ALTERNATIVA numeric(18,4),
    UM_ALTERNATIVA varchar(3),
    VALOR_ALTERNATIVO numeric(18,10),
    VALOR_CUSTO numeric(10,5),
    OUTROS_CUSTOS numeric(15,2),
    INFORMACOES_COMPLEMENTARES varchar(500),
    T01 numeric(10,5),
    T02 numeric(10,5),
    T03 numeric(10,5),
    T04 numeric(10,5),
    T05 numeric(10,5),
    T06 numeric(10,5),
    T07 numeric(10,5),
    T08 numeric(10,5),
    T09 numeric(10,5),
    T10 numeric(10,5),
    T11 numeric(10,5),
    T12 numeric(10,5),
    T13 numeric(10,5),
    T14 numeric(10,5),
    T15 numeric(10,5),
    T16 numeric(10,5),
    T17 numeric(10,5),
    T18 numeric(10,5),
    T19 numeric(10,5),
    T20 numeric(10,5),
    DI varchar(12),
    DI_DATA_REGISTRO date,
    DI_DATA_DESEMBARACO date,
    DI_LOCAL_DESEMBARACO varchar(60),
    DI_UF_DESEMBARACO char(2),
    DI_CODIGO_EXPORTADOR varchar(60),
    DI_ADICAO integer,
    DI_SEQUENCIAL integer,
    DI_CODIGO_FABRICANTE varchar(60),
    DI_DESCONTO_ADICAO numeric(10,2),
    DI_BASE_CALCULO numeric(10,2),
    DI_DESPESAS_ADUANEIRAS numeric(10,2),
    DI_VALOR_II numeric(10,2),
    DI_VALOR_IOF numeric(10,2),
    DI_NVE varchar(60),
    DI_TIPO_VIA_TRANSP integer,
    DI_VALOR_AFRMM numeric(15,2),
    DI_TIPO_INTERMEDIO varchar(1),
    DI_CNPJ_INTERMEDIO varchar(14),
    DI_UF_INTERMEDIO varchar(2),
    DI_NUMERO_DRAWBACK varchar(11))
as
BEGIN

-- UPDATE TBNFE_ITEM
UPDATE TBNFE_ITEM SET
ESTABELECIMENTO_CODIGO = :ESTABELECIMENTO_CODIGO,
EMPRESA_CODIGO = :EMPRESA_CODIGO,
PRODUTO_DESCRICAO   = :PRODUTO_DESCRICAO,
PRODUTO_UNIDADEMEDIDA2 = :PRODUTO_UNIDADEMEDIDA,
LOCALIZACAO_CODIGO  = :LOCALIZACAO_CODIGO,
NUMERO_NOTAFISCAL = :NUMERO_NOTAFISCAL,
DATA_ENTRADA = :DATA_ENTRADA,
NF_SITUACAO = :SITUACAO,
NF_NATUREZA = :NF_NATUREZA,
CFOP_CODIGO = :CFOP_CODIGO,
NCM_CODIGO = :NCM_CODIGO,
TRIBUTACAO_ORIGEM = :TRIBUTACAO_ORIGEM,
TRIBUTACAO_IPI = :TRIBUTACAO_IPI,
TRIBUTACAO_ICMS = :TRIBUTACAO_ICMS,
TRIBUTACAO_PIS = :TRIBUTACAO_PIS,
TRIBUTACAO_COFINS = :TRIBUTACAO_COFINS,
BASECALCULO_ICMS = :BASECALCULO_ICMS,
PERCENTUAL_ICMS = :PERCENTUAL_ICMS ,
PERCENTUAL_IPI = :PERCENTUAL_IPI,
VALOR_IPI = :VALOR_IPI,
PERCENTUAL_PIS = :PERCENTUAL_PIS,
VALOR_PIS = :VALOR_PIS,
PERCENTUAL_COFINS = :PERCENTUAL_COFINS,
VALOR_COFINS = :VALOR_COFINS,
VALOR_ICMS                = :VALOR_ICMS           ,
BASECALCULO_IPI           = :BASECALCULO_IPI      ,
BASECALCULO_PIS           = :BASECALCULO_PIS      ,
BASECALCULO_COFINS        = :BASECALCULO_COFINS   ,
VALOR_ACRESCIMO           = :VALOR_ACRESCIMO      ,
VALOR_DESCONTO            = :VALOR_DESCONTO       ,
VALOR_FRETE               = :VALOR_FRETE,
VALOR_SEGURO              = :VALOR_SEGURO,
FISCAL_ISENTAS_IPI        = :FISCAL_ISENTAS_IPI   ,
FISCAL_ISENTAS_ICMS       = :FISCAL_ISENTAS_ICMS  ,
FISCAL_OUTRAS_IPI         = :FISCAL_OUTRAS_IPI    ,
FISCAL_OUTRAS_ICMS        = :FISCAL_OUTRAS_ICMS   ,
FISCAL_VALOR_ICMS         = :FISCAL_VALOR_ICMS    ,
FISCAL_VALOR_IPI          = :FISCAL_VALOR_IPI     ,
FISCAL_VALOR_PIS          = :FISCAL_VALOR_PIS     ,
FISCAL_VALOR_COFINS       = :FISCAL_VALOR_COFINS  ,
FISCAL_PERCENTUAL_ICMS    = :FISCAL_PERCENTUAL_ICMS,
FISCAL_PERCENTUAL_IPI     = :FISCAL_PERCENTUAL_IPI ,
FISCAL_PERCENTUAL_PIS     = :FISCAL_PERCENTUAL_PIS ,
FISCAL_PERCENTUAL_COFINS  = :FISCAL_PERCENTUAL_COFINS,
FISCAL_BASECALCULO_ICMS   = :FISCAL_BASECALCULO_ICMS ,
FISCAL_BASECALCULO_IPI    = :FISCAL_BASECALCULO_IPI  ,
FISCAL_BASECALCULO_PIS    = :FISCAL_BASECALCULO_PIS  ,
FISCAL_BASECALCULO_COFINS = :FISCAL_BASECALCULO_COFINS,
VALOR_PEDAGIO = :VALOR_PEDAGIO,
VALOR_CONTABIL = :VALOR_CONTABIL,
FISCAL_CFOP_CODIGO = :FISCAL_CFOP_CODIGO,
FISCAL_TRIBUTACAO_ORIGEM  = :FISCAL_TRIBUTACAO_ORIGEM,
FISCAL_TRIBUTACAO_ICMS    = :FISCAL_TRIBUTACAO_ICMS,
FISCAL_TRIBUTACAO_IPI     = :FISCAL_TRIBUTACAO_IPI,
FISCAL_TRIBUTACAO_PIS     = :FISCAL_TRIBUTACAO_PIS,
FISCAL_TRIBUTACAO_COFINS  = :FISCAL_TRIBUTACAO_COFINS,
VALOR_UNITARIO     = :VALOR_UNITARIO,
VALOR_TOTAL        = :VALOR_TOTAL,
VALOR_BASECALCULO_ICMS = :VALOR_BASECALCULO_ICMS,
MODALIDADE_ICMS    = :MODALIDADE_ICMS,
MODALIDADE_ICMS_ST = :MODALIDADE_ICMS_ST,
MARGEM_ICMS_ST     = :MARGEM_ICMS_ST,
REDUCAO_ICMS_ST    = :REDUCAO_ICMS_ST,
BASECALCULO_ICMS_ST= :BASECALCULO_ICMS_ST,
ALIQUOTA_ICMS_ST   = :ALIQUOTA_ICMS_ST,
VALOR_ICMS_ST      = :VALOR_ICMS_ST,
FISCAL_REDUCAO_ICMS_ST = :FISCAL_REDUCAO_ICMS_ST,
FISCAL_BASECALCULO_ICMS_ST = :FISCAL_BASECALCULO_ICMS_ST,
FISCAL_ALIQUOTA_ICMS_ST = :FISCAL_ALIQUOTA_ICMS_ST,
FISCAL_VALOR_ICMS_ST = :FISCAL_VALOR_ICMS_ST,
GC_WEB             = :GC_WEB,
QUANTIDADE         = :QUANTIDADE,
QUANTIDADE_ALTERNATIVA              = :QUANTIDADE_ALTERNATIVA,
UM_ALTERNATIVA                      = :UM_ALTERNATIVA,
VALOR_ALTERNATIVO                   = :VALOR_ALTERNATIVO,
VALOR_CUSTO                         = :VALOR_CUSTO,
OUTROS_CUSTOS                       = :OUTROS_CUSTOS,
INFORMACOES_COMPLEMENTARES          = :INFORMACOES_COMPLEMENTARES,
T01 = :T01, T02 = :T02, T03 = :T03, T04 = :T04,
   T05 = :T05, T06 = :T06, T07 = :T07, T08 = :T08,
   T09 = :T09, T10 = :T10, T11 = :T11, T12 = :T12,
   T13 = :T13, T14 = :T14, T15 = :T15, T16 = :T16,
   T17 = :T17, T18 = :T18, T19 = :T19, T20 = :T20,

DI                      = :DI,
DI_DATA_REGISTRO        = :DI_DATA_REGISTRO,
DI_DATA_DESEMBARACO     = :DI_DATA_DESEMBARACO,
DI_LOCAL_DESEMBARACO    = :DI_LOCAL_DESEMBARACO,
DI_UF_DESEMBARACO       = :DI_UF_DESEMBARACO,
DI_CODIGO_EXPORTADOR    = :DI_CODIGO_EXPORTADOR,
DI_ADICAO               = :DI_ADICAO,
DI_SEQUENCIAL           = :DI_SEQUENCIAL,
DI_CODIGO_FABRICANTE    = :DI_CODIGO_FABRICANTE,
DI_DESCONTO_ADICAO      = :DI_DESCONTO_ADICAO,
DI_BASE_CALCULO         = :DI_BASE_CALCULO,
DI_DESPESAS_ADUANEIRAS  = :DI_DESPESAS_ADUANEIRAS,
DI_VALOR_II             = :DI_VALOR_II,
DI_VALOR_IOF            = :DI_VALOR_IOF,
DI_NVE                  = :DI_NVE,
DI_TIPO_VIA_TRANSP      = :DI_TIPO_VIA_TRANSP,
DI_VALOR_AFRMM          = :DI_VALOR_AFRMM,
DI_TIPO_INTERMEDIO      = :DI_TIPO_INTERMEDIO,
DI_CNPJ_INTERMEDIO      = :DI_CNPJ_INTERMEDIO,
DI_UF_INTERMEDIO        = :DI_UF_INTERMEDIO,
DI_NUMERO_DRAWBACK      = :DI_NUMERO_DRAWBACK

WHERE NFE_CONTROLE = :NFE_CONTROLE
  AND CONTROLE = :CONTROLE;

  UPDATE  TbNfe_Item_Saldo SET
Quantidade = :QUANTIDADE,
T01 = :T01, T02 = :T02, T03 = :T03, T04 = :T04,
   T05 = :T05, T06 = :T06, T07 = :T07, T08 = :T08,
   T09 = :T09, T10 = :T10, T11 = :T11, T12 = :T12,
   T13 = :T13, T14 = :T14, T15 = :T15, T16 = :T16,
   T17 = :T17, T18 = :T18, T19 = :T19, T20 = :T20
WHERE Nfe_Item_Controle = :CONTROLE AND Nfe_Controle = :NFE_CONTROLE;
END
^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER trigger ttboc_item_b04u for tboc_item
inactive 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.PRODUTO_CODIGO <> OLD.PRODUTO_CODIGO) THEN
        BEGIN                  
            HISTORICO = HISTORICO||' Prod.'||OLD.PRODUTO_CODIGO||' -> '||NEW.PRODUTO_CODIGO;
        END

    IF(NEW.QUANTIDADE <> OLD.QUANTIDADE) THEN
        BEGIN
           HISTORICO = HISTORICO||' Qtd:'||OLD.QUANTIDADE||' -> '||NEW.QUANTIDADE;
        END 
    IF(NEW.IPI <> OLD.IPI) THEN
        BEGIN
           HISTORICO = HISTORICO||' IPI:'||OLD.IPI||' -> '||NEW.IPI;
        END
    IF(NEW.VALOR <> OLD.VALOR) THEN
        BEGIN
           HISTORICO = HISTORICO||' Vr.Unit:'||OLD.VALOR||' -> '||NEW.VALOR;
        END
    IF(NEW.DATA_ENTREGA <> OLD.DATA_ENTREGA) THEN
        BEGIN
           HISTORICO = HISTORICO||' Prev.Entr:'||FN_DATE_TO_STRING(OLD.DATA_ENTREGA)||' -> '||FN_DATE_TO_STRING(NEW.DATA_ENTREGA);
        END
    IF(NEW.SITUACAO <> OLD.SITUACAO) THEN
        BEGIN
           HISTORICO = HISTORICO||' Sit:'||OLD.SITUACAO||' -> '||NEW.SITUACAO;
        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.OBSERVACAO <> OLD.OBSERVACAO) THEN
        BEGIN
          HISTORICO = HISTORICO||' Obs:'||OLD.OBSERVACAO||' -> '||NEW.OBSERVACAO;
        END 
    IF(NEW.DATA_SAIDA <> OLD.DATA_SAIDA) THEN
        BEGIN
          HISTORICO = HISTORICO||' Prev.Saida:'||FN_DATE_TO_STRING(OLD.DATA_SAIDA)||' -> '||FN_DATE_TO_STRING(NEW.DATA_SAIDA);
        END 
    IF(NEW.ACRESCIMO <> OLD.ACRESCIMO) THEN
        BEGIN
          HISTORICO = HISTORICO||' Vr.Acresc:'||OLD.ACRESCIMO||' -> '||NEW.ACRESCIMO;
        END 
    IF(NEW.DESCONTO <> OLD.DESCONTO) THEN
        BEGIN
          HISTORICO = HISTORICO||' Vr.Desc:'||OLD.DESCONTO||' -> '||NEW.DESCONTO;
        END 
    IF(NEW.CLASSIFICACAO_FINANCEIRA <> OLD.CLASSIFICACAO_FINANCEIRA) THEN
        BEGIN
          HISTORICO = HISTORICO||' Class.Fin:'||OLD.CLASSIFICACAO_FINANCEIRA||' -> '||NEW.CLASSIFICACAO_FINANCEIRA;
        END 
    IF(NEW.CCUSTO <> OLD.CCUSTO) THEN
        BEGIN
          HISTORICO = HISTORICO||' C.Custo:'||OLD.CCUSTO||' -> '||NEW.CCUSTO;
        END 
    IF(NEW.LOCALIZACAO_CODIGO <> OLD.LOCALIZACAO_CODIGO) THEN
        BEGIN
          HISTORICO = HISTORICO||' Loc:'||OLD.LOCALIZACAO_CODIGO||' -> '||NEW.LOCALIZACAO_CODIGO;
        END 
    IF(NEW.OPERACAO_CODIGO <> OLD.OPERACAO_CODIGO) THEN
        BEGIN
          HISTORICO = HISTORICO||' Oper.'||OLD.OPERACAO_CODIGO||' -> '||NEW.OPERACAO_CODIGO;
        END 
    IF(NEW.CONTA_CONTABIL <> OLD.CONTA_CONTABIL) THEN
        BEGIN
          HISTORICO = HISTORICO||' C.Contabil:'||OLD.CONTA_CONTABIL||' -> '||NEW.CONTA_CONTABIL;
        END 
    IF(NEW.ORCAMENTO_ID <> OLD.ORCAMENTO_ID) THEN
        BEGIN
          HISTORICO = HISTORICO||' Orcam:'||OLD.ORCAMENTO_ID||' -> '||NEW.ORCAMENTO_ID;
        END 
    IF(NEW.VALOR_REF <> OLD.VALOR_REF) THEN
        BEGIN
            HISTORICO = HISTORICO||' Vr.Ref:'||OLD.VALOR_REF||' -> '||NEW.VALOR_REF;
        END 
    IF(NEW.PDESCONTO <> OLD.PDESCONTO) THEN
        BEGIN
            HISTORICO = HISTORICO||' %Desc:'||OLD.PDESCONTO||' -> '||NEW.PDESCONTO;
        END 
    IF(NEW.PACRESCIMO <> OLD.PACRESCIMO) THEN
        BEGIN
            HISTORICO = HISTORICO||' %Acres:'||OLD.PACRESCIMO||' -> '||NEW.PACRESCIMO;
        END 
    IF(NEW.PERCENTUAL_ICMS <> OLD.PERCENTUAL_ICMS) THEN
        BEGIN
            HISTORICO = HISTORICO||' %ICMS:'||OLD.PERCENTUAL_ICMS||' -> '||NEW.PERCENTUAL_ICMS;
        END 
    IF(NEW.PERCENTUAL_PIS <> OLD.PERCENTUAL_PIS) THEN
        BEGIN
            HISTORICO = HISTORICO||' %PIS:'||OLD.PERCENTUAL_PIS||' -> '||NEW.PERCENTUAL_PIS;
        END 
    IF(NEW.PERCENTUAL_COFINS <> OLD.PERCENTUAL_COFINS) THEN
        BEGIN
            HISTORICO = HISTORICO||' %Cof:'||OLD.PERCENTUAL_COFINS||' -> '||NEW.PERCENTUAL_COFINS;
        END 
    IF(NEW.QUANTIDADE_ALTERNATIVA <> OLD.QUANTIDADE_ALTERNATIVA) THEN
        BEGIN
            HISTORICO = HISTORICO||' Qtd.Alt:'||OLD.QUANTIDADE_ALTERNATIVA||' -> '||NEW.QUANTIDADE_ALTERNATIVA;
        END 
    IF(NEW.UM_ALTERNATIVA2 <> OLD.UM_ALTERNATIVA2) THEN
        BEGIN
            HISTORICO = HISTORICO||' UM.Alt:'||OLD.UM_ALTERNATIVA2||' -> '||NEW.UM_ALTERNATIVA2;
        END 
    IF(NEW.VALOR_ALTERNATIVO <> OLD.VALOR_ALTERNATIVO) THEN
        BEGIN
            HISTORICO = HISTORICO||' Vr.Unit.Alt:'||OLD.VALOR_ALTERNATIVO||' -> '||NEW.VALOR_ALTERNATIVO;
        END
    IF(NEW.TAXA_MOEDA <> OLD.TAXA_MOEDA) THEN
        BEGIN
            HISTORICO = HISTORICO||' Tx.Moeda:'||OLD.TAXA_MOEDA||' -> '||NEW.TAXA_MOEDA;
        END
    IF(NEW.VALOR_UNIT_ESTRANGEIRO <> OLD.VALOR_UNIT_ESTRANGEIRO) THEN
        BEGIN
            HISTORICO = HISTORICO||' Vr.Unit.Estrang.'||OLD.VALOR_UNIT_ESTRANGEIRO||' -> '||NEW.VALOR_UNIT_ESTRANGEIRO;
        END
 IF (HISTORICO <> '') THEN
    BEGIN
        HISTORICO = 'Item alterado. (Seq.'||NEW.SEQUENCIA||') '||HISTORICO;
        HISTORICO = FN_ELIPSES(HISTORICO,500);
        EXECUTE PROCEDURE SPI_HISTORICO('TBOC', NEW.OC, HISTORICO);
    END
END
^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER procedure SPC_NFS_ITEM10 (
    CONTROLE_1 integer)
returns (
    NFS_CONTROLE integer,
    SEQUENCIA integer,
    OPERACAO_CODIGO varchar(3),
    CFOP_CODIGO varchar(5),
    PRODUTO_CODIGO integer,
    PRODUTO_DESCRICAO varchar(100),
    PRODUTO_UNIDADEMEDIDA varchar(3),
    GRADE_CODIGO integer,
    NCM_CODIGO varchar(10),
    TRIBUTACAO_ICMS integer,
    TRIBUTACAO_IPI varchar(2),
    TRIBUTACAO_ORIGEM integer,
    LOCALIZACAO_CODIGO integer,
    QUANTIDADE numeric(10,5),
    VALOR_UNITARIO numeric(10,5),
    VALOR_TOTAL numeric(10,5),
    BASECALCULO_ICMS numeric(10,5),
    PERCENTUAL_ICMS numeric(10,5),
    PERCENTUAL_IPI numeric(10,5),
    VALOR_IPI numeric(10,5),
    PERCENTUAL_PIS numeric(10,5),
    VALOR_PIS numeric(10,5),
    PERCENTUAL_COFINS numeric(10,5),
    VALOR_COFINS numeric(10,5),
    NFE integer,
    NFE_ITEM_CONTROLE integer,
    NF_EXTERNO integer,
    NF_EXTERNO_ITEM_CONTROLE integer,
    PEDIDO integer,
    PEDIDO_ITEM_PE_CONTROLE integer,
    T01 numeric(10,5),
    T02 numeric(10,5),
    T03 numeric(10,5),
    T04 numeric(10,5),
    T05 numeric(10,5),
    T06 numeric(10,5),
    T07 numeric(10,5),
    T08 numeric(10,5),
    T09 numeric(10,5),
    T10 numeric(10,5),
    T11 numeric(10,5),
    T12 numeric(10,5),
    T13 numeric(10,5),
    T14 numeric(10,5),
    T15 numeric(10,5),
    T16 numeric(10,5),
    T17 numeric(10,5),
    T18 numeric(10,5),
    T19 numeric(10,5),
    T20 numeric(10,5),
    ESTABELECIMENTO_CODIGO integer,
    EMPRESA_CODIGO integer,
    NUMERO_NOTAFISCAL integer,
    DATA_EMISSAO date,
    SITUACAO integer,
    CONTROLE integer,
    VALOR_CUSTO numeric(10,5),
    PRODUTO_GRADE_CODIGO integer,
    MODELO_CODIGO integer,
    TECELAGEM integer,
    TRIBUTACAO_PIS varchar(2),
    TRIBUTACAO_COFINS varchar(2),
    VALOR_ICMS numeric(10,2),
    BASECALCULO_IPI numeric(10,2),
    BASECALCULO_PIS numeric(10,2),
    BASECALCULO_COFINS numeric(10,2),
    LOCALIZACAO_DESCRICAO varchar(20),
    VALOR_FRETE numeric(10,2),
    VALOR_SEGURO numeric(10,2),
    PESO_LIQUIDO numeric(10,4),
    PESO_BRUTO numeric(10,4),
    VOLUMES integer,
    CUBAGEM numeric(10,4),
    VALOR_ACRESCIMO numeric(10,2),
    VALOR_DESCONTO numeric(10,2),
    FISCAL_ISENTAS_IPI numeric(10,2),
    FISCAL_ISENTAS_ICMS numeric(10,2),
    FISCAL_OUTRAS_IPI numeric(10,2),
    FISCAL_OUTRAS_ICMS numeric(10,2),
    FISCAL_VALOR_ICMS numeric(10,2),
    FISCAL_VALOR_IPI numeric(10,2),
    FISCAL_VALOR_PIS numeric(10,2),
    FISCAL_VALOR_COFINS numeric(10,2),
    FISCAL_PERCENTUAL_ICMS numeric(10,2),
    FISCAL_PERCENTUAL_IPI numeric(10,2),
    FISCAL_PERCENTUAL_PIS numeric(10,2),
    FISCAL_PERCENTUAL_COFINS numeric(10,2),
    FISCAL_BASECALCULO_ICMS numeric(10,5),
    FISCAL_BASECALCULO_IPI numeric(10,2),
    FISCAL_BASECALCULO_PIS numeric(10,2),
    FISCAL_BASECALCULO_COFINS numeric(10,2),
    VALOR_CONTABIL numeric(10,2),
    VALOR_BASECALCULO_ICMS numeric(10,2),
    FISCAL_CFOP_CODIGO varchar(5),
    FISCAL_TRIBUTACAO_ORIGEM integer,
    FISCAL_TRIBUTACAO_ICMS integer,
    FISCAL_TRIBUTACAO_IPI char(2),
    FISCAL_TRIBUTACAO_PIS char(2),
    FISCAL_TRIBUTACAO_COFINS char(2),
    MODALIDADE_ICMS char(1),
    MODALIDADE_ICMS_ST char(1),
    MARGEM_ICMS_ST numeric(15,4),
    REDUCAO_ICMS_ST numeric(15,4),
    BASECALCULO_ICMS_ST numeric(15,4),
    ALIQUOTA_ICMS_ST numeric(15,4),
    VALOR_ICMS_ST numeric(15,4),
    FISCAL_REDUCAO_ICMS_ST numeric(10,2),
    FISCAL_BASECALCULO_ICMS_ST numeric(10,2),
    FISCAL_ALIQUOTA_ICMS_ST numeric(10,2),
    FISCAL_VALOR_ICMS_ST numeric(10,2),
    PEDIDO_CLIENTE varchar(15),
    INFORMACOES_COMPLEMENTARES varchar(500),
    NF_CONSIGNACAO integer,
    NF_CONSIGNACAO_ITEM integer,
    FCI_MENSAGEM varchar(255),
    FCI_PARCELA_IMPORTACAO numeric(15,2),
    FCI_CONTEUDO_IMPORTACAO numeric(15,2),
    FCI_NUMERO varchar(40),
    ENQUADRAMENTO_IPI varchar(3),
    CCUSTO varchar(8),
    CONTA_CONTABIL varchar(11),
    VBCUFDEST numeric(15,2),
    PFCPUFDEST numeric(15,2),
    PICMSUFDEST numeric(15,2),
    PICMSINTER numeric(15,2),
    VFCPUFDEST numeric(15,2),
    VICMSUFDEST numeric(15,2),
    VICMSUFREMET numeric(15,2),
    PICMSINTERPART numeric(15,2),
    QUANTIDADE_ALTERNATIVA numeric(18,4),
    UM_ALTERNATIVA varchar(3),
    VALOR_ALTERNATIVO numeric(18,10),
    REDUCAO_BASE_PISCOF char(1))
as
begin
for select
A.NFS_CONTROLE      ,A.SEQUENCIA        ,A.OPERACAO_CODIGO      ,A.CFOP_CODIGO      ,
A.PRODUTO_CODIGO    ,A.PRODUTO_DESCRICAO,A.PRODUTO_UNIDADEMEDIDA2,A.GRADE_CODIGO     ,
A.NCM_CODIGO        ,A.TRIBUTACAO_ICMS  ,A.TRIBUTACAO_IPI       ,A.TRIBUTACAO_ORIGEM,
A.LOCALIZACAO_CODIGO,A.QUANTIDADE       ,A.VALOR_UNITARIO       ,A.VALOR_TOTAL      ,
A.BASECALCULO_ICMS  ,A.PERCENTUAL_ICMS  ,A.PERCENTUAL_IPI       ,A.VALOR_IPI        ,
A.PERCENTUAL_PIS    ,A.VALOR_PIS        ,A.PERCENTUAL_COFINS    ,A.VALOR_COFINS     ,
A.NFE, A.NFE_ITEM_CONTROLE, A.NF_EXTERNO, A.NF_EXTERNO_ITEM_CONTROLE,
A.PEDIDO,A.PEDIDO_ITEM_PE_CONTROLE,
A.T01,A.T02,A.T03,A.T04,A.T05,A.T06,A.T07,A.T08,A.T09,A.T10,
A.T11,A.T12,A.T13,A.T14,A.T15,A.T16,A.T17,A.T18,A.T19,A.T20,
A.ESTABELECIMENTO_CODIGO,A.EMPRESA_CODIGO,A.NUMERO_NOTAFISCAL,A.DATA_EMISSAO,
A.SITUACAO,A.CONTROLE,A.VALOR_CUSTO,
(Select First 1 E.grade_codigo  From TbProduto E Where A.Produto_Codigo = E.Codigo),
(Select First 1 E.modelo_codigo From TbProduto E Where A.Produto_Codigo = E.Codigo),
A.Tecelagem,A.tributacao_PIS, A.tributacao_cofins,
A.VALOR_ICMS,A.BASECALCULO_IPI,A.BASECALCULO_PIS,A.BASECALCULO_COFINS,

(Select First 1 L.Descricao From TbLocalizacao L Where A.Localizacao_Codigo = L.Codigo),
A.VALOR_FRETE, A.VALOR_SEGURO, A.PESO_LIQUIDO, A.PESO_BRUTO, A.VOLUMES, A.CUBAGEM,

A.VALOR_ACRESCIMO,A.VALOR_DESCONTO,A.FISCAL_ISENTAS_IPI,A.FISCAL_ISENTAS_ICMS,
A.FISCAL_OUTRAS_IPI,A.FISCAL_OUTRAS_ICMS,A.FISCAL_VALOR_ICMS,A.FISCAL_VALOR_IPI,
A.FISCAL_VALOR_PIS,A.FISCAL_VALOR_COFINS,A.FISCAL_PERCENTUAL_ICMS,A.FISCAL_PERCENTUAL_IPI,
A.FISCAL_PERCENTUAL_PIS,A.FISCAL_PERCENTUAL_COFINS,A.FISCAL_BASECALCULO_ICMS,
A.FISCAL_BASECALCULO_IPI,A.FISCAL_BASECALCULO_PIS,A.FISCAL_BASECALCULO_COFINS,
A.VALOR_CONTABIL, A.Valor_BaseCalculo_Icms, A.FISCAL_CFOP_CODIGO,
A.FISCAL_TRIBUTACAO_ORIGEM,A.FISCAL_TRIBUTACAO_ICMS,A.FISCAL_TRIBUTACAO_IPI,
A.FISCAL_TRIBUTACAO_PIS,A.FISCAL_TRIBUTACAO_COFINS,

A.MODALIDADE_ICMS, A.MODALIDADE_ICMS_ST, A.MARGEM_ICMS_ST, A.REDUCAO_ICMS_ST,
A.BASECALCULO_ICMS_ST, A.ALIQUOTA_ICMS_ST, A.VALOR_ICMS_ST, A.FISCAL_REDUCAO_ICMS_ST,
A.FISCAL_BASECALCULO_ICMS_ST, A.FISCAL_ALIQUOTA_ICMS_ST, A.FISCAL_VALOR_ICMS_ST,
A.PEDIDO_CLIENTE,
A.INFORMACOES_COMPLEMENTARES, A.Nf_Consignacao, A.Nf_Consignacao_Item,
A.FCI_MENSAGEM, A.FCI_PARCELA_IMPORTACAO, A.FCI_CONTEUDO_IMPORTACAO, A.FCI_NUMERO,
A.enquadramento_ipi, A.ccusto, A.conta_contabil,

A.VBCUFDEST,
A.pFCPUFDest,
A.pICMSUFDest,
A.pICMSInter,
A.vFCPUFDest,
A.vICMSUFDest,
A.vICMSUFRemet,
A.pICMSInterPart,

QUANTIDADE_ALTERNATIVA,
UM_ALTERNATIVA2,
VALOR_ALTERNATIVO,
A.REDUCAO_BASE_PISCOF

From TbNfs_Item A
where (A.NFS_CONTROLE = :CONTROLE_1)
order by A.SEQUENCIA
into
    :NFS_CONTROLE      ,:SEQUENCIA        ,:OPERACAO_CODIGO      ,:CFOP_CODIGO      ,
    :PRODUTO_CODIGO    ,:PRODUTO_DESCRICAO,:PRODUTO_UNIDADEMEDIDA,:GRADE_CODIGO     ,
    :NCM_CODIGO        ,:TRIBUTACAO_ICMS  ,:TRIBUTACAO_IPI       ,:TRIBUTACAO_ORIGEM,
    :LOCALIZACAO_CODIGO,:QUANTIDADE       ,:VALOR_UNITARIO       ,:VALOR_TOTAL      ,
    :BASECALCULO_ICMS  ,:PERCENTUAL_ICMS  ,:PERCENTUAL_IPI       ,:VALOR_IPI        ,
    :PERCENTUAL_PIS    ,:VALOR_PIS        ,:PERCENTUAL_COFINS ,:VALOR_COFINS        ,
    :NFE   ,:NFE_ITEM_CONTROLE,:NF_EXTERNO        ,:NF_EXTERNO_ITEM_CONTROLE        ,
    :PEDIDO,:PEDIDO_ITEM_PE_CONTROLE,
    :T01,:T02,:T03,:T04,:T05,:T06,:T07,:T08,:T09,:T10,
    :T11,:T12,:T13,:T14,:T15,:T16,:T17,:T18,:T19,:T20,
    :ESTABELECIMENTO_CODIGO,:EMPRESA_CODIGO,:NUMERO_NOTAFISCAL,:DATA_EMISSAO,
    :SITUACAO,:CONTROLE,:VALOR_CUSTO,:PRODUTO_GRADE_CODIGO,:MODELO_CODIGO,
    :TECELAGEM,:tributacao_PIS, :tributacao_cofins,
    :VALOR_ICMS,:BASECALCULO_IPI,:BASECALCULO_PIS,:BASECALCULO_COFINS,

    :LOCALIZACAO_DESCRICAO,
    :VALOR_FRETE, :VALOR_SEGURO, :PESO_LIQUIDO, :PESO_BRUTO, :VOLUMES, :CUBAGEM,

    :VALOR_ACRESCIMO,:VALOR_DESCONTO,:FISCAL_ISENTAS_IPI,:FISCAL_ISENTAS_ICMS,
    :FISCAL_OUTRAS_IPI,:FISCAL_OUTRAS_ICMS,:FISCAL_VALOR_ICMS,:FISCAL_VALOR_IPI,
    :FISCAL_VALOR_PIS,:FISCAL_VALOR_COFINS,:FISCAL_PERCENTUAL_ICMS,:FISCAL_PERCENTUAL_IPI,
    :FISCAL_PERCENTUAL_PIS,:FISCAL_PERCENTUAL_COFINS,:FISCAL_BASECALCULO_ICMS,
    :FISCAL_BASECALCULO_IPI,:FISCAL_BASECALCULO_PIS,:FISCAL_BASECALCULO_COFINS,
    :VALOR_CONTABIL,:Valor_BaseCalculo_Icms,:FISCAL_CFOP_CODIGO,:FISCAL_TRIBUTACAO_ORIGEM,:FISCAL_TRIBUTACAO_ICMS,
    :FISCAL_TRIBUTACAO_IPI,:FISCAL_TRIBUTACAO_PIS,:FISCAL_TRIBUTACAO_COFINS,
    :MODALIDADE_ICMS, :MODALIDADE_ICMS_ST, :MARGEM_ICMS_ST, :REDUCAO_ICMS_ST,
    :BASECALCULO_ICMS_ST, :ALIQUOTA_ICMS_ST, :VALOR_ICMS_ST, :FISCAL_REDUCAO_ICMS_ST,
    :FISCAL_BASECALCULO_ICMS_ST, :FISCAL_ALIQUOTA_ICMS_ST, :FISCAL_VALOR_ICMS_ST,
    :PEDIDO_CLIENTE,
    :INFORMACOES_COMPLEMENTARES, :Nf_Consignacao, :Nf_Consignacao_Item,
    :FCI_MENSAGEM, :FCI_PARCELA_IMPORTACAO, :FCI_CONTEUDO_IMPORTACAO, :FCI_NUMERO,
    :enquadramento_ipi, :ccusto, :conta_contabil,
    :VBCUFDEST,:pFCPUFDest,:pICMSUFDest,:pICMSInter,:vFCPUFDest,:vICMSUFDest,:vICMSUFRemet,:pICMSInterPart,
    :QUANTIDADE_ALTERNATIVA, :UM_ALTERNATIVA, :VALOR_ALTERNATIVO, :REDUCAO_BASE_PISCOF

do suspend;
end
^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER procedure SPC_NFS_ITEM8 (
    CONTROLE_1 integer)
returns (
    NFS_CONTROLE integer,
    SEQUENCIA integer,
    OPERACAO_CODIGO varchar(3),
    CFOP_CODIGO varchar(5),
    PRODUTO_CODIGO integer,
    PRODUTO_DESCRICAO varchar(100),
    PRODUTO_UNIDADEMEDIDA varchar(3),
    GRADE_CODIGO integer,
    NCM_CODIGO varchar(10),
    TRIBUTACAO_ICMS integer,
    TRIBUTACAO_IPI varchar(2),
    TRIBUTACAO_ORIGEM integer,
    LOCALIZACAO_CODIGO integer,
    QUANTIDADE numeric(10,5),
    VALOR_UNITARIO numeric(10,5),
    VALOR_TOTAL numeric(10,5),
    BASECALCULO_ICMS numeric(10,5),
    PERCENTUAL_ICMS numeric(10,5),
    PERCENTUAL_IPI numeric(10,5),
    VALOR_IPI numeric(10,5),
    PERCENTUAL_PIS numeric(10,5),
    VALOR_PIS numeric(10,5),
    PERCENTUAL_COFINS numeric(10,5),
    VALOR_COFINS numeric(10,5),
    NFE integer,
    NFE_ITEM_CONTROLE integer,
    NF_EXTERNO integer,
    NF_EXTERNO_ITEM_CONTROLE integer,
    PEDIDO integer,
    PEDIDO_ITEM_PE_CONTROLE integer,
    T01 numeric(10,5),
    T02 numeric(10,5),
    T03 numeric(10,5),
    T04 numeric(10,5),
    T05 numeric(10,5),
    T06 numeric(10,5),
    T07 numeric(10,5),
    T08 numeric(10,5),
    T09 numeric(10,5),
    T10 numeric(10,5),
    T11 numeric(10,5),
    T12 numeric(10,5),
    T13 numeric(10,5),
    T14 numeric(10,5),
    T15 numeric(10,5),
    T16 numeric(10,5),
    T17 numeric(10,5),
    T18 numeric(10,5),
    T19 numeric(10,5),
    T20 numeric(10,5),
    ESTABELECIMENTO_CODIGO integer,
    EMPRESA_CODIGO integer,
    NUMERO_NOTAFISCAL integer,
    DATA_EMISSAO date,
    SITUACAO integer,
    CONTROLE integer,
    VALOR_CUSTO numeric(10,5),
    PRODUTO_GRADE_CODIGO integer,
    MODELO_CODIGO integer,
    TECELAGEM integer,
    TRIBUTACAO_PIS varchar(2),
    TRIBUTACAO_COFINS varchar(2),
    VALOR_ICMS numeric(10,2),
    BASECALCULO_IPI numeric(10,2),
    BASECALCULO_PIS numeric(10,2),
    BASECALCULO_COFINS numeric(10,2),
    LOCALIZACAO_DESCRICAO varchar(20),
    VALOR_FRETE numeric(10,2),
    VALOR_SEGURO numeric(10,2),
    PESO_LIQUIDO numeric(10,4),
    PESO_BRUTO numeric(10,4),
    VOLUMES integer,
    CUBAGEM numeric(10,4),
    VALOR_ACRESCIMO numeric(10,2),
    VALOR_DESCONTO numeric(10,2),
    FISCAL_ISENTAS_IPI numeric(10,2),
    FISCAL_ISENTAS_ICMS numeric(10,2),
    FISCAL_OUTRAS_IPI numeric(10,2),
    FISCAL_OUTRAS_ICMS numeric(10,2),
    FISCAL_VALOR_ICMS numeric(10,2),
    FISCAL_VALOR_IPI numeric(10,2),
    FISCAL_VALOR_PIS numeric(10,2),
    FISCAL_VALOR_COFINS numeric(10,2),
    FISCAL_PERCENTUAL_ICMS numeric(10,2),
    FISCAL_PERCENTUAL_IPI numeric(10,2),
    FISCAL_PERCENTUAL_PIS numeric(10,2),
    FISCAL_PERCENTUAL_COFINS numeric(10,2),
    FISCAL_BASECALCULO_ICMS numeric(10,5),
    FISCAL_BASECALCULO_IPI numeric(10,2),
    FISCAL_BASECALCULO_PIS numeric(10,2),
    FISCAL_BASECALCULO_COFINS numeric(10,2),
    VALOR_CONTABIL numeric(10,2),
    VALOR_BASECALCULO_ICMS numeric(10,2),
    FISCAL_CFOP_CODIGO varchar(5),
    FISCAL_TRIBUTACAO_ORIGEM integer,
    FISCAL_TRIBUTACAO_ICMS integer,
    FISCAL_TRIBUTACAO_IPI char(2),
    FISCAL_TRIBUTACAO_PIS char(2),
    FISCAL_TRIBUTACAO_COFINS char(2),
    MODALIDADE_ICMS char(1),
    MODALIDADE_ICMS_ST char(1),
    MARGEM_ICMS_ST numeric(15,4),
    REDUCAO_ICMS_ST numeric(15,4),
    BASECALCULO_ICMS_ST numeric(15,4),
    ALIQUOTA_ICMS_ST numeric(15,4),
    VALOR_ICMS_ST numeric(15,4),
    FISCAL_REDUCAO_ICMS_ST numeric(10,2),
    FISCAL_BASECALCULO_ICMS_ST numeric(10,2),
    FISCAL_ALIQUOTA_ICMS_ST numeric(10,2),
    FISCAL_VALOR_ICMS_ST numeric(10,2),
    PEDIDO_CLIENTE varchar(15),
    INFORMACOES_COMPLEMENTARES varchar(200),
    NF_CONSIGNACAO integer,
    NF_CONSIGNACAO_ITEM integer,
    FCI_MENSAGEM varchar(255),
    FCI_PARCELA_IMPORTACAO numeric(15,2),
    FCI_CONTEUDO_IMPORTACAO numeric(15,2),
    FCI_NUMERO varchar(40),
    ENQUADRAMENTO_IPI varchar(3),
    CCUSTO varchar(8),
    CONTA_CONTABIL varchar(11),
    VBCUFDEST numeric(15,2),
    PFCPUFDEST numeric(15,2),
    PICMSUFDEST numeric(15,2),
    PICMSINTER numeric(15,2),
    VFCPUFDEST numeric(15,2),
    VICMSUFDEST numeric(15,2),
    VICMSUFREMET numeric(15,2),
    PICMSINTERPART numeric(15,2),
    QUANTIDADE_ALTERNATIVA numeric(18,4),
    UM_ALTERNATIVA varchar(3),
    VALOR_ALTERNATIVO numeric(18,10))
as
begin
for select
A.NFS_CONTROLE      ,A.SEQUENCIA        ,A.OPERACAO_CODIGO      ,A.CFOP_CODIGO      ,
A.PRODUTO_CODIGO    ,A.PRODUTO_DESCRICAO,A.PRODUTO_UNIDADEMEDIDA2,A.GRADE_CODIGO     ,
A.NCM_CODIGO        ,A.TRIBUTACAO_ICMS  ,A.TRIBUTACAO_IPI       ,A.TRIBUTACAO_ORIGEM,
A.LOCALIZACAO_CODIGO,A.QUANTIDADE       ,A.VALOR_UNITARIO       ,A.VALOR_TOTAL      ,
A.BASECALCULO_ICMS  ,A.PERCENTUAL_ICMS  ,A.PERCENTUAL_IPI       ,A.VALOR_IPI        ,
A.PERCENTUAL_PIS    ,A.VALOR_PIS        ,A.PERCENTUAL_COFINS    ,A.VALOR_COFINS     ,
A.NFE, A.NFE_ITEM_CONTROLE, A.NF_EXTERNO, A.NF_EXTERNO_ITEM_CONTROLE,
A.PEDIDO,A.PEDIDO_ITEM_PE_CONTROLE,
A.T01,A.T02,A.T03,A.T04,A.T05,A.T06,A.T07,A.T08,A.T09,A.T10,
A.T11,A.T12,A.T13,A.T14,A.T15,A.T16,A.T17,A.T18,A.T19,A.T20,
A.ESTABELECIMENTO_CODIGO,A.EMPRESA_CODIGO,A.NUMERO_NOTAFISCAL,A.DATA_EMISSAO,
A.SITUACAO,A.CONTROLE,A.VALOR_CUSTO,
(Select First 1 E.grade_codigo  From TbProduto E Where A.Produto_Codigo = E.Codigo),
(Select First 1 E.modelo_codigo From TbProduto E Where A.Produto_Codigo = E.Codigo),
A.Tecelagem,A.tributacao_PIS, A.tributacao_cofins,
A.VALOR_ICMS,A.BASECALCULO_IPI,A.BASECALCULO_PIS,A.BASECALCULO_COFINS,

(Select First 1 L.Descricao From TbLocalizacao L Where A.Localizacao_Codigo = L.Codigo),
A.VALOR_FRETE, A.VALOR_SEGURO, A.PESO_LIQUIDO, A.PESO_BRUTO, A.VOLUMES, A.CUBAGEM,

A.VALOR_ACRESCIMO,A.VALOR_DESCONTO,A.FISCAL_ISENTAS_IPI,A.FISCAL_ISENTAS_ICMS,
A.FISCAL_OUTRAS_IPI,A.FISCAL_OUTRAS_ICMS,A.FISCAL_VALOR_ICMS,A.FISCAL_VALOR_IPI,
A.FISCAL_VALOR_PIS,A.FISCAL_VALOR_COFINS,A.FISCAL_PERCENTUAL_ICMS,A.FISCAL_PERCENTUAL_IPI,
A.FISCAL_PERCENTUAL_PIS,A.FISCAL_PERCENTUAL_COFINS,A.FISCAL_BASECALCULO_ICMS,
A.FISCAL_BASECALCULO_IPI,A.FISCAL_BASECALCULO_PIS,A.FISCAL_BASECALCULO_COFINS,
A.VALOR_CONTABIL, A.Valor_BaseCalculo_Icms, A.FISCAL_CFOP_CODIGO,
A.FISCAL_TRIBUTACAO_ORIGEM,A.FISCAL_TRIBUTACAO_ICMS,A.FISCAL_TRIBUTACAO_IPI,
A.FISCAL_TRIBUTACAO_PIS,A.FISCAL_TRIBUTACAO_COFINS,

A.MODALIDADE_ICMS, A.MODALIDADE_ICMS_ST, A.MARGEM_ICMS_ST, A.REDUCAO_ICMS_ST,
A.BASECALCULO_ICMS_ST, A.ALIQUOTA_ICMS_ST, A.VALOR_ICMS_ST, A.FISCAL_REDUCAO_ICMS_ST,
A.FISCAL_BASECALCULO_ICMS_ST, A.FISCAL_ALIQUOTA_ICMS_ST, A.FISCAL_VALOR_ICMS_ST,
A.PEDIDO_CLIENTE,
A.INFORMACOES_COMPLEMENTARES, A.Nf_Consignacao, A.Nf_Consignacao_Item,
A.FCI_MENSAGEM, A.FCI_PARCELA_IMPORTACAO, A.FCI_CONTEUDO_IMPORTACAO, A.FCI_NUMERO,
A.enquadramento_ipi, A.ccusto, A.conta_contabil,

A.VBCUFDEST,
A.pFCPUFDest,
A.pICMSUFDest,
A.pICMSInter,
A.vFCPUFDest,
A.vICMSUFDest,
A.vICMSUFRemet,
A.pICMSInterPart,

QUANTIDADE_ALTERNATIVA,
UM_ALTERNATIVA2,
VALOR_ALTERNATIVO

From TbNfs_Item A
where (A.NFS_CONTROLE = :CONTROLE_1)
order by A.SEQUENCIA
into
    :NFS_CONTROLE      ,:SEQUENCIA        ,:OPERACAO_CODIGO      ,:CFOP_CODIGO      ,
    :PRODUTO_CODIGO    ,:PRODUTO_DESCRICAO,:PRODUTO_UNIDADEMEDIDA,:GRADE_CODIGO     ,
    :NCM_CODIGO        ,:TRIBUTACAO_ICMS  ,:TRIBUTACAO_IPI       ,:TRIBUTACAO_ORIGEM,
    :LOCALIZACAO_CODIGO,:QUANTIDADE       ,:VALOR_UNITARIO       ,:VALOR_TOTAL      ,
    :BASECALCULO_ICMS  ,:PERCENTUAL_ICMS  ,:PERCENTUAL_IPI       ,:VALOR_IPI        ,
    :PERCENTUAL_PIS    ,:VALOR_PIS        ,:PERCENTUAL_COFINS ,:VALOR_COFINS        ,
    :NFE   ,:NFE_ITEM_CONTROLE,:NF_EXTERNO        ,:NF_EXTERNO_ITEM_CONTROLE        ,
    :PEDIDO,:PEDIDO_ITEM_PE_CONTROLE,
    :T01,:T02,:T03,:T04,:T05,:T06,:T07,:T08,:T09,:T10,
    :T11,:T12,:T13,:T14,:T15,:T16,:T17,:T18,:T19,:T20,
    :ESTABELECIMENTO_CODIGO,:EMPRESA_CODIGO,:NUMERO_NOTAFISCAL,:DATA_EMISSAO,
    :SITUACAO,:CONTROLE,:VALOR_CUSTO,:PRODUTO_GRADE_CODIGO,:MODELO_CODIGO,
    :TECELAGEM,:tributacao_PIS, :tributacao_cofins,
    :VALOR_ICMS,:BASECALCULO_IPI,:BASECALCULO_PIS,:BASECALCULO_COFINS,

    :LOCALIZACAO_DESCRICAO,
    :VALOR_FRETE, :VALOR_SEGURO, :PESO_LIQUIDO, :PESO_BRUTO, :VOLUMES, :CUBAGEM,

    :VALOR_ACRESCIMO,:VALOR_DESCONTO,:FISCAL_ISENTAS_IPI,:FISCAL_ISENTAS_ICMS,
    :FISCAL_OUTRAS_IPI,:FISCAL_OUTRAS_ICMS,:FISCAL_VALOR_ICMS,:FISCAL_VALOR_IPI,
    :FISCAL_VALOR_PIS,:FISCAL_VALOR_COFINS,:FISCAL_PERCENTUAL_ICMS,:FISCAL_PERCENTUAL_IPI,
    :FISCAL_PERCENTUAL_PIS,:FISCAL_PERCENTUAL_COFINS,:FISCAL_BASECALCULO_ICMS,
    :FISCAL_BASECALCULO_IPI,:FISCAL_BASECALCULO_PIS,:FISCAL_BASECALCULO_COFINS,
    :VALOR_CONTABIL,:Valor_BaseCalculo_Icms,:FISCAL_CFOP_CODIGO,:FISCAL_TRIBUTACAO_ORIGEM,:FISCAL_TRIBUTACAO_ICMS,
    :FISCAL_TRIBUTACAO_IPI,:FISCAL_TRIBUTACAO_PIS,:FISCAL_TRIBUTACAO_COFINS,
    :MODALIDADE_ICMS, :MODALIDADE_ICMS_ST, :MARGEM_ICMS_ST, :REDUCAO_ICMS_ST,
    :BASECALCULO_ICMS_ST, :ALIQUOTA_ICMS_ST, :VALOR_ICMS_ST, :FISCAL_REDUCAO_ICMS_ST,
    :FISCAL_BASECALCULO_ICMS_ST, :FISCAL_ALIQUOTA_ICMS_ST, :FISCAL_VALOR_ICMS_ST,
    :PEDIDO_CLIENTE,
    :INFORMACOES_COMPLEMENTARES, :Nf_Consignacao, :Nf_Consignacao_Item,
    :FCI_MENSAGEM, :FCI_PARCELA_IMPORTACAO, :FCI_CONTEUDO_IMPORTACAO, :FCI_NUMERO,
    :enquadramento_ipi, :ccusto, :conta_contabil,
    :VBCUFDEST,:pFCPUFDest,:pICMSUFDest,:pICMSInter,:vFCPUFDest,:vICMSUFDest,:vICMSUFRemet,:pICMSInterPart,
    :QUANTIDADE_ALTERNATIVA, :UM_ALTERNATIVA, :VALOR_ALTERNATIVO

do suspend;
end
^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER procedure SPC_NFS_ITEM9 (
    CONTROLE_1 integer)
returns (
    NFS_CONTROLE integer,
    SEQUENCIA integer,
    OPERACAO_CODIGO varchar(3),
    CFOP_CODIGO varchar(5),
    PRODUTO_CODIGO integer,
    PRODUTO_DESCRICAO varchar(100),
    PRODUTO_UNIDADEMEDIDA varchar(3),
    GRADE_CODIGO integer,
    NCM_CODIGO varchar(10),
    TRIBUTACAO_ICMS integer,
    TRIBUTACAO_IPI varchar(2),
    TRIBUTACAO_ORIGEM integer,
    LOCALIZACAO_CODIGO integer,
    QUANTIDADE numeric(10,5),
    VALOR_UNITARIO numeric(10,5),
    VALOR_TOTAL numeric(10,5),
    BASECALCULO_ICMS numeric(10,5),
    PERCENTUAL_ICMS numeric(10,5),
    PERCENTUAL_IPI numeric(10,5),
    VALOR_IPI numeric(10,5),
    PERCENTUAL_PIS numeric(10,5),
    VALOR_PIS numeric(10,5),
    PERCENTUAL_COFINS numeric(10,5),
    VALOR_COFINS numeric(10,5),
    NFE integer,
    NFE_ITEM_CONTROLE integer,
    NF_EXTERNO integer,
    NF_EXTERNO_ITEM_CONTROLE integer,
    PEDIDO integer,
    PEDIDO_ITEM_PE_CONTROLE integer,
    T01 numeric(10,5),
    T02 numeric(10,5),
    T03 numeric(10,5),
    T04 numeric(10,5),
    T05 numeric(10,5),
    T06 numeric(10,5),
    T07 numeric(10,5),
    T08 numeric(10,5),
    T09 numeric(10,5),
    T10 numeric(10,5),
    T11 numeric(10,5),
    T12 numeric(10,5),
    T13 numeric(10,5),
    T14 numeric(10,5),
    T15 numeric(10,5),
    T16 numeric(10,5),
    T17 numeric(10,5),
    T18 numeric(10,5),
    T19 numeric(10,5),
    T20 numeric(10,5),
    ESTABELECIMENTO_CODIGO integer,
    EMPRESA_CODIGO integer,
    NUMERO_NOTAFISCAL integer,
    DATA_EMISSAO date,
    SITUACAO integer,
    CONTROLE integer,
    VALOR_CUSTO numeric(10,5),
    PRODUTO_GRADE_CODIGO integer,
    MODELO_CODIGO integer,
    TECELAGEM integer,
    TRIBUTACAO_PIS varchar(2),
    TRIBUTACAO_COFINS varchar(2),
    VALOR_ICMS numeric(10,2),
    BASECALCULO_IPI numeric(10,2),
    BASECALCULO_PIS numeric(10,2),
    BASECALCULO_COFINS numeric(10,2),
    LOCALIZACAO_DESCRICAO varchar(20),
    VALOR_FRETE numeric(10,2),
    VALOR_SEGURO numeric(10,2),
    PESO_LIQUIDO numeric(10,4),
    PESO_BRUTO numeric(10,4),
    VOLUMES integer,
    CUBAGEM numeric(10,4),
    VALOR_ACRESCIMO numeric(10,2),
    VALOR_DESCONTO numeric(10,2),
    FISCAL_ISENTAS_IPI numeric(10,2),
    FISCAL_ISENTAS_ICMS numeric(10,2),
    FISCAL_OUTRAS_IPI numeric(10,2),
    FISCAL_OUTRAS_ICMS numeric(10,2),
    FISCAL_VALOR_ICMS numeric(10,2),
    FISCAL_VALOR_IPI numeric(10,2),
    FISCAL_VALOR_PIS numeric(10,2),
    FISCAL_VALOR_COFINS numeric(10,2),
    FISCAL_PERCENTUAL_ICMS numeric(10,2),
    FISCAL_PERCENTUAL_IPI numeric(10,2),
    FISCAL_PERCENTUAL_PIS numeric(10,2),
    FISCAL_PERCENTUAL_COFINS numeric(10,2),
    FISCAL_BASECALCULO_ICMS numeric(10,5),
    FISCAL_BASECALCULO_IPI numeric(10,2),
    FISCAL_BASECALCULO_PIS numeric(10,2),
    FISCAL_BASECALCULO_COFINS numeric(10,2),
    VALOR_CONTABIL numeric(10,2),
    VALOR_BASECALCULO_ICMS numeric(10,2),
    FISCAL_CFOP_CODIGO varchar(5),
    FISCAL_TRIBUTACAO_ORIGEM integer,
    FISCAL_TRIBUTACAO_ICMS integer,
    FISCAL_TRIBUTACAO_IPI char(2),
    FISCAL_TRIBUTACAO_PIS char(2),
    FISCAL_TRIBUTACAO_COFINS char(2),
    MODALIDADE_ICMS char(1),
    MODALIDADE_ICMS_ST char(1),
    MARGEM_ICMS_ST numeric(15,4),
    REDUCAO_ICMS_ST numeric(15,4),
    BASECALCULO_ICMS_ST numeric(15,4),
    ALIQUOTA_ICMS_ST numeric(15,4),
    VALOR_ICMS_ST numeric(15,4),
    FISCAL_REDUCAO_ICMS_ST numeric(10,2),
    FISCAL_BASECALCULO_ICMS_ST numeric(10,2),
    FISCAL_ALIQUOTA_ICMS_ST numeric(10,2),
    FISCAL_VALOR_ICMS_ST numeric(10,2),
    PEDIDO_CLIENTE varchar(15),
    INFORMACOES_COMPLEMENTARES varchar(200),
    NF_CONSIGNACAO integer,
    NF_CONSIGNACAO_ITEM integer,
    FCI_MENSAGEM varchar(255),
    FCI_PARCELA_IMPORTACAO numeric(15,2),
    FCI_CONTEUDO_IMPORTACAO numeric(15,2),
    FCI_NUMERO varchar(40),
    ENQUADRAMENTO_IPI varchar(3),
    CCUSTO varchar(8),
    CONTA_CONTABIL varchar(11),
    VBCUFDEST numeric(15,2),
    PFCPUFDEST numeric(15,2),
    PICMSUFDEST numeric(15,2),
    PICMSINTER numeric(15,2),
    VFCPUFDEST numeric(15,2),
    VICMSUFDEST numeric(15,2),
    VICMSUFREMET numeric(15,2),
    PICMSINTERPART numeric(15,2),
    QUANTIDADE_ALTERNATIVA numeric(18,4),
    UM_ALTERNATIVA varchar(3),
    VALOR_ALTERNATIVO numeric(18,10),
    REDUCAO_BASE_PISCOF char(1))
as
begin
for select
A.NFS_CONTROLE      ,A.SEQUENCIA        ,A.OPERACAO_CODIGO      ,A.CFOP_CODIGO      ,
A.PRODUTO_CODIGO    ,A.PRODUTO_DESCRICAO,A.PRODUTO_UNIDADEMEDIDA2,A.GRADE_CODIGO     ,
A.NCM_CODIGO        ,A.TRIBUTACAO_ICMS  ,A.TRIBUTACAO_IPI       ,A.TRIBUTACAO_ORIGEM,
A.LOCALIZACAO_CODIGO,A.QUANTIDADE       ,A.VALOR_UNITARIO       ,A.VALOR_TOTAL      ,
A.BASECALCULO_ICMS  ,A.PERCENTUAL_ICMS  ,A.PERCENTUAL_IPI       ,A.VALOR_IPI        ,
A.PERCENTUAL_PIS    ,A.VALOR_PIS        ,A.PERCENTUAL_COFINS    ,A.VALOR_COFINS     ,
A.NFE, A.NFE_ITEM_CONTROLE, A.NF_EXTERNO, A.NF_EXTERNO_ITEM_CONTROLE,
A.PEDIDO,A.PEDIDO_ITEM_PE_CONTROLE,
A.T01,A.T02,A.T03,A.T04,A.T05,A.T06,A.T07,A.T08,A.T09,A.T10,
A.T11,A.T12,A.T13,A.T14,A.T15,A.T16,A.T17,A.T18,A.T19,A.T20,
A.ESTABELECIMENTO_CODIGO,A.EMPRESA_CODIGO,A.NUMERO_NOTAFISCAL,A.DATA_EMISSAO,
A.SITUACAO,A.CONTROLE,A.VALOR_CUSTO,
(Select First 1 E.grade_codigo  From TbProduto E Where A.Produto_Codigo = E.Codigo),
(Select First 1 E.modelo_codigo From TbProduto E Where A.Produto_Codigo = E.Codigo),
A.Tecelagem,A.tributacao_PIS, A.tributacao_cofins,
A.VALOR_ICMS,A.BASECALCULO_IPI,A.BASECALCULO_PIS,A.BASECALCULO_COFINS,

(Select First 1 L.Descricao From TbLocalizacao L Where A.Localizacao_Codigo = L.Codigo),
A.VALOR_FRETE, A.VALOR_SEGURO, A.PESO_LIQUIDO, A.PESO_BRUTO, A.VOLUMES, A.CUBAGEM,

A.VALOR_ACRESCIMO,A.VALOR_DESCONTO,A.FISCAL_ISENTAS_IPI,A.FISCAL_ISENTAS_ICMS,
A.FISCAL_OUTRAS_IPI,A.FISCAL_OUTRAS_ICMS,A.FISCAL_VALOR_ICMS,A.FISCAL_VALOR_IPI,
A.FISCAL_VALOR_PIS,A.FISCAL_VALOR_COFINS,A.FISCAL_PERCENTUAL_ICMS,A.FISCAL_PERCENTUAL_IPI,
A.FISCAL_PERCENTUAL_PIS,A.FISCAL_PERCENTUAL_COFINS,A.FISCAL_BASECALCULO_ICMS,
A.FISCAL_BASECALCULO_IPI,A.FISCAL_BASECALCULO_PIS,A.FISCAL_BASECALCULO_COFINS,
A.VALOR_CONTABIL, A.Valor_BaseCalculo_Icms, A.FISCAL_CFOP_CODIGO,
A.FISCAL_TRIBUTACAO_ORIGEM,A.FISCAL_TRIBUTACAO_ICMS,A.FISCAL_TRIBUTACAO_IPI,
A.FISCAL_TRIBUTACAO_PIS,A.FISCAL_TRIBUTACAO_COFINS,

A.MODALIDADE_ICMS, A.MODALIDADE_ICMS_ST, A.MARGEM_ICMS_ST, A.REDUCAO_ICMS_ST,
A.BASECALCULO_ICMS_ST, A.ALIQUOTA_ICMS_ST, A.VALOR_ICMS_ST, A.FISCAL_REDUCAO_ICMS_ST,
A.FISCAL_BASECALCULO_ICMS_ST, A.FISCAL_ALIQUOTA_ICMS_ST, A.FISCAL_VALOR_ICMS_ST,
A.PEDIDO_CLIENTE,
A.INFORMACOES_COMPLEMENTARES, A.Nf_Consignacao, A.Nf_Consignacao_Item,
A.FCI_MENSAGEM, A.FCI_PARCELA_IMPORTACAO, A.FCI_CONTEUDO_IMPORTACAO, A.FCI_NUMERO,
A.enquadramento_ipi, A.ccusto, A.conta_contabil,

A.VBCUFDEST,
A.pFCPUFDest,
A.pICMSUFDest,
A.pICMSInter,
A.vFCPUFDest,
A.vICMSUFDest,
A.vICMSUFRemet,
A.pICMSInterPart,

QUANTIDADE_ALTERNATIVA,
UM_ALTERNATIVA2,
VALOR_ALTERNATIVO,
A.REDUCAO_BASE_PISCOF

From TbNfs_Item A
where (A.NFS_CONTROLE = :CONTROLE_1)
order by A.SEQUENCIA
into
    :NFS_CONTROLE      ,:SEQUENCIA        ,:OPERACAO_CODIGO      ,:CFOP_CODIGO      ,
    :PRODUTO_CODIGO    ,:PRODUTO_DESCRICAO,:PRODUTO_UNIDADEMEDIDA,:GRADE_CODIGO     ,
    :NCM_CODIGO        ,:TRIBUTACAO_ICMS  ,:TRIBUTACAO_IPI       ,:TRIBUTACAO_ORIGEM,
    :LOCALIZACAO_CODIGO,:QUANTIDADE       ,:VALOR_UNITARIO       ,:VALOR_TOTAL      ,
    :BASECALCULO_ICMS  ,:PERCENTUAL_ICMS  ,:PERCENTUAL_IPI       ,:VALOR_IPI        ,
    :PERCENTUAL_PIS    ,:VALOR_PIS        ,:PERCENTUAL_COFINS ,:VALOR_COFINS        ,
    :NFE   ,:NFE_ITEM_CONTROLE,:NF_EXTERNO        ,:NF_EXTERNO_ITEM_CONTROLE        ,
    :PEDIDO,:PEDIDO_ITEM_PE_CONTROLE,
    :T01,:T02,:T03,:T04,:T05,:T06,:T07,:T08,:T09,:T10,
    :T11,:T12,:T13,:T14,:T15,:T16,:T17,:T18,:T19,:T20,
    :ESTABELECIMENTO_CODIGO,:EMPRESA_CODIGO,:NUMERO_NOTAFISCAL,:DATA_EMISSAO,
    :SITUACAO,:CONTROLE,:VALOR_CUSTO,:PRODUTO_GRADE_CODIGO,:MODELO_CODIGO,
    :TECELAGEM,:tributacao_PIS, :tributacao_cofins,
    :VALOR_ICMS,:BASECALCULO_IPI,:BASECALCULO_PIS,:BASECALCULO_COFINS,

    :LOCALIZACAO_DESCRICAO,
    :VALOR_FRETE, :VALOR_SEGURO, :PESO_LIQUIDO, :PESO_BRUTO, :VOLUMES, :CUBAGEM,

    :VALOR_ACRESCIMO,:VALOR_DESCONTO,:FISCAL_ISENTAS_IPI,:FISCAL_ISENTAS_ICMS,
    :FISCAL_OUTRAS_IPI,:FISCAL_OUTRAS_ICMS,:FISCAL_VALOR_ICMS,:FISCAL_VALOR_IPI,
    :FISCAL_VALOR_PIS,:FISCAL_VALOR_COFINS,:FISCAL_PERCENTUAL_ICMS,:FISCAL_PERCENTUAL_IPI,
    :FISCAL_PERCENTUAL_PIS,:FISCAL_PERCENTUAL_COFINS,:FISCAL_BASECALCULO_ICMS,
    :FISCAL_BASECALCULO_IPI,:FISCAL_BASECALCULO_PIS,:FISCAL_BASECALCULO_COFINS,
    :VALOR_CONTABIL,:Valor_BaseCalculo_Icms,:FISCAL_CFOP_CODIGO,:FISCAL_TRIBUTACAO_ORIGEM,:FISCAL_TRIBUTACAO_ICMS,
    :FISCAL_TRIBUTACAO_IPI,:FISCAL_TRIBUTACAO_PIS,:FISCAL_TRIBUTACAO_COFINS,
    :MODALIDADE_ICMS, :MODALIDADE_ICMS_ST, :MARGEM_ICMS_ST, :REDUCAO_ICMS_ST,
    :BASECALCULO_ICMS_ST, :ALIQUOTA_ICMS_ST, :VALOR_ICMS_ST, :FISCAL_REDUCAO_ICMS_ST,
    :FISCAL_BASECALCULO_ICMS_ST, :FISCAL_ALIQUOTA_ICMS_ST, :FISCAL_VALOR_ICMS_ST,
    :PEDIDO_CLIENTE,
    :INFORMACOES_COMPLEMENTARES, :Nf_Consignacao, :Nf_Consignacao_Item,
    :FCI_MENSAGEM, :FCI_PARCELA_IMPORTACAO, :FCI_CONTEUDO_IMPORTACAO, :FCI_NUMERO,
    :enquadramento_ipi, :ccusto, :conta_contabil,
    :VBCUFDEST,:pFCPUFDest,:pICMSUFDest,:pICMSInter,:vFCPUFDest,:vICMSUFDest,:vICMSUFRemet,:pICMSInterPart,
    :QUANTIDADE_ALTERNATIVA, :UM_ALTERNATIVA, :VALOR_ALTERNATIVO, :REDUCAO_BASE_PISCOF

do suspend;
end
^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER procedure SPC_NFS_ITEM_ACUMULADO (
    CONTROLE_1 integer)
returns (
    NFS_CONTROLE integer,
    OPERACAO_CODIGO varchar(3),
    CFOP_CODIGO varchar(5),
    PRODUTO_CODIGO integer,
    PRODUTO_DESCRICAO varchar(100),
    PRODUTO_UNIDADEMEDIDA varchar(3),
    NCM_CODIGO varchar(10),
    GRADE_CODIGO integer,
    TRIBUTACAO_ICMS integer,
    TRIBUTACAO_IPI varchar(2),
    TRIBUTACAO_ORIGEM integer,
    LOCALIZACAO_CODIGO integer,
    QUANTIDADE numeric(10,5),
    VALOR_UNITARIO numeric(10,5),
    VALOR_TOTAL numeric(10,5),
    BASECALCULO_ICMS numeric(10,5),
    PERCENTUAL_ICMS numeric(10,5),
    PERCENTUAL_IPI numeric(10,5),
    VALOR_IPI numeric(10,5),
    PERCENTUAL_PIS numeric(10,5),
    VALOR_PIS numeric(10,5),
    PERCENTUAL_COFINS numeric(10,5),
    VALOR_COFINS numeric(10,5),
    NFE integer,
    NFE_ITEM_CONTROLE integer,
    NF_EXTERNO integer,
    NF_EXTERNO_ITEM_CONTROLE integer,
    T01 numeric(10,5),
    T02 numeric(10,5),
    T03 numeric(10,5),
    T04 numeric(10,5),
    T05 numeric(10,5),
    T06 numeric(10,5),
    T07 numeric(10,5),
    T08 numeric(10,5),
    T09 numeric(10,5),
    T10 numeric(10,5),
    T11 numeric(10,5),
    T12 numeric(10,5),
    T13 numeric(10,5),
    T14 numeric(10,5),
    T15 numeric(10,5),
    T16 numeric(10,5),
    T17 numeric(10,5),
    T18 numeric(10,5),
    T19 numeric(10,5),
    T20 numeric(10,5),
    ESTABELECIMENTO_CODIGO integer,
    EMPRESA_CODIGO integer,
    NUMERO_NOTAFISCAL integer,
    DATA_EMISSAO date,
    SITUACAO integer,
    VALOR_CUSTO numeric(10,5),
    SEQUENCIA integer,
    CONTROLE integer,
    PEDIDO integer,
    PEDIDO_ITEM_PE_CONTROLE integer,
    PRODUTO_GRADE_CODIGO integer,
    MODELO_CODIGO integer,
    TECELAGEM integer,
    TRIBUTACAO_PIS varchar(2),
    TRIBUTACAO_COFINS varchar(2),
    VALOR_ICMS numeric(10,2),
    BASECALCULO_IPI numeric(10,2),
    BASECALCULO_PIS numeric(10,2),
    BASECALCULO_COFINS numeric(10,2),
    LOCALIZACAO_DESCRICAO varchar(20),
    VALOR_FRETE numeric(10,2),
    VALOR_SEGURO numeric(10,2),
    PESO_LIQUIDO numeric(10,4),
    PESO_BRUTO numeric(10,4),
    VOLUMES integer,
    CUBAGEM numeric(10,4),
    VALOR_ACRESCIMO numeric(10,2),
    VALOR_DESCONTO numeric(10,2),
    FISCAL_ISENTAS_IPI numeric(10,2),
    FISCAL_ISENTAS_ICMS numeric(10,2),
    FISCAL_OUTRAS_IPI numeric(10,2),
    FISCAL_OUTRAS_ICMS numeric(10,2),
    FISCAL_VALOR_ICMS numeric(10,2),
    FISCAL_VALOR_IPI numeric(10,2),
    FISCAL_VALOR_PIS numeric(10,2),
    FISCAL_VALOR_COFINS numeric(10,2),
    FISCAL_PERCENTUAL_ICMS numeric(10,2),
    FISCAL_PERCENTUAL_IPI numeric(10,2),
    FISCAL_PERCENTUAL_PIS numeric(10,2),
    FISCAL_PERCENTUAL_COFINS numeric(10,2),
    FISCAL_BASECALCULO_ICMS numeric(10,5),
    FISCAL_BASECALCULO_IPI numeric(10,2),
    FISCAL_BASECALCULO_PIS numeric(10,2),
    FISCAL_BASECALCULO_COFINS numeric(10,2),
    VALOR_CONTABIL numeric(10,2),
    VALOR_BASECALCULO_ICMS numeric(10,2),
    FISCAL_CFOP_CODIGO varchar(5),
    FISCAL_TRIBUTACAO_ORIGEM integer,
    FISCAL_TRIBUTACAO_ICMS integer,
    FISCAL_TRIBUTACAO_IPI char(2),
    FISCAL_TRIBUTACAO_PIS char(2),
    FISCAL_TRIBUTACAO_COFINS char(2),
    MODALIDADE_ICMS char(1),
    MODALIDADE_ICMS_ST char(1),
    MARGEM_ICMS_ST numeric(15,4),
    REDUCAO_ICMS_ST numeric(15,4),
    BASECALCULO_ICMS_ST numeric(15,4),
    ALIQUOTA_ICMS_ST numeric(15,4),
    VALOR_ICMS_ST numeric(15,4),
    FISCAL_REDUCAO_ICMS_ST numeric(10,2),
    FISCAL_BASECALCULO_ICMS_ST numeric(10,2),
    FISCAL_ALIQUOTA_ICMS_ST numeric(10,2),
    FISCAL_VALOR_ICMS_ST numeric(10,2),
    PEDIDO_CLIENTE varchar(15),
    INFORMACOES_COMPLEMENTARES varchar(500),
    NF_CONSIGNACAO integer,
    NF_CONSIGNACAO_ITEM integer,
    FCI_MENSAGEM varchar(255),
    FCI_PARCELA_IMPORTACAO numeric(15,2),
    FCI_CONTEUDO_IMPORTACAO numeric(15,2),
    FCI_NUMERO varchar(40),
    ENQUADRAMENTO_IPI varchar(3),
    CCUSTO varchar(8),
    CONTA_CONTABIL varchar(11),
    VBCUFDEST numeric(15,2),
    PFCPUFDEST numeric(15,2),
    PICMSUFDEST numeric(15,2),
    PICMSINTER numeric(15,2),
    VFCPUFDEST numeric(15,2),
    VICMSUFDEST numeric(15,2),
    VICMSUFREMET numeric(15,2),
    PICMSINTERPART numeric(15,2),
    QUANTIDADE_ALTERNATIVA numeric(18,4),
    UM_ALTERNATIVA varchar(3),
    VALOR_ALTERNATIVO numeric(18,10),
    REDUCAO_BASE_PISCOF char(1))
as
BEGIN
FOR
Select Distinct(A.Nfs_Controle), A.Operacao_Codigo, A.Cfop_Codigo, A.Produto_Codigo,
A.Produto_Descricao, A.Produto_UnidadeMedida2, A.Ncm_Codigo, A.Grade_Codigo,
A.Tributacao_Icms,A.Tributacao_Ipi, A.Tributacao_Origem, A.Localizacao_Codigo,
Sum(A.Quantidade), A.Valor_Unitario, Sum(A.Valor_Total), A.BaseCalculo_Icms,
A.Percentual_Icms, A.Percentual_Ipi, Sum(A.Valor_Ipi), A.Percentual_Pis,
Sum(A.Valor_Pis), A.Percentual_Cofins, Sum(A.Valor_Cofins), A.Nfe,
A.Nfe_Item_Controle, A.Nf_Externo, A.Nf_Externo_Item_Controle,
Sum(A.T01),Sum(A.T02),Sum(A.T03),Sum(A.T04),Sum(A.T05),Sum(A.T06),Sum(A.T07),
Sum(A.T08),Sum(A.T09),Sum(A.T10),Sum(A.T11),Sum(A.T12),Sum(A.T13),Sum(A.T14),
Sum(A.T15),Sum(A.T16),Sum(A.T17),Sum(A.T18),Sum(A.T19),Sum(A.T20),
A.Estabelecimento_Codigo, A.Empresa_Codigo, A.Numero_NotaFiscal, A.Data_Emissao,
A.Situacao, A.Valor_Custo, Min(A.Sequencia),0,0,0,
Max((Select First 1 E.grade_codigo  From TbProduto E Where A.Produto_Codigo = E.Codigo)),
Max((Select First 1 E.modelo_codigo From TbProduto E Where A.Produto_Codigo = E.Codigo)),
A.Tecelagem,A.tributacao_PIS, A.Tributacao_Cofins,
SUM(A.VALOR_ICMS),SUM(A.BASECALCULO_IPI),SUM(A.BASECALCULO_PIS),SUM(A.BASECALCULO_COFINS),

Max((Select First 1 L.Descricao From TbLocalizacao L Where A.Localizacao_Codigo = L.Codigo)),
SUM(A.VALOR_FRETE), SUM(A.VALOR_SEGURO), SUM(A.PESO_LIQUIDO),
SUM(A.PESO_BRUTO), SUM(A.VOLUMES), SUM(A.CUBAGEM),

SUM(A.VALOR_ACRESCIMO),SUM(A.VALOR_DESCONTO),SUM(A.FISCAL_ISENTAS_IPI),SUM(A.FISCAL_ISENTAS_ICMS),
SUM(A.FISCAL_OUTRAS_IPI),SUM(A.FISCAL_OUTRAS_ICMS),SUM(A.FISCAL_VALOR_ICMS),SUM(A.FISCAL_VALOR_IPI),
SUM(A.FISCAL_VALOR_PIS),SUM(A.FISCAL_VALOR_COFINS),A.FISCAL_PERCENTUAL_ICMS,A.FISCAL_PERCENTUAL_IPI,
A.FISCAL_PERCENTUAL_PIS,A.FISCAL_PERCENTUAL_COFINS,A.FISCAL_BASECALCULO_ICMS,
SUM(A.FISCAL_BASECALCULO_IPI),SUM(A.FISCAL_BASECALCULO_PIS),SUM(A.FISCAL_BASECALCULO_COFINS),
Sum(A.VALOR_CONTABIL),Sum(A.Valor_BaseCalculo_Icms),A.FISCAL_CFOP_CODIGO,A.FISCAL_TRIBUTACAO_ORIGEM,A.FISCAL_TRIBUTACAO_ICMS,
A.FISCAL_TRIBUTACAO_IPI,A.FISCAL_TRIBUTACAO_PIS,A.FISCAL_TRIBUTACAO_COFINS,

A.MODALIDADE_ICMS, A.MODALIDADE_ICMS_ST, A.MARGEM_ICMS_ST, A.REDUCAO_ICMS_ST,
SUM(A.BASECALCULO_ICMS_ST), A.ALIQUOTA_ICMS_ST, SUM(A.VALOR_ICMS_ST),
A.FISCAL_REDUCAO_ICMS_ST, SUM(A.FISCAL_BASECALCULO_ICMS_ST),
A.FISCAL_ALIQUOTA_ICMS_ST, SUM(A.FISCAL_VALOR_ICMS_ST),

MAX(A.PEDIDO_CLIENTE), MAX(A.INFORMACOES_COMPLEMENTARES), A.Nf_Consignacao, A.Nf_Consignacao_Item,
A.FCI_MENSAGEM, A.FCI_PARCELA_IMPORTACAO, A.FCI_CONTEUDO_IMPORTACAO, A.FCI_NUMERO,
A.enquadramento_ipi, A.ccusto, A.conta_contabil,

Sum(A.VBCUFDEST),
A.pFCPUFDest,
A.pICMSUFDest,
A.pICMSInter,
Sum(A.vFCPUFDest),
Sum(A.vICMSUFDest),
Sum(A.vICMSUFRemet),
A.pICMSInterPart,

Sum(A.QUANTIDADE_ALTERNATIVA) QUANTIDADE_ALTERNATIVA,
A.UM_ALTERNATIVA2,
A.VALOR_ALTERNATIVO,
REDUCAO_BASE_PISCOF

From TbNfs_Item A
Where A.Nfs_Controle > 0 and A.Nfs_Controle = :CONTROLE_1
Group By A.Nfs_Controle, A.Operacao_Codigo, A.Cfop_Codigo, A.Produto_Codigo,
A.Produto_Descricao, A.Produto_UnidadeMedida2, A.Ncm_Codigo, A.Grade_Codigo,
A.Tributacao_Icms, A.Tributacao_Ipi, A.Tributacao_Origem, A.Localizacao_Codigo,
A.Valor_Unitario, A.BaseCalculo_Icms, A.Percentual_Icms, A.Percentual_Ipi,
A.Percentual_Pis, A.Percentual_Cofins, A.Nfe, A.Nfe_Item_Controle, A.Nf_Externo,
A.Nf_Externo_Item_Controle, A.Estabelecimento_Codigo, A.Empresa_Codigo,
A.Numero_NotaFiscal, A.Data_Emissao, A.Situacao, A.Valor_Custo, A.Tecelagem,
A.tributacao_PIS, A.tributacao_cofins,A.FISCAL_PERCENTUAL_ICMS,A.FISCAL_PERCENTUAL_IPI,
A.FISCAL_PERCENTUAL_PIS,A.FISCAL_PERCENTUAL_COFINS,A.FISCAL_BASECALCULO_ICMS,
A.FISCAL_CFOP_CODIGO,A.FISCAL_TRIBUTACAO_ORIGEM,A.FISCAL_TRIBUTACAO_ICMS,
A.FISCAL_TRIBUTACAO_IPI,A.FISCAL_TRIBUTACAO_PIS,A.FISCAL_TRIBUTACAO_COFINS,

A.MODALIDADE_ICMS, A.MODALIDADE_ICMS_ST, A.MARGEM_ICMS_ST,
A.REDUCAO_ICMS_ST, A.ALIQUOTA_ICMS_ST,
A.FISCAL_REDUCAO_ICMS_ST, A.FISCAL_ALIQUOTA_ICMS_ST,
A.Nf_Consignacao, A.Nf_Consignacao_Item,
A.FCI_MENSAGEM, A.FCI_PARCELA_IMPORTACAO, A.FCI_CONTEUDO_IMPORTACAO, A.FCI_NUMERO,
A.enquadramento_ipi, A.ccusto, A.conta_contabil,
A.pFCPUFDest,A.pICMSUFDest,A.pICMSInter,A.pICMSInterPart,
A.UM_ALTERNATIVA2,A.VALOR_ALTERNATIVO,REDUCAO_BASE_PISCOF


Order By 54, A.Nfs_Controle, A.Produto_Codigo
INTO
:Nfs_Controle,:Operacao_Codigo,:Cfop_Codigo,:Produto_Codigo,:Produto_Descricao,
:Produto_UnidadeMedida,:Ncm_Codigo,:Grade_Codigo,:Tributacao_Icms,:Tributacao_Ipi,
:Tributacao_Origem,:Localizacao_Codigo,:QUANTIDADE,:Valor_Unitario,:VALOR_TOTAL,
:BaseCalculo_Icms,:Percentual_Icms,:Percentual_Ipi,:VALOR_IPI,:Percentual_Pis,
:VALOR_PIS,:Percentual_Cofins,:VALOR_COFINS,:Nfe,:Nfe_Item_Controle,:Nf_Externo,
:Nf_Externo_Item_Controle,:T01,:T02,:T03,:T04,:T05,:T06,:T07,:T08,:T09,:T10,
:T11,:T12,:T13,:T14,:T15,:T16,:T17,:T18,:T19,:T20,:Estabelecimento_Codigo,
:Empresa_Codigo,:Numero_NotaFiscal,:Data_Emissao,:Situacao,:Valor_Custo,
:Sequencia, :Controle, :Pedido, :Pedido_Item_Pe_Controle, :Produto_Grade_Codigo,
:modelo_codigo, :Tecelagem,:tributacao_PIS, :tributacao_cofins,
:VALOR_ICMS,:BASECALCULO_IPI,:BASECALCULO_PIS,:BASECALCULO_COFINS,

    :LOCALIZACAO_DESCRICAO,
    :VALOR_FRETE, :VALOR_SEGURO, :PESO_LIQUIDO, :PESO_BRUTO, :VOLUMES, :CUBAGEM,

:VALOR_ACRESCIMO,:VALOR_DESCONTO,:FISCAL_ISENTAS_IPI,:FISCAL_ISENTAS_ICMS,
:FISCAL_OUTRAS_IPI,:FISCAL_OUTRAS_ICMS,:FISCAL_VALOR_ICMS,:FISCAL_VALOR_IPI,
:FISCAL_VALOR_PIS,:FISCAL_VALOR_COFINS,:FISCAL_PERCENTUAL_ICMS,:FISCAL_PERCENTUAL_IPI,
:FISCAL_PERCENTUAL_PIS,:FISCAL_PERCENTUAL_COFINS,:FISCAL_BASECALCULO_ICMS,
:FISCAL_BASECALCULO_IPI,:FISCAL_BASECALCULO_PIS,:FISCAL_BASECALCULO_COFINS,
:VALOR_CONTABIL,:Valor_BaseCalculo_Icms,:FISCAL_CFOP_CODIGO,
:FISCAL_TRIBUTACAO_ORIGEM, :FISCAL_TRIBUTACAO_ICMS,:FISCAL_TRIBUTACAO_IPI,
:FISCAL_TRIBUTACAO_PIS, :FISCAL_TRIBUTACAO_COFINS,

:MODALIDADE_ICMS, :MODALIDADE_ICMS_ST, :MARGEM_ICMS_ST,
:REDUCAO_ICMS_ST, :BASECALCULO_ICMS_ST, :ALIQUOTA_ICMS_ST, :VALOR_ICMS_ST,
:FISCAL_REDUCAO_ICMS_ST, :FISCAL_BASECALCULO_ICMS_ST, :FISCAL_ALIQUOTA_ICMS_ST, :FISCAL_VALOR_ICMS_ST,
:PEDIDO_CLIENTE,
:INFORMACOES_COMPLEMENTARES, :Nf_Consignacao, :Nf_Consignacao_Item,
:FCI_MENSAGEM, :FCI_PARCELA_IMPORTACAO, :FCI_CONTEUDO_IMPORTACAO, :FCI_NUMERO,
:enquadramento_ipi, :ccusto, :conta_contabil,
:VBCUFDEST,:pFCPUFDest,:pICMSUFDest,:pICMSInter,:vFCPUFDest,:vICMSUFDest,:vICMSUFRemet,:pICMSInterPart,
:QUANTIDADE_ALTERNATIVA, :UM_ALTERNATIVA, :VALOR_ALTERNATIVO,:REDUCAO_BASE_PISCOF

DO
SUSPEND;
END
^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER procedure SPC_NFS_ITEM_ACUMULADO2 (
    CONTROLE_1 integer)
returns (
    NFS_CONTROLE integer,
    OPERACAO_CODIGO varchar(3),
    CFOP_CODIGO varchar(5),
    PRODUTO_CODIGO integer,
    PRODUTO_DESCRICAO varchar(100),
    PRODUTO_UNIDADEMEDIDA varchar(3),
    NCM_CODIGO varchar(10),
    GRADE_CODIGO integer,
    TRIBUTACAO_ICMS integer,
    TRIBUTACAO_IPI varchar(2),
    TRIBUTACAO_ORIGEM integer,
    LOCALIZACAO_CODIGO integer,
    QUANTIDADE numeric(10,5),
    VALOR_UNITARIO numeric(10,5),
    VALOR_TOTAL numeric(10,5),
    BASECALCULO_ICMS numeric(10,5),
    PERCENTUAL_ICMS numeric(10,5),
    PERCENTUAL_IPI numeric(10,5),
    VALOR_IPI numeric(10,5),
    PERCENTUAL_PIS numeric(10,5),
    VALOR_PIS numeric(10,5),
    PERCENTUAL_COFINS numeric(10,5),
    VALOR_COFINS numeric(10,5),
    NFE integer,
    NFE_ITEM_CONTROLE integer,
    NF_EXTERNO integer,
    NF_EXTERNO_ITEM_CONTROLE integer,
    T01 numeric(10,5),
    T02 numeric(10,5),
    T03 numeric(10,5),
    T04 numeric(10,5),
    T05 numeric(10,5),
    T06 numeric(10,5),
    T07 numeric(10,5),
    T08 numeric(10,5),
    T09 numeric(10,5),
    T10 numeric(10,5),
    T11 numeric(10,5),
    T12 numeric(10,5),
    T13 numeric(10,5),
    T14 numeric(10,5),
    T15 numeric(10,5),
    T16 numeric(10,5),
    T17 numeric(10,5),
    T18 numeric(10,5),
    T19 numeric(10,5),
    T20 numeric(10,5),
    ESTABELECIMENTO_CODIGO integer,
    EMPRESA_CODIGO integer,
    NUMERO_NOTAFISCAL integer,
    DATA_EMISSAO date,
    SITUACAO integer,
    VALOR_CUSTO numeric(10,5),
    SEQUENCIA integer,
    CONTROLE integer,
    PEDIDO integer,
    PEDIDO_ITEM_PE_CONTROLE integer,
    PRODUTO_GRADE_CODIGO integer,
    MODELO_CODIGO integer,
    TECELAGEM integer,
    TRIBUTACAO_PIS varchar(2),
    TRIBUTACAO_COFINS varchar(2),
    VALOR_ICMS numeric(10,2),
    BASECALCULO_IPI numeric(10,2),
    BASECALCULO_PIS numeric(10,2),
    BASECALCULO_COFINS numeric(10,2),
    LOCALIZACAO_DESCRICAO varchar(20),
    VALOR_FRETE numeric(10,2),
    VALOR_SEGURO numeric(10,2),
    PESO_LIQUIDO numeric(10,4),
    PESO_BRUTO numeric(10,4),
    VOLUMES integer,
    CUBAGEM numeric(10,4),
    VALOR_ACRESCIMO numeric(10,2),
    VALOR_DESCONTO numeric(10,2),
    FISCAL_ISENTAS_IPI numeric(10,2),
    FISCAL_ISENTAS_ICMS numeric(10,2),
    FISCAL_OUTRAS_IPI numeric(10,2),
    FISCAL_OUTRAS_ICMS numeric(10,2),
    FISCAL_VALOR_ICMS numeric(10,2),
    FISCAL_VALOR_IPI numeric(10,2),
    FISCAL_VALOR_PIS numeric(10,2),
    FISCAL_VALOR_COFINS numeric(10,2),
    FISCAL_PERCENTUAL_ICMS numeric(10,2),
    FISCAL_PERCENTUAL_IPI numeric(10,2),
    FISCAL_PERCENTUAL_PIS numeric(10,2),
    FISCAL_PERCENTUAL_COFINS numeric(10,2),
    FISCAL_BASECALCULO_ICMS numeric(10,5),
    FISCAL_BASECALCULO_IPI numeric(10,2),
    FISCAL_BASECALCULO_PIS numeric(10,2),
    FISCAL_BASECALCULO_COFINS numeric(10,2),
    VALOR_CONTABIL numeric(10,2),
    VALOR_BASECALCULO_ICMS numeric(10,2),
    FISCAL_CFOP_CODIGO varchar(5),
    FISCAL_TRIBUTACAO_ORIGEM integer,
    FISCAL_TRIBUTACAO_ICMS integer,
    FISCAL_TRIBUTACAO_IPI char(2),
    FISCAL_TRIBUTACAO_PIS char(2),
    FISCAL_TRIBUTACAO_COFINS char(2),
    MODALIDADE_ICMS char(1),
    MODALIDADE_ICMS_ST char(1),
    MARGEM_ICMS_ST numeric(15,4),
    REDUCAO_ICMS_ST numeric(15,4),
    BASECALCULO_ICMS_ST numeric(15,4),
    ALIQUOTA_ICMS_ST numeric(15,4),
    VALOR_ICMS_ST numeric(15,4),
    FISCAL_REDUCAO_ICMS_ST numeric(10,2),
    FISCAL_BASECALCULO_ICMS_ST numeric(10,2),
    FISCAL_ALIQUOTA_ICMS_ST numeric(10,2),
    FISCAL_VALOR_ICMS_ST numeric(10,2),
    PEDIDO_CLIENTE varchar(15),
    INFORMACOES_COMPLEMENTARES varchar(500),
    NF_CONSIGNACAO integer,
    NF_CONSIGNACAO_ITEM integer,
    FCI_MENSAGEM varchar(255),
    FCI_PARCELA_IMPORTACAO numeric(15,2),
    FCI_CONTEUDO_IMPORTACAO numeric(15,2),
    FCI_NUMERO varchar(40),
    ENQUADRAMENTO_IPI varchar(3),
    CCUSTO varchar(8),
    CONTA_CONTABIL varchar(11),
    VBCUFDEST numeric(15,2),
    PFCPUFDEST numeric(15,2),
    PICMSUFDEST numeric(15,2),
    PICMSINTER numeric(15,2),
    VFCPUFDEST numeric(15,2),
    VICMSUFDEST numeric(15,2),
    VICMSUFREMET numeric(15,2),
    PICMSINTERPART numeric(15,2),
    QUANTIDADE_ALTERNATIVA numeric(18,4),
    UM_ALTERNATIVA varchar(3),
    VALOR_ALTERNATIVO numeric(18,10),
    REDUCAO_BASE_PISCOF char(1))
as
BEGIN
FOR
Select Distinct(A.Nfs_Controle), A.Operacao_Codigo, A.Cfop_Codigo,
A.Produto_Codigo,
Max((Select First 1 (Case When char_length(Trim(M.Descricao_Nf)) > 0 Then M.Descricao_Nf else M.Descricao End) From TbModelo M Where E.Modelo_codigo = M.Codigo)) Produto_Descricao,
A.Produto_UnidadeMedida2, A.Ncm_Codigo, A.Grade_Codigo,
A.Tributacao_Icms,A.Tributacao_Ipi, A.Tributacao_Origem, A.Localizacao_Codigo,
Sum(A.Quantidade), A.Valor_Unitario, Sum(A.Valor_Total), A.BaseCalculo_Icms,
A.Percentual_Icms, A.Percentual_Ipi, Sum(A.Valor_Ipi), A.Percentual_Pis,
Sum(A.Valor_Pis), A.Percentual_Cofins, Sum(A.Valor_Cofins),
A.Nfe, A.Nfe_Item_Controle, A.Nf_Externo, A.Nf_Externo_Item_Controle,

Sum(A.T01),Sum(A.T02),Sum(A.T03),Sum(A.T04),Sum(A.T05),Sum(A.T06),Sum(A.T07),
Sum(A.T08),Sum(A.T09),Sum(A.T10),Sum(A.T11),Sum(A.T12),Sum(A.T13),Sum(A.T14),
Sum(A.T15),Sum(A.T16),Sum(A.T17),Sum(A.T18),Sum(A.T19),Sum(A.T20),
A.Estabelecimento_Codigo, A.Empresa_Codigo, A.Numero_NotaFiscal, A.Data_Emissao,
A.Situacao, A.Valor_Custo, Min(A.Sequencia),0,A.PEDIDO,A.pedido_item_pe_controle,E.Grade_codigo, E.Modelo_codigo,
A.Tecelagem,A.tributacao_PIS, A.Tributacao_Cofins,

SUM(A.VALOR_ICMS),SUM(A.BASECALCULO_IPI),SUM(A.BASECALCULO_PIS),SUM(A.BASECALCULO_COFINS),
Max((Select First 1 L.Descricao From TbLocalizacao L Where A.Localizacao_Codigo = L.Codigo)),
SUM(A.VALOR_FRETE), SUM(A.VALOR_SEGURO), SUM(A.PESO_LIQUIDO),
SUM(A.PESO_BRUTO), SUM(A.VOLUMES), SUM(A.CUBAGEM),
SUM(A.VALOR_ACRESCIMO),SUM(A.VALOR_DESCONTO),SUM(A.FISCAL_ISENTAS_IPI),SUM(A.FISCAL_ISENTAS_ICMS),
SUM(A.FISCAL_OUTRAS_IPI),SUM(A.FISCAL_OUTRAS_ICMS),SUM(A.FISCAL_VALOR_ICMS),SUM(A.FISCAL_VALOR_IPI),
SUM(A.FISCAL_VALOR_PIS),SUM(A.FISCAL_VALOR_COFINS),A.FISCAL_PERCENTUAL_ICMS,A.FISCAL_PERCENTUAL_IPI,
A.FISCAL_PERCENTUAL_PIS,A.FISCAL_PERCENTUAL_COFINS,A.FISCAL_BASECALCULO_ICMS,
SUM(A.FISCAL_BASECALCULO_IPI),SUM(A.FISCAL_BASECALCULO_PIS),SUM(A.FISCAL_BASECALCULO_COFINS),
Sum(A.VALOR_CONTABIL),Sum(A.Valor_BaseCalculo_Icms ),A.FISCAL_CFOP_CODIGO,A.FISCAL_TRIBUTACAO_ORIGEM,A.FISCAL_TRIBUTACAO_ICMS,
A.FISCAL_TRIBUTACAO_IPI,A.FISCAL_TRIBUTACAO_PIS,A.FISCAL_TRIBUTACAO_COFINS,

A.MODALIDADE_ICMS, A.MODALIDADE_ICMS_ST, A.MARGEM_ICMS_ST,
A.REDUCAO_ICMS_ST, SUM(A.BASECALCULO_ICMS_ST), A.ALIQUOTA_ICMS_ST, SUM(A.VALOR_ICMS_ST),
A.FISCAL_REDUCAO_ICMS_ST, SUM(A.FISCAL_BASECALCULO_ICMS_ST), A.FISCAL_ALIQUOTA_ICMS_ST, SUM(A.FISCAL_VALOR_ICMS_ST),

(A.PEDIDO_CLIENTE), MAX(A.INFORMACOES_COMPLEMENTARES), A.Nf_Consignacao, A.Nf_Consignacao_Item,
A.FCI_MENSAGEM, A.FCI_PARCELA_IMPORTACAO, A.FCI_CONTEUDO_IMPORTACAO, A.FCI_NUMERO,
A.enquadramento_ipi, A.ccusto, A.conta_contabil,

Sum(A.VBCUFDEST),
A.pFCPUFDest,
A.pICMSUFDest,
A.pICMSInter,
Sum(A.vFCPUFDest),
Sum(A.vICMSUFDest),
Sum(A.vICMSUFRemet),
A.pICMSInterPart,

A.QUANTIDADE_ALTERNATIVA,
A.UM_ALTERNATIVA2,
A.VALOR_ALTERNATIVO,
A.REDUCAO_BASE_PISCOF

From TbNfs_Item A, TbProduto E
Where A.Produto_Codigo = E.Codigo
  and A.Nfs_Controle > 0 and A.Nfs_Controle = :CONTROLE_1

Group By A.Nfs_Controle, A.Operacao_Codigo, A.Cfop_Codigo, A.PRODUTO_CODIGO,
A.Produto_UnidadeMedida2, A.Ncm_Codigo, A.Grade_Codigo,
A.Tributacao_Icms, A.Tributacao_Ipi, A.Tributacao_Origem, A.Localizacao_Codigo,
A.Valor_Unitario, A.BaseCalculo_Icms, A.Percentual_Icms, A.Percentual_Ipi,
A.Percentual_Pis, A.Percentual_Cofins, A.Nfe, A.Nfe_Item_Controle, A.Nf_Externo,
A.Nf_Externo_Item_Controle, A.Estabelecimento_Codigo, A.Empresa_Codigo,
A.Numero_NotaFiscal, A.Data_Emissao, A.Situacao, A.Valor_Custo,
E.Grade_codigo, E.Modelo_codigo, A.Tecelagem,
A.tributacao_PIS, A.tributacao_cofins,A.FISCAL_PERCENTUAL_ICMS,A.FISCAL_PERCENTUAL_IPI,
A.FISCAL_PERCENTUAL_PIS,A.FISCAL_PERCENTUAL_COFINS,A.FISCAL_BASECALCULO_ICMS,
A.FISCAL_CFOP_CODIGO,A.FISCAL_TRIBUTACAO_ORIGEM,A.FISCAL_TRIBUTACAO_ICMS,
A.FISCAL_TRIBUTACAO_IPI,A.FISCAL_TRIBUTACAO_PIS,A.FISCAL_TRIBUTACAO_COFINS,
A.PEDIDO,A.PEDIDO_CLIENTE,A.pedido_item_pe_controle,
A.MODALIDADE_ICMS, A.MODALIDADE_ICMS_ST, A.MARGEM_ICMS_ST,
A.REDUCAO_ICMS_ST, A.ALIQUOTA_ICMS_ST,
A.FISCAL_REDUCAO_ICMS_ST, A.FISCAL_ALIQUOTA_ICMS_ST,
A.Nf_Consignacao, A.Nf_Consignacao_Item,
A.FCI_MENSAGEM, A.FCI_PARCELA_IMPORTACAO, A.FCI_CONTEUDO_IMPORTACAO, A.FCI_NUMERO,
A.enquadramento_ipi, A.ccusto, A.conta_contabil,
A.pFCPUFDest,A.pICMSUFDest,A.pICMSInter,A.pICMSInterPart,
A.QUANTIDADE_ALTERNATIVA, A.UM_ALTERNATIVA2, A.VALOR_ALTERNATIVO, A.REDUCAO_BASE_PISCOF

Order By 54, A.Nfs_Controle, A.PRODUTO_CODIGO 
INTO
:Nfs_Controle,:Operacao_Codigo,:Cfop_Codigo,:Produto_Codigo,:Produto_Descricao,
:Produto_UnidadeMedida,:Ncm_Codigo,:Grade_Codigo,:Tributacao_Icms,:Tributacao_Ipi,
:Tributacao_Origem,:Localizacao_Codigo,:QUANTIDADE,:Valor_Unitario,:VALOR_TOTAL,
:BaseCalculo_Icms,:Percentual_Icms,:Percentual_Ipi,:VALOR_IPI,:Percentual_Pis,
:VALOR_PIS,:Percentual_Cofins,:VALOR_COFINS,:Nfe,:Nfe_Item_Controle,:Nf_Externo,
:Nf_Externo_Item_Controle,:T01,:T02,:T03,:T04,:T05,:T06,:T07,:T08,:T09,:T10,
:T11,:T12,:T13,:T14,:T15,:T16,:T17,:T18,:T19,:T20,:Estabelecimento_Codigo,
:Empresa_Codigo,:Numero_NotaFiscal,:Data_Emissao,:Situacao,:Valor_Custo,
:Sequencia, :Controle, :Pedido, :Pedido_Item_Pe_Controle, :Produto_Grade_Codigo,
:modelo_codigo, :Tecelagem,:tributacao_PIS, :tributacao_cofins,
:VALOR_ICMS,:BASECALCULO_IPI,:BASECALCULO_PIS,:BASECALCULO_COFINS,

    :LOCALIZACAO_DESCRICAO,
    :VALOR_FRETE, :VALOR_SEGURO, :PESO_LIQUIDO, :PESO_BRUTO, :VOLUMES, :CUBAGEM,

:VALOR_ACRESCIMO,:VALOR_DESCONTO,:FISCAL_ISENTAS_IPI,:FISCAL_ISENTAS_ICMS,
:FISCAL_OUTRAS_IPI,:FISCAL_OUTRAS_ICMS,:FISCAL_VALOR_ICMS,:FISCAL_VALOR_IPI,
:FISCAL_VALOR_PIS,:FISCAL_VALOR_COFINS,:FISCAL_PERCENTUAL_ICMS,:FISCAL_PERCENTUAL_IPI,
:FISCAL_PERCENTUAL_PIS,:FISCAL_PERCENTUAL_COFINS,:FISCAL_BASECALCULO_ICMS,
:FISCAL_BASECALCULO_IPI,:FISCAL_BASECALCULO_PIS,:FISCAL_BASECALCULO_COFINS,
:VALOR_CONTABIL,:Valor_BaseCalculo_Icms,:FISCAL_CFOP_CODIGO,
:FISCAL_TRIBUTACAO_ORIGEM, :FISCAL_TRIBUTACAO_ICMS,:FISCAL_TRIBUTACAO_IPI,
:FISCAL_TRIBUTACAO_PIS, :FISCAL_TRIBUTACAO_COFINS,

:MODALIDADE_ICMS, :MODALIDADE_ICMS_ST, :MARGEM_ICMS_ST,
:REDUCAO_ICMS_ST, :BASECALCULO_ICMS_ST, :ALIQUOTA_ICMS_ST, :VALOR_ICMS_ST,
:FISCAL_REDUCAO_ICMS_ST, :FISCAL_BASECALCULO_ICMS_ST, :FISCAL_ALIQUOTA_ICMS_ST, :FISCAL_VALOR_ICMS_ST,
:PEDIDO_CLIENTE,
:INFORMACOES_COMPLEMENTARES, :Nf_Consignacao, :Nf_Consignacao_Item,
:FCI_MENSAGEM, :FCI_PARCELA_IMPORTACAO, :FCI_CONTEUDO_IMPORTACAO, :FCI_NUMERO,
:enquadramento_ipi, :ccusto, :conta_contabil,
:VBCUFDEST,:pFCPUFDest,:pICMSUFDest,:pICMSInter,:vFCPUFDest,:vICMSUFDest,
:vICMSUFRemet,:pICMSInterPart,:QUANTIDADE_ALTERNATIVA, :UM_ALTERNATIVA,
:VALOR_ALTERNATIVO,:REDUCAO_BASE_PISCOF

DO
SUSPEND;
END
^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER procedure SPI_NFS_ITEM (
    NFS_CONTROLE integer,
    ESTABELECIMENTO_CODIGO integer,
    EMPRESA_CODIGO integer,
    NUMERO_NOTAFISCAL integer,
    DATA_EMISSAO date,
    SITUACAO integer,
    NF_NATUREZA integer,
    NF_CONSIGNACAO integer,
    NF_CONSIGNACAO_ITEM integer,
    NFE integer,
    NFE_ITEM_CONTROLE integer,
    PEDIDO integer,
    PEDIDO_ITEM_PE_CONTROLE integer,
    NF_EXTERNO integer,
    NF_EXTERNO_ITEM_CONTROLE integer,
    CONTROLE integer,
    SEQUENCIA integer,
    OPERACAO_CODIGO varchar(3),
    CFOP_CODIGO varchar(5),
    PRODUTO_CODIGO integer,
    PRODUTO_DESCRICAO varchar(100),
    PRODUTO_UNIDADEMEDIDA varchar(3),
    NCM_CODIGO varchar(10),
    TRIBUTACAO_ORIGEM integer,
    TRIBUTACAO_IPI varchar(2),
    TRIBUTACAO_ICMS integer,
    TRIBUTACAO_PIS char(2),
    TRIBUTACAO_COFINS char(2),
    LOCALIZACAO_CODIGO integer,
    QUANTIDADE numeric(10,5),
    VALOR_UNITARIO numeric(10,5),
    VALOR_TOTAL numeric(10,5),
    BASECALCULO_ICMS numeric(10,5),
    PERCENTUAL_ICMS numeric(10,5),
    PERCENTUAL_IPI numeric(10,5),
    VALOR_IPI numeric(10,5),
    PERCENTUAL_PIS numeric(10,5),
    VALOR_PIS numeric(10,5),
    PERCENTUAL_COFINS numeric(10,5),
    VALOR_COFINS numeric(10,5),
    T01 numeric(10,5),
    T02 numeric(10,5),
    T03 numeric(10,5),
    T04 numeric(10,5),
    T05 numeric(10,5),
    T06 numeric(10,5),
    T07 numeric(10,5),
    T08 numeric(10,5),
    T09 numeric(10,5),
    T10 numeric(10,5),
    T11 numeric(10,5),
    T12 numeric(10,5),
    T13 numeric(10,5),
    T14 numeric(10,5),
    T15 numeric(10,5),
    T16 numeric(10,5),
    T17 numeric(10,5),
    T18 numeric(10,5),
    T19 numeric(10,5),
    T20 numeric(10,5),
    TECELAGEM integer,
    VALOR_ICMS numeric(10,2),
    BASECALCULO_IPI numeric(10,2),
    BASECALCULO_PIS numeric(10,2),
    BASECALCULO_COFINS numeric(10,2),
    VALOR_ACRESCIMO numeric(10,2),
    VALOR_FRETE numeric(10,2),
    VALOR_SEGURO numeric(10,2),
    PESO_LIQUIDO numeric(10,4),
    PESO_BRUTO numeric(10,4),
    CUBAGEM numeric(10,4),
    VOLUMES integer,
    VALOR_DESCONTO numeric(10,2),
    FISCAL_ISENTAS_IPI numeric(10,2),
    FISCAL_ISENTAS_ICMS numeric(10,2),
    FISCAL_OUTRAS_IPI numeric(10,2),
    FISCAL_OUTRAS_ICMS numeric(10,2),
    FISCAL_VALOR_ICMS numeric(10,2),
    FISCAL_VALOR_IPI numeric(10,2),
    FISCAL_VALOR_PIS numeric(10,2),
    FISCAL_VALOR_COFINS numeric(10,2),
    FISCAL_PERCENTUAL_ICMS numeric(10,2),
    FISCAL_PERCENTUAL_IPI numeric(10,2),
    FISCAL_PERCENTUAL_PIS numeric(10,2),
    FISCAL_PERCENTUAL_COFINS numeric(10,2),
    FISCAL_BASECALCULO_ICMS numeric(10,2),
    FISCAL_BASECALCULO_IPI numeric(10,2),
    FISCAL_BASECALCULO_PIS numeric(10,2),
    FISCAL_BASECALCULO_COFINS numeric(10,2),
    VALOR_CONTABIL numeric(10,2),
    VALOR_BASECALCULO_ICMS numeric(10,2),
    FISCAL_CFOP_CODIGO varchar(5),
    FISCAL_TRIBUTACAO_ORIGEM integer,
    FISCAL_TRIBUTACAO_ICMS integer,
    FISCAL_TRIBUTACAO_IPI char(2),
    FISCAL_TRIBUTACAO_PIS char(2),
    FISCAL_TRIBUTACAO_COFINS char(2),
    MODALIDADE_ICMS char(1),
    MODALIDADE_ICMS_ST char(1),
    MARGEM_ICMS_ST numeric(15,4),
    REDUCAO_ICMS_ST numeric(15,4),
    BASECALCULO_ICMS_ST numeric(15,4),
    ALIQUOTA_ICMS_ST numeric(15,4),
    VALOR_ICMS_ST numeric(15,4),
    FISCAL_REDUCAO_ICMS_ST numeric(10,2),
    FISCAL_BASECALCULO_ICMS_ST numeric(10,2),
    FISCAL_ALIQUOTA_ICMS_ST numeric(10,2),
    FISCAL_VALOR_ICMS_ST numeric(10,2),
    PEDIDO_CLIENTE varchar(15),
    INFORMACOES_COMPLEMENTARES varchar(500),
    FCI_MENSAGEM varchar(255),
    FCI_PARCELA_IMPORTACAO numeric(15,2),
    FCI_CONTEUDO_IMPORTACAO numeric(15,2),
    FCI_NUMERO varchar(40),
    CCUSTO varchar(8),
    CONTA_CONTABIL varchar(11),
    ENQUADRAMENTO_IPI varchar(3),
    QUANTIDADE_ALTERNATIVA numeric(18,4),
    UM_ALTERNATIVA varchar(3),
    VALOR_ALTERNATIVO numeric(18,10),
    REDUCAO_BASE_PISCOF char(1),
    OPERACAO_TIPO_DESCONTO varchar(1),
    GC_WEB integer,
    MARGEM numeric(10,2) = 0,
    PDV_CONFERENCIA_ITEM_ID integer = 0,
    PDV_CONFERENCIA_ID integer = 0)
as
BEGIN
INSERT INTO TBNFS_ITEM(
NFS_CONTROLE,ESTABELECIMENTO_CODIGO,EMPRESA_CODIGO,NUMERO_NOTAFISCAL,DATA_EMISSAO,NF_SITUACAO, NF_NATUREZA,
NF_CONSIGNACAO,NF_CONSIGNACAO_ITEM,NFE,NFE_ITEM_CONTROLE,PEDIDO,
PEDIDO_ITEM_PE_CONTROLE,NF_EXTERNO,NF_EXTERNO_ITEM_CONTROLE    ,
CONTROLE,SEQUENCIA,OPERACAO_CODIGO,CFOP_CODIGO,PRODUTO_CODIGO,PRODUTO_DESCRICAO           ,
PRODUTO_UNIDADEMEDIDA2,NCM_CODIGO,TRIBUTACAO_ORIGEM,TRIBUTACAO_IPI,TRIBUTACAO_ICMS         ,
TRIBUTACAO_PIS,TRIBUTACAO_COFINS                                                          ,
LOCALIZACAO_CODIGO,QUANTIDADE,VALOR_UNITARIO,VALOR_TOTAL,BASECALCULO_ICMS,PERCENTUAL_ICMS ,
PERCENTUAL_IPI,VALOR_IPI,PERCENTUAL_PIS,VALOR_PIS,PERCENTUAL_COFINS,VALOR_COFINS          ,
T01,T02,T03,T04,T05,T06,T07,T08,T09,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,TECELAGEM,
VALOR_ICMS,BASECALCULO_IPI,BASECALCULO_PIS,BASECALCULO_COFINS,
VALOR_ACRESCIMO, VALOR_FRETE, VALOR_SEGURO, PESO_LIQUIDO, PESO_BRUTO, CUBAGEM, VOLUMES,
VALOR_DESCONTO,FISCAL_ISENTAS_IPI,FISCAL_ISENTAS_ICMS,
FISCAL_OUTRAS_IPI,FISCAL_OUTRAS_ICMS,FISCAL_VALOR_ICMS,FISCAL_VALOR_IPI,
FISCAL_VALOR_PIS,FISCAL_VALOR_COFINS,FISCAL_PERCENTUAL_ICMS,FISCAL_PERCENTUAL_IPI,
FISCAL_PERCENTUAL_PIS,FISCAL_PERCENTUAL_COFINS,FISCAL_BASECALCULO_ICMS,
FISCAL_BASECALCULO_IPI,FISCAL_BASECALCULO_PIS,FISCAL_BASECALCULO_COFINS,
VALOR_CONTABIL, VALOR_BASECALCULO_ICMS, FISCAL_CFOP_CODIGO, FISCAL_TRIBUTACAO_ORIGEM,
FISCAL_TRIBUTACAO_ICMS, FISCAL_TRIBUTACAO_IPI, FISCAL_TRIBUTACAO_PIS,
FISCAL_TRIBUTACAO_COFINS, MODALIDADE_ICMS, MODALIDADE_ICMS_ST, MARGEM_ICMS_ST,
REDUCAO_ICMS_ST, BASECALCULO_ICMS_ST, ALIQUOTA_ICMS_ST, VALOR_ICMS_ST,
FISCAL_REDUCAO_ICMS_ST, FISCAL_BASECALCULO_ICMS_ST, FISCAL_ALIQUOTA_ICMS_ST, FISCAL_VALOR_ICMS_ST,
PEDIDO_CLIENTE, INFORMACOES_COMPLEMENTARES, FCI_MENSAGEM,
FCI_PARCELA_IMPORTACAO, FCI_CONTEUDO_IMPORTACAO, FCI_NUMERO,CCUSTO,CONTA_CONTABIL,ENQUADRAMENTO_IPI,
QUANTIDADE_ALTERNATIVA, UM_ALTERNATIVA2, VALOR_ALTERNATIVO, REDUCAO_BASE_PISCOF, TIPO_DESCONTO, GC_WEB, MARGEM, PDV_CONFERENCIA_ITEM_ID, PDV_CONFERENCIA_ID)
VALUES  (
:NFS_CONTROLE,:ESTABELECIMENTO_CODIGO,:EMPRESA_CODIGO,:NUMERO_NOTAFISCAL,
:DATA_EMISSAO,:SITUACAO,:NF_NATUREZA,:NF_CONSIGNACAO,:NF_CONSIGNACAO_ITEM,
:NFE,:NFE_ITEM_CONTROLE,:PEDIDO,:PEDIDO_ITEM_PE_CONTROLE,:NF_EXTERNO,
:NF_EXTERNO_ITEM_CONTROLE,:CONTROLE,:SEQUENCIA,:OPERACAO_CODIGO,:CFOP_CODIGO,
:PRODUTO_CODIGO,:PRODUTO_DESCRICAO,:PRODUTO_UNIDADEMEDIDA,:NCM_CODIGO,:TRIBUTACAO_ORIGEM,
:TRIBUTACAO_IPI,:TRIBUTACAO_ICMS,:TRIBUTACAO_PIS,:TRIBUTACAO_COFINS,:LOCALIZACAO_CODIGO,
:QUANTIDADE,:VALOR_UNITARIO,:VALOR_TOTAL,:BASECALCULO_ICMS,:PERCENTUAL_ICMS,
:PERCENTUAL_IPI,:VALOR_IPI,:PERCENTUAL_PIS,:VALOR_PIS,:PERCENTUAL_COFINS,
:VALOR_COFINS,:T01,:T02,:T03,:T04,:T05,:T06,:T07,:T08,:T09,:T10,
:T11,:T12,:T13,:T14,:T15,:T16,:T17,:T18,:T19,:T20,:TECELAGEM,
:VALOR_ICMS,:BASECALCULO_IPI,:BASECALCULO_PIS,:BASECALCULO_COFINS,
:VALOR_ACRESCIMO, :VALOR_FRETE, :VALOR_SEGURO, :PESO_LIQUIDO, :PESO_BRUTO, :CUBAGEM, :VOLUMES,
:VALOR_DESCONTO,:FISCAL_ISENTAS_IPI,:FISCAL_ISENTAS_ICMS,
:FISCAL_OUTRAS_IPI,:FISCAL_OUTRAS_ICMS,:FISCAL_VALOR_ICMS,:FISCAL_VALOR_IPI,
:FISCAL_VALOR_PIS,:FISCAL_VALOR_COFINS,:FISCAL_PERCENTUAL_ICMS,:FISCAL_PERCENTUAL_IPI,
:FISCAL_PERCENTUAL_PIS,:FISCAL_PERCENTUAL_COFINS,:FISCAL_BASECALCULO_ICMS,
:FISCAL_BASECALCULO_IPI,:FISCAL_BASECALCULO_PIS,:FISCAL_BASECALCULO_COFINS,
:VALOR_CONTABIL, :VALOR_BASECALCULO_ICMS, :FISCAL_CFOP_CODIGO,:FISCAL_TRIBUTACAO_ORIGEM,
:FISCAL_TRIBUTACAO_ICMS,:FISCAL_TRIBUTACAO_IPI,:FISCAL_TRIBUTACAO_PIS,
:FISCAL_TRIBUTACAO_COFINS,

:MODALIDADE_ICMS, :MODALIDADE_ICMS_ST, :MARGEM_ICMS_ST, :REDUCAO_ICMS_ST,
:BASECALCULO_ICMS_ST, :ALIQUOTA_ICMS_ST, :VALOR_ICMS_ST,
:FISCAL_REDUCAO_ICMS_ST, :FISCAL_BASECALCULO_ICMS_ST, :FISCAL_ALIQUOTA_ICMS_ST, :FISCAL_VALOR_ICMS_ST,
:PEDIDO_CLIENTE, :INFORMACOES_COMPLEMENTARES,
:FCI_MENSAGEM, :FCI_PARCELA_IMPORTACAO, :FCI_CONTEUDO_IMPORTACAO, :FCI_NUMERO,:CCUSTO,:CONTA_CONTABIL,:ENQUADRAMENTO_IPI,
:QUANTIDADE_ALTERNATIVA, :UM_ALTERNATIVA, :VALOR_ALTERNATIVO, :REDUCAO_BASE_PISCOF, :OPERACAO_TIPO_DESCONTO, :GC_WEB, :MARGEM, :PDV_CONFERENCIA_ITEM_ID, :PDV_CONFERENCIA_ID);

INSERT INTO TBNFS_ITEM_SALDO (            
NFS_ITEM_CONTROLE,NFS_CONTROLE,QUANTIDADE,
T01,T02,T03,T04,T05,T06,T07,T08,T09,T10,  
T11,T12,T13,T14,T15,T16,T17,T18,T19,T20)  
VALUES (                                  
:CONTROLE,:NFS_CONTROLE,:QUANTIDADE,
:T01,:T02,:T03,:T04,:T05,:T06,:T07,:T08,:T09,:T10,
:T11,:T12,:T13,:T14,:T15,:T16,:T17,:T18,:T19,:T20);

END
^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER procedure SPI_NFS_ITEM7 (
    NFS_CONTROLE integer,
    ESTABELECIMENTO_CODIGO integer,
    EMPRESA_CODIGO integer,
    NUMERO_NOTAFISCAL integer,
    DATA_EMISSAO date,
    SITUACAO integer,
    NF_CONSIGNACAO integer,
    NF_CONSIGNACAO_ITEM integer,
    NFE integer,
    NFE_ITEM_CONTROLE integer,
    PEDIDO integer,
    PEDIDO_ITEM_PE_CONTROLE integer,
    NF_EXTERNO integer,
    NF_EXTERNO_ITEM_CONTROLE integer,
    CONTROLE integer,
    SEQUENCIA integer,
    OPERACAO_CODIGO varchar(3),
    CFOP_CODIGO varchar(5),
    PRODUTO_CODIGO integer,
    PRODUTO_DESCRICAO varchar(100),
    PRODUTO_UNIDADEMEDIDA varchar(3),
    NCM_CODIGO varchar(10),
    TRIBUTACAO_ORIGEM integer,
    TRIBUTACAO_IPI varchar(2),
    TRIBUTACAO_ICMS integer,
    TRIBUTACAO_PIS char(2),
    TRIBUTACAO_COFINS char(2),
    LOCALIZACAO_CODIGO integer,
    QUANTIDADE numeric(10,5),
    VALOR_UNITARIO numeric(10,5),
    VALOR_TOTAL numeric(10,5),
    BASECALCULO_ICMS numeric(10,5),
    PERCENTUAL_ICMS numeric(10,5),
    PERCENTUAL_IPI numeric(10,5),
    VALOR_IPI numeric(10,5),
    PERCENTUAL_PIS numeric(10,5),
    VALOR_PIS numeric(10,5),
    PERCENTUAL_COFINS numeric(10,5),
    VALOR_COFINS numeric(10,5),
    T01 numeric(10,5),
    T02 numeric(10,5),
    T03 numeric(10,5),
    T04 numeric(10,5),
    T05 numeric(10,5),
    T06 numeric(10,5),
    T07 numeric(10,5),
    T08 numeric(10,5),
    T09 numeric(10,5),
    T10 numeric(10,5),
    T11 numeric(10,5),
    T12 numeric(10,5),
    T13 numeric(10,5),
    T14 numeric(10,5),
    T15 numeric(10,5),
    T16 numeric(10,5),
    T17 numeric(10,5),
    T18 numeric(10,5),
    T19 numeric(10,5),
    T20 numeric(10,5),
    TECELAGEM integer,
    VALOR_ICMS numeric(10,2),
    BASECALCULO_IPI numeric(10,2),
    BASECALCULO_PIS numeric(10,2),
    BASECALCULO_COFINS numeric(10,2),
    VALOR_ACRESCIMO numeric(10,2),
    VALOR_FRETE numeric(10,2),
    VALOR_SEGURO numeric(10,2),
    PESO_LIQUIDO numeric(10,4),
    PESO_BRUTO numeric(10,4),
    CUBAGEM numeric(10,4),
    VOLUMES integer,
    VALOR_DESCONTO numeric(10,2),
    FISCAL_ISENTAS_IPI numeric(10,2),
    FISCAL_ISENTAS_ICMS numeric(10,2),
    FISCAL_OUTRAS_IPI numeric(10,2),
    FISCAL_OUTRAS_ICMS numeric(10,2),
    FISCAL_VALOR_ICMS numeric(10,2),
    FISCAL_VALOR_IPI numeric(10,2),
    FISCAL_VALOR_PIS numeric(10,2),
    FISCAL_VALOR_COFINS numeric(10,2),
    FISCAL_PERCENTUAL_ICMS numeric(10,2),
    FISCAL_PERCENTUAL_IPI numeric(10,2),
    FISCAL_PERCENTUAL_PIS numeric(10,2),
    FISCAL_PERCENTUAL_COFINS numeric(10,2),
    FISCAL_BASECALCULO_ICMS numeric(10,2),
    FISCAL_BASECALCULO_IPI numeric(10,2),
    FISCAL_BASECALCULO_PIS numeric(10,2),
    FISCAL_BASECALCULO_COFINS numeric(10,2),
    VALOR_CONTABIL numeric(10,2),
    VALOR_BASECALCULO_ICMS numeric(10,2),
    FISCAL_CFOP_CODIGO varchar(5),
    FISCAL_TRIBUTACAO_ORIGEM integer,
    FISCAL_TRIBUTACAO_ICMS integer,
    FISCAL_TRIBUTACAO_IPI char(2),
    FISCAL_TRIBUTACAO_PIS char(2),
    FISCAL_TRIBUTACAO_COFINS char(2),
    MODALIDADE_ICMS char(1),
    MODALIDADE_ICMS_ST char(1),
    MARGEM_ICMS_ST numeric(15,4),
    REDUCAO_ICMS_ST numeric(15,4),
    BASECALCULO_ICMS_ST numeric(15,4),
    ALIQUOTA_ICMS_ST numeric(15,4),
    VALOR_ICMS_ST numeric(15,4),
    FISCAL_REDUCAO_ICMS_ST numeric(10,2),
    FISCAL_BASECALCULO_ICMS_ST numeric(10,2),
    FISCAL_ALIQUOTA_ICMS_ST numeric(10,2),
    FISCAL_VALOR_ICMS_ST numeric(10,2),
    PEDIDO_CLIENTE varchar(15),
    INFORMACOES_COMPLEMENTARES varchar(200),
    FCI_MENSAGEM varchar(255),
    FCI_PARCELA_IMPORTACAO numeric(15,2),
    FCI_CONTEUDO_IMPORTACAO numeric(15,2),
    FCI_NUMERO varchar(40),
    CCUSTO varchar(8),
    CONTA_CONTABIL varchar(11),
    ENQUADRAMENTO_IPI varchar(3),
    QUANTIDADE_ALTERNATIVA numeric(18,4),
    UM_ALTERNATIVA varchar(3),
    VALOR_ALTERNATIVO numeric(18,10))
as
BEGIN
INSERT INTO TbNfs_Item(
Nfs_Controle,Estabelecimento_Codigo,Empresa_Codigo,Numero_NotaFiscal,Data_Emissao,Situacao,
Nf_CONSIGNACAO,Nf_CONSIGNACAO_Item,Nfe,Nfe_Item_Controle,Pedido,
Pedido_Item_PE_Controle,Nf_Externo,Nf_Externo_Item_Controle    ,
Controle,Sequencia,Operacao_Codigo,Cfop_Codigo,Produto_Codigo,Produto_Descricao           ,
Produto_UnidadeMedida2,Ncm_Codigo,Tributacao_Origem,Tributacao_Ipi,Tributacao_Icms         ,
Tributacao_Pis,Tributacao_Cofins                                                          ,
Localizacao_Codigo,Quantidade,Valor_Unitario,Valor_Total,BaseCalculo_Icms,Percentual_Icms ,
Percentual_Ipi,Valor_Ipi,Percentual_Pis,Valor_Pis,Percentual_Cofins,Valor_Cofins          ,
T01,T02,T03,T04,T05,T06,T07,T08,T09,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,Tecelagem,
VALOR_ICMS,BASECALCULO_IPI,BASECALCULO_PIS,BASECALCULO_COFINS,
VALOR_ACRESCIMO, Valor_FRETE, Valor_SEGURO, PESO_LIQUIDO, PESO_BRUTO, CUBAGEM, VOLUMES,
VALOR_DESCONTO,FISCAL_ISENTAS_IPI,FISCAL_ISENTAS_ICMS,
FISCAL_OUTRAS_IPI,FISCAL_OUTRAS_ICMS,FISCAL_VALOR_ICMS,FISCAL_VALOR_IPI,
FISCAL_VALOR_PIS,FISCAL_VALOR_COFINS,FISCAL_PERCENTUAL_ICMS,FISCAL_PERCENTUAL_IPI,
FISCAL_PERCENTUAL_PIS,FISCAL_PERCENTUAL_COFINS,FISCAL_BASECALCULO_ICMS,
FISCAL_BASECALCULO_IPI,FISCAL_BASECALCULO_PIS,FISCAL_BASECALCULO_COFINS,
VALOR_CONTABIL, valor_basecalculo_icms, FISCAL_CFOP_CODIGO, FISCAL_TRIBUTACAO_ORIGEM,
FISCAL_TRIBUTACAO_ICMS, FISCAL_TRIBUTACAO_IPI, FISCAL_TRIBUTACAO_PIS,
FISCAL_TRIBUTACAO_COFINS, MODALIDADE_ICMS, MODALIDADE_ICMS_ST, MARGEM_ICMS_ST,
REDUCAO_ICMS_ST, BASECALCULO_ICMS_ST, ALIQUOTA_ICMS_ST, VALOR_ICMS_ST,
FISCAL_REDUCAO_ICMS_ST, FISCAL_BASECALCULO_ICMS_ST, FISCAL_ALIQUOTA_ICMS_ST, FISCAL_VALOR_ICMS_ST,
PEDIDO_CLIENTE, INFORMACOES_COMPLEMENTARES, FCI_MENSAGEM,
FCI_PARCELA_IMPORTACAO, FCI_CONTEUDO_IMPORTACAO, FCI_NUMERO,ccusto,conta_contabil,enquadramento_ipi,
QUANTIDADE_ALTERNATIVA, UM_ALTERNATIVA2, VALOR_ALTERNATIVO)
VALUES  (
:Nfs_Controle,:Estabelecimento_Codigo,:Empresa_Codigo,:Numero_NotaFiscal,
:Data_Emissao,:Situacao,:Nf_CONSIGNACAO,:Nf_CONSIGNACAO_Item,
:Nfe,:Nfe_Item_Controle,:Pedido,:Pedido_Item_PE_Controle,:Nf_Externo,
:Nf_Externo_Item_Controle,:Controle,:Sequencia,:Operacao_Codigo,:Cfop_Codigo,
:Produto_Codigo,:Produto_Descricao,:Produto_UnidadeMedida,:Ncm_Codigo,:Tributacao_Origem,
:Tributacao_Ipi,:Tributacao_Icms,:Tributacao_Pis,:Tributacao_Cofins,:Localizacao_Codigo,
:Quantidade,:Valor_Unitario,:Valor_Total,:BaseCalculo_Icms,:Percentual_Icms,
:Percentual_Ipi,:Valor_Ipi,:Percentual_Pis,:Valor_Pis,:Percentual_Cofins,
:Valor_Cofins,:T01,:T02,:T03,:T04,:T05,:T06,:T07,:T08,:T09,:T10,
:T11,:T12,:T13,:T14,:T15,:T16,:T17,:T18,:T19,:T20,:Tecelagem,
:VALOR_ICMS,:BASECALCULO_IPI,:BASECALCULO_PIS,:BASECALCULO_COFINS,
:VALOR_ACRESCIMO, :Valor_FRETE, :Valor_SEGURO, :PESO_LIQUIDO, :PESO_BRUTO, :CUBAGEM, :VOLUMES,
:VALOR_DESCONTO,:FISCAL_ISENTAS_IPI,:FISCAL_ISENTAS_ICMS,
:FISCAL_OUTRAS_IPI,:FISCAL_OUTRAS_ICMS,:FISCAL_VALOR_ICMS,:FISCAL_VALOR_IPI,
:FISCAL_VALOR_PIS,:FISCAL_VALOR_COFINS,:FISCAL_PERCENTUAL_ICMS,:FISCAL_PERCENTUAL_IPI,
:FISCAL_PERCENTUAL_PIS,:FISCAL_PERCENTUAL_COFINS,:FISCAL_BASECALCULO_ICMS,
:FISCAL_BASECALCULO_IPI,:FISCAL_BASECALCULO_PIS,:FISCAL_BASECALCULO_COFINS,
:VALOR_CONTABIL, :valor_basecalculo_icms, :FISCAL_CFOP_CODIGO,:FISCAL_TRIBUTACAO_ORIGEM,
:FISCAL_TRIBUTACAO_ICMS,:FISCAL_TRIBUTACAO_IPI,:FISCAL_TRIBUTACAO_PIS,
:FISCAL_TRIBUTACAO_COFINS,

:MODALIDADE_ICMS, :MODALIDADE_ICMS_ST, :MARGEM_ICMS_ST, :REDUCAO_ICMS_ST,
:BASECALCULO_ICMS_ST, :ALIQUOTA_ICMS_ST, :VALOR_ICMS_ST,
:FISCAL_REDUCAO_ICMS_ST, :FISCAL_BASECALCULO_ICMS_ST, :FISCAL_ALIQUOTA_ICMS_ST, :FISCAL_VALOR_ICMS_ST,
:PEDIDO_CLIENTE, :INFORMACOES_COMPLEMENTARES,
:FCI_MENSAGEM, :FCI_PARCELA_IMPORTACAO, :FCI_CONTEUDO_IMPORTACAO, :FCI_NUMERO,:ccusto,:conta_contabil,:enquadramento_ipi,
:QUANTIDADE_ALTERNATIVA, :UM_ALTERNATIVA, :VALOR_ALTERNATIVO);

INSERT INTO TbNfs_Item_Saldo (            
Nfs_Item_Controle,Nfs_Controle,Quantidade,
T01,T02,T03,T04,T05,T06,T07,T08,T09,T10,  
T11,T12,T13,T14,T15,T16,T17,T18,T19,T20)  
VALUES (                                  
:Controle,:Nfs_Controle,:Quantidade,
:T01,:T02,:T03,:T04,:T05,:T06,:T07,:T08,:T09,:T10,
:T11,:T12,:T13,:T14,:T15,:T16,:T17,:T18,:T19,:T20);

END
^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER procedure SPI_NFS_ITEM8 (
    NFS_CONTROLE integer,
    ESTABELECIMENTO_CODIGO integer,
    EMPRESA_CODIGO integer,
    NUMERO_NOTAFISCAL integer,
    DATA_EMISSAO date,
    SITUACAO integer,
    NF_CONSIGNACAO integer,
    NF_CONSIGNACAO_ITEM integer,
    NFE integer,
    NFE_ITEM_CONTROLE integer,
    PEDIDO integer,
    PEDIDO_ITEM_PE_CONTROLE integer,
    NF_EXTERNO integer,
    NF_EXTERNO_ITEM_CONTROLE integer,
    CONTROLE integer,
    SEQUENCIA integer,
    OPERACAO_CODIGO varchar(3),
    CFOP_CODIGO varchar(5),
    PRODUTO_CODIGO integer,
    PRODUTO_DESCRICAO varchar(100),
    PRODUTO_UNIDADEMEDIDA varchar(3),
    NCM_CODIGO varchar(10),
    TRIBUTACAO_ORIGEM integer,
    TRIBUTACAO_IPI varchar(2),
    TRIBUTACAO_ICMS integer,
    TRIBUTACAO_PIS char(2),
    TRIBUTACAO_COFINS char(2),
    LOCALIZACAO_CODIGO integer,
    QUANTIDADE numeric(10,5),
    VALOR_UNITARIO numeric(10,5),
    VALOR_TOTAL numeric(10,5),
    BASECALCULO_ICMS numeric(10,5),
    PERCENTUAL_ICMS numeric(10,5),
    PERCENTUAL_IPI numeric(10,5),
    VALOR_IPI numeric(10,5),
    PERCENTUAL_PIS numeric(10,5),
    VALOR_PIS numeric(10,5),
    PERCENTUAL_COFINS numeric(10,5),
    VALOR_COFINS numeric(10,5),
    T01 numeric(10,5),
    T02 numeric(10,5),
    T03 numeric(10,5),
    T04 numeric(10,5),
    T05 numeric(10,5),
    T06 numeric(10,5),
    T07 numeric(10,5),
    T08 numeric(10,5),
    T09 numeric(10,5),
    T10 numeric(10,5),
    T11 numeric(10,5),
    T12 numeric(10,5),
    T13 numeric(10,5),
    T14 numeric(10,5),
    T15 numeric(10,5),
    T16 numeric(10,5),
    T17 numeric(10,5),
    T18 numeric(10,5),
    T19 numeric(10,5),
    T20 numeric(10,5),
    TECELAGEM integer,
    VALOR_ICMS numeric(10,2),
    BASECALCULO_IPI numeric(10,2),
    BASECALCULO_PIS numeric(10,2),
    BASECALCULO_COFINS numeric(10,2),
    VALOR_ACRESCIMO numeric(10,2),
    VALOR_FRETE numeric(10,2),
    VALOR_SEGURO numeric(10,2),
    PESO_LIQUIDO numeric(10,4),
    PESO_BRUTO numeric(10,4),
    CUBAGEM numeric(10,4),
    VOLUMES integer,
    VALOR_DESCONTO numeric(10,2),
    FISCAL_ISENTAS_IPI numeric(10,2),
    FISCAL_ISENTAS_ICMS numeric(10,2),
    FISCAL_OUTRAS_IPI numeric(10,2),
    FISCAL_OUTRAS_ICMS numeric(10,2),
    FISCAL_VALOR_ICMS numeric(10,2),
    FISCAL_VALOR_IPI numeric(10,2),
    FISCAL_VALOR_PIS numeric(10,2),
    FISCAL_VALOR_COFINS numeric(10,2),
    FISCAL_PERCENTUAL_ICMS numeric(10,2),
    FISCAL_PERCENTUAL_IPI numeric(10,2),
    FISCAL_PERCENTUAL_PIS numeric(10,2),
    FISCAL_PERCENTUAL_COFINS numeric(10,2),
    FISCAL_BASECALCULO_ICMS numeric(10,2),
    FISCAL_BASECALCULO_IPI numeric(10,2),
    FISCAL_BASECALCULO_PIS numeric(10,2),
    FISCAL_BASECALCULO_COFINS numeric(10,2),
    VALOR_CONTABIL numeric(10,2),
    VALOR_BASECALCULO_ICMS numeric(10,2),
    FISCAL_CFOP_CODIGO varchar(5),
    FISCAL_TRIBUTACAO_ORIGEM integer,
    FISCAL_TRIBUTACAO_ICMS integer,
    FISCAL_TRIBUTACAO_IPI char(2),
    FISCAL_TRIBUTACAO_PIS char(2),
    FISCAL_TRIBUTACAO_COFINS char(2),
    MODALIDADE_ICMS char(1),
    MODALIDADE_ICMS_ST char(1),
    MARGEM_ICMS_ST numeric(15,4),
    REDUCAO_ICMS_ST numeric(15,4),
    BASECALCULO_ICMS_ST numeric(15,4),
    ALIQUOTA_ICMS_ST numeric(15,4),
    VALOR_ICMS_ST numeric(15,4),
    FISCAL_REDUCAO_ICMS_ST numeric(10,2),
    FISCAL_BASECALCULO_ICMS_ST numeric(10,2),
    FISCAL_ALIQUOTA_ICMS_ST numeric(10,2),
    FISCAL_VALOR_ICMS_ST numeric(10,2),
    PEDIDO_CLIENTE varchar(15),
    INFORMACOES_COMPLEMENTARES varchar(200),
    FCI_MENSAGEM varchar(255),
    FCI_PARCELA_IMPORTACAO numeric(15,2),
    FCI_CONTEUDO_IMPORTACAO numeric(15,2),
    FCI_NUMERO varchar(40),
    CCUSTO varchar(8),
    CONTA_CONTABIL varchar(11),
    ENQUADRAMENTO_IPI varchar(3),
    QUANTIDADE_ALTERNATIVA numeric(18,4),
    UM_ALTERNATIVA varchar(3),
    VALOR_ALTERNATIVO numeric(18,10),
    REDUCAO_BASE_PISCOF char(1))
as
BEGIN
INSERT INTO TbNfs_Item(
Nfs_Controle,Estabelecimento_Codigo,Empresa_Codigo,Numero_NotaFiscal,Data_Emissao,Situacao,
Nf_CONSIGNACAO,Nf_CONSIGNACAO_Item,Nfe,Nfe_Item_Controle,Pedido,
Pedido_Item_PE_Controle,Nf_Externo,Nf_Externo_Item_Controle    ,
Controle,Sequencia,Operacao_Codigo,Cfop_Codigo,Produto_Codigo,Produto_Descricao           ,
Produto_UnidadeMedida2,Ncm_Codigo,Tributacao_Origem,Tributacao_Ipi,Tributacao_Icms         ,
Tributacao_Pis,Tributacao_Cofins                                                          ,
Localizacao_Codigo,Quantidade,Valor_Unitario,Valor_Total,BaseCalculo_Icms,Percentual_Icms ,
Percentual_Ipi,Valor_Ipi,Percentual_Pis,Valor_Pis,Percentual_Cofins,Valor_Cofins          ,
T01,T02,T03,T04,T05,T06,T07,T08,T09,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,Tecelagem,
VALOR_ICMS,BASECALCULO_IPI,BASECALCULO_PIS,BASECALCULO_COFINS,
VALOR_ACRESCIMO, Valor_FRETE, Valor_SEGURO, PESO_LIQUIDO, PESO_BRUTO, CUBAGEM, VOLUMES,
VALOR_DESCONTO,FISCAL_ISENTAS_IPI,FISCAL_ISENTAS_ICMS,
FISCAL_OUTRAS_IPI,FISCAL_OUTRAS_ICMS,FISCAL_VALOR_ICMS,FISCAL_VALOR_IPI,
FISCAL_VALOR_PIS,FISCAL_VALOR_COFINS,FISCAL_PERCENTUAL_ICMS,FISCAL_PERCENTUAL_IPI,
FISCAL_PERCENTUAL_PIS,FISCAL_PERCENTUAL_COFINS,FISCAL_BASECALCULO_ICMS,
FISCAL_BASECALCULO_IPI,FISCAL_BASECALCULO_PIS,FISCAL_BASECALCULO_COFINS,
VALOR_CONTABIL, valor_basecalculo_icms, FISCAL_CFOP_CODIGO, FISCAL_TRIBUTACAO_ORIGEM,
FISCAL_TRIBUTACAO_ICMS, FISCAL_TRIBUTACAO_IPI, FISCAL_TRIBUTACAO_PIS,
FISCAL_TRIBUTACAO_COFINS, MODALIDADE_ICMS, MODALIDADE_ICMS_ST, MARGEM_ICMS_ST,
REDUCAO_ICMS_ST, BASECALCULO_ICMS_ST, ALIQUOTA_ICMS_ST, VALOR_ICMS_ST,
FISCAL_REDUCAO_ICMS_ST, FISCAL_BASECALCULO_ICMS_ST, FISCAL_ALIQUOTA_ICMS_ST, FISCAL_VALOR_ICMS_ST,
PEDIDO_CLIENTE, INFORMACOES_COMPLEMENTARES, FCI_MENSAGEM,
FCI_PARCELA_IMPORTACAO, FCI_CONTEUDO_IMPORTACAO, FCI_NUMERO,ccusto,conta_contabil,enquadramento_ipi,
QUANTIDADE_ALTERNATIVA, UM_ALTERNATIVA2, VALOR_ALTERNATIVO, REDUCAO_BASE_PISCOF)
VALUES  (
:Nfs_Controle,:Estabelecimento_Codigo,:Empresa_Codigo,:Numero_NotaFiscal,
:Data_Emissao,:Situacao,:Nf_CONSIGNACAO,:Nf_CONSIGNACAO_Item,
:Nfe,:Nfe_Item_Controle,:Pedido,:Pedido_Item_PE_Controle,:Nf_Externo,
:Nf_Externo_Item_Controle,:Controle,:Sequencia,:Operacao_Codigo,:Cfop_Codigo,
:Produto_Codigo,:Produto_Descricao,:Produto_UnidadeMedida,:Ncm_Codigo,:Tributacao_Origem,
:Tributacao_Ipi,:Tributacao_Icms,:Tributacao_Pis,:Tributacao_Cofins,:Localizacao_Codigo,
:Quantidade,:Valor_Unitario,:Valor_Total,:BaseCalculo_Icms,:Percentual_Icms,
:Percentual_Ipi,:Valor_Ipi,:Percentual_Pis,:Valor_Pis,:Percentual_Cofins,
:Valor_Cofins,:T01,:T02,:T03,:T04,:T05,:T06,:T07,:T08,:T09,:T10,
:T11,:T12,:T13,:T14,:T15,:T16,:T17,:T18,:T19,:T20,:Tecelagem,
:VALOR_ICMS,:BASECALCULO_IPI,:BASECALCULO_PIS,:BASECALCULO_COFINS,
:VALOR_ACRESCIMO, :Valor_FRETE, :Valor_SEGURO, :PESO_LIQUIDO, :PESO_BRUTO, :CUBAGEM, :VOLUMES,
:VALOR_DESCONTO,:FISCAL_ISENTAS_IPI,:FISCAL_ISENTAS_ICMS,
:FISCAL_OUTRAS_IPI,:FISCAL_OUTRAS_ICMS,:FISCAL_VALOR_ICMS,:FISCAL_VALOR_IPI,
:FISCAL_VALOR_PIS,:FISCAL_VALOR_COFINS,:FISCAL_PERCENTUAL_ICMS,:FISCAL_PERCENTUAL_IPI,
:FISCAL_PERCENTUAL_PIS,:FISCAL_PERCENTUAL_COFINS,:FISCAL_BASECALCULO_ICMS,
:FISCAL_BASECALCULO_IPI,:FISCAL_BASECALCULO_PIS,:FISCAL_BASECALCULO_COFINS,
:VALOR_CONTABIL, :valor_basecalculo_icms, :FISCAL_CFOP_CODIGO,:FISCAL_TRIBUTACAO_ORIGEM,
:FISCAL_TRIBUTACAO_ICMS,:FISCAL_TRIBUTACAO_IPI,:FISCAL_TRIBUTACAO_PIS,
:FISCAL_TRIBUTACAO_COFINS,

:MODALIDADE_ICMS, :MODALIDADE_ICMS_ST, :MARGEM_ICMS_ST, :REDUCAO_ICMS_ST,
:BASECALCULO_ICMS_ST, :ALIQUOTA_ICMS_ST, :VALOR_ICMS_ST,
:FISCAL_REDUCAO_ICMS_ST, :FISCAL_BASECALCULO_ICMS_ST, :FISCAL_ALIQUOTA_ICMS_ST, :FISCAL_VALOR_ICMS_ST,
:PEDIDO_CLIENTE, :INFORMACOES_COMPLEMENTARES,
:FCI_MENSAGEM, :FCI_PARCELA_IMPORTACAO, :FCI_CONTEUDO_IMPORTACAO, :FCI_NUMERO,:ccusto,:conta_contabil,:enquadramento_ipi,
:QUANTIDADE_ALTERNATIVA, :UM_ALTERNATIVA, :VALOR_ALTERNATIVO, :REDUCAO_BASE_PISCOF);

INSERT INTO TbNfs_Item_Saldo (            
Nfs_Item_Controle,Nfs_Controle,Quantidade,
T01,T02,T03,T04,T05,T06,T07,T08,T09,T10,  
T11,T12,T13,T14,T15,T16,T17,T18,T19,T20)  
VALUES (                                  
:Controle,:Nfs_Controle,:Quantidade,
:T01,:T02,:T03,:T04,:T05,:T06,:T07,:T08,:T09,:T10,
:T11,:T12,:T13,:T14,:T15,:T16,:T17,:T18,:T19,:T20);

END
^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER procedure SPI_NFS_ITEM9 (
    NFS_CONTROLE integer,
    ESTABELECIMENTO_CODIGO integer,
    EMPRESA_CODIGO integer,
    NUMERO_NOTAFISCAL integer,
    DATA_EMISSAO date,
    SITUACAO integer,
    NF_CONSIGNACAO integer,
    NF_CONSIGNACAO_ITEM integer,
    NFE integer,
    NFE_ITEM_CONTROLE integer,
    PEDIDO integer,
    PEDIDO_ITEM_PE_CONTROLE integer,
    NF_EXTERNO integer,
    NF_EXTERNO_ITEM_CONTROLE integer,
    CONTROLE integer,
    SEQUENCIA integer,
    OPERACAO_CODIGO varchar(3),
    CFOP_CODIGO varchar(5),
    PRODUTO_CODIGO integer,
    PRODUTO_DESCRICAO varchar(100),
    PRODUTO_UNIDADEMEDIDA varchar(3),
    NCM_CODIGO varchar(10),
    TRIBUTACAO_ORIGEM integer,
    TRIBUTACAO_IPI varchar(2),
    TRIBUTACAO_ICMS integer,
    TRIBUTACAO_PIS char(2),
    TRIBUTACAO_COFINS char(2),
    LOCALIZACAO_CODIGO integer,
    QUANTIDADE numeric(10,5),
    VALOR_UNITARIO numeric(10,5),
    VALOR_TOTAL numeric(10,5),
    BASECALCULO_ICMS numeric(10,5),
    PERCENTUAL_ICMS numeric(10,5),
    PERCENTUAL_IPI numeric(10,5),
    VALOR_IPI numeric(10,5),
    PERCENTUAL_PIS numeric(10,5),
    VALOR_PIS numeric(10,5),
    PERCENTUAL_COFINS numeric(10,5),
    VALOR_COFINS numeric(10,5),
    T01 numeric(10,5),
    T02 numeric(10,5),
    T03 numeric(10,5),
    T04 numeric(10,5),
    T05 numeric(10,5),
    T06 numeric(10,5),
    T07 numeric(10,5),
    T08 numeric(10,5),
    T09 numeric(10,5),
    T10 numeric(10,5),
    T11 numeric(10,5),
    T12 numeric(10,5),
    T13 numeric(10,5),
    T14 numeric(10,5),
    T15 numeric(10,5),
    T16 numeric(10,5),
    T17 numeric(10,5),
    T18 numeric(10,5),
    T19 numeric(10,5),
    T20 numeric(10,5),
    TECELAGEM integer,
    VALOR_ICMS numeric(10,2),
    BASECALCULO_IPI numeric(10,2),
    BASECALCULO_PIS numeric(10,2),
    BASECALCULO_COFINS numeric(10,2),
    VALOR_ACRESCIMO numeric(10,2),
    VALOR_FRETE numeric(10,2),
    VALOR_SEGURO numeric(10,2),
    PESO_LIQUIDO numeric(10,4),
    PESO_BRUTO numeric(10,4),
    CUBAGEM numeric(10,4),
    VOLUMES integer,
    VALOR_DESCONTO numeric(10,2),
    FISCAL_ISENTAS_IPI numeric(10,2),
    FISCAL_ISENTAS_ICMS numeric(10,2),
    FISCAL_OUTRAS_IPI numeric(10,2),
    FISCAL_OUTRAS_ICMS numeric(10,2),
    FISCAL_VALOR_ICMS numeric(10,2),
    FISCAL_VALOR_IPI numeric(10,2),
    FISCAL_VALOR_PIS numeric(10,2),
    FISCAL_VALOR_COFINS numeric(10,2),
    FISCAL_PERCENTUAL_ICMS numeric(10,2),
    FISCAL_PERCENTUAL_IPI numeric(10,2),
    FISCAL_PERCENTUAL_PIS numeric(10,2),
    FISCAL_PERCENTUAL_COFINS numeric(10,2),
    FISCAL_BASECALCULO_ICMS numeric(10,2),
    FISCAL_BASECALCULO_IPI numeric(10,2),
    FISCAL_BASECALCULO_PIS numeric(10,2),
    FISCAL_BASECALCULO_COFINS numeric(10,2),
    VALOR_CONTABIL numeric(10,2),
    VALOR_BASECALCULO_ICMS numeric(10,2),
    FISCAL_CFOP_CODIGO varchar(5),
    FISCAL_TRIBUTACAO_ORIGEM integer,
    FISCAL_TRIBUTACAO_ICMS integer,
    FISCAL_TRIBUTACAO_IPI char(2),
    FISCAL_TRIBUTACAO_PIS char(2),
    FISCAL_TRIBUTACAO_COFINS char(2),
    MODALIDADE_ICMS char(1),
    MODALIDADE_ICMS_ST char(1),
    MARGEM_ICMS_ST numeric(15,4),
    REDUCAO_ICMS_ST numeric(15,4),
    BASECALCULO_ICMS_ST numeric(15,4),
    ALIQUOTA_ICMS_ST numeric(15,4),
    VALOR_ICMS_ST numeric(15,4),
    FISCAL_REDUCAO_ICMS_ST numeric(10,2),
    FISCAL_BASECALCULO_ICMS_ST numeric(10,2),
    FISCAL_ALIQUOTA_ICMS_ST numeric(10,2),
    FISCAL_VALOR_ICMS_ST numeric(10,2),
    PEDIDO_CLIENTE varchar(15),
    INFORMACOES_COMPLEMENTARES varchar(500),
    FCI_MENSAGEM varchar(255),
    FCI_PARCELA_IMPORTACAO numeric(15,2),
    FCI_CONTEUDO_IMPORTACAO numeric(15,2),
    FCI_NUMERO varchar(40),
    CCUSTO varchar(8),
    CONTA_CONTABIL varchar(11),
    ENQUADRAMENTO_IPI varchar(3),
    QUANTIDADE_ALTERNATIVA numeric(18,4),
    UM_ALTERNATIVA varchar(3),
    VALOR_ALTERNATIVO numeric(18,10),
    REDUCAO_BASE_PISCOF char(1))
as
BEGIN
INSERT INTO TbNfs_Item(
Nfs_Controle,Estabelecimento_Codigo,Empresa_Codigo,Numero_NotaFiscal,Data_Emissao,Situacao,
Nf_CONSIGNACAO,Nf_CONSIGNACAO_Item,Nfe,Nfe_Item_Controle,Pedido,
Pedido_Item_PE_Controle,Nf_Externo,Nf_Externo_Item_Controle    ,
Controle,Sequencia,Operacao_Codigo,Cfop_Codigo,Produto_Codigo,Produto_Descricao           ,
Produto_UnidadeMedida2,Ncm_Codigo,Tributacao_Origem,Tributacao_Ipi,Tributacao_Icms         ,
Tributacao_Pis,Tributacao_Cofins                                                          ,
Localizacao_Codigo,Quantidade,Valor_Unitario,Valor_Total,BaseCalculo_Icms,Percentual_Icms ,
Percentual_Ipi,Valor_Ipi,Percentual_Pis,Valor_Pis,Percentual_Cofins,Valor_Cofins          ,
T01,T02,T03,T04,T05,T06,T07,T08,T09,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,Tecelagem,
VALOR_ICMS,BASECALCULO_IPI,BASECALCULO_PIS,BASECALCULO_COFINS,
VALOR_ACRESCIMO, Valor_FRETE, Valor_SEGURO, PESO_LIQUIDO, PESO_BRUTO, CUBAGEM, VOLUMES,
VALOR_DESCONTO,FISCAL_ISENTAS_IPI,FISCAL_ISENTAS_ICMS,
FISCAL_OUTRAS_IPI,FISCAL_OUTRAS_ICMS,FISCAL_VALOR_ICMS,FISCAL_VALOR_IPI,
FISCAL_VALOR_PIS,FISCAL_VALOR_COFINS,FISCAL_PERCENTUAL_ICMS,FISCAL_PERCENTUAL_IPI,
FISCAL_PERCENTUAL_PIS,FISCAL_PERCENTUAL_COFINS,FISCAL_BASECALCULO_ICMS,
FISCAL_BASECALCULO_IPI,FISCAL_BASECALCULO_PIS,FISCAL_BASECALCULO_COFINS,
VALOR_CONTABIL, valor_basecalculo_icms, FISCAL_CFOP_CODIGO, FISCAL_TRIBUTACAO_ORIGEM,
FISCAL_TRIBUTACAO_ICMS, FISCAL_TRIBUTACAO_IPI, FISCAL_TRIBUTACAO_PIS,
FISCAL_TRIBUTACAO_COFINS, MODALIDADE_ICMS, MODALIDADE_ICMS_ST, MARGEM_ICMS_ST,
REDUCAO_ICMS_ST, BASECALCULO_ICMS_ST, ALIQUOTA_ICMS_ST, VALOR_ICMS_ST,
FISCAL_REDUCAO_ICMS_ST, FISCAL_BASECALCULO_ICMS_ST, FISCAL_ALIQUOTA_ICMS_ST, FISCAL_VALOR_ICMS_ST,
PEDIDO_CLIENTE, INFORMACOES_COMPLEMENTARES, FCI_MENSAGEM,
FCI_PARCELA_IMPORTACAO, FCI_CONTEUDO_IMPORTACAO, FCI_NUMERO,ccusto,conta_contabil,enquadramento_ipi,
QUANTIDADE_ALTERNATIVA, UM_ALTERNATIVA2, VALOR_ALTERNATIVO, REDUCAO_BASE_PISCOF)
VALUES  (
:Nfs_Controle,:Estabelecimento_Codigo,:Empresa_Codigo,:Numero_NotaFiscal,
:Data_Emissao,:Situacao,:Nf_CONSIGNACAO,:Nf_CONSIGNACAO_Item,
:Nfe,:Nfe_Item_Controle,:Pedido,:Pedido_Item_PE_Controle,:Nf_Externo,
:Nf_Externo_Item_Controle,:Controle,:Sequencia,:Operacao_Codigo,:Cfop_Codigo,
:Produto_Codigo,:Produto_Descricao,:Produto_UnidadeMedida,:Ncm_Codigo,:Tributacao_Origem,
:Tributacao_Ipi,:Tributacao_Icms,:Tributacao_Pis,:Tributacao_Cofins,:Localizacao_Codigo,
:Quantidade,:Valor_Unitario,:Valor_Total,:BaseCalculo_Icms,:Percentual_Icms,
:Percentual_Ipi,:Valor_Ipi,:Percentual_Pis,:Valor_Pis,:Percentual_Cofins,
:Valor_Cofins,:T01,:T02,:T03,:T04,:T05,:T06,:T07,:T08,:T09,:T10,
:T11,:T12,:T13,:T14,:T15,:T16,:T17,:T18,:T19,:T20,:Tecelagem,
:VALOR_ICMS,:BASECALCULO_IPI,:BASECALCULO_PIS,:BASECALCULO_COFINS,
:VALOR_ACRESCIMO, :Valor_FRETE, :Valor_SEGURO, :PESO_LIQUIDO, :PESO_BRUTO, :CUBAGEM, :VOLUMES,
:VALOR_DESCONTO,:FISCAL_ISENTAS_IPI,:FISCAL_ISENTAS_ICMS,
:FISCAL_OUTRAS_IPI,:FISCAL_OUTRAS_ICMS,:FISCAL_VALOR_ICMS,:FISCAL_VALOR_IPI,
:FISCAL_VALOR_PIS,:FISCAL_VALOR_COFINS,:FISCAL_PERCENTUAL_ICMS,:FISCAL_PERCENTUAL_IPI,
:FISCAL_PERCENTUAL_PIS,:FISCAL_PERCENTUAL_COFINS,:FISCAL_BASECALCULO_ICMS,
:FISCAL_BASECALCULO_IPI,:FISCAL_BASECALCULO_PIS,:FISCAL_BASECALCULO_COFINS,
:VALOR_CONTABIL, :valor_basecalculo_icms, :FISCAL_CFOP_CODIGO,:FISCAL_TRIBUTACAO_ORIGEM,
:FISCAL_TRIBUTACAO_ICMS,:FISCAL_TRIBUTACAO_IPI,:FISCAL_TRIBUTACAO_PIS,
:FISCAL_TRIBUTACAO_COFINS,

:MODALIDADE_ICMS, :MODALIDADE_ICMS_ST, :MARGEM_ICMS_ST, :REDUCAO_ICMS_ST,
:BASECALCULO_ICMS_ST, :ALIQUOTA_ICMS_ST, :VALOR_ICMS_ST,
:FISCAL_REDUCAO_ICMS_ST, :FISCAL_BASECALCULO_ICMS_ST, :FISCAL_ALIQUOTA_ICMS_ST, :FISCAL_VALOR_ICMS_ST,
:PEDIDO_CLIENTE, :INFORMACOES_COMPLEMENTARES,
:FCI_MENSAGEM, :FCI_PARCELA_IMPORTACAO, :FCI_CONTEUDO_IMPORTACAO, :FCI_NUMERO,:ccusto,:conta_contabil,:enquadramento_ipi,
:QUANTIDADE_ALTERNATIVA, :UM_ALTERNATIVA, :VALOR_ALTERNATIVO, :REDUCAO_BASE_PISCOF);

INSERT INTO TbNfs_Item_Saldo (            
Nfs_Item_Controle,Nfs_Controle,Quantidade,
T01,T02,T03,T04,T05,T06,T07,T08,T09,T10,  
T11,T12,T13,T14,T15,T16,T17,T18,T19,T20)  
VALUES (                                  
:Controle,:Nfs_Controle,:Quantidade,
:T01,:T02,:T03,:T04,:T05,:T06,:T07,:T08,:T09,:T10,
:T11,:T12,:T13,:T14,:T15,:T16,:T17,:T18,:T19,:T20);

END
^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER procedure SPU_NFS_ITEM (
    NFS_CONTROLE integer,
    CONTROLE integer,
    ESTABELECIMENTO_CODIGO integer,
    EMPRESA_CODIGO integer,
    PRODUTO_DESCRICAO varchar(100),
    LOCALIZACAO_CODIGO integer,
    NUMERO_NOTAFISCAL integer,
    DATA_EMISSAO date,
    SITUACAO integer,
    NF_NATUREZA integer,
    CFOP_CODIGO varchar(5),
    NCM_CODIGO varchar(10),
    TRIBUTACAO_ORIGEM integer,
    TRIBUTACAO_IPI varchar(2),
    TRIBUTACAO_ICMS integer,
    TRIBUTACAO_PIS char(2),
    TRIBUTACAO_COFINS char(2),
    BASECALCULO_ICMS numeric(10,5),
    PERCENTUAL_ICMS numeric(10,5),
    PERCENTUAL_IPI numeric(10,5),
    VALOR_IPI numeric(10,5),
    PERCENTUAL_PIS numeric(10,5),
    VALOR_PIS numeric(10,5),
    PERCENTUAL_COFINS numeric(10,5),
    VALOR_COFINS numeric(10,5),
    VALOR_ICMS numeric(10,2),
    BASECALCULO_IPI numeric(10,2),
    BASECALCULO_PIS numeric(10,2),
    BASECALCULO_COFINS numeric(10,2),
    VALOR_ACRESCIMO numeric(10,2),
    VALOR_DESCONTO numeric(10,2),
    VALOR_FRETE numeric(10,2),
    VALOR_SEGURO numeric(10,2),
    FISCAL_ISENTAS_IPI numeric(10,2),
    FISCAL_ISENTAS_ICMS numeric(10,2),
    FISCAL_OUTRAS_IPI numeric(10,2),
    FISCAL_OUTRAS_ICMS numeric(10,2),
    FISCAL_VALOR_ICMS numeric(10,2),
    FISCAL_VALOR_IPI numeric(10,2),
    FISCAL_VALOR_PIS numeric(10,2),
    FISCAL_VALOR_COFINS numeric(10,2),
    FISCAL_PERCENTUAL_ICMS numeric(10,2),
    FISCAL_PERCENTUAL_IPI numeric(10,2),
    FISCAL_PERCENTUAL_PIS numeric(10,2),
    FISCAL_PERCENTUAL_COFINS numeric(10,2),
    FISCAL_BASECALCULO_ICMS numeric(10,2),
    FISCAL_BASECALCULO_IPI numeric(10,2),
    FISCAL_BASECALCULO_PIS numeric(10,2),
    FISCAL_BASECALCULO_COFINS numeric(10,2),
    VALOR_CONTABIL numeric(10,2),
    FISCAL_CFOP_CODIGO varchar(5),
    FISCAL_TRIBUTACAO_ORIGEM integer,
    FISCAL_TRIBUTACAO_ICMS integer,
    FISCAL_TRIBUTACAO_IPI char(2),
    FISCAL_TRIBUTACAO_PIS char(2),
    FISCAL_TRIBUTACAO_COFINS char(2),
    VALOR_UNITARIO numeric(10,5),
    VALOR_TOTAL numeric(10,5),
    VALOR_BASECALCULO_ICMS numeric(10,2),
    MODALIDADE_ICMS char(1),
    MODALIDADE_ICMS_ST char(1),
    MARGEM_ICMS_ST numeric(15,4),
    REDUCAO_ICMS_ST numeric(15,4),
    BASECALCULO_ICMS_ST numeric(15,4),
    ALIQUOTA_ICMS_ST numeric(15,4),
    VALOR_ICMS_ST numeric(15,4),
    FISCAL_REDUCAO_ICMS_ST numeric(10,2),
    FISCAL_BASECALCULO_ICMS_ST numeric(10,2),
    FISCAL_ALIQUOTA_ICMS_ST numeric(10,2),
    FISCAL_VALOR_ICMS_ST numeric(10,2),
    GC_WEB integer,
    QUANTIDADE numeric(10,5),
    QUANTIDADE_ALTERNATIVA numeric(18,4),
    UM_ALTERNATIVA varchar(3),
    VALOR_ALTERNATIVO numeric(18,10),
    INFORMACOES_COMPLEMENTARES varchar(500),
    T01 numeric(10,5),
    T02 numeric(10,5),
    T03 numeric(10,5),
    T04 numeric(10,5),
    T05 numeric(10,5),
    T06 numeric(10,5),
    T07 numeric(10,5),
    T08 numeric(10,5),
    T09 numeric(10,5),
    T10 numeric(10,5),
    T11 numeric(10,5),
    T12 numeric(10,5),
    T13 numeric(10,5),
    T14 numeric(10,5),
    T15 numeric(10,5),
    T16 numeric(10,5),
    T17 numeric(10,5),
    T18 numeric(10,5),
    T19 numeric(10,5),
    T20 numeric(10,5),
    MARGEM numeric(10,2) = 0,
    PDV_CONFERENCIA_ITEM_ID integer = 0,
    PDV_CONFERENCIA_ID integer = 0)
as
BEGIN

-- UPDATE TBNFS_ITEM
UPDATE TBNFS_ITEM SET
ESTABELECIMENTO_CODIGO              = :ESTABELECIMENTO_CODIGO,
EMPRESA_CODIGO                      = :EMPRESA_CODIGO,
PRODUTO_DESCRICAO                   = :PRODUTO_DESCRICAO,
LOCALIZACAO_CODIGO                  = :LOCALIZACAO_CODIGO,
NUMERO_NOTAFISCAL                   = :NUMERO_NOTAFISCAL,
DATA_EMISSAO                        = :DATA_EMISSAO,
NF_SITUACAO                         = :SITUACAO,
NF_NATUREZA                         = :NF_NATUREZA,
CFOP_CODIGO                         = :CFOP_CODIGO,
NCM_CODIGO                          = :NCM_CODIGO,
TRIBUTACAO_ORIGEM                   = :TRIBUTACAO_ORIGEM,
TRIBUTACAO_IPI                      = :TRIBUTACAO_IPI,
TRIBUTACAO_ICMS                     = :TRIBUTACAO_ICMS,
TRIBUTACAO_PIS                      = :TRIBUTACAO_PIS,
TRIBUTACAO_COFINS                   = :TRIBUTACAO_COFINS,
BASECALCULO_ICMS                    = :BASECALCULO_ICMS,
PERCENTUAL_ICMS                     = :PERCENTUAL_ICMS ,
PERCENTUAL_IPI                      = :PERCENTUAL_IPI,
VALOR_IPI                           = :VALOR_IPI,
PERCENTUAL_PIS                      = :PERCENTUAL_PIS,
VALOR_PIS                           = :VALOR_PIS,
PERCENTUAL_COFINS                   = :PERCENTUAL_COFINS,
VALOR_COFINS                        = :VALOR_COFINS,
VALOR_ICMS                          = :VALOR_ICMS           ,
BASECALCULO_IPI                     = :BASECALCULO_IPI      ,
BASECALCULO_PIS                     = :BASECALCULO_PIS      ,
BASECALCULO_COFINS                  = :BASECALCULO_COFINS   ,
VALOR_ACRESCIMO                     = :VALOR_ACRESCIMO      ,
VALOR_DESCONTO                      = :VALOR_DESCONTO       ,
VALOR_FRETE                         = :VALOR_FRETE,
VALOR_SEGURO                        = :VALOR_SEGURO,
FISCAL_ISENTAS_IPI                  = :FISCAL_ISENTAS_IPI   ,
FISCAL_ISENTAS_ICMS                 = :FISCAL_ISENTAS_ICMS  ,
FISCAL_OUTRAS_IPI                   = :FISCAL_OUTRAS_IPI    ,
FISCAL_OUTRAS_ICMS                  = :FISCAL_OUTRAS_ICMS   ,
FISCAL_VALOR_ICMS                   = :FISCAL_VALOR_ICMS    ,
FISCAL_VALOR_IPI                    = :FISCAL_VALOR_IPI     ,
FISCAL_VALOR_PIS                    = :FISCAL_VALOR_PIS     ,
FISCAL_VALOR_COFINS                 = :FISCAL_VALOR_COFINS  ,
FISCAL_PERCENTUAL_ICMS              = :FISCAL_PERCENTUAL_ICMS,
FISCAL_PERCENTUAL_IPI               = :FISCAL_PERCENTUAL_IPI ,
FISCAL_PERCENTUAL_PIS               = :FISCAL_PERCENTUAL_PIS ,
FISCAL_PERCENTUAL_COFINS            = :FISCAL_PERCENTUAL_COFINS,
FISCAL_BASECALCULO_ICMS             = :FISCAL_BASECALCULO_ICMS ,
FISCAL_BASECALCULO_IPI              = :FISCAL_BASECALCULO_IPI  ,
FISCAL_BASECALCULO_PIS              = :FISCAL_BASECALCULO_PIS  ,
FISCAL_BASECALCULO_COFINS           = :FISCAL_BASECALCULO_COFINS,
VALOR_CONTABIL                      = :VALOR_CONTABIL,
FISCAL_CFOP_CODIGO                  = :FISCAL_CFOP_CODIGO,
FISCAL_TRIBUTACAO_ORIGEM            = :FISCAL_TRIBUTACAO_ORIGEM,
FISCAL_TRIBUTACAO_ICMS              = :FISCAL_TRIBUTACAO_ICMS,
FISCAL_TRIBUTACAO_IPI               = :FISCAL_TRIBUTACAO_IPI,
FISCAL_TRIBUTACAO_PIS               = :FISCAL_TRIBUTACAO_PIS,
FISCAL_TRIBUTACAO_COFINS            = :FISCAL_TRIBUTACAO_COFINS,
VALOR_UNITARIO                      = :VALOR_UNITARIO,
VALOR_TOTAL                         = :VALOR_TOTAL,
VALOR_BASECALCULO_ICMS              = :VALOR_BASECALCULO_ICMS,
MODALIDADE_ICMS                     = :MODALIDADE_ICMS,
MODALIDADE_ICMS_ST                  = :MODALIDADE_ICMS_ST,
MARGEM_ICMS_ST                      = :MARGEM_ICMS_ST,
REDUCAO_ICMS_ST                     = :REDUCAO_ICMS_ST,
BASECALCULO_ICMS_ST                 = :BASECALCULO_ICMS_ST,
ALIQUOTA_ICMS_ST                    = :ALIQUOTA_ICMS_ST,
VALOR_ICMS_ST                       = :VALOR_ICMS_ST,
FISCAL_REDUCAO_ICMS_ST              = :FISCAL_REDUCAO_ICMS_ST,
FISCAL_BASECALCULO_ICMS_ST          = :FISCAL_BASECALCULO_ICMS_ST,
FISCAL_ALIQUOTA_ICMS_ST             = :FISCAL_ALIQUOTA_ICMS_ST,
FISCAL_VALOR_ICMS_ST                = :FISCAL_VALOR_ICMS_ST,
GC_WEB                              = :GC_WEB,
QUANTIDADE                          = :QUANTIDADE,
QUANTIDADE_ALTERNATIVA              = :QUANTIDADE_ALTERNATIVA,
UM_ALTERNATIVA2                      = :UM_ALTERNATIVA,
VALOR_ALTERNATIVO                   = :VALOR_ALTERNATIVO,
INFORMACOES_COMPLEMENTARES          = :INFORMACOES_COMPLEMENTARES,
MARGEM                              = :MARGEM,
PDV_CONFERENCIA_ITEM_ID             = :PDV_CONFERENCIA_ITEM_ID,
PDV_CONFERENCIA_ID                  = :PDV_CONFERENCIA_ID,

T01 = :T01, T02 = :T02, T03 = :T03, T04 = :T04,
T05 = :T05, T06 = :T06, T07 = :T07, T08 = :T08,
T09 = :T09, T10 = :T10, T11 = :T11, T12 = :T12,
T13 = :T13, T14 = :T14, T15 = :T15, T16 = :T16,
T17 = :T17, T18 = :T18, T19 = :T19, T20 = :T20


WHERE NFS_CONTROLE = :NFS_CONTROLE
  AND CONTROLE = :CONTROLE;

UPDATE  TBNFS_ITEM_SALDO SET
QUANTIDADE = :QUANTIDADE,
T01 = :T01, T02 = :T02, T03 = :T03, T04 = :T04,
   T05 = :T05, T06 = :T06, T07 = :T07, T08 = :T08,
   T09 = :T09, T10 = :T10, T11 = :T11, T12 = :T12,
   T13 = :T13, T14 = :T14, T15 = :T15, T16 = :T16,
   T17 = :T17, T18 = :T18, T19 = :T19, T20 = :T20
WHERE NFS_ITEM_CONTROLE = :CONTROLE AND NFS_CONTROLE = :NFS_CONTROLE;
END
^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER trigger ttbnfs_item_b08u for tbnfs_item
inactive 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_UNIDADEMEDIDA2 <> OLD.PRODUTO_UNIDADEMEDIDA2) THEN
        BEGIN                                        
            HISTORICO = HISTORICO||' UM:'||OLD.PRODUTO_UNIDADEMEDIDA2||' -> '||NEW.PRODUTO_UNIDADEMEDIDA2;
        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||' CST 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.NFE <> OLD.NFE) THEN
        BEGIN
            HISTORICO = HISTORICO||' NF.Ref:'||OLD.NFE||' -> '||NEW.NFE;
        END
    IF(NEW.NFE_ITEM_CONTROLE <> OLD.NFE_ITEM_CONTROLE) THEN
        BEGIN
            HISTORICO = HISTORICO||' ID.Nf.Ref:'||OLD.NFE_ITEM_CONTROLE||' -> '||NEW.NFE_ITEM_CONTROLE;
        END
    IF(NEW.NF_EXTERNO <> OLD.NF_EXTERNO) THEN
        BEGIN
            HISTORICO = HISTORICO||' NF.Ref:'||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.PEDIDO <> OLD.PEDIDO) THEN
        BEGIN
            HISTORICO = HISTORICO||' Ped:'||OLD.PEDIDO||' -> '||NEW.PEDIDO;
        END
    IF(NEW.PEDIDO_ITEM_CONTROLE <> OLD.PEDIDO_ITEM_CONTROLE) THEN
        BEGIN
            HISTORICO = HISTORICO||' ID.Ped.Item:'||OLD.PEDIDO_ITEM_CONTROLE||' -> '||NEW.PEDIDO_ITEM_CONTROLE;
        END
    IF(NEW.PEDIDO_ITEM_PE_CONTROLE <> OLD.PEDIDO_ITEM_PE_CONTROLE) THEN
        BEGIN                        
            HISTORICO = HISTORICO||' ID.Ped.Item:'||OLD.PEDIDO_ITEM_PE_CONTROLE||' -> '||NEW.PEDIDO_ITEM_PE_CONTROLE;
        END                          
    IF(NEW.PEDIDO_PROC_ITEM_CONTROLE <> OLD.PEDIDO_PROC_ITEM_CONTROLE) THEN
        BEGIN
            HISTORICO = HISTORICO||' ID.Ped.Item:'||OLD.PEDIDO_PROC_ITEM_CONTROLE||' -> '||NEW.PEDIDO_PROC_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.DATA_EMISSAO <> OLD.DATA_EMISSAO) THEN
        BEGIN                
            HISTORICO = HISTORICO||' Dt.Emissao:'||FN_DATE_TO_STRING(OLD.DATA_EMISSAO)||' -> '||FN_DATE_TO_STRING(NEW.DATA_EMISSAO);
        END                  
--    IF(NEW.SITUACAO <> OLD.SITUACAO) THEN
--        BEGIN
--            HISTORICO = HISTORICO||' Sit:'||OLD.SITUACAO||' -> '||NEW.SITUACAO;
--        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.Conf:'||OLD.TRIBUTACAO_COFINS||' -> '||NEW.TRIBUTACAO_COFINS;
        END                    
    IF(NEW.VALOR_ICMS <> OLD.VALOR_ICMS) THEN
        BEGIN              
            HISTORICO = HISTORICO||' VR.ICMS:'||OLD.VALOR_ICMS||' -> '||NEW.VALOR_ICMS;
        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.Cof:'||OLD.FISCAL_BASECALCULO_COFINS||' -> '||NEW.FISCAL_BASECALCULO_COFINS;
        END
    IF(NEW.FISCAL_TRIBUTACAO_ORIGEM <> OLD.FISCAL_TRIBUTACAO_ORIGEM) THEN
        BEGIN           
            HISTORICO = HISTORICO||' Fisc.CST.Orig:'||OLD.FISCAL_TRIBUTACAO_ORIGEM||' -> '||NEW.FISCAL_TRIBUTACAO_ORIGEM;
        END                         
    IF(NEW.FISCAL_TRIBUTACAO_ICMS <> OLD.FISCAL_TRIBUTACAO_ICMS) THEN
        BEGIN               
            HISTORICO = HISTORICO||' Fisc.CST.ICMS:'||OLD.FISCAL_TRIBUTACAO_ICMS||' -> '||NEW.FISCAL_TRIBUTACAO_ICMS;
        END                         
    IF(NEW.FISCAL_TRIBUTACAO_IPI <> OLD.FISCAL_TRIBUTACAO_IPI) THEN
        BEGIN
            HISTORICO = HISTORICO||' Fisc.CST.IPI:'||OLD.FISCAL_TRIBUTACAO_IPI||' -> '||NEW.FISCAL_TRIBUTACAO_IPI;
        END                      
    IF(NEW.FISCAL_TRIBUTACAO_PIS <> OLD.FISCAL_TRIBUTACAO_PIS) THEN
        BEGIN
            HISTORICO = HISTORICO||' Fisc.CST.PIS:'||OLD.FISCAL_TRIBUTACAO_PIS||' -> '||NEW.FISCAL_TRIBUTACAO_PIS;
        END                         
    IF(NEW.FISCAL_TRIBUTACAO_COFINS <> OLD.FISCAL_TRIBUTACAO_COFINS) THEN
        BEGIN
            HISTORICO = HISTORICO||' Fisc.CST.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.Cont:'||OLD.VALOR_CONTABIL||' -> '||NEW.VALOR_CONTABIL;
        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||' %ICMS.St:'||OLD.ALIQUOTA_ICMS_ST||' -> '||NEW.ALIQUOTA_ICMS_ST;
        END                 
    IF(NEW.VALOR_ICMS_ST <> OLD.VALOR_ICMS_ST) THEN
        BEGIN               
            HISTORICO = HISTORICO||' Vr.ICMS.St:'||OLD.VALOR_ICMS_ST||' -> '||NEW.VALOR_ICMS_ST;
        END                 
    IF(NEW.PEDIDO_CLIENTE <> OLD.PEDIDO_CLIENTE) THEN
        BEGIN               
            HISTORICO = HISTORICO||' Ped.Cliente:'||OLD.PEDIDO_CLIENTE||' -> '||NEW.PEDIDO_CLIENTE;
        END
    IF(NEW.INFORMACOES_COMPLEMENTARES <> OLD.INFORMACOES_COMPLEMENTARES) THEN
        BEGIN               
            HISTORICO = HISTORICO||' Inf.Comp:'||OLD.INFORMACOES_COMPLEMENTARES||' -> '||NEW.INFORMACOES_COMPLEMENTARES;
        END
    IF(NEW.NF_CONSIGNACAO <> OLD.NF_CONSIGNACAO) THEN
        BEGIN                                 
            HISTORICO = HISTORICO||' NF.Consig:'||OLD.NF_CONSIGNACAO||' -> '||NEW.NF_CONSIGNACAO;
        END                    
    IF(NEW.NF_CONSIGNACAO_ITEM <> OLD.NF_CONSIGNACAO_ITEM) THEN
        BEGIN                                 
            HISTORICO = HISTORICO||' Vl.Consig.item:'||OLD.NF_CONSIGNACAO_ITEM||' -> '||NEW.NF_CONSIGNACAO_ITEM;
        END                    
    IF(NEW.FCI_MENSAGEM <> OLD.FCI_MENSAGEM) THEN
        BEGIN                                     
            HISTORICO = HISTORICO||' Fci.Mensg:'||OLD.FCI_MENSAGEM||' -> '||NEW.FCI_MENSAGEM;
        END                        
    IF(NEW.FCI_PARCELA_IMPORTACAO <> OLD.FCI_PARCELA_IMPORTACAO) THEN
        BEGIN                                     
            HISTORICO = HISTORICO||' FCI.Parc.Imp:'||OLD.FCI_PARCELA_IMPORTACAO||' -> '||NEW.FCI_PARCELA_IMPORTACAO;
        END                        
    IF(NEW.FCI_CONTEUDO_IMPORTACAO <> OLD.FCI_CONTEUDO_IMPORTACAO) THEN
        BEGIN               
            HISTORICO = HISTORICO||' FCI.Cont.Imp:'||OLD.FCI_CONTEUDO_IMPORTACAO||' -> '||NEW.FCI_CONTEUDO_IMPORTACAO;
        END
    IF(NEW.FCI_NUMERO <> OLD.FCI_NUMERO) THEN
        BEGIN                      
            HISTORICO = HISTORICO||' Nr.FCI:'||OLD.FCI_NUMERO||' -> '||NEW.FCI_NUMERO;
        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.PESO_LIQUIDO <> OLD.PESO_LIQUIDO) THEN
        BEGIN                          
            HISTORICO = HISTORICO||' Peso Liq:'||OLD.PESO_LIQUIDO||' -> '||NEW.PESO_LIQUIDO;
        END             
    IF(NEW.PESO_BRUTO <> OLD.PESO_BRUTO) THEN
        BEGIN                          
            HISTORICO = HISTORICO||' Peso Brt:'||OLD.PESO_BRUTO||' -> '||NEW.PESO_BRUTO;
        END             
    IF(NEW.VOLUMES <> OLD.VOLUMES) THEN
        BEGIN                          
            HISTORICO = HISTORICO||' Vol:'||OLD.VOLUMES||' -> '||NEW.VOLUMES;
        END             
    IF(NEW.CUBAGEM <> OLD.CUBAGEM) THEN
        BEGIN               
            HISTORICO = HISTORICO||' Cub:'||OLD.CUBAGEM||' -> '||NEW.CUBAGEM;
        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.%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.EXP_NUMERO_DRAWBACK <> OLD.EXP_NUMERO_DRAWBACK) THEN
        BEGIN                                 
            HISTORICO = HISTORICO||' Exp.Num.Drawbck:'||OLD.EXP_NUMERO_DRAWBACK||' -> '||NEW.EXP_NUMERO_DRAWBACK;
        END                    
    IF(NEW.EXP_NUMERO_RE <> OLD.EXP_NUMERO_RE) THEN
        BEGIN                            
            HISTORICO = HISTORICO||' Exp.Num.Re:'||OLD.EXP_NUMERO_RE||' -> '||NEW.EXP_NUMERO_RE;
        END               
    IF(NEW.EXP_CHAVE <> OLD.EXP_CHAVE) THEN
        BEGIN                            
            HISTORICO = HISTORICO||' Exp.Chave:'||OLD.EXP_CHAVE||' -> '||NEW.EXP_CHAVE;
        END               
    IF(NEW.EXP_QUANTIDADE <> OLD.EXP_QUANTIDADE) THEN
        BEGIN                            
            HISTORICO = HISTORICO||' Exp.QTD:'||OLD.EXP_QUANTIDADE||' -> '||NEW.EXP_QUANTIDADE;
        END               
    IF(NEW.CONTA_CONTABIL <> OLD.CONTA_CONTABIL) THEN
        BEGIN                            
            HISTORICO = HISTORICO||' C.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.VALOR_FRETE_RATEADO <> OLD.VALOR_FRETE_RATEADO) THEN
        BEGIN               
            HISTORICO = HISTORICO||' Vr.Frete.Rat:'||OLD.VALOR_FRETE_RATEADO||' -> '||NEW.VALOR_FRETE_RATEADO;
        END
    IF(NEW.VBCUFDEST <> OLD.VBCUFDEST) THEN
        BEGIN                         
            HISTORICO = HISTORICO||' VBCUFDEST:'||OLD.VBCUFDEST||' -> '||NEW.VBCUFDEST;
        END            
    IF(NEW.PFCPUFDEST <> OLD.PFCPUFDEST) THEN
        BEGIN                         
            HISTORICO = HISTORICO||' PFCPUFDEST:'||OLD.PFCPUFDEST||' -> '||NEW.PFCPUFDEST;
        END            
    IF(NEW.PICMSUFDEST <> OLD.PICMSUFDEST) THEN
        BEGIN                         
            HISTORICO = HISTORICO||' PICMSUFDEST:'||OLD.PICMSUFDEST||' -> '||NEW.PICMSUFDEST;
        END            
    IF(NEW.PICMSINTER <> OLD.PICMSINTER) THEN
        BEGIN                         
            HISTORICO = HISTORICO||' PICMSINTER:'||OLD.PICMSINTER||' -> '||NEW.PICMSINTER;
        END            
    IF(NEW.VFCPUFDEST <> OLD.VFCPUFDEST) THEN
        BEGIN                         
            HISTORICO = HISTORICO||' VFCPUFDEST:'||OLD.VFCPUFDEST||' -> '||NEW.VFCPUFDEST;
        END            
    IF(NEW.VICMSUFDEST <> OLD.VICMSUFDEST) THEN
        BEGIN               
            HISTORICO = HISTORICO||' VICMSUFDEST:'||OLD.VICMSUFDEST||' -> '||NEW.VICMSUFDEST;
        END
    IF(NEW.VICMSUFREMET <> OLD.VICMSUFREMET) THEN
        BEGIN               
            HISTORICO = HISTORICO||' VICMSUFREMET:'||OLD.VICMSUFREMET||' -> '||NEW.VICMSUFREMET;
        END
    IF(NEW.PICMSINTERPART<> OLD.PICMSINTERPART) THEN
        BEGIN               
            HISTORICO = HISTORICO||' PICMSINTERPART:'||OLD.PICMSINTERPART||' -> '||NEW.PICMSINTERPART;
        END
    IF(NEW.TAMANHO <> OLD.TAMANHO) THEN
        BEGIN               
            HISTORICO = HISTORICO||' Tam:'||OLD.TAMANHO||' -> '||NEW.TAMANHO;
        END
    IF(NEW.QUANTIDADE_ALTERNATIVA <> OLD.QUANTIDADE_ALTERNATIVA) THEN
        BEGIN                                    
            HISTORICO = HISTORICO||' Qtd.Altern:'||OLD.QUANTIDADE_ALTERNATIVA||' -> '||NEW.QUANTIDADE_ALTERNATIVA;
        END                       
    IF(NEW.UM_ALTERNATIVA2 <> OLD.UM_ALTERNATIVA2) THEN
        BEGIN                               
            HISTORICO = HISTORICO||' UM.Altern:'||OLD.UM_ALTERNATIVA2||' -> '||NEW.UM_ALTERNATIVA2;
        END                  
    IF(NEW.VALOR_ALTERNATIVO <> OLD.VALOR_ALTERNATIVO) THEN
        BEGIN                                    
            HISTORICO = HISTORICO||' Vr.Altern:'||OLD.VALOR_ALTERNATIVO||' -> '||NEW.VALOR_ALTERNATIVO;
        END                       
    IF(NEW.CUSTO_FRETE_RATEADO <> OLD.CUSTO_FRETE_RATEADO) THEN
        BEGIN                                    
            HISTORICO = HISTORICO||' Custo Frete.Rat:'||OLD.CUSTO_FRETE_RATEADO||' -> '||NEW.CUSTO_FRETE_RATEADO;
        END                       
    IF(NEW.MARGEM <> OLD.MARGEM) THEN
        BEGIN                                    
            HISTORICO = HISTORICO||' Margem:'||OLD.MARGEM||' -> '||NEW.MARGEM;
        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('TBNFS', NEW.NFS_CONTROLE, HISTORICO);
    END
END
^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER procedure SPC_NFE_ITEM10 (
    CONTROLE_1 integer)
returns (
    NFE_CONTROLE integer,
    SEQUENCIA integer,
    OPERACAO_CODIGO varchar(3),
    CFOP_CODIGO varchar(5),
    PRODUTO_CODIGO integer,
    PRODUTO_DESCRICAO varchar(100),
    PRODUTO_UNIDADEMEDIDA varchar(3),
    GRADE_CODIGO integer,
    NCM_CODIGO varchar(10),
    TRIBUTACAO_ICMS integer,
    TRIBUTACAO_IPI varchar(2),
    TRIBUTACAO_ORIGEM integer,
    LOCALIZACAO_CODIGO integer,
    LOCALIZACAO_DESCRICAO varchar(20),
    QUANTIDADE numeric(10,5),
    VALOR_UNITARIO numeric(10,5),
    VALOR_TOTAL numeric(10,5),
    BASECALCULO_ICMS numeric(10,5),
    PERCENTUAL_ICMS numeric(10,5),
    PERCENTUAL_IPI numeric(10,5),
    VALOR_IPI numeric(10,5),
    PERCENTUAL_PIS numeric(10,5),
    VALOR_PIS numeric(10,5),
    PERCENTUAL_COFINS numeric(10,5),
    VALOR_COFINS numeric(10,5),
    VALOR_FRETE numeric(10,2),
    VALOR_SEGURO numeric(10,2),
    NFS integer,
    NFS_ITEM_CONTROLE integer,
    NF_EXTERNO integer,
    NF_EXTERNO_ITEM_CONTROLE integer,
    OC integer,
    OC_ITEM_CONTROLE integer,
    T01 numeric(10,5),
    T02 numeric(10,5),
    T03 numeric(10,5),
    T04 numeric(10,5),
    T05 numeric(10,5),
    T06 numeric(10,5),
    T07 numeric(10,5),
    T08 numeric(10,5),
    T09 numeric(10,5),
    T10 numeric(10,5),
    T11 numeric(10,5),
    T12 numeric(10,5),
    T13 numeric(10,5),
    T14 numeric(10,5),
    T15 numeric(10,5),
    T16 numeric(10,5),
    T17 numeric(10,5),
    T18 numeric(10,5),
    T19 numeric(10,5),
    T20 numeric(10,5),
    ESTABELECIMENTO_CODIGO integer,
    EMPRESA_CODIGO integer,
    NUMERO_NOTAFISCAL integer,
    DATA_ENTRADA date,
    SITUACAO integer,
    CONTROLE integer,
    VALOR_CUSTO numeric(10,5),
    PRODUTO_GRADE_CODIGO integer,
    TRIBUTACAO_PIS varchar(2),
    TRIBUTACAO_COFINS varchar(2),
    DI varchar(12),
    DI_DATA_REGISTRO date,
    DI_DATA_DESEMBARACO date,
    DI_LOCAL_DESEMBARACO varchar(60),
    DI_UF_DESEMBARACO char(2),
    DI_CODIGO_EXPORTADOR varchar(60),
    DI_ADICAO integer,
    DI_SEQUENCIAL integer,
    DI_CODIGO_FABRICANTE varchar(60),
    DI_DESCONTO_ADICAO numeric(10,2),
    DI_BASE_CALCULO numeric(10,2),
    DI_DESPESAS_ADUANEIRAS numeric(10,2),
    DI_VALOR_II numeric(10,2),
    DI_VALOR_IOF numeric(10,2),
    VALOR_ICMS numeric(10,2),
    BASECALCULO_IPI numeric(10,2),
    BASECALCULO_PIS numeric(10,2),
    BASECALCULO_COFINS numeric(10,2),
    VALOR_ACRESCIMO numeric(10,2),
    VALOR_DESCONTO numeric(10,2),
    FISCAL_ISENTAS_IPI numeric(10,2),
    FISCAL_ISENTAS_ICMS numeric(10,2),
    FISCAL_OUTRAS_IPI numeric(10,2),
    FISCAL_OUTRAS_ICMS numeric(10,2),
    FISCAL_VALOR_ICMS numeric(10,2),
    FISCAL_VALOR_IPI numeric(10,2),
    FISCAL_VALOR_PIS numeric(10,2),
    FISCAL_VALOR_COFINS numeric(10,2),
    FISCAL_PERCENTUAL_ICMS numeric(10,2),
    FISCAL_PERCENTUAL_IPI numeric(10,2),
    FISCAL_PERCENTUAL_PIS numeric(10,2),
    FISCAL_PERCENTUAL_COFINS numeric(10,2),
    FISCAL_BASECALCULO_ICMS numeric(10,5),
    FISCAL_BASECALCULO_IPI numeric(10,2),
    FISCAL_BASECALCULO_PIS numeric(10,2),
    FISCAL_BASECALCULO_COFINS numeric(10,2),
    VALOR_CONTABIL numeric(10,2),
    VALOR_BASECALCULO_ICMS numeric(10,2),
    VALOR_PEDAGIO numeric(10,2),
    FISCAL_CFOP_CODIGO varchar(5),
    FISCAL_TRIBUTACAO_ORIGEM integer,
    FISCAL_TRIBUTACAO_ICMS integer,
    FISCAL_TRIBUTACAO_IPI char(2),
    FISCAL_TRIBUTACAO_PIS char(2),
    FISCAL_TRIBUTACAO_COFINS char(2),
    DESCONTO_BASECALCULO_ICMS numeric(10,2),
    BASECALCULO_FCI numeric(15,4),
    CODIGO_FCI varchar(50),
    MODALIDADE_ICMS char(1),
    MODALIDADE_ICMS_ST char(1),
    MARGEM_ICMS_ST numeric(15,4),
    REDUCAO_ICMS_ST numeric(15,4),
    BASECALCULO_ICMS_ST numeric(15,4),
    ALIQUOTA_ICMS_ST numeric(15,4),
    VALOR_ICMS_ST numeric(15,4),
    FISCAL_REDUCAO_ICMS_ST numeric(10,2),
    FISCAL_BASECALCULO_ICMS_ST numeric(10,2),
    FISCAL_ALIQUOTA_ICMS_ST numeric(10,2),
    FISCAL_VALOR_ICMS_ST numeric(10,2),
    INFORMACOES_COMPLEMENTARES varchar(200),
    DI_NVE varchar(60),
    DI_TIPO_VIA_TRANSP integer,
    DI_TIPO_VIA_TRANSP_DESCRICAO varchar(30),
    DI_VALOR_AFRMM numeric(15,2),
    DI_TIPO_INTERMEDIO varchar(1),
    DI_TIPO_INTERMEDIO_DESCRICAO varchar(30),
    DI_CNPJ_INTERMEDIO varchar(14),
    DI_UF_INTERMEDIO varchar(2),
    DI_NUMERO_DRAWBACK varchar(11),
    CONTA_CONTABIL varchar(11),
    CCUSTO varchar(8),
    CCUSTO_DESCRICAO varchar(130),
    ENQUADRAMENTO_IPI varchar(3),
    QUANTIDADE_ALTERNATIVA numeric(18,4),
    UM_ALTERNATIVA varchar(3),
    VALOR_ALTERNATIVO numeric(18,10),
    REDUCAO_BASE_PISCOF char(1))
as
begin
for select
A.NFe_CONTROLE      ,A.SEQUENCIA        ,A.OPERACAO_CODIGO      ,A.CFOP_CODIGO ,
A.PRODUTO_CODIGO    ,A.PRODUTO_DESCRICAO,A.PRODUTO_UNIDADEMEDIDA2,A.GRADE_CODIGO,
A.NCM_CODIGO        ,A.TRIBUTACAO_ICMS  ,A.TRIBUTACAO_IPI       ,A.TRIBUTACAO_ORIGEM,
A.LOCALIZACAO_CODIGO,(Select First 1 L.Descricao From TbLocalizacao L Where A.Localizacao_Codigo = L.Codigo),
A.QUANTIDADE        ,A.VALOR_UNITARIO       ,A.VALOR_TOTAL      ,
A.BASECALCULO_ICMS  ,A.PERCENTUAL_ICMS  ,A.PERCENTUAL_IPI       ,A.VALOR_IPI   ,
A.PERCENTUAL_PIS    ,A.VALOR_PIS        ,A.PERCENTUAL_COFINS    ,A.VALOR_COFINS,
A.VALOR_FRETE, A.VALOR_SEGURO, A.NFs, A.NFs_ITEM_CONTROLE,A.NF_EXTERNO ,
A.NF_EXTERNO_ITEM_CONTROLE, A.OC,A.OC_ITEM_CONTROLE,
A.T01,A.T02,A.T03,A.T04,A.T05,A.T06,A.T07,A.T08,A.T09,A.T10,
A.T11,A.T12,A.T13,A.T14,A.T15,A.T16,A.T17,A.T18,A.T19,A.T20,
A.ESTABELECIMENTO_CODIGO,A.EMPRESA_CODIGO,A.NUMERO_NOTAFISCAL,A.DATA_ENTRADA,
A.SITUACAO,A.CONTROLE,A.VALOR_CUSTO,
(Select First 1 B.GRADE_CODIGO From TbProduto B Where A.Produto_Codigo = B.Codigo),
A.tributacao_PIS, A.tributacao_cofins,A.DI,A.DI_DATA_REGISTRO,A.DI_DATA_DESEMBARACO,
A.DI_LOCAL_DESEMBARACO,A.DI_UF_DESEMBARACO,A.DI_CODIGO_EXPORTADOR,A.DI_ADICAO,
A.DI_SEQUENCIAL,A.DI_CODIGO_FABRICANTE,A.DI_DESCONTO_ADICAO,
A.di_base_calculo,A.di_despesas_aduaneiras,A.di_valor_ii,A.di_valor_iof,
A.VALOR_ICMS,A.BASECALCULO_IPI,A.BASECALCULO_PIS,A.BASECALCULO_COFINS,
A.VALOR_ACRESCIMO,A.VALOR_DESCONTO,A.FISCAL_ISENTAS_IPI,A.FISCAL_ISENTAS_ICMS,
A.FISCAL_OUTRAS_IPI,A.FISCAL_OUTRAS_ICMS,A.FISCAL_VALOR_ICMS,A.FISCAL_VALOR_IPI,
A.FISCAL_VALOR_PIS,A.FISCAL_VALOR_COFINS,A.FISCAL_PERCENTUAL_ICMS,A.FISCAL_PERCENTUAL_IPI,
A.FISCAL_PERCENTUAL_PIS,A.FISCAL_PERCENTUAL_COFINS,A.FISCAL_BASECALCULO_ICMS,
A.FISCAL_BASECALCULO_IPI,A.FISCAL_BASECALCULO_PIS,A.FISCAL_BASECALCULO_COFINS,
A.VALOR_CONTABIL, A.valor_basecalculo_icms, A.VALOR_PEDAGIO, A.FISCAL_CFOP_CODIGO,A.FISCAL_TRIBUTACAO_ORIGEM,
A.FISCAL_TRIBUTACAO_ICMS,A.FISCAL_TRIBUTACAO_IPI,A.FISCAL_TRIBUTACAO_PIS,
A.FISCAL_TRIBUTACAO_COFINS, A.DESCONTO_BASECALCULO_ICMS, A.BASECALCULO_FCI, A.Codigo_Fci,

A.MODALIDADE_ICMS, A.MODALIDADE_ICMS_ST, A.MARGEM_ICMS_ST, A.REDUCAO_ICMS_ST,
A.BASECALCULO_ICMS_ST, A.ALIQUOTA_ICMS_ST, A.VALOR_ICMS_ST,A.FISCAL_REDUCAO_ICMS_ST,
A.FISCAL_BASECALCULO_ICMS_ST, A.FISCAL_ALIQUOTA_ICMS_ST, A.FISCAL_VALOR_ICMS_ST,

A.INFORMACOES_COMPLEMENTARES, A.DI_NVE,
A.DI_TIPO_VIA_TRANSP, IIF(A.DI_TIPO_VIA_TRANSP=1,'Maritima',
                      IIF(A.DI_TIPO_VIA_TRANSP=2,'Fluvial',
                      IIF(A.DI_TIPO_VIA_TRANSP=3,'Lacustre',
                      IIF(A.DI_TIPO_VIA_TRANSP=4,'Aerea',
                      IIF(A.DI_TIPO_VIA_TRANSP=5,'Postal',
                      IIF(A.DI_TIPO_VIA_TRANSP=6,'Ferroviaria',
                      IIF(A.DI_TIPO_VIA_TRANSP=7,'Rodoviaria',
                      IIF(A.DI_TIPO_VIA_TRANSP=8,'Conduto/Rd.Trnsm',
                      IIF(A.DI_TIPO_VIA_TRANSP=9,'Meios Proprios',
                      IIF(A.DI_TIPO_VIA_TRANSP=10,'Entr/Saida ficta','')))))))))),
A.DI_VALOR_AFRMM,
A.DI_TIPO_INTERMEDIO, IIF(A.DI_TIPO_INTERMEDIO='1','Imp.Conta Propria',
                      IIF(A.DI_TIPO_INTERMEDIO='2','Imp.Conta e Ordem',
                      IIF(A.DI_TIPO_INTERMEDIO='3','Imp.por Encomenda',''))),
A.DI_CNPJ_INTERMEDIO, A.DI_UF_INTERMEDIO, A.DI_NUMERO_DRAWBACK, A.Conta_Contabil, A.CCusto,

IIF(char_length(A.CCusto)=2,
(Select First 1 C.Descricao From TbCentro_de_Custo C Where C.CODIGO = SUBSTRING(A.CCusto FROM 1 FOR 2)),
IIF(char_length(A.CCusto)=5,
(Select First 1 C.Descricao From TbCentro_de_Custo C Where C.CODIGO = SUBSTRING(A.CCusto FROM 1 FOR 2))||' - '||
(Select First 1 C.Descricao From TbCentro_de_Custo C Where C.CODIGO = SUBSTRING(A.CCusto FROM 1 FOR 5)),
IIF(char_length(A.CCusto)=8,
(Select First 1 C.Descricao From TbCentro_de_Custo C Where C.CODIGO = SUBSTRING(A.CCusto FROM 1 FOR 5))||' - '||
(Select First 1 C.Descricao From TbCentro_de_Custo C Where C.CODIGO = SUBSTRING(A.CCusto FROM 1 FOR 8)),''))) CCUSTO_DESCRICAO,

A.ENQUADRAMENTO_IPI,
A.QUANTIDADE_ALTERNATIVA, A.UM_ALTERNATIVA2, A.VALOR_ALTERNATIVO, A.REDUCAO_BASE_PISCOF

From TbNfE_Item A
Where (A.NFE_CONTROLE = :CONTROLE_1)
order by A.SEQUENCIA
into
    :NFE_CONTROLE      ,:SEQUENCIA        , :OPERACAO_CODIGO, :CFOP_CODIGO,
    :PRODUTO_CODIGO    ,:PRODUTO_DESCRICAO, :PRODUTO_UNIDADEMEDIDA,:GRADE_CODIGO,
    :NCM_CODIGO        ,:TRIBUTACAO_ICMS  , :TRIBUTACAO_IPI, :TRIBUTACAO_ORIGEM,
    :LOCALIZACAO_CODIGO,:LOCALIZACAO_DESCRICAO,
    :QUANTIDADE       , :VALOR_UNITARIO, :VALOR_TOTAL,
    :BASECALCULO_ICMS, :PERCENTUAL_ICMS   , :PERCENTUAL_IPI, :VALOR_IPI,
    :PERCENTUAL_PIS, :VALOR_PIS, :PERCENTUAL_COFINS ,:VALOR_COFINS,
    :VALOR_FRETE, :VALOR_SEGURO, :NFS,
    :NFS_ITEM_CONTROLE,:NF_EXTERNO, :NF_EXTERNO_ITEM_CONTROLE, :OC,:OC_ITEM_CONTROLE,
    :T01,:T02,:T03,:T04,:T05,:T06,:T07,:T08,:T09,:T10,
    :T11,:T12,:T13,:T14,:T15,:T16,:T17,:T18,:T19,:T20,
    :ESTABELECIMENTO_CODIGO,:EMPRESA_CODIGO,:NUMERO_NOTAFISCAL,:DATA_ENTRADA,
    :SITUACAO,:CONTROLE,:VALOR_CUSTO,:PRODUTO_GRADE_CODIGO,:tributacao_PIS,
    :tributacao_cofins, :DI, :DI_DATA_REGISTRO, :DI_DATA_DESEMBARACO,
    :DI_LOCAL_DESEMBARACO, :DI_UF_DESEMBARACO, :DI_CODIGO_EXPORTADOR,
    :DI_ADICAO, :DI_SEQUENCIAL, :DI_CODIGO_FABRICANTE, :DI_DESCONTO_ADICAO,
    :di_base_calculo,:di_despesas_aduaneiras,:di_valor_ii,:Di_valor_iof,
    :VALOR_ICMS,:BASECALCULO_IPI,:BASECALCULO_PIS,:BASECALCULO_COFINS,
    :VALOR_ACRESCIMO,:VALOR_DESCONTO,:FISCAL_ISENTAS_IPI,:FISCAL_ISENTAS_ICMS,
    :FISCAL_OUTRAS_IPI,:FISCAL_OUTRAS_ICMS,:FISCAL_VALOR_ICMS,:FISCAL_VALOR_IPI,
    :FISCAL_VALOR_PIS,:FISCAL_VALOR_COFINS,:FISCAL_PERCENTUAL_ICMS,:FISCAL_PERCENTUAL_IPI,
    :FISCAL_PERCENTUAL_PIS,:FISCAL_PERCENTUAL_COFINS,:FISCAL_BASECALCULO_ICMS,
    :FISCAL_BASECALCULO_IPI,:FISCAL_BASECALCULO_PIS,:FISCAL_BASECALCULO_COFINS,
    :VALOR_CONTABIL,:valor_basecalculo_icms, :VALOR_PEDAGIO,:FISCAL_CFOP_CODIGO,
    :FISCAL_TRIBUTACAO_ORIGEM, :FISCAL_TRIBUTACAO_ICMS,:FISCAL_TRIBUTACAO_IPI,
    :FISCAL_TRIBUTACAO_PIS, :FISCAL_TRIBUTACAO_COFINS , :DESCONTO_BASECALCULO_ICMS,
    :BASECALCULO_FCI, :Codigo_Fci,

    :MODALIDADE_ICMS, :MODALIDADE_ICMS_ST, :MARGEM_ICMS_ST, :REDUCAO_ICMS_ST,
    :BASECALCULO_ICMS_ST, :ALIQUOTA_ICMS_ST, :VALOR_ICMS_ST,:FISCAL_REDUCAO_ICMS_ST,
    :FISCAL_BASECALCULO_ICMS_ST, :FISCAL_ALIQUOTA_ICMS_ST, :FISCAL_VALOR_ICMS_ST,
    :INFORMACOES_COMPLEMENTARES, :DI_NVE, :DI_TIPO_VIA_TRANSP,
    :DI_TIPO_VIA_TRANSP_DESCRICAO, :DI_VALOR_AFRMM, :DI_TIPO_INTERMEDIO,
    :DI_TIPO_INTERMEDIO_DESCRICAO, :DI_CNPJ_INTERMEDIO, :DI_UF_INTERMEDIO,
    :DI_NUMERO_DRAWBACK, :Conta_Contabil, :CCusto, :CCUSTO_DESCRICAO, :ENQUADRAMENTO_IPI,
    :QUANTIDADE_ALTERNATIVA, :UM_ALTERNATIVA, :VALOR_ALTERNATIVO,:REDUCAO_BASE_PISCOF


do suspend;
end
^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER procedure SPC_NFE_ITEM11 (
    CONTROLE_1 integer)
returns (
    NFE_CONTROLE integer,
    SEQUENCIA integer,
    OPERACAO_CODIGO varchar(3),
    CFOP_CODIGO varchar(5),
    PRODUTO_CODIGO integer,
    PRODUTO_DESCRICAO varchar(100),
    PRODUTO_UNIDADEMEDIDA varchar(3),
    GRADE_CODIGO integer,
    NCM_CODIGO varchar(10),
    TRIBUTACAO_ICMS integer,
    TRIBUTACAO_IPI varchar(2),
    TRIBUTACAO_ORIGEM integer,
    LOCALIZACAO_CODIGO integer,
    LOCALIZACAO_DESCRICAO varchar(20),
    QUANTIDADE numeric(10,5),
    VALOR_UNITARIO numeric(10,5),
    VALOR_TOTAL numeric(10,5),
    BASECALCULO_ICMS numeric(10,5),
    PERCENTUAL_ICMS numeric(10,5),
    PERCENTUAL_IPI numeric(10,5),
    VALOR_IPI numeric(10,5),
    PERCENTUAL_PIS numeric(10,5),
    VALOR_PIS numeric(10,5),
    PERCENTUAL_COFINS numeric(10,5),
    VALOR_COFINS numeric(10,5),
    VALOR_FRETE numeric(10,2),
    VALOR_SEGURO numeric(10,2),
    NFS integer,
    NFS_ITEM_CONTROLE integer,
    NF_EXTERNO integer,
    NF_EXTERNO_ITEM_CONTROLE integer,
    OC integer,
    OC_ITEM_CONTROLE integer,
    T01 numeric(10,5),
    T02 numeric(10,5),
    T03 numeric(10,5),
    T04 numeric(10,5),
    T05 numeric(10,5),
    T06 numeric(10,5),
    T07 numeric(10,5),
    T08 numeric(10,5),
    T09 numeric(10,5),
    T10 numeric(10,5),
    T11 numeric(10,5),
    T12 numeric(10,5),
    T13 numeric(10,5),
    T14 numeric(10,5),
    T15 numeric(10,5),
    T16 numeric(10,5),
    T17 numeric(10,5),
    T18 numeric(10,5),
    T19 numeric(10,5),
    T20 numeric(10,5),
    ESTABELECIMENTO_CODIGO integer,
    EMPRESA_CODIGO integer,
    NUMERO_NOTAFISCAL integer,
    DATA_ENTRADA date,
    SITUACAO integer,
    CONTROLE integer,
    VALOR_CUSTO numeric(10,5),
    PRODUTO_GRADE_CODIGO integer,
    TRIBUTACAO_PIS varchar(2),
    TRIBUTACAO_COFINS varchar(2),
    DI varchar(12),
    DI_DATA_REGISTRO date,
    DI_DATA_DESEMBARACO date,
    DI_LOCAL_DESEMBARACO varchar(60),
    DI_UF_DESEMBARACO char(2),
    DI_CODIGO_EXPORTADOR varchar(60),
    DI_ADICAO integer,
    DI_SEQUENCIAL integer,
    DI_CODIGO_FABRICANTE varchar(60),
    DI_DESCONTO_ADICAO numeric(10,2),
    DI_BASE_CALCULO numeric(10,2),
    DI_DESPESAS_ADUANEIRAS numeric(10,2),
    DI_VALOR_II numeric(10,2),
    DI_VALOR_IOF numeric(10,2),
    VALOR_ICMS numeric(10,2),
    BASECALCULO_IPI numeric(10,2),
    BASECALCULO_PIS numeric(10,2),
    BASECALCULO_COFINS numeric(10,2),
    VALOR_ACRESCIMO numeric(10,2),
    VALOR_DESCONTO numeric(10,2),
    FISCAL_ISENTAS_IPI numeric(10,2),
    FISCAL_ISENTAS_ICMS numeric(10,2),
    FISCAL_OUTRAS_IPI numeric(10,2),
    FISCAL_OUTRAS_ICMS numeric(10,2),
    FISCAL_VALOR_ICMS numeric(10,2),
    FISCAL_VALOR_IPI numeric(10,2),
    FISCAL_VALOR_PIS numeric(10,2),
    FISCAL_VALOR_COFINS numeric(10,2),
    FISCAL_PERCENTUAL_ICMS numeric(10,2),
    FISCAL_PERCENTUAL_IPI numeric(10,2),
    FISCAL_PERCENTUAL_PIS numeric(10,2),
    FISCAL_PERCENTUAL_COFINS numeric(10,2),
    FISCAL_BASECALCULO_ICMS numeric(10,5),
    FISCAL_BASECALCULO_IPI numeric(10,2),
    FISCAL_BASECALCULO_PIS numeric(10,2),
    FISCAL_BASECALCULO_COFINS numeric(10,2),
    VALOR_CONTABIL numeric(10,2),
    VALOR_BASECALCULO_ICMS numeric(10,2),
    VALOR_PEDAGIO numeric(10,2),
    FISCAL_CFOP_CODIGO varchar(5),
    FISCAL_TRIBUTACAO_ORIGEM integer,
    FISCAL_TRIBUTACAO_ICMS integer,
    FISCAL_TRIBUTACAO_IPI char(2),
    FISCAL_TRIBUTACAO_PIS char(2),
    FISCAL_TRIBUTACAO_COFINS char(2),
    DESCONTO_BASECALCULO_ICMS numeric(10,2),
    BASECALCULO_FCI numeric(15,4),
    CODIGO_FCI varchar(50),
    MODALIDADE_ICMS char(1),
    MODALIDADE_ICMS_ST char(1),
    MARGEM_ICMS_ST numeric(15,4),
    REDUCAO_ICMS_ST numeric(15,4),
    BASECALCULO_ICMS_ST numeric(15,4),
    ALIQUOTA_ICMS_ST numeric(15,4),
    VALOR_ICMS_ST numeric(15,4),
    FISCAL_REDUCAO_ICMS_ST numeric(10,2),
    FISCAL_BASECALCULO_ICMS_ST numeric(10,2),
    FISCAL_ALIQUOTA_ICMS_ST numeric(10,2),
    FISCAL_VALOR_ICMS_ST numeric(10,2),
    INFORMACOES_COMPLEMENTARES varchar(500),
    DI_NVE varchar(60),
    DI_TIPO_VIA_TRANSP integer,
    DI_TIPO_VIA_TRANSP_DESCRICAO varchar(30),
    DI_VALOR_AFRMM numeric(15,2),
    DI_TIPO_INTERMEDIO varchar(1),
    DI_TIPO_INTERMEDIO_DESCRICAO varchar(30),
    DI_CNPJ_INTERMEDIO varchar(14),
    DI_UF_INTERMEDIO varchar(2),
    DI_NUMERO_DRAWBACK varchar(11),
    CONTA_CONTABIL varchar(11),
    CCUSTO varchar(8),
    CCUSTO_DESCRICAO varchar(130),
    ENQUADRAMENTO_IPI varchar(3),
    QUANTIDADE_ALTERNATIVA numeric(18,4),
    UM_ALTERNATIVA varchar(3),
    VALOR_ALTERNATIVO numeric(18,10),
    REDUCAO_BASE_PISCOF char(1))
as
begin
for select
A.NFe_CONTROLE      ,A.SEQUENCIA        ,A.OPERACAO_CODIGO      ,A.CFOP_CODIGO ,
A.PRODUTO_CODIGO    ,A.PRODUTO_DESCRICAO,A.PRODUTO_UNIDADEMEDIDA2,A.GRADE_CODIGO,
A.NCM_CODIGO        ,A.TRIBUTACAO_ICMS  ,A.TRIBUTACAO_IPI       ,A.TRIBUTACAO_ORIGEM,
A.LOCALIZACAO_CODIGO,(Select First 1 L.Descricao From TbLocalizacao L Where A.Localizacao_Codigo = L.Codigo),
A.QUANTIDADE        ,A.VALOR_UNITARIO       ,A.VALOR_TOTAL      ,
A.BASECALCULO_ICMS  ,A.PERCENTUAL_ICMS  ,A.PERCENTUAL_IPI       ,A.VALOR_IPI   ,
A.PERCENTUAL_PIS    ,A.VALOR_PIS        ,A.PERCENTUAL_COFINS    ,A.VALOR_COFINS,
A.VALOR_FRETE, A.VALOR_SEGURO, A.NFs, A.NFs_ITEM_CONTROLE,A.NF_EXTERNO ,
A.NF_EXTERNO_ITEM_CONTROLE, A.OC,A.OC_ITEM_CONTROLE,
A.T01,A.T02,A.T03,A.T04,A.T05,A.T06,A.T07,A.T08,A.T09,A.T10,
A.T11,A.T12,A.T13,A.T14,A.T15,A.T16,A.T17,A.T18,A.T19,A.T20,
A.ESTABELECIMENTO_CODIGO,A.EMPRESA_CODIGO,A.NUMERO_NOTAFISCAL,A.DATA_ENTRADA,
A.SITUACAO,A.CONTROLE,A.VALOR_CUSTO,
(Select First 1 B.GRADE_CODIGO From TbProduto B Where A.Produto_Codigo = B.Codigo),
A.tributacao_PIS, A.tributacao_cofins,A.DI,A.DI_DATA_REGISTRO,A.DI_DATA_DESEMBARACO,
A.DI_LOCAL_DESEMBARACO,A.DI_UF_DESEMBARACO,A.DI_CODIGO_EXPORTADOR,A.DI_ADICAO,
A.DI_SEQUENCIAL,A.DI_CODIGO_FABRICANTE,A.DI_DESCONTO_ADICAO,
A.di_base_calculo,A.di_despesas_aduaneiras,A.di_valor_ii,A.di_valor_iof,
A.VALOR_ICMS,A.BASECALCULO_IPI,A.BASECALCULO_PIS,A.BASECALCULO_COFINS,
A.VALOR_ACRESCIMO,A.VALOR_DESCONTO,A.FISCAL_ISENTAS_IPI,A.FISCAL_ISENTAS_ICMS,
A.FISCAL_OUTRAS_IPI,A.FISCAL_OUTRAS_ICMS,A.FISCAL_VALOR_ICMS,A.FISCAL_VALOR_IPI,
A.FISCAL_VALOR_PIS,A.FISCAL_VALOR_COFINS,A.FISCAL_PERCENTUAL_ICMS,A.FISCAL_PERCENTUAL_IPI,
A.FISCAL_PERCENTUAL_PIS,A.FISCAL_PERCENTUAL_COFINS,A.FISCAL_BASECALCULO_ICMS,
A.FISCAL_BASECALCULO_IPI,A.FISCAL_BASECALCULO_PIS,A.FISCAL_BASECALCULO_COFINS,
A.VALOR_CONTABIL, A.valor_basecalculo_icms, A.VALOR_PEDAGIO, A.FISCAL_CFOP_CODIGO,A.FISCAL_TRIBUTACAO_ORIGEM,
A.FISCAL_TRIBUTACAO_ICMS,A.FISCAL_TRIBUTACAO_IPI,A.FISCAL_TRIBUTACAO_PIS,
A.FISCAL_TRIBUTACAO_COFINS, A.DESCONTO_BASECALCULO_ICMS, A.BASECALCULO_FCI, A.Codigo_Fci,

A.MODALIDADE_ICMS, A.MODALIDADE_ICMS_ST, A.MARGEM_ICMS_ST, A.REDUCAO_ICMS_ST,
A.BASECALCULO_ICMS_ST, A.ALIQUOTA_ICMS_ST, A.VALOR_ICMS_ST,A.FISCAL_REDUCAO_ICMS_ST,
A.FISCAL_BASECALCULO_ICMS_ST, A.FISCAL_ALIQUOTA_ICMS_ST, A.FISCAL_VALOR_ICMS_ST,

A.INFORMACOES_COMPLEMENTARES, A.DI_NVE,
A.DI_TIPO_VIA_TRANSP, IIF(A.DI_TIPO_VIA_TRANSP=1,'Maritima',
                      IIF(A.DI_TIPO_VIA_TRANSP=2,'Fluvial',
                      IIF(A.DI_TIPO_VIA_TRANSP=3,'Lacustre',
                      IIF(A.DI_TIPO_VIA_TRANSP=4,'Aerea',
                      IIF(A.DI_TIPO_VIA_TRANSP=5,'Postal',
                      IIF(A.DI_TIPO_VIA_TRANSP=6,'Ferroviaria',
                      IIF(A.DI_TIPO_VIA_TRANSP=7,'Rodoviaria',
                      IIF(A.DI_TIPO_VIA_TRANSP=8,'Conduto/Rd.Trnsm',
                      IIF(A.DI_TIPO_VIA_TRANSP=9,'Meios Proprios',
                      IIF(A.DI_TIPO_VIA_TRANSP=10,'Entr/Saida ficta','')))))))))),
A.DI_VALOR_AFRMM,
A.DI_TIPO_INTERMEDIO, IIF(A.DI_TIPO_INTERMEDIO='1','Imp.Conta Propria',
                      IIF(A.DI_TIPO_INTERMEDIO='2','Imp.Conta e Ordem',
                      IIF(A.DI_TIPO_INTERMEDIO='3','Imp.por Encomenda',''))),
A.DI_CNPJ_INTERMEDIO, A.DI_UF_INTERMEDIO, A.DI_NUMERO_DRAWBACK, A.Conta_Contabil, A.CCusto,

IIF(char_length(A.CCusto)=2,
(Select First 1 C.Descricao From TbCentro_de_Custo C Where C.CODIGO = SUBSTRING(A.CCusto FROM 1 FOR 2)),
IIF(char_length(A.CCusto)=5,
(Select First 1 C.Descricao From TbCentro_de_Custo C Where C.CODIGO = SUBSTRING(A.CCusto FROM 1 FOR 2))||' - '||
(Select First 1 C.Descricao From TbCentro_de_Custo C Where C.CODIGO = SUBSTRING(A.CCusto FROM 1 FOR 5)),
IIF(char_length(A.CCusto)=8,
(Select First 1 C.Descricao From TbCentro_de_Custo C Where C.CODIGO = SUBSTRING(A.CCusto FROM 1 FOR 5))||' - '||
(Select First 1 C.Descricao From TbCentro_de_Custo C Where C.CODIGO = SUBSTRING(A.CCusto FROM 1 FOR 8)),''))) CCUSTO_DESCRICAO,

A.ENQUADRAMENTO_IPI,
A.QUANTIDADE_ALTERNATIVA, A.UM_ALTERNATIVA2, A.VALOR_ALTERNATIVO, A.REDUCAO_BASE_PISCOF

From TbNfE_Item A
Where (A.NFE_CONTROLE = :CONTROLE_1)
order by A.SEQUENCIA
into
    :NFE_CONTROLE      ,:SEQUENCIA        , :OPERACAO_CODIGO, :CFOP_CODIGO,
    :PRODUTO_CODIGO    ,:PRODUTO_DESCRICAO, :PRODUTO_UNIDADEMEDIDA,:GRADE_CODIGO,
    :NCM_CODIGO        ,:TRIBUTACAO_ICMS  , :TRIBUTACAO_IPI, :TRIBUTACAO_ORIGEM,
    :LOCALIZACAO_CODIGO,:LOCALIZACAO_DESCRICAO,
    :QUANTIDADE       , :VALOR_UNITARIO, :VALOR_TOTAL,
    :BASECALCULO_ICMS, :PERCENTUAL_ICMS   , :PERCENTUAL_IPI, :VALOR_IPI,
    :PERCENTUAL_PIS, :VALOR_PIS, :PERCENTUAL_COFINS ,:VALOR_COFINS,
    :VALOR_FRETE, :VALOR_SEGURO, :NFS,
    :NFS_ITEM_CONTROLE,:NF_EXTERNO, :NF_EXTERNO_ITEM_CONTROLE, :OC,:OC_ITEM_CONTROLE,
    :T01,:T02,:T03,:T04,:T05,:T06,:T07,:T08,:T09,:T10,
    :T11,:T12,:T13,:T14,:T15,:T16,:T17,:T18,:T19,:T20,
    :ESTABELECIMENTO_CODIGO,:EMPRESA_CODIGO,:NUMERO_NOTAFISCAL,:DATA_ENTRADA,
    :SITUACAO,:CONTROLE,:VALOR_CUSTO,:PRODUTO_GRADE_CODIGO,:tributacao_PIS,
    :tributacao_cofins, :DI, :DI_DATA_REGISTRO, :DI_DATA_DESEMBARACO,
    :DI_LOCAL_DESEMBARACO, :DI_UF_DESEMBARACO, :DI_CODIGO_EXPORTADOR,
    :DI_ADICAO, :DI_SEQUENCIAL, :DI_CODIGO_FABRICANTE, :DI_DESCONTO_ADICAO,
    :di_base_calculo,:di_despesas_aduaneiras,:di_valor_ii,:Di_valor_iof,
    :VALOR_ICMS,:BASECALCULO_IPI,:BASECALCULO_PIS,:BASECALCULO_COFINS,
    :VALOR_ACRESCIMO,:VALOR_DESCONTO,:FISCAL_ISENTAS_IPI,:FISCAL_ISENTAS_ICMS,
    :FISCAL_OUTRAS_IPI,:FISCAL_OUTRAS_ICMS,:FISCAL_VALOR_ICMS,:FISCAL_VALOR_IPI,
    :FISCAL_VALOR_PIS,:FISCAL_VALOR_COFINS,:FISCAL_PERCENTUAL_ICMS,:FISCAL_PERCENTUAL_IPI,
    :FISCAL_PERCENTUAL_PIS,:FISCAL_PERCENTUAL_COFINS,:FISCAL_BASECALCULO_ICMS,
    :FISCAL_BASECALCULO_IPI,:FISCAL_BASECALCULO_PIS,:FISCAL_BASECALCULO_COFINS,
    :VALOR_CONTABIL,:valor_basecalculo_icms, :VALOR_PEDAGIO,:FISCAL_CFOP_CODIGO,
    :FISCAL_TRIBUTACAO_ORIGEM, :FISCAL_TRIBUTACAO_ICMS,:FISCAL_TRIBUTACAO_IPI,
    :FISCAL_TRIBUTACAO_PIS, :FISCAL_TRIBUTACAO_COFINS , :DESCONTO_BASECALCULO_ICMS,
    :BASECALCULO_FCI, :Codigo_Fci,

    :MODALIDADE_ICMS, :MODALIDADE_ICMS_ST, :MARGEM_ICMS_ST, :REDUCAO_ICMS_ST,
    :BASECALCULO_ICMS_ST, :ALIQUOTA_ICMS_ST, :VALOR_ICMS_ST,:FISCAL_REDUCAO_ICMS_ST,
    :FISCAL_BASECALCULO_ICMS_ST, :FISCAL_ALIQUOTA_ICMS_ST, :FISCAL_VALOR_ICMS_ST,
    :INFORMACOES_COMPLEMENTARES, :DI_NVE, :DI_TIPO_VIA_TRANSP,
    :DI_TIPO_VIA_TRANSP_DESCRICAO, :DI_VALOR_AFRMM, :DI_TIPO_INTERMEDIO,
    :DI_TIPO_INTERMEDIO_DESCRICAO, :DI_CNPJ_INTERMEDIO, :DI_UF_INTERMEDIO,
    :DI_NUMERO_DRAWBACK, :Conta_Contabil, :CCusto, :CCUSTO_DESCRICAO, :ENQUADRAMENTO_IPI,
    :QUANTIDADE_ALTERNATIVA, :UM_ALTERNATIVA, :VALOR_ALTERNATIVO,:REDUCAO_BASE_PISCOF


do suspend;
end
^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER procedure SPC_NFE_ITEM9 (
    CONTROLE_1 integer)
returns (
    NFE_CONTROLE integer,
    SEQUENCIA integer,
    OPERACAO_CODIGO varchar(3),
    CFOP_CODIGO varchar(5),
    PRODUTO_CODIGO integer,
    PRODUTO_DESCRICAO varchar(100),
    PRODUTO_UNIDADEMEDIDA varchar(3),
    GRADE_CODIGO integer,
    NCM_CODIGO varchar(10),
    TRIBUTACAO_ICMS integer,
    TRIBUTACAO_IPI varchar(2),
    TRIBUTACAO_ORIGEM integer,
    LOCALIZACAO_CODIGO integer,
    LOCALIZACAO_DESCRICAO varchar(20),
    QUANTIDADE numeric(10,5),
    VALOR_UNITARIO numeric(10,5),
    VALOR_TOTAL numeric(10,5),
    BASECALCULO_ICMS numeric(10,5),
    PERCENTUAL_ICMS numeric(10,5),
    PERCENTUAL_IPI numeric(10,5),
    VALOR_IPI numeric(10,5),
    PERCENTUAL_PIS numeric(10,5),
    VALOR_PIS numeric(10,5),
    PERCENTUAL_COFINS numeric(10,5),
    VALOR_COFINS numeric(10,5),
    VALOR_FRETE numeric(10,2),
    VALOR_SEGURO numeric(10,2),
    NFS integer,
    NFS_ITEM_CONTROLE integer,
    NF_EXTERNO integer,
    NF_EXTERNO_ITEM_CONTROLE integer,
    OC integer,
    OC_ITEM_CONTROLE integer,
    T01 numeric(10,5),
    T02 numeric(10,5),
    T03 numeric(10,5),
    T04 numeric(10,5),
    T05 numeric(10,5),
    T06 numeric(10,5),
    T07 numeric(10,5),
    T08 numeric(10,5),
    T09 numeric(10,5),
    T10 numeric(10,5),
    T11 numeric(10,5),
    T12 numeric(10,5),
    T13 numeric(10,5),
    T14 numeric(10,5),
    T15 numeric(10,5),
    T16 numeric(10,5),
    T17 numeric(10,5),
    T18 numeric(10,5),
    T19 numeric(10,5),
    T20 numeric(10,5),
    ESTABELECIMENTO_CODIGO integer,
    EMPRESA_CODIGO integer,
    NUMERO_NOTAFISCAL integer,
    DATA_ENTRADA date,
    SITUACAO integer,
    CONTROLE integer,
    VALOR_CUSTO numeric(10,5),
    PRODUTO_GRADE_CODIGO integer,
    TRIBUTACAO_PIS varchar(2),
    TRIBUTACAO_COFINS varchar(2),
    DI varchar(12),
    DI_DATA_REGISTRO date,
    DI_DATA_DESEMBARACO date,
    DI_LOCAL_DESEMBARACO varchar(60),
    DI_UF_DESEMBARACO char(2),
    DI_CODIGO_EXPORTADOR varchar(60),
    DI_ADICAO integer,
    DI_SEQUENCIAL integer,
    DI_CODIGO_FABRICANTE varchar(60),
    DI_DESCONTO_ADICAO numeric(10,2),
    DI_BASE_CALCULO numeric(10,2),
    DI_DESPESAS_ADUANEIRAS numeric(10,2),
    DI_VALOR_II numeric(10,2),
    DI_VALOR_IOF numeric(10,2),
    VALOR_ICMS numeric(10,2),
    BASECALCULO_IPI numeric(10,2),
    BASECALCULO_PIS numeric(10,2),
    BASECALCULO_COFINS numeric(10,2),
    VALOR_ACRESCIMO numeric(10,2),
    VALOR_DESCONTO numeric(10,2),
    FISCAL_ISENTAS_IPI numeric(10,2),
    FISCAL_ISENTAS_ICMS numeric(10,2),
    FISCAL_OUTRAS_IPI numeric(10,2),
    FISCAL_OUTRAS_ICMS numeric(10,2),
    FISCAL_VALOR_ICMS numeric(10,2),
    FISCAL_VALOR_IPI numeric(10,2),
    FISCAL_VALOR_PIS numeric(10,2),
    FISCAL_VALOR_COFINS numeric(10,2),
    FISCAL_PERCENTUAL_ICMS numeric(10,2),
    FISCAL_PERCENTUAL_IPI numeric(10,2),
    FISCAL_PERCENTUAL_PIS numeric(10,2),
    FISCAL_PERCENTUAL_COFINS numeric(10,2),
    FISCAL_BASECALCULO_ICMS numeric(10,5),
    FISCAL_BASECALCULO_IPI numeric(10,2),
    FISCAL_BASECALCULO_PIS numeric(10,2),
    FISCAL_BASECALCULO_COFINS numeric(10,2),
    VALOR_CONTABIL numeric(10,2),
    VALOR_BASECALCULO_ICMS numeric(10,2),
    VALOR_PEDAGIO numeric(10,2),
    FISCAL_CFOP_CODIGO varchar(5),
    FISCAL_TRIBUTACAO_ORIGEM integer,
    FISCAL_TRIBUTACAO_ICMS integer,
    FISCAL_TRIBUTACAO_IPI char(2),
    FISCAL_TRIBUTACAO_PIS char(2),
    FISCAL_TRIBUTACAO_COFINS char(2),
    DESCONTO_BASECALCULO_ICMS numeric(10,2),
    BASECALCULO_FCI numeric(15,4),
    CODIGO_FCI varchar(50),
    MODALIDADE_ICMS char(1),
    MODALIDADE_ICMS_ST char(1),
    MARGEM_ICMS_ST numeric(15,4),
    REDUCAO_ICMS_ST numeric(15,4),
    BASECALCULO_ICMS_ST numeric(15,4),
    ALIQUOTA_ICMS_ST numeric(15,4),
    VALOR_ICMS_ST numeric(15,4),
    FISCAL_REDUCAO_ICMS_ST numeric(10,2),
    FISCAL_BASECALCULO_ICMS_ST numeric(10,2),
    FISCAL_ALIQUOTA_ICMS_ST numeric(10,2),
    FISCAL_VALOR_ICMS_ST numeric(10,2),
    INFORMACOES_COMPLEMENTARES varchar(200),
    DI_NVE varchar(60),
    DI_TIPO_VIA_TRANSP integer,
    DI_TIPO_VIA_TRANSP_DESCRICAO varchar(30),
    DI_VALOR_AFRMM numeric(15,2),
    DI_TIPO_INTERMEDIO varchar(1),
    DI_TIPO_INTERMEDIO_DESCRICAO varchar(30),
    DI_CNPJ_INTERMEDIO varchar(14),
    DI_UF_INTERMEDIO varchar(2),
    DI_NUMERO_DRAWBACK varchar(11),
    CONTA_CONTABIL varchar(11),
    CCUSTO varchar(8),
    CCUSTO_DESCRICAO varchar(130),
    ENQUADRAMENTO_IPI varchar(3),
    QUANTIDADE_ALTERNATIVA numeric(18,4),
    UM_ALTERNATIVA varchar(3),
    VALOR_ALTERNATIVO numeric(18,10))
as
begin
for select
A.NFe_CONTROLE      ,A.SEQUENCIA        ,A.OPERACAO_CODIGO      ,A.CFOP_CODIGO ,
A.PRODUTO_CODIGO    ,A.PRODUTO_DESCRICAO,A.PRODUTO_UNIDADEMEDIDA2,A.GRADE_CODIGO,
A.NCM_CODIGO        ,A.TRIBUTACAO_ICMS  ,A.TRIBUTACAO_IPI       ,A.TRIBUTACAO_ORIGEM,
A.LOCALIZACAO_CODIGO,(Select First 1 L.Descricao From TbLocalizacao L Where A.Localizacao_Codigo = L.Codigo),
A.QUANTIDADE        ,A.VALOR_UNITARIO       ,A.VALOR_TOTAL      ,
A.BASECALCULO_ICMS  ,A.PERCENTUAL_ICMS  ,A.PERCENTUAL_IPI       ,A.VALOR_IPI   ,
A.PERCENTUAL_PIS    ,A.VALOR_PIS        ,A.PERCENTUAL_COFINS    ,A.VALOR_COFINS,
A.VALOR_FRETE, A.VALOR_SEGURO, A.NFs, A.NFs_ITEM_CONTROLE,A.NF_EXTERNO ,
A.NF_EXTERNO_ITEM_CONTROLE, A.OC,A.OC_ITEM_CONTROLE,
A.T01,A.T02,A.T03,A.T04,A.T05,A.T06,A.T07,A.T08,A.T09,A.T10,
A.T11,A.T12,A.T13,A.T14,A.T15,A.T16,A.T17,A.T18,A.T19,A.T20,
A.ESTABELECIMENTO_CODIGO,A.EMPRESA_CODIGO,A.NUMERO_NOTAFISCAL,A.DATA_ENTRADA,
A.SITUACAO,A.CONTROLE,A.VALOR_CUSTO,
(Select First 1 B.GRADE_CODIGO From TbProduto B Where A.Produto_Codigo = B.Codigo),
A.tributacao_PIS, A.tributacao_cofins,A.DI,A.DI_DATA_REGISTRO,A.DI_DATA_DESEMBARACO,
A.DI_LOCAL_DESEMBARACO,A.DI_UF_DESEMBARACO,A.DI_CODIGO_EXPORTADOR,A.DI_ADICAO,
A.DI_SEQUENCIAL,A.DI_CODIGO_FABRICANTE,A.DI_DESCONTO_ADICAO,
A.di_base_calculo,A.di_despesas_aduaneiras,A.di_valor_ii,A.di_valor_iof,
A.VALOR_ICMS,A.BASECALCULO_IPI,A.BASECALCULO_PIS,A.BASECALCULO_COFINS,
A.VALOR_ACRESCIMO,A.VALOR_DESCONTO,A.FISCAL_ISENTAS_IPI,A.FISCAL_ISENTAS_ICMS,
A.FISCAL_OUTRAS_IPI,A.FISCAL_OUTRAS_ICMS,A.FISCAL_VALOR_ICMS,A.FISCAL_VALOR_IPI,
A.FISCAL_VALOR_PIS,A.FISCAL_VALOR_COFINS,A.FISCAL_PERCENTUAL_ICMS,A.FISCAL_PERCENTUAL_IPI,
A.FISCAL_PERCENTUAL_PIS,A.FISCAL_PERCENTUAL_COFINS,A.FISCAL_BASECALCULO_ICMS,
A.FISCAL_BASECALCULO_IPI,A.FISCAL_BASECALCULO_PIS,A.FISCAL_BASECALCULO_COFINS,
A.VALOR_CONTABIL, A.valor_basecalculo_icms, A.VALOR_PEDAGIO, A.FISCAL_CFOP_CODIGO,A.FISCAL_TRIBUTACAO_ORIGEM,
A.FISCAL_TRIBUTACAO_ICMS,A.FISCAL_TRIBUTACAO_IPI,A.FISCAL_TRIBUTACAO_PIS,
A.FISCAL_TRIBUTACAO_COFINS, A.DESCONTO_BASECALCULO_ICMS, A.BASECALCULO_FCI, A.Codigo_Fci,

A.MODALIDADE_ICMS, A.MODALIDADE_ICMS_ST, A.MARGEM_ICMS_ST, A.REDUCAO_ICMS_ST,
A.BASECALCULO_ICMS_ST, A.ALIQUOTA_ICMS_ST, A.VALOR_ICMS_ST,A.FISCAL_REDUCAO_ICMS_ST,
A.FISCAL_BASECALCULO_ICMS_ST, A.FISCAL_ALIQUOTA_ICMS_ST, A.FISCAL_VALOR_ICMS_ST,

A.INFORMACOES_COMPLEMENTARES, A.DI_NVE,
A.DI_TIPO_VIA_TRANSP, IIF(A.DI_TIPO_VIA_TRANSP=1,'Maritima',
                      IIF(A.DI_TIPO_VIA_TRANSP=2,'Fluvial',
                      IIF(A.DI_TIPO_VIA_TRANSP=3,'Lacustre',
                      IIF(A.DI_TIPO_VIA_TRANSP=4,'Aerea',
                      IIF(A.DI_TIPO_VIA_TRANSP=5,'Postal',
                      IIF(A.DI_TIPO_VIA_TRANSP=6,'Ferroviaria',
                      IIF(A.DI_TIPO_VIA_TRANSP=7,'Rodoviaria',
                      IIF(A.DI_TIPO_VIA_TRANSP=8,'Conduto/Rd.Trnsm',
                      IIF(A.DI_TIPO_VIA_TRANSP=9,'Meios Proprios',
                      IIF(A.DI_TIPO_VIA_TRANSP=10,'Entr/Saida ficta','')))))))))),
A.DI_VALOR_AFRMM,
A.DI_TIPO_INTERMEDIO, IIF(A.DI_TIPO_INTERMEDIO='1','Imp.Conta Propria',
                      IIF(A.DI_TIPO_INTERMEDIO='2','Imp.Conta e Ordem',
                      IIF(A.DI_TIPO_INTERMEDIO='3','Imp.por Encomenda',''))),
A.DI_CNPJ_INTERMEDIO, A.DI_UF_INTERMEDIO, A.DI_NUMERO_DRAWBACK, A.Conta_Contabil, A.CCusto,

IIF(char_length(A.CCusto)=2,
(Select First 1 C.Descricao From TbCentro_de_Custo C Where C.CODIGO = SUBSTRING(A.CCusto FROM 1 FOR 2)),
IIF(char_length(A.CCusto)=5,
(Select First 1 C.Descricao From TbCentro_de_Custo C Where C.CODIGO = SUBSTRING(A.CCusto FROM 1 FOR 2))||' - '||
(Select First 1 C.Descricao From TbCentro_de_Custo C Where C.CODIGO = SUBSTRING(A.CCusto FROM 1 FOR 5)),
IIF(char_length(A.CCusto)=8,
(Select First 1 C.Descricao From TbCentro_de_Custo C Where C.CODIGO = SUBSTRING(A.CCusto FROM 1 FOR 5))||' - '||
(Select First 1 C.Descricao From TbCentro_de_Custo C Where C.CODIGO = SUBSTRING(A.CCusto FROM 1 FOR 8)),''))) CCUSTO_DESCRICAO,

A.ENQUADRAMENTO_IPI,
A.QUANTIDADE_ALTERNATIVA, A.UM_ALTERNATIVA2, A.VALOR_ALTERNATIVO

From TbNfE_Item A
Where (A.NFE_CONTROLE = :CONTROLE_1)
order by A.SEQUENCIA
into
    :NFE_CONTROLE      ,:SEQUENCIA        , :OPERACAO_CODIGO, :CFOP_CODIGO,
    :PRODUTO_CODIGO    ,:PRODUTO_DESCRICAO, :PRODUTO_UNIDADEMEDIDA,:GRADE_CODIGO,
    :NCM_CODIGO        ,:TRIBUTACAO_ICMS  , :TRIBUTACAO_IPI, :TRIBUTACAO_ORIGEM,
    :LOCALIZACAO_CODIGO,:LOCALIZACAO_DESCRICAO,
    :QUANTIDADE       , :VALOR_UNITARIO, :VALOR_TOTAL,
    :BASECALCULO_ICMS, :PERCENTUAL_ICMS   , :PERCENTUAL_IPI, :VALOR_IPI,
    :PERCENTUAL_PIS, :VALOR_PIS, :PERCENTUAL_COFINS ,:VALOR_COFINS,
    :VALOR_FRETE, :VALOR_SEGURO, :NFS,
    :NFS_ITEM_CONTROLE,:NF_EXTERNO, :NF_EXTERNO_ITEM_CONTROLE, :OC,:OC_ITEM_CONTROLE,
    :T01,:T02,:T03,:T04,:T05,:T06,:T07,:T08,:T09,:T10,
    :T11,:T12,:T13,:T14,:T15,:T16,:T17,:T18,:T19,:T20,
    :ESTABELECIMENTO_CODIGO,:EMPRESA_CODIGO,:NUMERO_NOTAFISCAL,:DATA_ENTRADA,
    :SITUACAO,:CONTROLE,:VALOR_CUSTO,:PRODUTO_GRADE_CODIGO,:tributacao_PIS,
    :tributacao_cofins, :DI, :DI_DATA_REGISTRO, :DI_DATA_DESEMBARACO,
    :DI_LOCAL_DESEMBARACO, :DI_UF_DESEMBARACO, :DI_CODIGO_EXPORTADOR,
    :DI_ADICAO, :DI_SEQUENCIAL, :DI_CODIGO_FABRICANTE, :DI_DESCONTO_ADICAO,
    :di_base_calculo,:di_despesas_aduaneiras,:di_valor_ii,:Di_valor_iof,
    :VALOR_ICMS,:BASECALCULO_IPI,:BASECALCULO_PIS,:BASECALCULO_COFINS,
    :VALOR_ACRESCIMO,:VALOR_DESCONTO,:FISCAL_ISENTAS_IPI,:FISCAL_ISENTAS_ICMS,
    :FISCAL_OUTRAS_IPI,:FISCAL_OUTRAS_ICMS,:FISCAL_VALOR_ICMS,:FISCAL_VALOR_IPI,
    :FISCAL_VALOR_PIS,:FISCAL_VALOR_COFINS,:FISCAL_PERCENTUAL_ICMS,:FISCAL_PERCENTUAL_IPI,
    :FISCAL_PERCENTUAL_PIS,:FISCAL_PERCENTUAL_COFINS,:FISCAL_BASECALCULO_ICMS,
    :FISCAL_BASECALCULO_IPI,:FISCAL_BASECALCULO_PIS,:FISCAL_BASECALCULO_COFINS,
    :VALOR_CONTABIL,:valor_basecalculo_icms, :VALOR_PEDAGIO,:FISCAL_CFOP_CODIGO,
    :FISCAL_TRIBUTACAO_ORIGEM, :FISCAL_TRIBUTACAO_ICMS,:FISCAL_TRIBUTACAO_IPI,
    :FISCAL_TRIBUTACAO_PIS, :FISCAL_TRIBUTACAO_COFINS , :DESCONTO_BASECALCULO_ICMS,
    :BASECALCULO_FCI, :Codigo_Fci,

    :MODALIDADE_ICMS, :MODALIDADE_ICMS_ST, :MARGEM_ICMS_ST, :REDUCAO_ICMS_ST,
    :BASECALCULO_ICMS_ST, :ALIQUOTA_ICMS_ST, :VALOR_ICMS_ST,:FISCAL_REDUCAO_ICMS_ST,
    :FISCAL_BASECALCULO_ICMS_ST, :FISCAL_ALIQUOTA_ICMS_ST, :FISCAL_VALOR_ICMS_ST,
    :INFORMACOES_COMPLEMENTARES, :DI_NVE, :DI_TIPO_VIA_TRANSP,
    :DI_TIPO_VIA_TRANSP_DESCRICAO, :DI_VALOR_AFRMM, :DI_TIPO_INTERMEDIO,
    :DI_TIPO_INTERMEDIO_DESCRICAO, :DI_CNPJ_INTERMEDIO, :DI_UF_INTERMEDIO,
    :DI_NUMERO_DRAWBACK, :Conta_Contabil, :CCusto, :CCUSTO_DESCRICAO, :ENQUADRAMENTO_IPI,
    :QUANTIDADE_ALTERNATIVA, :UM_ALTERNATIVA, :VALOR_ALTERNATIVO


do suspend;
end
^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER procedure SPI_NFE_ITEM (
    NFE_CONTROLE integer,
    ESTABELECIMENTO_CODIGO integer,
    EMPRESA_CODIGO integer,
    NUMERO_NOTAFISCAL integer,
    DATA_ENTRADA date,
    SITUACAO integer,
    NF_NATUREZA integer,
    NFS integer,
    NFS_ITEM_CONTROLE integer,
    PDV_CFE_ID integer,
    PDV_CFE_ITEM_ID integer,
    OC integer,
    OC_ITEM_CONTROLE integer,
    NF_EXTERNO integer,
    NF_EXTERNO_ITEM_CONTROLE integer,
    CONTROLE integer,
    SEQUENCIA integer,
    OPERACAO_CODIGO varchar(3),
    CFOP_CODIGO varchar(5),
    PRODUTO_CODIGO integer,
    PRODUTO_DESCRICAO varchar(100),
    PRODUTO_UNIDADEMEDIDA varchar(3),
    NCM_CODIGO varchar(10),
    TRIBUTACAO_ORIGEM integer,
    TRIBUTACAO_IPI varchar(2),
    TRIBUTACAO_ICMS integer,
    TRIBUTACAO_PIS char(2),
    TRIBUTACAO_COFINS char(2),
    LOCALIZACAO_CODIGO integer,
    QUANTIDADE numeric(10,5),
    VALOR_UNITARIO numeric(15,6),
    VALOR_CUSTO numeric(10,5),
    OUTROS_CUSTOS numeric(15,2),
    VALOR_TOTAL numeric(10,5),
    BASECALCULO_ICMS numeric(10,5),
    PERCENTUAL_ICMS numeric(10,5),
    PERCENTUAL_IPI numeric(10,5),
    VALOR_IPI numeric(10,5),
    PERCENTUAL_PIS numeric(10,5),
    VALOR_PIS numeric(10,5),
    PERCENTUAL_COFINS numeric(10,5),
    VALOR_COFINS numeric(10,5),
    T01 numeric(10,5),
    T02 numeric(10,5),
    T03 numeric(10,5),
    T04 numeric(10,5),
    T05 numeric(10,5),
    T06 numeric(10,5),
    T07 numeric(10,5),
    T08 numeric(10,5),
    T09 numeric(10,5),
    T10 numeric(10,5),
    T11 numeric(10,5),
    T12 numeric(10,5),
    T13 numeric(10,5),
    T14 numeric(10,5),
    T15 numeric(10,5),
    T16 numeric(10,5),
    T17 numeric(10,5),
    T18 numeric(10,5),
    T19 numeric(10,5),
    T20 numeric(10,5),
    DI varchar(12),
    DI_DATA_REGISTRO date,
    DI_DATA_DESEMBARACO date,
    DI_LOCAL_DESEMBARACO varchar(60),
    DI_UF_DESEMBARACO char(2),
    DI_CODIGO_EXPORTADOR varchar(60),
    DI_ADICAO integer,
    DI_SEQUENCIAL integer,
    DI_CODIGO_FABRICANTE varchar(60),
    DI_DESCONTO_ADICAO numeric(10,2),
    DI_BASE_CALCULO numeric(10,2),
    DI_DESPESAS_ADUANEIRAS numeric(10,2),
    DI_VALOR_II numeric(10,2),
    DI_VALOR_IOF numeric(10,2),
    VALOR_ICMS numeric(10,2),
    BASECALCULO_IPI numeric(10,2),
    BASECALCULO_PIS numeric(10,2),
    BASECALCULO_COFINS numeric(10,2),
    VALOR_ACRESCIMO numeric(10,2),
    VALOR_FRETE numeric(10,2),
    VALOR_SEGURO numeric(10,2),
    VALOR_DESCONTO numeric(10,2),
    FISCAL_ISENTAS_IPI numeric(10,2),
    FISCAL_ISENTAS_ICMS numeric(10,2),
    FISCAL_OUTRAS_IPI numeric(10,2),
    FISCAL_OUTRAS_ICMS numeric(10,2),
    FISCAL_VALOR_ICMS numeric(10,2),
    FISCAL_VALOR_IPI numeric(10,2),
    FISCAL_VALOR_PIS numeric(10,2),
    FISCAL_VALOR_COFINS numeric(10,2),
    FISCAL_PERCENTUAL_ICMS numeric(10,2),
    FISCAL_PERCENTUAL_IPI numeric(10,2),
    FISCAL_PERCENTUAL_PIS numeric(10,2),
    FISCAL_PERCENTUAL_COFINS numeric(10,2),
    FISCAL_BASECALCULO_ICMS numeric(10,5),
    FISCAL_BASECALCULO_IPI numeric(10,2),
    FISCAL_BASECALCULO_PIS numeric(10,2),
    FISCAL_BASECALCULO_COFINS numeric(10,2),
    VALOR_PEDAGIO numeric(10,2),
    VALOR_CONTABIL numeric(10,2),
    VALOR_BASECALCULO_ICMS numeric(10,2),
    BASECALCULO_FCI numeric(15,4),
    CODIGO_FCI varchar(50),
    FISCAL_CFOP_CODIGO varchar(5),
    FISCAL_TRIBUTACAO_ORIGEM integer,
    FISCAL_TRIBUTACAO_ICMS integer,
    FISCAL_TRIBUTACAO_IPI char(2),
    FISCAL_TRIBUTACAO_PIS char(2),
    FISCAL_TRIBUTACAO_COFINS char(2),
    MODALIDADE_ICMS char(1),
    MODALIDADE_ICMS_ST char(1),
    MARGEM_ICMS_ST numeric(15,4),
    REDUCAO_ICMS_ST numeric(15,4),
    BASECALCULO_ICMS_ST numeric(15,4),
    ALIQUOTA_ICMS_ST numeric(15,4),
    VALOR_ICMS_ST numeric(15,4),
    FISCAL_REDUCAO_ICMS_ST numeric(10,2),
    FISCAL_BASECALCULO_ICMS_ST numeric(10,2),
    FISCAL_ALIQUOTA_ICMS_ST numeric(10,2),
    FISCAL_VALOR_ICMS_ST numeric(10,2),
    INFORMACOES_COMPLEMENTARES varchar(500),
    DI_NVE varchar(60),
    DI_TIPO_VIA_TRANSP integer,
    DI_VALOR_AFRMM numeric(15,2),
    DI_TIPO_INTERMEDIO varchar(1),
    DI_CNPJ_INTERMEDIO varchar(14),
    DI_UF_INTERMEDIO varchar(2),
    DI_NUMERO_DRAWBACK varchar(11),
    CCUSTO varchar(8),
    CONTA_CONTABIL varchar(11),
    ENQUADRAMENTO_IPI varchar(3),
    QUANTIDADE_ALTERNATIVA numeric(18,4),
    UM_ALTERNATIVA varchar(3),
    VALOR_ALTERNATIVO numeric(18,10),
    REDUCAO_BASE_PISCOF char(1),
    OPERACAO_TIPO_DESCONTO varchar(1),
    GC_WEB smallint)
as
BEGIN
INSERT INTO TBNFE_ITEM  (
NFE_CONTROLE,ESTABELECIMENTO_CODIGO,EMPRESA_CODIGO,NUMERO_NOTAFISCAL,DATA_ENTRADA,NF_SITUACAO, NF_NATUREZA,
NFS,NFS_ITEM_CONTROLE,PDV_CFE_ID, PDV_CFE_ITEM_ID, OC,OC_ITEM_CONTROLE,NF_EXTERNO,NF_EXTERNO_ITEM_CONTROLE             ,
CONTROLE,SEQUENCIA,OPERACAO_CODIGO,CFOP_CODIGO,PRODUTO_CODIGO,PRODUTO_DESCRICAO           ,
PRODUTO_UNIDADEMEDIDA2,NCM_CODIGO,TRIBUTACAO_ORIGEM,TRIBUTACAO_IPI,TRIBUTACAO_ICMS         ,
TRIBUTACAO_PIS,TRIBUTACAO_COFINS                                                          ,
LOCALIZACAO_CODIGO,QUANTIDADE,VALOR_UNITARIO,VALOR_CUSTO,OUTROS_CUSTOS,VALOR_TOTAL,BASECALCULO_ICMS,PERCENTUAL_ICMS ,
PERCENTUAL_IPI,VALOR_IPI,PERCENTUAL_PIS,VALOR_PIS,PERCENTUAL_COFINS,VALOR_COFINS          ,
T01,T02,T03,T04,T05,T06,T07,T08,T09,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,
DI,DI_DATA_REGISTRO,DI_DATA_DESEMBARACO,DI_LOCAL_DESEMBARACO,DI_UF_DESEMBARACO,
DI_CODIGO_EXPORTADOR,DI_ADICAO,DI_SEQUENCIAL,DI_CODIGO_FABRICANTE,DI_DESCONTO_ADICAO,
DI_BASE_CALCULO,DI_DESPESAS_ADUANEIRAS,DI_VALOR_II,DI_VALOR_IOF,
VALOR_ICMS,BASECALCULO_IPI,BASECALCULO_PIS,BASECALCULO_COFINS,
VALOR_ACRESCIMO,VALOR_FRETE,VALOR_SEGURO,VALOR_DESCONTO,FISCAL_ISENTAS_IPI,
FISCAL_ISENTAS_ICMS,FISCAL_OUTRAS_IPI,FISCAL_OUTRAS_ICMS,FISCAL_VALOR_ICMS,FISCAL_VALOR_IPI,
FISCAL_VALOR_PIS,FISCAL_VALOR_COFINS,FISCAL_PERCENTUAL_ICMS,FISCAL_PERCENTUAL_IPI,
FISCAL_PERCENTUAL_PIS,FISCAL_PERCENTUAL_COFINS,FISCAL_BASECALCULO_ICMS,
FISCAL_BASECALCULO_IPI,FISCAL_BASECALCULO_PIS,FISCAL_BASECALCULO_COFINS,
VALOR_PEDAGIO, VALOR_CONTABIL, VALOR_BASECALCULO_ICMS, BASECALCULO_FCI, CODIGO_FCI,
FISCAL_CFOP_CODIGO,FISCAL_TRIBUTACAO_ORIGEM,
FISCAL_TRIBUTACAO_ICMS,FISCAL_TRIBUTACAO_IPI,FISCAL_TRIBUTACAO_PIS,FISCAL_TRIBUTACAO_COFINS,
MODALIDADE_ICMS, MODALIDADE_ICMS_ST, MARGEM_ICMS_ST,
REDUCAO_ICMS_ST, BASECALCULO_ICMS_ST, ALIQUOTA_ICMS_ST, VALOR_ICMS_ST,
FISCAL_REDUCAO_ICMS_ST, FISCAL_BASECALCULO_ICMS_ST, FISCAL_ALIQUOTA_ICMS_ST, FISCAL_VALOR_ICMS_ST,
INFORMACOES_COMPLEMENTARES, DI_NVE, DI_TIPO_VIA_TRANSP, DI_VALOR_AFRMM,
DI_TIPO_INTERMEDIO, DI_CNPJ_INTERMEDIO, DI_UF_INTERMEDIO, DI_NUMERO_DRAWBACK,
CCUSTO, CONTA_CONTABIL, ENQUADRAMENTO_IPI,
QUANTIDADE_ALTERNATIVA, UM_ALTERNATIVA2, VALOR_ALTERNATIVO,
REDUCAO_BASE_PISCOF, TIPO_DESCONTO, GC_WEB)
VALUES  (
:NFE_CONTROLE,:ESTABELECIMENTO_CODIGO,:EMPRESA_CODIGO,:NUMERO_NOTAFISCAL,
:DATA_ENTRADA,:SITUACAO,:NF_NATUREZA,:NFS,:NFS_ITEM_CONTROLE,:PDV_CFE_ID, :PDV_CFE_ITEM_ID, :OC,:OC_ITEM_CONTROLE,
:NF_EXTERNO,:NF_EXTERNO_ITEM_CONTROLE,:CONTROLE,:SEQUENCIA,:OPERACAO_CODIGO,:CFOP_CODIGO,
:PRODUTO_CODIGO,:PRODUTO_DESCRICAO,:PRODUTO_UNIDADEMEDIDA,:NCM_CODIGO,:TRIBUTACAO_ORIGEM,
:TRIBUTACAO_IPI,:TRIBUTACAO_ICMS,:TRIBUTACAO_PIS,:TRIBUTACAO_COFINS,:LOCALIZACAO_CODIGO,
:QUANTIDADE,:VALOR_UNITARIO,:VALOR_CUSTO,:OUTROS_CUSTOS, :VALOR_TOTAL,:BASECALCULO_ICMS,:PERCENTUAL_ICMS,
:PERCENTUAL_IPI,:VALOR_IPI,:PERCENTUAL_PIS,:VALOR_PIS,:PERCENTUAL_COFINS,
:VALOR_COFINS,:T01,:T02,:T03,:T04,:T05,:T06,:T07,:T08,:T09,:T10,
:T11,:T12,:T13,:T14,:T15,:T16,:T17,:T18,:T19,:T20,
:DI,:DI_DATA_REGISTRO,:DI_DATA_DESEMBARACO,:DI_LOCAL_DESEMBARACO,:DI_UF_DESEMBARACO,
:DI_CODIGO_EXPORTADOR,:DI_ADICAO,:DI_SEQUENCIAL,:DI_CODIGO_FABRICANTE,:DI_DESCONTO_ADICAO,
:DI_BASE_CALCULO,:DI_DESPESAS_ADUANEIRAS,:DI_VALOR_II,:DI_VALOR_IOF,
:VALOR_ICMS,:BASECALCULO_IPI,:BASECALCULO_PIS,:BASECALCULO_COFINS,
:VALOR_ACRESCIMO,:VALOR_FRETE,:VALOR_SEGURO,:VALOR_DESCONTO,:FISCAL_ISENTAS_IPI,:FISCAL_ISENTAS_ICMS,
:FISCAL_OUTRAS_IPI,:FISCAL_OUTRAS_ICMS,:FISCAL_VALOR_ICMS,:FISCAL_VALOR_IPI,
:FISCAL_VALOR_PIS,:FISCAL_VALOR_COFINS,:FISCAL_PERCENTUAL_ICMS,:FISCAL_PERCENTUAL_IPI,
:FISCAL_PERCENTUAL_PIS,:FISCAL_PERCENTUAL_COFINS,:FISCAL_BASECALCULO_ICMS,
:FISCAL_BASECALCULO_IPI,:FISCAL_BASECALCULO_PIS,:FISCAL_BASECALCULO_COFINS,
:VALOR_PEDAGIO, :VALOR_CONTABIL, :VALOR_BASECALCULO_ICMS, :BASECALCULO_FCI, :CODIGO_FCI,
:FISCAL_CFOP_CODIGO,:FISCAL_TRIBUTACAO_ORIGEM,
:FISCAL_TRIBUTACAO_ICMS,:FISCAL_TRIBUTACAO_IPI,:FISCAL_TRIBUTACAO_PIS,
:FISCAL_TRIBUTACAO_COFINS,:MODALIDADE_ICMS, :MODALIDADE_ICMS_ST, :MARGEM_ICMS_ST,
:REDUCAO_ICMS_ST, :BASECALCULO_ICMS_ST, :ALIQUOTA_ICMS_ST, :VALOR_ICMS_ST,
:FISCAL_REDUCAO_ICMS_ST, :FISCAL_BASECALCULO_ICMS_ST, :FISCAL_ALIQUOTA_ICMS_ST, :FISCAL_VALOR_ICMS_ST,
:INFORMACOES_COMPLEMENTARES, :DI_NVE, :DI_TIPO_VIA_TRANSP, :DI_VALOR_AFRMM,
:DI_TIPO_INTERMEDIO, :DI_CNPJ_INTERMEDIO, :DI_UF_INTERMEDIO, :DI_NUMERO_DRAWBACK,
:CCUSTO, :CONTA_CONTABIL, :ENQUADRAMENTO_IPI,
:QUANTIDADE_ALTERNATIVA, :UM_ALTERNATIVA, :VALOR_ALTERNATIVO,
:REDUCAO_BASE_PISCOF, :OPERACAO_TIPO_DESCONTO, :GC_WEB);

INSERT INTO TBNFE_ITEM_SALDO (
NFE_ITEM_CONTROLE,NFE_CONTROLE,QUANTIDADE,
T01,T02,T03,T04,T05,T06,T07,T08,T09,T10,  
T11,T12,T13,T14,T15,T16,T17,T18,T19,T20)  
VALUES (                                  
:CONTROLE,:NFE_CONTROLE,:QUANTIDADE,
:T01,:T02,:T03,:T04,:T05,:T06,:T07,:T08,:T09,:T10,
:T11,:T12,:T13,:T14,:T15,:T16,:T17,:T18,:T19,:T20);
END
^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER procedure SPI_NFE_ITEM10 (
    NFE_CONTROLE integer,
    ESTABELECIMENTO_CODIGO integer,
    EMPRESA_CODIGO integer,
    NUMERO_NOTAFISCAL integer,
    DATA_ENTRADA date,
    SITUACAO integer,
    NFS integer,
    NFS_ITEM_CONTROLE integer,
    OC integer,
    OC_ITEM_CONTROLE integer,
    NF_EXTERNO integer,
    NF_EXTERNO_ITEM_CONTROLE integer,
    CONTROLE integer,
    SEQUENCIA integer,
    OPERACAO_CODIGO varchar(3),
    CFOP_CODIGO varchar(5),
    PRODUTO_CODIGO integer,
    PRODUTO_DESCRICAO varchar(100),
    PRODUTO_UNIDADEMEDIDA varchar(3),
    NCM_CODIGO varchar(10),
    TRIBUTACAO_ORIGEM integer,
    TRIBUTACAO_IPI varchar(2),
    TRIBUTACAO_ICMS integer,
    TRIBUTACAO_PIS char(2),
    TRIBUTACAO_COFINS char(2),
    LOCALIZACAO_CODIGO integer,
    QUANTIDADE numeric(10,5),
    VALOR_UNITARIO numeric(10,5),
    VALOR_CUSTO numeric(10,5),
    VALOR_TOTAL numeric(10,5),
    BASECALCULO_ICMS numeric(10,5),
    PERCENTUAL_ICMS numeric(10,5),
    PERCENTUAL_IPI numeric(10,5),
    VALOR_IPI numeric(10,5),
    PERCENTUAL_PIS numeric(10,5),
    VALOR_PIS numeric(10,5),
    PERCENTUAL_COFINS numeric(10,5),
    VALOR_COFINS numeric(10,5),
    T01 numeric(10,5),
    T02 numeric(10,5),
    T03 numeric(10,5),
    T04 numeric(10,5),
    T05 numeric(10,5),
    T06 numeric(10,5),
    T07 numeric(10,5),
    T08 numeric(10,5),
    T09 numeric(10,5),
    T10 numeric(10,5),
    T11 numeric(10,5),
    T12 numeric(10,5),
    T13 numeric(10,5),
    T14 numeric(10,5),
    T15 numeric(10,5),
    T16 numeric(10,5),
    T17 numeric(10,5),
    T18 numeric(10,5),
    T19 numeric(10,5),
    T20 numeric(10,5),
    DI varchar(12),
    DI_DATA_REGISTRO date,
    DI_DATA_DESEMBARACO date,
    DI_LOCAL_DESEMBARACO varchar(60),
    DI_UF_DESEMBARACO char(2),
    DI_CODIGO_EXPORTADOR varchar(60),
    DI_ADICAO integer,
    DI_SEQUENCIAL integer,
    DI_CODIGO_FABRICANTE varchar(60),
    DI_DESCONTO_ADICAO numeric(10,2),
    DI_BASE_CALCULO numeric(10,2),
    DI_DESPESAS_ADUANEIRAS numeric(10,2),
    DI_VALOR_II numeric(10,2),
    DI_VALOR_IOF numeric(10,2),
    VALOR_ICMS numeric(10,2),
    BASECALCULO_IPI numeric(10,2),
    BASECALCULO_PIS numeric(10,2),
    BASECALCULO_COFINS numeric(10,2),
    VALOR_ACRESCIMO numeric(10,2),
    VALOR_FRETE numeric(10,2),
    VALOR_SEGURO numeric(10,2),
    VALOR_DESCONTO numeric(10,2),
    FISCAL_ISENTAS_IPI numeric(10,2),
    FISCAL_ISENTAS_ICMS numeric(10,2),
    FISCAL_OUTRAS_IPI numeric(10,2),
    FISCAL_OUTRAS_ICMS numeric(10,2),
    FISCAL_VALOR_ICMS numeric(10,2),
    FISCAL_VALOR_IPI numeric(10,2),
    FISCAL_VALOR_PIS numeric(10,2),
    FISCAL_VALOR_COFINS numeric(10,2),
    FISCAL_PERCENTUAL_ICMS numeric(10,2),
    FISCAL_PERCENTUAL_IPI numeric(10,2),
    FISCAL_PERCENTUAL_PIS numeric(10,2),
    FISCAL_PERCENTUAL_COFINS numeric(10,2),
    FISCAL_BASECALCULO_ICMS numeric(10,5),
    FISCAL_BASECALCULO_IPI numeric(10,2),
    FISCAL_BASECALCULO_PIS numeric(10,2),
    FISCAL_BASECALCULO_COFINS numeric(10,2),
    VALOR_PEDAGIO numeric(10,2),
    VALOR_CONTABIL numeric(10,2),
    VALOR_BASECALCULO_ICMS numeric(10,2),
    BASECALCULO_FCI numeric(15,4),
    CODIGO_FCI varchar(50),
    FISCAL_CFOP_CODIGO varchar(5),
    FISCAL_TRIBUTACAO_ORIGEM integer,
    FISCAL_TRIBUTACAO_ICMS integer,
    FISCAL_TRIBUTACAO_IPI char(2),
    FISCAL_TRIBUTACAO_PIS char(2),
    FISCAL_TRIBUTACAO_COFINS char(2),
    MODALIDADE_ICMS char(1),
    MODALIDADE_ICMS_ST char(1),
    MARGEM_ICMS_ST numeric(15,4),
    REDUCAO_ICMS_ST numeric(15,4),
    BASECALCULO_ICMS_ST numeric(15,4),
    ALIQUOTA_ICMS_ST numeric(15,4),
    VALOR_ICMS_ST numeric(15,4),
    FISCAL_REDUCAO_ICMS_ST numeric(10,2),
    FISCAL_BASECALCULO_ICMS_ST numeric(10,2),
    FISCAL_ALIQUOTA_ICMS_ST numeric(10,2),
    FISCAL_VALOR_ICMS_ST numeric(10,2),
    INFORMACOES_COMPLEMENTARES varchar(200),
    DI_NVE varchar(60),
    DI_TIPO_VIA_TRANSP integer,
    DI_VALOR_AFRMM numeric(15,2),
    DI_TIPO_INTERMEDIO varchar(1),
    DI_CNPJ_INTERMEDIO varchar(14),
    DI_UF_INTERMEDIO varchar(2),
    DI_NUMERO_DRAWBACK varchar(11),
    CCUSTO varchar(8),
    CONTA_CONTABIL varchar(11),
    ENQUADRAMENTO_IPI varchar(3),
    QUANTIDADE_ALTERNATIVA numeric(18,4),
    UM_ALTERNATIVA varchar(3),
    VALOR_ALTERNATIVO numeric(18,10),
    REDUCAO_BASE_PISCOF char(1))
as
BEGIN
INSERT INTO TbNfe_Item  (
Nfe_Controle,Estabelecimento_Codigo,Empresa_Codigo,Numero_NotaFiscal,Data_Entrada,Situacao,
Nfs,Nfs_Item_Controle,OC,OC_Item_Controle,Nf_Externo,Nf_Externo_Item_Controle             ,
Controle,Sequencia,Operacao_Codigo,Cfop_Codigo,Produto_Codigo,Produto_Descricao           ,
Produto_UnidadeMedida2,Ncm_Codigo,Tributacao_Origem,Tributacao_Ipi,Tributacao_Icms         ,
Tributacao_Pis,Tributacao_Cofins                                                          ,
Localizacao_Codigo,Quantidade,Valor_Unitario,Valor_Custo,Valor_Total,BaseCalculo_Icms,Percentual_Icms ,
Percentual_Ipi,Valor_Ipi,Percentual_Pis,Valor_Pis,Percentual_Cofins,Valor_Cofins          ,
T01,T02,T03,T04,T05,T06,T07,T08,T09,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,
DI,DI_DATA_REGISTRO,DI_DATA_DESEMBARACO,DI_LOCAL_DESEMBARACO,DI_UF_DESEMBARACO,
DI_CODIGO_EXPORTADOR,DI_ADICAO,DI_SEQUENCIAL,DI_CODIGO_FABRICANTE,DI_DESCONTO_ADICAO,
di_base_calculo,di_despesas_aduaneiras,di_valor_ii,di_valor_iof,
VALOR_ICMS,BASECALCULO_IPI,BASECALCULO_PIS,BASECALCULO_COFINS,
VALOR_ACRESCIMO,VALOR_FRETE,VALOR_SEGURO,VALOR_DESCONTO,FISCAL_ISENTAS_IPI,
FISCAL_ISENTAS_ICMS,FISCAL_OUTRAS_IPI,FISCAL_OUTRAS_ICMS,FISCAL_VALOR_ICMS,FISCAL_VALOR_IPI,
FISCAL_VALOR_PIS,FISCAL_VALOR_COFINS,FISCAL_PERCENTUAL_ICMS,FISCAL_PERCENTUAL_IPI,
FISCAL_PERCENTUAL_PIS,FISCAL_PERCENTUAL_COFINS,FISCAL_BASECALCULO_ICMS,
FISCAL_BASECALCULO_IPI,FISCAL_BASECALCULO_PIS,FISCAL_BASECALCULO_COFINS,
VALOR_PEDAGIO, VALOR_CONTABIL, valor_basecalculo_icms, basecalculo_FCI, CODIGO_FCI,
FISCAL_CFOP_CODIGO,FISCAL_TRIBUTACAO_ORIGEM,
FISCAL_TRIBUTACAO_ICMS,FISCAL_TRIBUTACAO_IPI,FISCAL_TRIBUTACAO_PIS,FISCAL_TRIBUTACAO_COFINS,
MODALIDADE_ICMS, MODALIDADE_ICMS_ST, MARGEM_ICMS_ST,
REDUCAO_ICMS_ST, BASECALCULO_ICMS_ST, ALIQUOTA_ICMS_ST, VALOR_ICMS_ST,
FISCAL_REDUCAO_ICMS_ST, FISCAL_BASECALCULO_ICMS_ST, FISCAL_ALIQUOTA_ICMS_ST, FISCAL_VALOR_ICMS_ST,
INFORMACOES_COMPLEMENTARES, DI_NVE, DI_TIPO_VIA_TRANSP, DI_VALOR_AFRMM,
DI_TIPO_INTERMEDIO, DI_CNPJ_INTERMEDIO, DI_UF_INTERMEDIO, DI_NUMERO_DRAWBACK,
CCUSTO, CONTA_CONTABIL, Enquadramento_Ipi,
QUANTIDADE_ALTERNATIVA, UM_ALTERNATIVA2, VALOR_ALTERNATIVO,
REDUCAO_BASE_PISCOF)
VALUES  (
:Nfe_Controle,:Estabelecimento_Codigo,:Empresa_Codigo,:Numero_NotaFiscal,
:Data_Entrada,:Situacao,:Nfs,:Nfs_Item_Controle,:OC,:OC_Item_Controle,
:Nf_Externo,:Nf_Externo_Item_Controle,:Controle,:Sequencia,:Operacao_Codigo,:Cfop_Codigo,
:Produto_Codigo,:Produto_Descricao,:Produto_UnidadeMedida,:Ncm_Codigo,:Tributacao_Origem,
:Tributacao_Ipi,:Tributacao_Icms,:Tributacao_Pis,:Tributacao_Cofins,:Localizacao_Codigo,
:Quantidade,:Valor_Unitario,:Valor_Custo,:Valor_Total,:BaseCalculo_Icms,:Percentual_Icms,
:Percentual_Ipi,:Valor_Ipi,:Percentual_Pis,:Valor_Pis,:Percentual_Cofins,
:Valor_Cofins,:T01,:T02,:T03,:T04,:T05,:T06,:T07,:T08,:T09,:T10,
:T11,:T12,:T13,:T14,:T15,:T16,:T17,:T18,:T19,:T20,
:DI,:DI_DATA_REGISTRO,:DI_DATA_DESEMBARACO,:DI_LOCAL_DESEMBARACO,:DI_UF_DESEMBARACO,
:DI_CODIGO_EXPORTADOR,:DI_ADICAO,:DI_SEQUENCIAL,:DI_CODIGO_FABRICANTE,:DI_DESCONTO_ADICAO,
:di_base_calculo,:di_despesas_aduaneiras,:di_valor_ii,:di_valor_iof,
:VALOR_ICMS,:BASECALCULO_IPI,:BASECALCULO_PIS,:BASECALCULO_COFINS,
:VALOR_ACRESCIMO,:VALOR_FRETE,:VALOR_SEGURO,:VALOR_DESCONTO,:FISCAL_ISENTAS_IPI,:FISCAL_ISENTAS_ICMS,
:FISCAL_OUTRAS_IPI,:FISCAL_OUTRAS_ICMS,:FISCAL_VALOR_ICMS,:FISCAL_VALOR_IPI,
:FISCAL_VALOR_PIS,:FISCAL_VALOR_COFINS,:FISCAL_PERCENTUAL_ICMS,:FISCAL_PERCENTUAL_IPI,
:FISCAL_PERCENTUAL_PIS,:FISCAL_PERCENTUAL_COFINS,:FISCAL_BASECALCULO_ICMS,
:FISCAL_BASECALCULO_IPI,:FISCAL_BASECALCULO_PIS,:FISCAL_BASECALCULO_COFINS,
:VALOR_PEDAGIO, :VALOR_CONTABIL, :valor_basecalculo_icms, :basecalculo_FCI, :CODIGO_FCI,
:FISCAL_CFOP_CODIGO,:FISCAL_TRIBUTACAO_ORIGEM,
:FISCAL_TRIBUTACAO_ICMS,:FISCAL_TRIBUTACAO_IPI,:FISCAL_TRIBUTACAO_PIS,
:FISCAL_TRIBUTACAO_COFINS,:MODALIDADE_ICMS, :MODALIDADE_ICMS_ST, :MARGEM_ICMS_ST,
:REDUCAO_ICMS_ST, :BASECALCULO_ICMS_ST, :ALIQUOTA_ICMS_ST, :VALOR_ICMS_ST,
:FISCAL_REDUCAO_ICMS_ST, :FISCAL_BASECALCULO_ICMS_ST, :FISCAL_ALIQUOTA_ICMS_ST, :FISCAL_VALOR_ICMS_ST,
:INFORMACOES_COMPLEMENTARES, :DI_NVE, :DI_TIPO_VIA_TRANSP, :DI_VALOR_AFRMM,
:DI_TIPO_INTERMEDIO, :DI_CNPJ_INTERMEDIO, :DI_UF_INTERMEDIO, :DI_NUMERO_DRAWBACK,
:CCUSTO, :CONTA_CONTABIL, :Enquadramento_Ipi,
:QUANTIDADE_ALTERNATIVA, :UM_ALTERNATIVA, :VALOR_ALTERNATIVO,
:REDUCAO_BASE_PISCOF);

INSERT INTO TbNfe_Item_Saldo (
Nfe_Item_Controle,Nfe_Controle,Quantidade,
T01,T02,T03,T04,T05,T06,T07,T08,T09,T10,  
T11,T12,T13,T14,T15,T16,T17,T18,T19,T20)  
VALUES (                                  
:Controle,:Nfe_Controle,:Quantidade,
:T01,:T02,:T03,:T04,:T05,:T06,:T07,:T08,:T09,:T10,
:T11,:T12,:T13,:T14,:T15,:T16,:T17,:T18,:T19,:T20);
END
^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER procedure SPI_NFE_ITEM11 (
    NFE_CONTROLE integer,
    ESTABELECIMENTO_CODIGO integer,
    EMPRESA_CODIGO integer,
    NUMERO_NOTAFISCAL integer,
    DATA_ENTRADA date,
    SITUACAO integer,
    NFS integer,
    NFS_ITEM_CONTROLE integer,
    OC integer,
    OC_ITEM_CONTROLE integer,
    NF_EXTERNO integer,
    NF_EXTERNO_ITEM_CONTROLE integer,
    CONTROLE integer,
    SEQUENCIA integer,
    OPERACAO_CODIGO varchar(3),
    CFOP_CODIGO varchar(5),
    PRODUTO_CODIGO integer,
    PRODUTO_DESCRICAO varchar(100),
    PRODUTO_UNIDADEMEDIDA varchar(3),
    NCM_CODIGO varchar(10),
    TRIBUTACAO_ORIGEM integer,
    TRIBUTACAO_IPI varchar(2),
    TRIBUTACAO_ICMS integer,
    TRIBUTACAO_PIS char(2),
    TRIBUTACAO_COFINS char(2),
    LOCALIZACAO_CODIGO integer,
    QUANTIDADE numeric(10,5),
    VALOR_UNITARIO numeric(10,5),
    VALOR_CUSTO numeric(10,5),
    VALOR_TOTAL numeric(10,5),
    BASECALCULO_ICMS numeric(10,5),
    PERCENTUAL_ICMS numeric(10,5),
    PERCENTUAL_IPI numeric(10,5),
    VALOR_IPI numeric(10,5),
    PERCENTUAL_PIS numeric(10,5),
    VALOR_PIS numeric(10,5),
    PERCENTUAL_COFINS numeric(10,5),
    VALOR_COFINS numeric(10,5),
    T01 numeric(10,5),
    T02 numeric(10,5),
    T03 numeric(10,5),
    T04 numeric(10,5),
    T05 numeric(10,5),
    T06 numeric(10,5),
    T07 numeric(10,5),
    T08 numeric(10,5),
    T09 numeric(10,5),
    T10 numeric(10,5),
    T11 numeric(10,5),
    T12 numeric(10,5),
    T13 numeric(10,5),
    T14 numeric(10,5),
    T15 numeric(10,5),
    T16 numeric(10,5),
    T17 numeric(10,5),
    T18 numeric(10,5),
    T19 numeric(10,5),
    T20 numeric(10,5),
    DI varchar(12),
    DI_DATA_REGISTRO date,
    DI_DATA_DESEMBARACO date,
    DI_LOCAL_DESEMBARACO varchar(60),
    DI_UF_DESEMBARACO char(2),
    DI_CODIGO_EXPORTADOR varchar(60),
    DI_ADICAO integer,
    DI_SEQUENCIAL integer,
    DI_CODIGO_FABRICANTE varchar(60),
    DI_DESCONTO_ADICAO numeric(10,2),
    DI_BASE_CALCULO numeric(10,2),
    DI_DESPESAS_ADUANEIRAS numeric(10,2),
    DI_VALOR_II numeric(10,2),
    DI_VALOR_IOF numeric(10,2),
    VALOR_ICMS numeric(10,2),
    BASECALCULO_IPI numeric(10,2),
    BASECALCULO_PIS numeric(10,2),
    BASECALCULO_COFINS numeric(10,2),
    VALOR_ACRESCIMO numeric(10,2),
    VALOR_FRETE numeric(10,2),
    VALOR_SEGURO numeric(10,2),
    VALOR_DESCONTO numeric(10,2),
    FISCAL_ISENTAS_IPI numeric(10,2),
    FISCAL_ISENTAS_ICMS numeric(10,2),
    FISCAL_OUTRAS_IPI numeric(10,2),
    FISCAL_OUTRAS_ICMS numeric(10,2),
    FISCAL_VALOR_ICMS numeric(10,2),
    FISCAL_VALOR_IPI numeric(10,2),
    FISCAL_VALOR_PIS numeric(10,2),
    FISCAL_VALOR_COFINS numeric(10,2),
    FISCAL_PERCENTUAL_ICMS numeric(10,2),
    FISCAL_PERCENTUAL_IPI numeric(10,2),
    FISCAL_PERCENTUAL_PIS numeric(10,2),
    FISCAL_PERCENTUAL_COFINS numeric(10,2),
    FISCAL_BASECALCULO_ICMS numeric(10,5),
    FISCAL_BASECALCULO_IPI numeric(10,2),
    FISCAL_BASECALCULO_PIS numeric(10,2),
    FISCAL_BASECALCULO_COFINS numeric(10,2),
    VALOR_PEDAGIO numeric(10,2),
    VALOR_CONTABIL numeric(10,2),
    VALOR_BASECALCULO_ICMS numeric(10,2),
    BASECALCULO_FCI numeric(15,4),
    CODIGO_FCI varchar(50),
    FISCAL_CFOP_CODIGO varchar(5),
    FISCAL_TRIBUTACAO_ORIGEM integer,
    FISCAL_TRIBUTACAO_ICMS integer,
    FISCAL_TRIBUTACAO_IPI char(2),
    FISCAL_TRIBUTACAO_PIS char(2),
    FISCAL_TRIBUTACAO_COFINS char(2),
    MODALIDADE_ICMS char(1),
    MODALIDADE_ICMS_ST char(1),
    MARGEM_ICMS_ST numeric(15,4),
    REDUCAO_ICMS_ST numeric(15,4),
    BASECALCULO_ICMS_ST numeric(15,4),
    ALIQUOTA_ICMS_ST numeric(15,4),
    VALOR_ICMS_ST numeric(15,4),
    FISCAL_REDUCAO_ICMS_ST numeric(10,2),
    FISCAL_BASECALCULO_ICMS_ST numeric(10,2),
    FISCAL_ALIQUOTA_ICMS_ST numeric(10,2),
    FISCAL_VALOR_ICMS_ST numeric(10,2),
    INFORMACOES_COMPLEMENTARES varchar(500),
    DI_NVE varchar(60),
    DI_TIPO_VIA_TRANSP integer,
    DI_VALOR_AFRMM numeric(15,2),
    DI_TIPO_INTERMEDIO varchar(1),
    DI_CNPJ_INTERMEDIO varchar(14),
    DI_UF_INTERMEDIO varchar(2),
    DI_NUMERO_DRAWBACK varchar(11),
    CCUSTO varchar(8),
    CONTA_CONTABIL varchar(11),
    ENQUADRAMENTO_IPI varchar(3),
    QUANTIDADE_ALTERNATIVA numeric(18,4),
    UM_ALTERNATIVA varchar(3),
    VALOR_ALTERNATIVO numeric(18,10),
    REDUCAO_BASE_PISCOF char(1))
as
BEGIN
INSERT INTO TbNfe_Item  (
Nfe_Controle,Estabelecimento_Codigo,Empresa_Codigo,Numero_NotaFiscal,Data_Entrada,Situacao,
Nfs,Nfs_Item_Controle,OC,OC_Item_Controle,Nf_Externo,Nf_Externo_Item_Controle             ,
Controle,Sequencia,Operacao_Codigo,Cfop_Codigo,Produto_Codigo,Produto_Descricao           ,
Produto_UnidadeMedida2,Ncm_Codigo,Tributacao_Origem,Tributacao_Ipi,Tributacao_Icms         ,
Tributacao_Pis,Tributacao_Cofins                                                          ,
Localizacao_Codigo,Quantidade,Valor_Unitario,Valor_Custo,Valor_Total,BaseCalculo_Icms,Percentual_Icms ,
Percentual_Ipi,Valor_Ipi,Percentual_Pis,Valor_Pis,Percentual_Cofins,Valor_Cofins          ,
T01,T02,T03,T04,T05,T06,T07,T08,T09,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,
DI,DI_DATA_REGISTRO,DI_DATA_DESEMBARACO,DI_LOCAL_DESEMBARACO,DI_UF_DESEMBARACO,
DI_CODIGO_EXPORTADOR,DI_ADICAO,DI_SEQUENCIAL,DI_CODIGO_FABRICANTE,DI_DESCONTO_ADICAO,
di_base_calculo,di_despesas_aduaneiras,di_valor_ii,di_valor_iof,
VALOR_ICMS,BASECALCULO_IPI,BASECALCULO_PIS,BASECALCULO_COFINS,
VALOR_ACRESCIMO,VALOR_FRETE,VALOR_SEGURO,VALOR_DESCONTO,FISCAL_ISENTAS_IPI,
FISCAL_ISENTAS_ICMS,FISCAL_OUTRAS_IPI,FISCAL_OUTRAS_ICMS,FISCAL_VALOR_ICMS,FISCAL_VALOR_IPI,
FISCAL_VALOR_PIS,FISCAL_VALOR_COFINS,FISCAL_PERCENTUAL_ICMS,FISCAL_PERCENTUAL_IPI,
FISCAL_PERCENTUAL_PIS,FISCAL_PERCENTUAL_COFINS,FISCAL_BASECALCULO_ICMS,
FISCAL_BASECALCULO_IPI,FISCAL_BASECALCULO_PIS,FISCAL_BASECALCULO_COFINS,
VALOR_PEDAGIO, VALOR_CONTABIL, valor_basecalculo_icms, basecalculo_FCI, CODIGO_FCI,
FISCAL_CFOP_CODIGO,FISCAL_TRIBUTACAO_ORIGEM,
FISCAL_TRIBUTACAO_ICMS,FISCAL_TRIBUTACAO_IPI,FISCAL_TRIBUTACAO_PIS,FISCAL_TRIBUTACAO_COFINS,
MODALIDADE_ICMS, MODALIDADE_ICMS_ST, MARGEM_ICMS_ST,
REDUCAO_ICMS_ST, BASECALCULO_ICMS_ST, ALIQUOTA_ICMS_ST, VALOR_ICMS_ST,
FISCAL_REDUCAO_ICMS_ST, FISCAL_BASECALCULO_ICMS_ST, FISCAL_ALIQUOTA_ICMS_ST, FISCAL_VALOR_ICMS_ST,
INFORMACOES_COMPLEMENTARES, DI_NVE, DI_TIPO_VIA_TRANSP, DI_VALOR_AFRMM,
DI_TIPO_INTERMEDIO, DI_CNPJ_INTERMEDIO, DI_UF_INTERMEDIO, DI_NUMERO_DRAWBACK,
CCUSTO, CONTA_CONTABIL, Enquadramento_Ipi,
QUANTIDADE_ALTERNATIVA, UM_ALTERNATIVA2, VALOR_ALTERNATIVO,
REDUCAO_BASE_PISCOF)
VALUES  (
:Nfe_Controle,:Estabelecimento_Codigo,:Empresa_Codigo,:Numero_NotaFiscal,
:Data_Entrada,:Situacao,:Nfs,:Nfs_Item_Controle,:OC,:OC_Item_Controle,
:Nf_Externo,:Nf_Externo_Item_Controle,:Controle,:Sequencia,:Operacao_Codigo,:Cfop_Codigo,
:Produto_Codigo,:Produto_Descricao,:Produto_UnidadeMedida,:Ncm_Codigo,:Tributacao_Origem,
:Tributacao_Ipi,:Tributacao_Icms,:Tributacao_Pis,:Tributacao_Cofins,:Localizacao_Codigo,
:Quantidade,:Valor_Unitario,:Valor_Custo,:Valor_Total,:BaseCalculo_Icms,:Percentual_Icms,
:Percentual_Ipi,:Valor_Ipi,:Percentual_Pis,:Valor_Pis,:Percentual_Cofins,
:Valor_Cofins,:T01,:T02,:T03,:T04,:T05,:T06,:T07,:T08,:T09,:T10,
:T11,:T12,:T13,:T14,:T15,:T16,:T17,:T18,:T19,:T20,
:DI,:DI_DATA_REGISTRO,:DI_DATA_DESEMBARACO,:DI_LOCAL_DESEMBARACO,:DI_UF_DESEMBARACO,
:DI_CODIGO_EXPORTADOR,:DI_ADICAO,:DI_SEQUENCIAL,:DI_CODIGO_FABRICANTE,:DI_DESCONTO_ADICAO,
:di_base_calculo,:di_despesas_aduaneiras,:di_valor_ii,:di_valor_iof,
:VALOR_ICMS,:BASECALCULO_IPI,:BASECALCULO_PIS,:BASECALCULO_COFINS,
:VALOR_ACRESCIMO,:VALOR_FRETE,:VALOR_SEGURO,:VALOR_DESCONTO,:FISCAL_ISENTAS_IPI,:FISCAL_ISENTAS_ICMS,
:FISCAL_OUTRAS_IPI,:FISCAL_OUTRAS_ICMS,:FISCAL_VALOR_ICMS,:FISCAL_VALOR_IPI,
:FISCAL_VALOR_PIS,:FISCAL_VALOR_COFINS,:FISCAL_PERCENTUAL_ICMS,:FISCAL_PERCENTUAL_IPI,
:FISCAL_PERCENTUAL_PIS,:FISCAL_PERCENTUAL_COFINS,:FISCAL_BASECALCULO_ICMS,
:FISCAL_BASECALCULO_IPI,:FISCAL_BASECALCULO_PIS,:FISCAL_BASECALCULO_COFINS,
:VALOR_PEDAGIO, :VALOR_CONTABIL, :valor_basecalculo_icms, :basecalculo_FCI, :CODIGO_FCI,
:FISCAL_CFOP_CODIGO,:FISCAL_TRIBUTACAO_ORIGEM,
:FISCAL_TRIBUTACAO_ICMS,:FISCAL_TRIBUTACAO_IPI,:FISCAL_TRIBUTACAO_PIS,
:FISCAL_TRIBUTACAO_COFINS,:MODALIDADE_ICMS, :MODALIDADE_ICMS_ST, :MARGEM_ICMS_ST,
:REDUCAO_ICMS_ST, :BASECALCULO_ICMS_ST, :ALIQUOTA_ICMS_ST, :VALOR_ICMS_ST,
:FISCAL_REDUCAO_ICMS_ST, :FISCAL_BASECALCULO_ICMS_ST, :FISCAL_ALIQUOTA_ICMS_ST, :FISCAL_VALOR_ICMS_ST,
:INFORMACOES_COMPLEMENTARES, :DI_NVE, :DI_TIPO_VIA_TRANSP, :DI_VALOR_AFRMM,
:DI_TIPO_INTERMEDIO, :DI_CNPJ_INTERMEDIO, :DI_UF_INTERMEDIO, :DI_NUMERO_DRAWBACK,
:CCUSTO, :CONTA_CONTABIL, :Enquadramento_Ipi,
:QUANTIDADE_ALTERNATIVA, :UM_ALTERNATIVA, :VALOR_ALTERNATIVO,
:REDUCAO_BASE_PISCOF);

INSERT INTO TbNfe_Item_Saldo (
Nfe_Item_Controle,Nfe_Controle,Quantidade,
T01,T02,T03,T04,T05,T06,T07,T08,T09,T10,  
T11,T12,T13,T14,T15,T16,T17,T18,T19,T20)  
VALUES (                                  
:Controle,:Nfe_Controle,:Quantidade,
:T01,:T02,:T03,:T04,:T05,:T06,:T07,:T08,:T09,:T10,
:T11,:T12,:T13,:T14,:T15,:T16,:T17,:T18,:T19,:T20);
END
^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER procedure SPI_NFE_ITEM9 (
    NFE_CONTROLE integer,
    ESTABELECIMENTO_CODIGO integer,
    EMPRESA_CODIGO integer,
    NUMERO_NOTAFISCAL integer,
    DATA_ENTRADA date,
    SITUACAO integer,
    NFS integer,
    NFS_ITEM_CONTROLE integer,
    OC integer,
    OC_ITEM_CONTROLE integer,
    NF_EXTERNO integer,
    NF_EXTERNO_ITEM_CONTROLE integer,
    CONTROLE integer,
    SEQUENCIA integer,
    OPERACAO_CODIGO varchar(3),
    CFOP_CODIGO varchar(5),
    PRODUTO_CODIGO integer,
    PRODUTO_DESCRICAO varchar(100),
    PRODUTO_UNIDADEMEDIDA varchar(3),
    NCM_CODIGO varchar(10),
    TRIBUTACAO_ORIGEM integer,
    TRIBUTACAO_IPI varchar(2),
    TRIBUTACAO_ICMS integer,
    TRIBUTACAO_PIS char(2),
    TRIBUTACAO_COFINS char(2),
    LOCALIZACAO_CODIGO integer,
    QUANTIDADE numeric(10,5),
    VALOR_UNITARIO numeric(10,5),
    VALOR_CUSTO numeric(10,5),
    VALOR_TOTAL numeric(10,5),
    BASECALCULO_ICMS numeric(10,5),
    PERCENTUAL_ICMS numeric(10,5),
    PERCENTUAL_IPI numeric(10,5),
    VALOR_IPI numeric(10,5),
    PERCENTUAL_PIS numeric(10,5),
    VALOR_PIS numeric(10,5),
    PERCENTUAL_COFINS numeric(10,5),
    VALOR_COFINS numeric(10,5),
    T01 numeric(10,5),
    T02 numeric(10,5),
    T03 numeric(10,5),
    T04 numeric(10,5),
    T05 numeric(10,5),
    T06 numeric(10,5),
    T07 numeric(10,5),
    T08 numeric(10,5),
    T09 numeric(10,5),
    T10 numeric(10,5),
    T11 numeric(10,5),
    T12 numeric(10,5),
    T13 numeric(10,5),
    T14 numeric(10,5),
    T15 numeric(10,5),
    T16 numeric(10,5),
    T17 numeric(10,5),
    T18 numeric(10,5),
    T19 numeric(10,5),
    T20 numeric(10,5),
    DI varchar(12),
    DI_DATA_REGISTRO date,
    DI_DATA_DESEMBARACO date,
    DI_LOCAL_DESEMBARACO varchar(60),
    DI_UF_DESEMBARACO char(2),
    DI_CODIGO_EXPORTADOR varchar(60),
    DI_ADICAO integer,
    DI_SEQUENCIAL integer,
    DI_CODIGO_FABRICANTE varchar(60),
    DI_DESCONTO_ADICAO numeric(10,2),
    DI_BASE_CALCULO numeric(10,2),
    DI_DESPESAS_ADUANEIRAS numeric(10,2),
    DI_VALOR_II numeric(10,2),
    DI_VALOR_IOF numeric(10,2),
    VALOR_ICMS numeric(10,2),
    BASECALCULO_IPI numeric(10,2),
    BASECALCULO_PIS numeric(10,2),
    BASECALCULO_COFINS numeric(10,2),
    VALOR_ACRESCIMO numeric(10,2),
    VALOR_FRETE numeric(10,2),
    VALOR_SEGURO numeric(10,2),
    VALOR_DESCONTO numeric(10,2),
    FISCAL_ISENTAS_IPI numeric(10,2),
    FISCAL_ISENTAS_ICMS numeric(10,2),
    FISCAL_OUTRAS_IPI numeric(10,2),
    FISCAL_OUTRAS_ICMS numeric(10,2),
    FISCAL_VALOR_ICMS numeric(10,2),
    FISCAL_VALOR_IPI numeric(10,2),
    FISCAL_VALOR_PIS numeric(10,2),
    FISCAL_VALOR_COFINS numeric(10,2),
    FISCAL_PERCENTUAL_ICMS numeric(10,2),
    FISCAL_PERCENTUAL_IPI numeric(10,2),
    FISCAL_PERCENTUAL_PIS numeric(10,2),
    FISCAL_PERCENTUAL_COFINS numeric(10,2),
    FISCAL_BASECALCULO_ICMS numeric(10,5),
    FISCAL_BASECALCULO_IPI numeric(10,2),
    FISCAL_BASECALCULO_PIS numeric(10,2),
    FISCAL_BASECALCULO_COFINS numeric(10,2),
    VALOR_PEDAGIO numeric(10,2),
    VALOR_CONTABIL numeric(10,2),
    VALOR_BASECALCULO_ICMS numeric(10,2),
    BASECALCULO_FCI numeric(15,4),
    CODIGO_FCI varchar(50),
    FISCAL_CFOP_CODIGO varchar(5),
    FISCAL_TRIBUTACAO_ORIGEM integer,
    FISCAL_TRIBUTACAO_ICMS integer,
    FISCAL_TRIBUTACAO_IPI char(2),
    FISCAL_TRIBUTACAO_PIS char(2),
    FISCAL_TRIBUTACAO_COFINS char(2),
    MODALIDADE_ICMS char(1),
    MODALIDADE_ICMS_ST char(1),
    MARGEM_ICMS_ST numeric(15,4),
    REDUCAO_ICMS_ST numeric(15,4),
    BASECALCULO_ICMS_ST numeric(15,4),
    ALIQUOTA_ICMS_ST numeric(15,4),
    VALOR_ICMS_ST numeric(15,4),
    FISCAL_REDUCAO_ICMS_ST numeric(10,2),
    FISCAL_BASECALCULO_ICMS_ST numeric(10,2),
    FISCAL_ALIQUOTA_ICMS_ST numeric(10,2),
    FISCAL_VALOR_ICMS_ST numeric(10,2),
    INFORMACOES_COMPLEMENTARES varchar(200),
    DI_NVE varchar(60),
    DI_TIPO_VIA_TRANSP integer,
    DI_VALOR_AFRMM numeric(15,2),
    DI_TIPO_INTERMEDIO varchar(1),
    DI_CNPJ_INTERMEDIO varchar(14),
    DI_UF_INTERMEDIO varchar(2),
    DI_NUMERO_DRAWBACK varchar(11),
    CCUSTO varchar(8),
    CONTA_CONTABIL varchar(11),
    ENQUADRAMENTO_IPI varchar(3),
    QUANTIDADE_ALTERNATIVA numeric(18,4),
    UM_ALTERNATIVA varchar(3),
    VALOR_ALTERNATIVO numeric(18,10))
as
BEGIN
INSERT INTO TbNfe_Item  (
Nfe_Controle,Estabelecimento_Codigo,Empresa_Codigo,Numero_NotaFiscal,Data_Entrada,Situacao,
Nfs,Nfs_Item_Controle,OC,OC_Item_Controle,Nf_Externo,Nf_Externo_Item_Controle             ,
Controle,Sequencia,Operacao_Codigo,Cfop_Codigo,Produto_Codigo,Produto_Descricao           ,
Produto_UnidadeMedida2,Ncm_Codigo,Tributacao_Origem,Tributacao_Ipi,Tributacao_Icms         ,
Tributacao_Pis,Tributacao_Cofins                                                          ,
Localizacao_Codigo,Quantidade,Valor_Unitario,Valor_Custo,Valor_Total,BaseCalculo_Icms,Percentual_Icms ,
Percentual_Ipi,Valor_Ipi,Percentual_Pis,Valor_Pis,Percentual_Cofins,Valor_Cofins          ,
T01,T02,T03,T04,T05,T06,T07,T08,T09,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,
DI,DI_DATA_REGISTRO,DI_DATA_DESEMBARACO,DI_LOCAL_DESEMBARACO,DI_UF_DESEMBARACO,
DI_CODIGO_EXPORTADOR,DI_ADICAO,DI_SEQUENCIAL,DI_CODIGO_FABRICANTE,DI_DESCONTO_ADICAO,
di_base_calculo,di_despesas_aduaneiras,di_valor_ii,di_valor_iof,
VALOR_ICMS,BASECALCULO_IPI,BASECALCULO_PIS,BASECALCULO_COFINS,
VALOR_ACRESCIMO,VALOR_FRETE,VALOR_SEGURO,VALOR_DESCONTO,FISCAL_ISENTAS_IPI,
FISCAL_ISENTAS_ICMS,FISCAL_OUTRAS_IPI,FISCAL_OUTRAS_ICMS,FISCAL_VALOR_ICMS,FISCAL_VALOR_IPI,
FISCAL_VALOR_PIS,FISCAL_VALOR_COFINS,FISCAL_PERCENTUAL_ICMS,FISCAL_PERCENTUAL_IPI,
FISCAL_PERCENTUAL_PIS,FISCAL_PERCENTUAL_COFINS,FISCAL_BASECALCULO_ICMS,
FISCAL_BASECALCULO_IPI,FISCAL_BASECALCULO_PIS,FISCAL_BASECALCULO_COFINS,
VALOR_PEDAGIO, VALOR_CONTABIL, valor_basecalculo_icms, basecalculo_FCI, CODIGO_FCI,
FISCAL_CFOP_CODIGO,FISCAL_TRIBUTACAO_ORIGEM,
FISCAL_TRIBUTACAO_ICMS,FISCAL_TRIBUTACAO_IPI,FISCAL_TRIBUTACAO_PIS,FISCAL_TRIBUTACAO_COFINS,
MODALIDADE_ICMS, MODALIDADE_ICMS_ST, MARGEM_ICMS_ST,
REDUCAO_ICMS_ST, BASECALCULO_ICMS_ST, ALIQUOTA_ICMS_ST, VALOR_ICMS_ST,
FISCAL_REDUCAO_ICMS_ST, FISCAL_BASECALCULO_ICMS_ST, FISCAL_ALIQUOTA_ICMS_ST, FISCAL_VALOR_ICMS_ST,
INFORMACOES_COMPLEMENTARES, DI_NVE, DI_TIPO_VIA_TRANSP, DI_VALOR_AFRMM,
DI_TIPO_INTERMEDIO, DI_CNPJ_INTERMEDIO, DI_UF_INTERMEDIO, DI_NUMERO_DRAWBACK,
CCUSTO, CONTA_CONTABIL, Enquadramento_Ipi,
QUANTIDADE_ALTERNATIVA, UM_ALTERNATIVA2, VALOR_ALTERNATIVO)
VALUES  (
:Nfe_Controle,:Estabelecimento_Codigo,:Empresa_Codigo,:Numero_NotaFiscal,
:Data_Entrada,:Situacao,:Nfs,:Nfs_Item_Controle,:OC,:OC_Item_Controle,
:Nf_Externo,:Nf_Externo_Item_Controle,:Controle,:Sequencia,:Operacao_Codigo,:Cfop_Codigo,
:Produto_Codigo,:Produto_Descricao,:Produto_UnidadeMedida,:Ncm_Codigo,:Tributacao_Origem,
:Tributacao_Ipi,:Tributacao_Icms,:Tributacao_Pis,:Tributacao_Cofins,:Localizacao_Codigo,
:Quantidade,:Valor_Unitario,:Valor_Custo,:Valor_Total,:BaseCalculo_Icms,:Percentual_Icms,
:Percentual_Ipi,:Valor_Ipi,:Percentual_Pis,:Valor_Pis,:Percentual_Cofins,
:Valor_Cofins,:T01,:T02,:T03,:T04,:T05,:T06,:T07,:T08,:T09,:T10,
:T11,:T12,:T13,:T14,:T15,:T16,:T17,:T18,:T19,:T20,
:DI,:DI_DATA_REGISTRO,:DI_DATA_DESEMBARACO,:DI_LOCAL_DESEMBARACO,:DI_UF_DESEMBARACO,
:DI_CODIGO_EXPORTADOR,:DI_ADICAO,:DI_SEQUENCIAL,:DI_CODIGO_FABRICANTE,:DI_DESCONTO_ADICAO,
:di_base_calculo,:di_despesas_aduaneiras,:di_valor_ii,:di_valor_iof,
:VALOR_ICMS,:BASECALCULO_IPI,:BASECALCULO_PIS,:BASECALCULO_COFINS,
:VALOR_ACRESCIMO,:VALOR_FRETE,:VALOR_SEGURO,:VALOR_DESCONTO,:FISCAL_ISENTAS_IPI,:FISCAL_ISENTAS_ICMS,
:FISCAL_OUTRAS_IPI,:FISCAL_OUTRAS_ICMS,:FISCAL_VALOR_ICMS,:FISCAL_VALOR_IPI,
:FISCAL_VALOR_PIS,:FISCAL_VALOR_COFINS,:FISCAL_PERCENTUAL_ICMS,:FISCAL_PERCENTUAL_IPI,
:FISCAL_PERCENTUAL_PIS,:FISCAL_PERCENTUAL_COFINS,:FISCAL_BASECALCULO_ICMS,
:FISCAL_BASECALCULO_IPI,:FISCAL_BASECALCULO_PIS,:FISCAL_BASECALCULO_COFINS,
:VALOR_PEDAGIO, :VALOR_CONTABIL, :valor_basecalculo_icms, :basecalculo_FCI, :CODIGO_FCI,
:FISCAL_CFOP_CODIGO,:FISCAL_TRIBUTACAO_ORIGEM,
:FISCAL_TRIBUTACAO_ICMS,:FISCAL_TRIBUTACAO_IPI,:FISCAL_TRIBUTACAO_PIS,
:FISCAL_TRIBUTACAO_COFINS,:MODALIDADE_ICMS, :MODALIDADE_ICMS_ST, :MARGEM_ICMS_ST,
:REDUCAO_ICMS_ST, :BASECALCULO_ICMS_ST, :ALIQUOTA_ICMS_ST, :VALOR_ICMS_ST,
:FISCAL_REDUCAO_ICMS_ST, :FISCAL_BASECALCULO_ICMS_ST, :FISCAL_ALIQUOTA_ICMS_ST, :FISCAL_VALOR_ICMS_ST,
:INFORMACOES_COMPLEMENTARES, :DI_NVE, :DI_TIPO_VIA_TRANSP, :DI_VALOR_AFRMM,
:DI_TIPO_INTERMEDIO, :DI_CNPJ_INTERMEDIO, :DI_UF_INTERMEDIO, :DI_NUMERO_DRAWBACK,
:CCUSTO, :CONTA_CONTABIL, :Enquadramento_Ipi,
:QUANTIDADE_ALTERNATIVA, :UM_ALTERNATIVA, :VALOR_ALTERNATIVO);

INSERT INTO TbNfe_Item_Saldo (
Nfe_Item_Controle,Nfe_Controle,Quantidade,
T01,T02,T03,T04,T05,T06,T07,T08,T09,T10,  
T11,T12,T13,T14,T15,T16,T17,T18,T19,T20)  
VALUES (                                  
:Controle,:Nfe_Controle,:Quantidade,
:T01,:T02,:T03,:T04,:T05,:T06,:T07,:T08,:T09,:T10,
:T11,:T12,:T13,:T14,:T15,:T16,:T17,:T18,:T19,:T20);
END
^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER procedure SPU_CTE_ITEM (
    NFE_CONTROLE integer,
    CONTROLE integer,
    ESTABELECIMENTO_CODIGO integer,
    EMPRESA_CODIGO integer,
    OPERACAO_CODIGO varchar(3),
    PRODUTO_CODIGO integer,
    PRODUTO_DESCRICAO varchar(100),
    LOCALIZACAO_CODIGO integer,
    NUMERO_NOTAFISCAL integer,
    DATA_ENTRADA date,
    SITUACAO integer,
    NF_NATUREZA integer,
    CFOP_CODIGO varchar(5),
    NCM_CODIGO varchar(10),
    TRIBUTACAO_ORIGEM integer,
    TRIBUTACAO_IPI varchar(2),
    TRIBUTACAO_ICMS integer,
    TRIBUTACAO_PIS char(2),
    TRIBUTACAO_COFINS char(2),
    BASECALCULO_ICMS numeric(10,5),
    PERCENTUAL_ICMS numeric(10,5),
    PERCENTUAL_IPI numeric(10,5),
    VALOR_IPI numeric(10,5),
    PERCENTUAL_PIS numeric(10,5),
    VALOR_PIS numeric(10,5),
    PERCENTUAL_COFINS numeric(10,5),
    VALOR_COFINS numeric(10,5),
    VALOR_ICMS numeric(10,2),
    BASECALCULO_IPI numeric(10,2),
    BASECALCULO_PIS numeric(10,2),
    BASECALCULO_COFINS numeric(10,2),
    VALOR_ACRESCIMO numeric(10,2),
    VALOR_DESCONTO numeric(10,2),
    FISCAL_ISENTAS_IPI numeric(10,2),
    FISCAL_ISENTAS_ICMS numeric(10,2),
    FISCAL_OUTRAS_IPI numeric(10,2),
    FISCAL_OUTRAS_ICMS numeric(10,2),
    FISCAL_VALOR_ICMS numeric(10,2),
    FISCAL_VALOR_IPI numeric(10,2),
    FISCAL_VALOR_PIS numeric(10,2),
    FISCAL_VALOR_COFINS numeric(10,2),
    FISCAL_PERCENTUAL_ICMS numeric(10,2),
    FISCAL_PERCENTUAL_IPI numeric(10,2),
    FISCAL_PERCENTUAL_PIS numeric(10,2),
    FISCAL_PERCENTUAL_COFINS numeric(10,2),
    FISCAL_BASECALCULO_ICMS numeric(10,2),
    FISCAL_BASECALCULO_IPI numeric(10,2),
    FISCAL_BASECALCULO_PIS numeric(10,2),
    FISCAL_BASECALCULO_COFINS numeric(10,2),
    VALOR_PEDAGIO numeric(10,2),
    VALOR_CONTABIL numeric(10,2),
    FISCAL_CFOP_CODIGO varchar(5),
    FISCAL_TRIBUTACAO_ORIGEM integer,
    FISCAL_TRIBUTACAO_ICMS integer,
    FISCAL_TRIBUTACAO_IPI char(2),
    FISCAL_TRIBUTACAO_PIS char(2),
    FISCAL_TRIBUTACAO_COFINS char(2),
    VALOR_UNITARIO numeric(10,5),
    VALOR_TOTAL numeric(10,5),
    VALOR_BASECALCULO_ICMS numeric(10,2),
    MODALIDADE_ICMS char(1),
    MODALIDADE_ICMS_ST char(1),
    MARGEM_ICMS_ST numeric(15,4),
    REDUCAO_ICMS_ST numeric(15,4),
    BASECALCULO_ICMS_ST numeric(15,4),
    ALIQUOTA_ICMS_ST numeric(15,4),
    VALOR_ICMS_ST numeric(15,4),
    GC_WEB integer,
    QUANTIDADE numeric(10,5),
    QUANTIDADE_ALTERNATIVA numeric(18,4),
    UM_ALTERNATIVA varchar(3),
    VALOR_ALTERNATIVO numeric(18,10),
    T01 numeric(10,5),
    T02 numeric(10,5),
    T03 numeric(10,5),
    T04 numeric(10,5),
    T05 numeric(10,5),
    T06 numeric(10,5),
    T07 numeric(10,5),
    T08 numeric(10,5),
    T09 numeric(10,5),
    T10 numeric(10,5),
    T11 numeric(10,5),
    T12 numeric(10,5),
    T13 numeric(10,5),
    T14 numeric(10,5),
    T15 numeric(10,5),
    T16 numeric(10,5),
    T17 numeric(10,5),
    T18 numeric(10,5),
    T19 numeric(10,5),
    T20 numeric(10,5),
    DI varchar(12),
    DI_DATA_REGISTRO date,
    DI_DATA_DESEMBARACO date,
    DI_LOCAL_DESEMBARACO varchar(60),
    DI_UF_DESEMBARACO char(2),
    DI_CODIGO_EXPORTADOR varchar(60),
    DI_ADICAO integer,
    DI_SEQUENCIAL integer,
    DI_CODIGO_FABRICANTE varchar(60),
    DI_DESCONTO_ADICAO numeric(10,2),
    DI_BASE_CALCULO numeric(10,2),
    DI_DESPESAS_ADUANEIRAS numeric(10,2),
    DI_VALOR_II numeric(10,2),
    DI_VALOR_IOF numeric(10,2),
    DI_NVE varchar(60),
    DI_TIPO_VIA_TRANSP integer,
    DI_VALOR_AFRMM numeric(15,2),
    DI_TIPO_INTERMEDIO varchar(1),
    DI_CNPJ_INTERMEDIO varchar(14),
    DI_UF_INTERMEDIO varchar(2),
    DI_NUMERO_DRAWBACK varchar(11),
    CCUSTO varchar(8),
    CONTA_CONTABIL varchar(11))
as
BEGIN

-- UPDATE TBNFE_ITEM
UPDATE TBNFE_ITEM SET
ESTABELECIMENTO_CODIGO = :ESTABELECIMENTO_CODIGO,
EMPRESA_CODIGO = :EMPRESA_CODIGO,
OPERACAO_CODIGO     = :OPERACAO_CODIGO,
PRODUTO_CODIGO      = :PRODUTO_CODIGO,
PRODUTO_DESCRICAO   = :PRODUTO_DESCRICAO,
LOCALIZACAO_CODIGO  = :LOCALIZACAO_CODIGO,
NUMERO_NOTAFISCAL = :NUMERO_NOTAFISCAL,
DATA_ENTRADA = :DATA_ENTRADA,
NF_SITUACAO = :SITUACAO,
NF_NATUREZA = :NF_NATUREZA,
CFOP_CODIGO = :CFOP_CODIGO,
NCM_CODIGO = :NCM_CODIGO,
TRIBUTACAO_ORIGEM = :TRIBUTACAO_ORIGEM,
TRIBUTACAO_IPI = :TRIBUTACAO_IPI,
TRIBUTACAO_ICMS = :TRIBUTACAO_ICMS,
TRIBUTACAO_PIS = :TRIBUTACAO_PIS,
TRIBUTACAO_COFINS = :TRIBUTACAO_COFINS,
BASECALCULO_ICMS = :BASECALCULO_ICMS,
PERCENTUAL_ICMS = :PERCENTUAL_ICMS ,
PERCENTUAL_IPI = :PERCENTUAL_IPI,
VALOR_IPI = :VALOR_IPI,
PERCENTUAL_PIS = :PERCENTUAL_PIS,
VALOR_PIS = :VALOR_PIS,
PERCENTUAL_COFINS = :PERCENTUAL_COFINS,
VALOR_COFINS = :VALOR_COFINS,
VALOR_ICMS                = :VALOR_ICMS           ,
BASECALCULO_IPI           = :BASECALCULO_IPI      ,
BASECALCULO_PIS           = :BASECALCULO_PIS      ,
BASECALCULO_COFINS        = :BASECALCULO_COFINS   ,
VALOR_ACRESCIMO           = :VALOR_ACRESCIMO      ,
VALOR_DESCONTO            = :VALOR_DESCONTO       ,
FISCAL_ISENTAS_IPI        = :FISCAL_ISENTAS_IPI   ,
FISCAL_ISENTAS_ICMS       = :FISCAL_ISENTAS_ICMS  ,
FISCAL_OUTRAS_IPI         = :FISCAL_OUTRAS_IPI    ,
FISCAL_OUTRAS_ICMS        = :FISCAL_OUTRAS_ICMS   ,
FISCAL_VALOR_ICMS         = :FISCAL_VALOR_ICMS    ,
FISCAL_VALOR_IPI          = :FISCAL_VALOR_IPI     ,
FISCAL_VALOR_PIS          = :FISCAL_VALOR_PIS     ,
FISCAL_VALOR_COFINS       = :FISCAL_VALOR_COFINS  ,
FISCAL_PERCENTUAL_ICMS    = :FISCAL_PERCENTUAL_ICMS,
FISCAL_PERCENTUAL_IPI     = :FISCAL_PERCENTUAL_IPI ,
FISCAL_PERCENTUAL_PIS     = :FISCAL_PERCENTUAL_PIS ,
FISCAL_PERCENTUAL_COFINS  = :FISCAL_PERCENTUAL_COFINS,
FISCAL_BASECALCULO_ICMS   = :FISCAL_BASECALCULO_ICMS ,
FISCAL_BASECALCULO_IPI    = :FISCAL_BASECALCULO_IPI  ,
FISCAL_BASECALCULO_PIS    = :FISCAL_BASECALCULO_PIS  ,
FISCAL_BASECALCULO_COFINS = :FISCAL_BASECALCULO_COFINS,
VALOR_PEDAGIO = :VALOR_PEDAGIO,
VALOR_CONTABIL = :VALOR_CONTABIL,
FISCAL_CFOP_CODIGO = :FISCAL_CFOP_CODIGO,
FISCAL_TRIBUTACAO_ORIGEM  = :FISCAL_TRIBUTACAO_ORIGEM,
FISCAL_TRIBUTACAO_ICMS    = :FISCAL_TRIBUTACAO_ICMS,
FISCAL_TRIBUTACAO_IPI     = :FISCAL_TRIBUTACAO_IPI,
FISCAL_TRIBUTACAO_PIS     = :FISCAL_TRIBUTACAO_PIS,
FISCAL_TRIBUTACAO_COFINS  = :FISCAL_TRIBUTACAO_COFINS,
VALOR_UNITARIO     = :VALOR_UNITARIO,
VALOR_TOTAL        = :VALOR_TOTAL,
VALOR_BASECALCULO_ICMS = :VALOR_BASECALCULO_ICMS,
MODALIDADE_ICMS    = :MODALIDADE_ICMS,
MODALIDADE_ICMS_ST = :MODALIDADE_ICMS_ST,
MARGEM_ICMS_ST     = :MARGEM_ICMS_ST,
REDUCAO_ICMS_ST    = :REDUCAO_ICMS_ST,
BASECALCULO_ICMS_ST= :BASECALCULO_ICMS_ST,
ALIQUOTA_ICMS_ST   = :ALIQUOTA_ICMS_ST,
VALOR_ICMS_ST      = :VALOR_ICMS_ST,
GC_WEB             = :GC_WEB,
QUANTIDADE         = :QUANTIDADE,
QUANTIDADE_ALTERNATIVA              = :QUANTIDADE_ALTERNATIVA,
UM_ALTERNATIVA2                      = :UM_ALTERNATIVA,
VALOR_ALTERNATIVO                   = :VALOR_ALTERNATIVO,

T01 = :T01, T02 = :T02, T03 = :T03, T04 = :T04,
   T05 = :T05, T06 = :T06, T07 = :T07, T08 = :T08,
   T09 = :T09, T10 = :T10, T11 = :T11, T12 = :T12,
   T13 = :T13, T14 = :T14, T15 = :T15, T16 = :T16,
   T17 = :T17, T18 = :T18, T19 = :T19, T20 = :T20,

DI                      = :DI,
DI_DATA_REGISTRO        = :DI_DATA_REGISTRO,
DI_DATA_DESEMBARACO     = :DI_DATA_DESEMBARACO,
DI_LOCAL_DESEMBARACO    = :DI_LOCAL_DESEMBARACO,
DI_UF_DESEMBARACO       = :DI_UF_DESEMBARACO,
DI_CODIGO_EXPORTADOR    = :DI_CODIGO_EXPORTADOR,
DI_ADICAO               = :DI_ADICAO,
DI_SEQUENCIAL           = :DI_SEQUENCIAL,
DI_CODIGO_FABRICANTE    = :DI_CODIGO_FABRICANTE,
DI_DESCONTO_ADICAO      = :DI_DESCONTO_ADICAO,
DI_BASE_CALCULO         = :DI_BASE_CALCULO,
DI_DESPESAS_ADUANEIRAS  = :DI_DESPESAS_ADUANEIRAS,
DI_VALOR_II             = :DI_VALOR_II,
DI_VALOR_IOF            = :DI_VALOR_IOF,
DI_NVE                  = :DI_NVE,
DI_TIPO_VIA_TRANSP      = :DI_TIPO_VIA_TRANSP,
DI_VALOR_AFRMM          = :DI_VALOR_AFRMM,
DI_TIPO_INTERMEDIO      = :DI_TIPO_INTERMEDIO,
DI_CNPJ_INTERMEDIO      = :DI_CNPJ_INTERMEDIO,
DI_UF_INTERMEDIO        = :DI_UF_INTERMEDIO,
DI_NUMERO_DRAWBACK      = :DI_NUMERO_DRAWBACK,
CCUSTO                  = :CCUSTO,
CONTA_CONTABIL          = :CONTA_CONTABIL

WHERE NFE_CONTROLE = :NFE_CONTROLE
  AND CONTROLE = :CONTROLE;

  UPDATE  TbNfe_Item_Saldo SET
Quantidade = :QUANTIDADE,
T01 = :T01, T02 = :T02, T03 = :T03, T04 = :T04,
   T05 = :T05, T06 = :T06, T07 = :T07, T08 = :T08,
   T09 = :T09, T10 = :T10, T11 = :T11, T12 = :T12,
   T13 = :T13, T14 = :T14, T15 = :T15, T16 = :T16,
   T17 = :T17, T18 = :T18, T19 = :T19, T20 = :T20
WHERE Nfe_Item_Controle = :CONTROLE AND Nfe_Controle = :NFE_CONTROLE;
END
^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER procedure SPU_NFE_ITEM (
    NFE_CONTROLE integer,
    CONTROLE integer,
    ESTABELECIMENTO_CODIGO integer,
    EMPRESA_CODIGO integer,
    PRODUTO_DESCRICAO varchar(100),
    PRODUTO_UNIDADEMEDIDA varchar(3),
    LOCALIZACAO_CODIGO integer,
    NUMERO_NOTAFISCAL integer,
    DATA_ENTRADA date,
    SITUACAO integer,
    NF_NATUREZA integer,
    CFOP_CODIGO varchar(5),
    NCM_CODIGO varchar(10),
    TRIBUTACAO_ORIGEM integer,
    TRIBUTACAO_IPI varchar(2),
    TRIBUTACAO_ICMS integer,
    TRIBUTACAO_PIS char(2),
    TRIBUTACAO_COFINS char(2),
    BASECALCULO_ICMS numeric(10,5),
    PERCENTUAL_ICMS numeric(10,5),
    PERCENTUAL_IPI numeric(10,5),
    VALOR_IPI numeric(10,5),
    PERCENTUAL_PIS numeric(10,5),
    VALOR_PIS numeric(10,5),
    PERCENTUAL_COFINS numeric(10,5),
    VALOR_COFINS numeric(10,5),
    VALOR_ICMS numeric(10,2),
    BASECALCULO_IPI numeric(10,2),
    BASECALCULO_PIS numeric(10,2),
    BASECALCULO_COFINS numeric(10,2),
    VALOR_ACRESCIMO numeric(10,2),
    VALOR_DESCONTO numeric(10,2),
    VALOR_FRETE numeric(10,2),
    VALOR_SEGURO numeric(10,2),
    FISCAL_ISENTAS_IPI numeric(10,2),
    FISCAL_ISENTAS_ICMS numeric(10,2),
    FISCAL_OUTRAS_IPI numeric(10,2),
    FISCAL_OUTRAS_ICMS numeric(10,2),
    FISCAL_VALOR_ICMS numeric(10,2),
    FISCAL_VALOR_IPI numeric(10,2),
    FISCAL_VALOR_PIS numeric(10,2),
    FISCAL_VALOR_COFINS numeric(10,2),
    FISCAL_PERCENTUAL_ICMS numeric(10,2),
    FISCAL_PERCENTUAL_IPI numeric(10,2),
    FISCAL_PERCENTUAL_PIS numeric(10,2),
    FISCAL_PERCENTUAL_COFINS numeric(10,2),
    FISCAL_BASECALCULO_ICMS numeric(10,2),
    FISCAL_BASECALCULO_IPI numeric(10,2),
    FISCAL_BASECALCULO_PIS numeric(10,2),
    FISCAL_BASECALCULO_COFINS numeric(10,2),
    VALOR_PEDAGIO numeric(10,2),
    VALOR_CONTABIL numeric(10,2),
    FISCAL_CFOP_CODIGO varchar(5),
    FISCAL_TRIBUTACAO_ORIGEM integer,
    FISCAL_TRIBUTACAO_ICMS integer,
    FISCAL_TRIBUTACAO_IPI char(2),
    FISCAL_TRIBUTACAO_PIS char(2),
    FISCAL_TRIBUTACAO_COFINS char(2),
    VALOR_UNITARIO numeric(15,6),
    VALOR_TOTAL numeric(10,5),
    VALOR_BASECALCULO_ICMS numeric(10,2),
    MODALIDADE_ICMS char(1),
    MODALIDADE_ICMS_ST char(1),
    MARGEM_ICMS_ST numeric(15,4),
    REDUCAO_ICMS_ST numeric(15,4),
    BASECALCULO_ICMS_ST numeric(15,4),
    ALIQUOTA_ICMS_ST numeric(15,4),
    VALOR_ICMS_ST numeric(15,4),
    FISCAL_REDUCAO_ICMS_ST numeric(10,2),
    FISCAL_BASECALCULO_ICMS_ST numeric(10,2),
    FISCAL_ALIQUOTA_ICMS_ST numeric(10,2),
    FISCAL_VALOR_ICMS_ST numeric(15,4),
    GC_WEB integer,
    QUANTIDADE numeric(10,5),
    QUANTIDADE_ALTERNATIVA numeric(18,4),
    UM_ALTERNATIVA varchar(3),
    VALOR_ALTERNATIVO numeric(18,10),
    VALOR_CUSTO numeric(10,5),
    OUTROS_CUSTOS numeric(15,2),
    INFORMACOES_COMPLEMENTARES varchar(500),
    T01 numeric(10,5),
    T02 numeric(10,5),
    T03 numeric(10,5),
    T04 numeric(10,5),
    T05 numeric(10,5),
    T06 numeric(10,5),
    T07 numeric(10,5),
    T08 numeric(10,5),
    T09 numeric(10,5),
    T10 numeric(10,5),
    T11 numeric(10,5),
    T12 numeric(10,5),
    T13 numeric(10,5),
    T14 numeric(10,5),
    T15 numeric(10,5),
    T16 numeric(10,5),
    T17 numeric(10,5),
    T18 numeric(10,5),
    T19 numeric(10,5),
    T20 numeric(10,5),
    DI varchar(12),
    DI_DATA_REGISTRO date,
    DI_DATA_DESEMBARACO date,
    DI_LOCAL_DESEMBARACO varchar(60),
    DI_UF_DESEMBARACO char(2),
    DI_CODIGO_EXPORTADOR varchar(60),
    DI_ADICAO integer,
    DI_SEQUENCIAL integer,
    DI_CODIGO_FABRICANTE varchar(60),
    DI_DESCONTO_ADICAO numeric(10,2),
    DI_BASE_CALCULO numeric(10,2),
    DI_DESPESAS_ADUANEIRAS numeric(10,2),
    DI_VALOR_II numeric(10,2),
    DI_VALOR_IOF numeric(10,2),
    DI_NVE varchar(60),
    DI_TIPO_VIA_TRANSP integer,
    DI_VALOR_AFRMM numeric(15,2),
    DI_TIPO_INTERMEDIO varchar(1),
    DI_CNPJ_INTERMEDIO varchar(14),
    DI_UF_INTERMEDIO varchar(2),
    DI_NUMERO_DRAWBACK varchar(11))
as
BEGIN

-- UPDATE TBNFE_ITEM
UPDATE TBNFE_ITEM SET
ESTABELECIMENTO_CODIGO = :ESTABELECIMENTO_CODIGO,
EMPRESA_CODIGO = :EMPRESA_CODIGO,
PRODUTO_DESCRICAO   = :PRODUTO_DESCRICAO,
PRODUTO_UNIDADEMEDIDA2 = :PRODUTO_UNIDADEMEDIDA,
LOCALIZACAO_CODIGO  = :LOCALIZACAO_CODIGO,
NUMERO_NOTAFISCAL = :NUMERO_NOTAFISCAL,
DATA_ENTRADA = :DATA_ENTRADA,
NF_SITUACAO = :SITUACAO,
NF_NATUREZA = :NF_NATUREZA,
CFOP_CODIGO = :CFOP_CODIGO,
NCM_CODIGO = :NCM_CODIGO,
TRIBUTACAO_ORIGEM = :TRIBUTACAO_ORIGEM,
TRIBUTACAO_IPI = :TRIBUTACAO_IPI,
TRIBUTACAO_ICMS = :TRIBUTACAO_ICMS,
TRIBUTACAO_PIS = :TRIBUTACAO_PIS,
TRIBUTACAO_COFINS = :TRIBUTACAO_COFINS,
BASECALCULO_ICMS = :BASECALCULO_ICMS,
PERCENTUAL_ICMS = :PERCENTUAL_ICMS ,
PERCENTUAL_IPI = :PERCENTUAL_IPI,
VALOR_IPI = :VALOR_IPI,
PERCENTUAL_PIS = :PERCENTUAL_PIS,
VALOR_PIS = :VALOR_PIS,
PERCENTUAL_COFINS = :PERCENTUAL_COFINS,
VALOR_COFINS = :VALOR_COFINS,
VALOR_ICMS                = :VALOR_ICMS           ,
BASECALCULO_IPI           = :BASECALCULO_IPI      ,
BASECALCULO_PIS           = :BASECALCULO_PIS      ,
BASECALCULO_COFINS        = :BASECALCULO_COFINS   ,
VALOR_ACRESCIMO           = :VALOR_ACRESCIMO      ,
VALOR_DESCONTO            = :VALOR_DESCONTO       ,
VALOR_FRETE               = :VALOR_FRETE,
VALOR_SEGURO              = :VALOR_SEGURO,
FISCAL_ISENTAS_IPI        = :FISCAL_ISENTAS_IPI   ,
FISCAL_ISENTAS_ICMS       = :FISCAL_ISENTAS_ICMS  ,
FISCAL_OUTRAS_IPI         = :FISCAL_OUTRAS_IPI    ,
FISCAL_OUTRAS_ICMS        = :FISCAL_OUTRAS_ICMS   ,
FISCAL_VALOR_ICMS         = :FISCAL_VALOR_ICMS    ,
FISCAL_VALOR_IPI          = :FISCAL_VALOR_IPI     ,
FISCAL_VALOR_PIS          = :FISCAL_VALOR_PIS     ,
FISCAL_VALOR_COFINS       = :FISCAL_VALOR_COFINS  ,
FISCAL_PERCENTUAL_ICMS    = :FISCAL_PERCENTUAL_ICMS,
FISCAL_PERCENTUAL_IPI     = :FISCAL_PERCENTUAL_IPI ,
FISCAL_PERCENTUAL_PIS     = :FISCAL_PERCENTUAL_PIS ,
FISCAL_PERCENTUAL_COFINS  = :FISCAL_PERCENTUAL_COFINS,
FISCAL_BASECALCULO_ICMS   = :FISCAL_BASECALCULO_ICMS ,
FISCAL_BASECALCULO_IPI    = :FISCAL_BASECALCULO_IPI  ,
FISCAL_BASECALCULO_PIS    = :FISCAL_BASECALCULO_PIS  ,
FISCAL_BASECALCULO_COFINS = :FISCAL_BASECALCULO_COFINS,
VALOR_PEDAGIO = :VALOR_PEDAGIO,
VALOR_CONTABIL = :VALOR_CONTABIL,
FISCAL_CFOP_CODIGO = :FISCAL_CFOP_CODIGO,
FISCAL_TRIBUTACAO_ORIGEM  = :FISCAL_TRIBUTACAO_ORIGEM,
FISCAL_TRIBUTACAO_ICMS    = :FISCAL_TRIBUTACAO_ICMS,
FISCAL_TRIBUTACAO_IPI     = :FISCAL_TRIBUTACAO_IPI,
FISCAL_TRIBUTACAO_PIS     = :FISCAL_TRIBUTACAO_PIS,
FISCAL_TRIBUTACAO_COFINS  = :FISCAL_TRIBUTACAO_COFINS,
VALOR_UNITARIO     = :VALOR_UNITARIO,
VALOR_TOTAL        = :VALOR_TOTAL,
VALOR_BASECALCULO_ICMS = :VALOR_BASECALCULO_ICMS,
MODALIDADE_ICMS    = :MODALIDADE_ICMS,
MODALIDADE_ICMS_ST = :MODALIDADE_ICMS_ST,
MARGEM_ICMS_ST     = :MARGEM_ICMS_ST,
REDUCAO_ICMS_ST    = :REDUCAO_ICMS_ST,
BASECALCULO_ICMS_ST= :BASECALCULO_ICMS_ST,
ALIQUOTA_ICMS_ST   = :ALIQUOTA_ICMS_ST,
VALOR_ICMS_ST      = :VALOR_ICMS_ST,
FISCAL_REDUCAO_ICMS_ST = :FISCAL_REDUCAO_ICMS_ST,
FISCAL_BASECALCULO_ICMS_ST = :FISCAL_BASECALCULO_ICMS_ST,
FISCAL_ALIQUOTA_ICMS_ST = :FISCAL_ALIQUOTA_ICMS_ST,
FISCAL_VALOR_ICMS_ST = :FISCAL_VALOR_ICMS_ST,
GC_WEB             = :GC_WEB,
QUANTIDADE         = :QUANTIDADE,
QUANTIDADE_ALTERNATIVA              = :QUANTIDADE_ALTERNATIVA,
UM_ALTERNATIVA2                      = :UM_ALTERNATIVA,
VALOR_ALTERNATIVO                   = :VALOR_ALTERNATIVO,
VALOR_CUSTO                         = :VALOR_CUSTO,
OUTROS_CUSTOS                       = :OUTROS_CUSTOS,
INFORMACOES_COMPLEMENTARES          = :INFORMACOES_COMPLEMENTARES,
T01 = :T01, T02 = :T02, T03 = :T03, T04 = :T04,
   T05 = :T05, T06 = :T06, T07 = :T07, T08 = :T08,
   T09 = :T09, T10 = :T10, T11 = :T11, T12 = :T12,
   T13 = :T13, T14 = :T14, T15 = :T15, T16 = :T16,
   T17 = :T17, T18 = :T18, T19 = :T19, T20 = :T20,

DI                      = :DI,
DI_DATA_REGISTRO        = :DI_DATA_REGISTRO,
DI_DATA_DESEMBARACO     = :DI_DATA_DESEMBARACO,
DI_LOCAL_DESEMBARACO    = :DI_LOCAL_DESEMBARACO,
DI_UF_DESEMBARACO       = :DI_UF_DESEMBARACO,
DI_CODIGO_EXPORTADOR    = :DI_CODIGO_EXPORTADOR,
DI_ADICAO               = :DI_ADICAO,
DI_SEQUENCIAL           = :DI_SEQUENCIAL,
DI_CODIGO_FABRICANTE    = :DI_CODIGO_FABRICANTE,
DI_DESCONTO_ADICAO      = :DI_DESCONTO_ADICAO,
DI_BASE_CALCULO         = :DI_BASE_CALCULO,
DI_DESPESAS_ADUANEIRAS  = :DI_DESPESAS_ADUANEIRAS,
DI_VALOR_II             = :DI_VALOR_II,
DI_VALOR_IOF            = :DI_VALOR_IOF,
DI_NVE                  = :DI_NVE,
DI_TIPO_VIA_TRANSP      = :DI_TIPO_VIA_TRANSP,
DI_VALOR_AFRMM          = :DI_VALOR_AFRMM,
DI_TIPO_INTERMEDIO      = :DI_TIPO_INTERMEDIO,
DI_CNPJ_INTERMEDIO      = :DI_CNPJ_INTERMEDIO,
DI_UF_INTERMEDIO        = :DI_UF_INTERMEDIO,
DI_NUMERO_DRAWBACK      = :DI_NUMERO_DRAWBACK

WHERE NFE_CONTROLE = :NFE_CONTROLE
  AND CONTROLE = :CONTROLE;

  UPDATE  TbNfe_Item_Saldo SET
Quantidade = :QUANTIDADE,
T01 = :T01, T02 = :T02, T03 = :T03, T04 = :T04,
   T05 = :T05, T06 = :T06, T07 = :T07, T08 = :T08,
   T09 = :T09, T10 = :T10, T11 = :T11, T12 = :T12,
   T13 = :T13, T14 = :T14, T15 = :T15, T16 = :T16,
   T17 = :T17, T18 = :T18, T19 = :T19, T20 = :T20
WHERE Nfe_Item_Controle = :CONTROLE AND Nfe_Controle = :NFE_CONTROLE;
END
^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER trigger ttbnfe_item_b09u for tbnfe_item
inactive 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_UNIDADEMEDIDA2 <> OLD.PRODUTO_UNIDADEMEDIDA2) THEN
        BEGIN                                        
            HISTORICO = HISTORICO||' UM:'||OLD.PRODUTO_UNIDADEMEDIDA2||' -> '||NEW.PRODUTO_UNIDADEMEDIDA2;
        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.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_ALTERNATIVA2 <> OLD.UM_ALTERNATIVA2) THEN
        BEGIN                               
            HISTORICO = HISTORICO||' UM.Alter:'||OLD.UM_ALTERNATIVA2||' -> '||NEW.UM_ALTERNATIVA2;
        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 ; ^

/********** Drop dos Campos ************/

ALTER TABLE TBFAMILIA DROP UNIDADEMEDIDA_SIGLA;
ALTER TABLE TBFAMILIA DROP UNIDADEMEDIDA_ALTERNATIVO;
ALTER TABLE TBMODELO DROP UNIDADEMEDIDA_SIGLA;
ALTER TABLE TBPRODUTO DROP UNIDADEMEDIDA_SIGLA;
ALTER TABLE TBNFS_ITEM DROP UM_ALTERNATIVA;
ALTER TABLE TBNFS_ITEM DROP PRODUTO_UNIDADEMEDIDA;
ALTER TABLE TBNFE_ITEM DROP UM_ALTERNATIVA;
ALTER TABLE TBNFE_ITEM DROP PRODUTO_UNIDADEMEDIDA;
ALTER TABLE TBOC_ITEM DROP UM_ALTERNATIVA;
ALTER TABLE TBPEDIDO_ITEM DROP UM_ALTERNATIVA;
ALTER TABLE TBPDV_CFE_ITEM DROP UM;

/********** Criação dos Campos em novo padrão ************/

ALTER TABLE TBFAMILIA ADD UNIDADEMEDIDA_SIGLA VARCHAR(10);
ALTER TABLE TBFAMILIA ADD UNIDADEMEDIDA_ALTERNATIVO VARCHAR(10);
ALTER TABLE TBMODELO ADD UNIDADEMEDIDA_SIGLA VARCHAR(10);
ALTER TABLE TBPRODUTO ADD UNIDADEMEDIDA_SIGLA VARCHAR(10);
ALTER TABLE TBNFS_ITEM ADD UM_ALTERNATIVA VARCHAR(10);
ALTER TABLE TBNFS_ITEM ADD PRODUTO_UNIDADEMEDIDA VARCHAR(10);
ALTER TABLE TBNFE_ITEM ADD UM_ALTERNATIVA VARCHAR(10);
ALTER TABLE TBNFE_ITEM ADD PRODUTO_UNIDADEMEDIDA VARCHAR(10);
ALTER TABLE TBOC_ITEM ADD UM_ALTERNATIVA VARCHAR(10);
ALTER TABLE TBPEDIDO_ITEM ADD UM_ALTERNATIVA VARCHAR(10);
ALTER TABLE TBPDV_CFE_ITEM ADD UM VARCHAR(10);

/********** Criação dos Campos em novo padrão ************/

UPDATE TBFAMILIA SET UNIDADEMEDIDA_SIGLA = UNIDADEMEDIDA_SIGLA2;
UPDATE TBFAMILIA SET UNIDADEMEDIDA_ALTERNATIVO = UNIDADEMEDIDA_ALTERNATIVO2;
UPDATE TBMODELO SET UNIDADEMEDIDA_SIGLA = UNIDADEMEDIDA_SIGLA2;
UPDATE TBPRODUTO SET UNIDADEMEDIDA_SIGLA = UNIDADEMEDIDA_SIGLA2;
UPDATE TBNFS_ITEM SET UM_ALTERNATIVA = UM_ALTERNATIVA2;
UPDATE TBNFS_ITEM SET PRODUTO_UNIDADEMEDIDA = PRODUTO_UNIDADEMEDIDA2;
UPDATE TBNFE_ITEM SET UM_ALTERNATIVA = UM_ALTERNATIVA2;
UPDATE TBNFE_ITEM SET PRODUTO_UNIDADEMEDIDA = PRODUTO_UNIDADEMEDIDA2;
UPDATE TBOC_ITEM SET UM_ALTERNATIVA = UM_ALTERNATIVA2;
UPDATE TBPEDIDO_ITEM SET UM_ALTERNATIVA = UM_ALTERNATIVA2;
UPDATE TBPDV_CFE_ITEM SET UM = UM2;

/********** Realocação das dependencias ***********/

SET TERM ^ ;

CREATE OR ALTER procedure SP_GERAR_TALAO (
    UP_ID integer,
    GP_ID integer,
    TALAO integer,
    REMESSA_ID integer,
    MODELO_ID integer,
    COR_ID integer,
    QUANTIDADE numeric(15,4),
    TAMANHO integer,
    LOCALIZACAO_ID integer,
    TRANSACAO_ID integer,
    DATA date,
    DATA2 timestamp)
as
declare variable NOVA_REMESSA integer;
declare variable ANO integer;
declare variable MES integer;
declare variable PERFIL_UP varchar(10);
declare variable FAMILIA_ID varchar(10);
declare variable ABREVGP varchar(10);
declare variable ESTABELECIMENTO_CODIGO integer;
declare variable QUANTIDADE_PRODUCAO numeric(15,4);
declare variable QUANTIDADE_ALTERNATIVA numeric(15,4);
declare variable ESPESSURA numeric(15,4);
declare variable DENSIDADE numeric(15,4);
declare variable PRODUTO_ID integer;
declare variable UM varchar(10);
declare variable UMA varchar(10);
declare variable FATOR numeric(15,4);
declare variable LINHA_CODIGO integer;
declare variable DENSIDADE_ESPESSURA integer;
declare variable ITEM_PROCESSADO integer;
declare variable PERFIL_SKU varchar(10);
declare variable PROGRAMACAO_ID integer;
declare variable TEMPO_TOTAL numeric(18,8);
declare variable TEMPO_SETUP numeric(18,8);
declare variable AUTORIZACAO varchar(300);
declare variable GERAR_TALOES integer;
declare variable USUARIO_NOTIFICAR integer;
declare variable CORPO1 blob sub_type 1 segment size 80;
declare variable HISTORICO varchar(500);
declare variable TALAO_ID integer;
begin

    ESTABELECIMENTO_CODIGO = 1;
    
    -- ################################ - talao acumulado - ########################################

    DATA2 = cast( DATA || ' 07:30' as timestamp);

    select
        p.codigo,
        f.UNIDADEMEDIDA_SIGLA,
        f.UNIDADEMEDIDA_ALTERNATIVO,
        m.linha_codigo,
        m.densidade,
        m.espessura,
        f.densidade_espessura,
        p.familia_codigo
    from tbproduto p, tbfamilia f, tbmodelo m
        where p.modelo_codigo = :modelo_id
        and p.cor_codigo = :cor_id
        and f.codigo = p.familia_codigo
        and m.codigo = :modelo_id
        and p.status = '1'
        and m.status = '1'
        and f.status = '1'
    into :produto_id, um, uma, linha_codigo, densidade, espessura, densidade_espessura, familia_id;

    produto_id = coalesce(produto_id,0);

    if(produto_id > 0)then
    begin
    
        quantidade_producao    = :quantidade;
        quantidade_alternativa = 0;
        fator                  = coalesce(fn_parametro('TBMODELO_LINHA.FATOR_CONVERSAO', :linha_codigo),0);
    
    
        if(char_length(trim(uma)) > 0)then
        begin
    
            if(fator = 0)then
            begin
              exception "..." 'Família com unidade de medida alternativa, mais fator não foi encontrado na linha. Linha:'||:linha_codigo||', Parametro:604 da linha.';
            end
    
            quantidade_producao    = :quantidade / fator;
            quantidade_alternativa = :quantidade;
        end
    
        if(coalesce(densidade_espessura,0) = 0)then
        begin
            Select
                Cast(Substring(Dens_Esp from 1 for 5) as Integer) Densidade,
                Cast(Substring(Dens_Esp from 6 for 5) as Numeric(15,2)) Espessura
            From (
                Select First 1
                Coalesce((Select First 1 lPad(M.Densidade,5,'0')||lPad(M.Espessura,5,'0')
                From TbModelo M Where M.Codigo = P2.Modelo_Codigo),'0000000000') Dens_Esp
                From TbModelo_Consumo_Cor MC, TbFamilia F, TbProduto P2
                Where MC.Modelo_Id = :modelo_id
                and MC.Cor_Id = :cor_id
                and MC.Produto_Id = P2.Codigo
                and P2.Familia_Codigo = F.Codigo
                and F.Densidade_Espessura = '1'
                and((:tamanho = 1 and MC.T01 > 0) or
                (:tamanho = 2 and MC.T02 > 0) or
                (:tamanho = 3 and MC.T03 > 0) or
                (:tamanho = 4 and MC.T04 > 0) or
                (:tamanho = 5 and MC.T05 > 0) or
                (:tamanho = 6 and MC.T06 > 0) or
                (:tamanho = 7 and MC.T07 > 0) or
                (:tamanho = 8 and MC.T08 > 0) or
                (:tamanho = 9 and MC.T09 > 0) or
                (:tamanho =10 and MC.T10 > 0) or
                (:tamanho =11 and MC.T11 > 0) or
                (:tamanho =12 and MC.T12 > 0) or
                (:tamanho =13 and MC.T13 > 0) or
                (:tamanho =14 and MC.T14 > 0) or
                (:tamanho =15 and MC.T15 > 0) or
                (:tamanho =16 and MC.T16 > 0) or
                (:tamanho =17 and MC.T17 > 0) or
                (:tamanho =18 and MC.T18 > 0) or
                (:tamanho =19 and MC.T19 > 0) or
                (:tamanho =20 and MC.T20 > 0))
            ) into densidade, espessura;
    
        end
    
        TALAO_ID = GEN_ID(GTBREMESSA_ITEM_PROCESSADO,1);
    
        INSERT INTO TBREMESSA_ITEM_PROCESSADO (
            REMESSA,
            CONTROLE,
            ESTABELECIMENTO_CODIGO,
            FAMILIA_CODIGO,
            MODELO_CODIGO,
            MATRIZ_CODIGO,
            OPERADOR_CODIGO,
            PRODUTO_CODIGO,
            DATA_LIBERACAO,
            DATA_PRODUCAO,
            HORA_PRODUCAO,
            HORA_LIBERACAO,
            TAMANHO,
            QUANTIDADE,
            CHAPAS,
            PLACAS,
            SOBRAS,
            CONSUMO_MEDIO,
            OBSERVACAO,
            SITUACAO,
            PROGRAMACAO_CONTROLE,
            PROGRAMACAO_SEQUENCIA,
            ESPESSURA,
            SOBRAS_,
            PLACAS_,
            DENSIDADE,
            TOLERANCIA,
            OPERADOR_LIBERACAO,
            PROGRAMACAO_ESTEIRA,
            PROGRAMACAO_BOCA,
            PLANOMESTRE_ID,
            LIB,
            UP_ID,
            OPERADOR_PRODUCAO,
            LOCALIZACAO_ID,
            TURNO,
            REQUISICAO_ID,
            PERC_SOBRA,
            QUANTIDADE_SOBRA,
            APROVEITAMENTO,
            ESTOQUE_ID,
            SEQ,
            ID,
            DATAHORA,
            QUANTIDADE_ALTERNATIVA,
            VIA_ETIQUETA,
            OPERADOR_GP,
            PERCENTUAL_TALAO_EXTRA,
            TALAO_EXTRA,
            TALAO_VINCULO,
            FERRAMENTA_ID,
            REPROCESSAR,
            FLAG_DATA,
            PERFIL
        ) VALUES (
            :remessa_id,
            :TALAO,
            :ESTABELECIMENTO_CODIGO,
            0,
            :modelo_id,
            NULL,
            NULL,
            :produto_id,
            :DATA,
            :DATA,
            :DATA2,
            :DATA2,
            :tamanho,
            :quantidade_producao,
            NULL,
            NULL,
            NULL,
            NULL,
            NULL,
            3,
            0,
            0,
            coalesce(:espessura,0),
            NULL,
            NULL,
            coalesce(:densidade,0),
            NULL,
            0,
            :gp_id,
            1,
            0,
            '1',
            :up_id,
            NULL,
            0,
            '',
            0,
            0,
            0,
            0,
            0,
            '',
            :TALAO_ID,
            current_timestamp,
            :quantidade_alternativa,
            0,
            0,
            NULL,
            NULL,
            NULL,
            NULL,
            0,
            0,
            NULL
        );
    
        --############################### - talao detalhado - ########################################
    
        ITEM_PROCESSADO = GEN_ID(GERADOR1_ID,1);
    
        localizacao_id = coalesce((select first 1 f.localizacao_codigo from TBFAMILIA f where f.codigo = :familia_id),0);
    
        :perfil_sku    = coalesce((select first 1 k.perfil from vwsku k where k.modelo_id = :modelo_id and k.cor_id = :cor_id and k.tamanho = :tamanho),'');
    
        if(:perfil_sku = '')then
        begin
            exception "..." 'Erro ao consultar perfil do produto '||:produto_id;
        end
    
        INSERT INTO TBPEDIDO_ITEM_PROCESSADO (
            PEDIDO_ITEM_CONTROLE,
            CONTROLE,
            ESTABELECIMENTO_CODIGO,
            FAMILIA_CODIGO,
            MODELO_CODIGO,
            CLIENTE_CODIGO,
            PEDIDO,
            REMESSA,
            REMESSA_ACUMULADO_CONTROLE,
            TURNO_LIBERACAO,
            TURNO_PRODUCAO,
            ESTEIRA_LIBERACAO,
            ESTEIRA_PRODUCAO,
            SETOR_CODIGO,
            PRODUTO_CODIGO,
            EXPEDICAO_PRODUTO_CODIGO,
            DATA_PROCESSAMENTO,
            DATA_EXPEDICAO,
            DATA_LIBERACAO,
            DATA_PRODUCAO,
            HORA_EXPEDICAO,
            HORA_LIBERACAO,
            HORA_PRODUCAO,
            LOTE,
            TAMANHO,
            QUANTIDADE_PEDIDO,
            QUANTIDADE_PRODUCAO,
            QUANTIDADE_SALDO,
            SITUACAO,
            OPERADOR_ID_PRODUCAO,
            OPERADOR,
            PROGRAMACAO_CONTROLE,
            PROGRAMACAO_SEQUENCIA,
            PROGRAMACAO_TURNO,
            COR_ID,
            VOLUME,
            PECA_CONJUNTO,
            PROGRAMACAO_ESTEIRA,
            PROGRAMACAO_BOCA,
            VIA_ETIQUETA,
            LIB,
            LOCALIZACAO_CODIGO,
            REG_ESTOQUE,
            STATUS_PRODUCAO,
            AGRUPAMENTO_ID,
            COLETA_ID,
            ESTOQUE_ID,
            DATAHORA,
            QUANTIDADE_PRODUCAO_TMP,
            QUANTIDADE_ALTERN,
            QUANTIDADE_ALTERN_PRODUCAO,
            QUANTIDADE_ALTERN_SALDO,
            QUANTIDADE_ALTERN_PRODUCAO_TMP,
            QUANTIDADE_SOBRA_TMP,
            QUANTIDADE_SOBRA,
            ESTOQUE_ID_BAIXA,
            QUANTIDADE_BAIXA,
            TURNO,
            ACRESCIMO,
            TALAO_DESMEMBRAMENTO,
            ESTOQUE_ID_S_TRANSF,
            ESTOQUE_ID_E_TRANSF,
            MOTIVO_BAIXA,
            TIPO_BAIXA,
            CCUSTO_BAIXA,
            OBSERVACAO,
            FERRAMENTA_ID,
            ENDERECAMENTO_ID,
            FLAG_DATA,
            MOTIVO_BAIXA_ID,
            PERFIL
        )VALUES (
            0,
            :ITEM_PROCESSADO,
            :estabelecimento_codigo,
            :familia_id,
            :modelo_id,
            NULL,
            NULL,
            :remessa_id,
            :TALAO,
            NULL,
            1,
            NULL,
            :GP_ID,
            NULL,
            :produto_id,
            NULL,
            NULL,
            :DATA,
            :DATA,
            :DATA,
            :DATA2,
            :DATA2,
            :DATA2,
            NULL,
            :tamanho,
            :quantidade_producao,
            :quantidade_producao,
            :quantidade_producao,
            3,
            NULL,
            NULL,
            0,
            0,
            0,
            :cor_id,
            0,
            1,
            :gp_id,
            1,
            0,
            '0',
            :localizacao_id,
            '0',
            '0',
            0,
            NULL,
            0,
            current_timestamp,
            :quantidade_producao,
            :quantidade_alternativa,
            0,
            0,
            0,
            0,
            0,
            0,
            0,
            1,
            0,
            NULL,
            NULL,
            :TRANSACAO_ID,
            '',
            '',
            '',
            NULL,
            NULL,
            NULL,
            0,
            0,
            :perfil_sku
        );
    
        update TBPEDIDO_ITEM_PROCESSADO t set t.localizacao_codigo = :localizacao_id where t.controle = :ITEM_PROCESSADO;
    end

end
^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER procedure SPC_REL_FDI (
    DATA_1 date,
    DATA_2 date,
    ESTABELECIMENTO_ID integer)
returns (
    ESTABELECIMENTO varchar(200),
    MESANO varchar(20),
    OPERACAO_FDI varchar(20),
    FAMILIA_CODIGO integer,
    FAMILIA_DESCRICAO varchar(200),
    PROD numeric(15,4),
    FAT numeric(15,4),
    VALOR_UNITARIO numeric(15,4),
    VALOR numeric(15,4))
as
begin
  FOR Select (Select First 1 E.RazaoSocial From TbEstabelecimento E Where E.Codigo = :ESTABELECIMENTO_ID) Estabelecimento,
        (Case When (Extract(Month from Z.Data1)) = 1 Then 'JANEIRO/'||Extract(Year from Z.Data1) else
        Case When (Extract(Month from Z.Data1)) = 2 Then 'FEVEREIRO/'||Extract(Year from Z.Data1) else
        Case When (Extract(Month from Z.Data1)) = 3 Then 'MARÇO/'||Extract(Year from Z.Data1) else
        Case When (Extract(Month from Z.Data1)) = 4 Then 'ABRIL/'||Extract(Year from Z.Data1) else
        Case When (Extract(Month from Z.Data1)) = 5 Then 'MAIO/'||Extract(Year from Z.Data1) else
        Case When (Extract(Month from Z.Data1)) = 6 Then 'JUNHO/'||Extract(Year from Z.Data1) else
        Case When (Extract(Month from Z.Data1)) = 7 Then 'JULHO/'||Extract(Year from Z.Data1) else
        Case When (Extract(Month from Z.Data1)) = 8 Then 'AGOSTO/'||Extract(Year from Z.Data1) else
        Case When (Extract(Month from Z.Data1)) = 9 Then 'SETEMBRO/'||Extract(Year from Z.Data1) else
        Case When (Extract(Month from Z.Data1)) = 10 Then 'OUTUBRO/'||Extract(Year from Z.Data1) else
        Case When (Extract(Month from Z.Data1)) = 11 Then 'NOVEMBRO/'||Extract(Year from Z.Data1) else
        Case When (Extract(Month from Z.Data1)) = 12 Then 'DEZEMBRO/'||Extract(Year from Z.Data1) else ''
        END END END END END END END END END END END END) MesAno,
        (Select First 1 U.Valor_ext From TbControle_N U Where U.id = 51) Operacao_FDI,
        Z.Familia_Inventario as Familia_Codigo,
        (Select First 1 F.Descricao||'/'||F.UNIDADEMEDIDA_SIGLA From TbFamilia F
        Where Z.Familia_Inventario = F.Codigo) Familia_Descricao,
        Cast(Sum(Z.Quantidade_Produzida) as Numeric(15,4)) Prod, Cast(Sum(Z.Quantidade_Faturada) as Numeric(15,4)) Fat,
        Cast((Case When Sum(Z.Quantidade_Faturada) > 0 Then Sum(Z.Valor_Total)/Sum(Z.Quantidade_Faturada) else 0 end) as Numeric(15,4)) Valor_Unitario,
        Cast(Sum(Z.Valor_Total) as Numeric(15,4)) Valor
        From (
                    Select P.Familia_Inventario, Sum(A.Quantidade) as Quantidade_Produzida, 0 Quantidade_Faturada, 0 Valor_Total, Cast(:DATA_1 as Date) Data1
                    From TbEstoque_Transacao_Item A, TbProduto P
                    Where A.Estabelecimento_Codigo = :ESTABELECIMENTO_ID
                    and A.Data BetWeen :DATA_1 and :DATA_2
                    and A.Operacao_Codigo = (Select First 1 U.Valor_ext From TbControle_N U Where U.id = 30)
                    and A.Produto_Codigo = P.Codigo
                    and P.Familia_Inventario not in (7, 147) /* Despesas e Fitness */
                    Group By 1

                    Union
                    Select P.Familia_Inventario, 0 Quantidade_Produzida, Sum(N.Quantidade) Quantidade_Faturada, Sum(N.Valor_Total+N.Valor_Acrescimo-N.Valor_Desconto+N.Valor_Ipi+N.Valor_Frete) Valor_Total, Cast(:Data_1 as Date) Data1
                    From TbNfs F, TbNfs_Item N, TbOperacao O, TbProduto P , TBFAMILIA FF, TBCFOP C
                    Where N.Estabelecimento_Codigo = :ESTABELECIMENTO_ID
                    and N.Operacao_Codigo = O.Codigo
                    and F.Controle = N.Nfs_Controle
                    and F.Natureza = 1 and F.Situacao = 2
                    and N.Data_Emissao BetWeen :DATA_1 and :DATA_2
                    and N.Produto_Codigo = P.Codigo
                    and N.Situacao = 1
                    and N.Numero_NotaFiscal > 0
                    AND P.FAMILIA_INVENTARIO = FF.CODIGO
                    AND N.CFOP_CODIGO = C.CODIGO
                    /*and N.Cfop_Codigo in ('5.101','5.111','5.112','5.118','5.122','5.401','5.927','6.101','6.102','6.107','6.111','6.112','6.118','6.122','7.101','6.501')*/
                    /*and N.operacao_codigo not in ('CIC','VBA','VPR')*/
                    /*and P.Familia_Inventario not in (7, 147)*/ /* Despesas e Fitness */
                    AND C.FDI = '1'
                    AND FF.FDI = '1'
                    AND O.FDI = '1'
                    Group By 1

                    Union

                    SELECT P.FAMILIA_INVENTARIO, 0 QUANTIDADE_PRODUZIDA,
                    SUM(B.QUANTIDADE) QUANTIDADE_FATURADA,
                    SUM(B.VALOR_TOTAL) VALOR_TOTAL,
                    CAST(:DATA_1 AS DATE) DATA1
                    FROM TBPDV_CFE A, TBPDV_CFE_ITEM B, TBOPERACAO O, TBPRODUTO P, TBFAMILIA FF, TBCFOP C
                    WHERE A.ID = B.PDV_CFE_ID
                    AND A.ESTABELECIMENTO_ID = :ESTABELECIMENTO_ID
                    AND A.DATA_EMISSAO BETWEEN :DATA_1 AND :DATA_2
                    AND A.SITUACAO = 2
                    AND P.CODIGO = B.PRODUTO_ID
                    AND P.FAMILIA_INVENTARIO = FF.CODIGO
                    AND B.CFOP_CODIGO = C.CODIGO
                    AND B.OPERACAO_CODIGO = O.CODIGO
                    /*and b.Cfop_Codigo in ('5.101','5.111','5.112','5.118','5.122','5.401','5.927','6.101','6.102','6.107','6.111','6.112','6.118','6.122','7.101','6.501')*/
                    /*and b.operacao_codigo not in ('CIC','VBA','VPR')*/
                    /*AND P.FAMILIA_INVENTARIO NOT IN (7, 147)*/ /* DESPESAS E FITNESS */
                    AND C.FDI = '1'
                    AND FF.FDI = '1'
                    AND O.FDI = '1'
                    GROUP BY 1
                    
                    ) Z

        Group By 1,2,3,4
        Having (Sum(Z.VALOR_TOTAL) > 0) or (Sum(Z.VALOR_TOTAL) > 0)
        Order By 5

  INTO
      :ESTABELECIMENTO,
      :MESANO,
      :OPERACAO_FDI,
      :FAMILIA_CODIGO,
      :FAMILIA_DESCRICAO,
      :PROD,
      :FAT, 
      :VALOR_UNITARIO,
      :VALOR

DO suspend;
end
^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER procedure SPC_FORM_MODELO (
    STATUS_1 char(1),
    DESCRICAO_1 varchar(100))
returns (
    CODIGO integer,
    DESCRICAO varchar(100),
    UNIDADEMEDIDA_SIGLA char(3),
    GRADE_CODIGO integer,
    MODELO_CODIGO integer,
    LOCALIZACAO_CODIGO integer,
    FAMILIA_DESCRICAO varchar(20))
as
BEGIN
FOR Select A.CODIGO, A.DESCRICAO, B.UNIDADEMEDIDA_SIGLA, A.Grade_Codigo,
           0 MODELO_CODIGO, 0 LOCALIZACAO_CODIGO,
       (Select C.Descricao From TbFamilia C Where C.Codigo = A.Familia_Codigo)

From TbModelo A
Left Join TbFamilia B On A.Familia_Codigo = B.CODIGO
Where A.Status = :Status_1
  and A.Descricao like :Descricao_1
Order by A.familia_codigo,  A.Descricao
INTO
   :CODIGO,
   :DESCRICAO,
   :UNIDADEMEDIDA_SIGLA,
   :GRADE_CODIGO,
   :modelo_codigo, 
   :LOCALIZACAO_CODIGO,
   :familia_descricao
DO SUSPEND;
END
^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER trigger tbmodelo_cor_ai0_01 for tbmodelo_cor
active after insert position 0
AS
DECLARE VARIABLE Cod  Integer;
DECLARE VARIABLE Mask VarChar(200);
DECLARE VARIABLE UM   VarChar(3);
DECLARE VARIABLE Fam  Integer;
DECLARE VARIABLE Fam_Alt Integer;
DECLARE VARIABLE Grd  Integer;
DECLARE VARIABLE Loc  Integer;
DECLARE VARIABLE Tip  Integer;
DECLARE VARIABLE Ncm  VarChar(10);
DECLARE VARIABLE Lin  Integer;
DECLARE VARIABLE HCom Char(1);
DECLARE VARIABLE HVen Char(1);
DECLARE VARIABLE dMod VarChar(50);
DECLARE VARIABLE dFam VarChar(20);
DECLARE VARIABLE dCor VarChar(20);
DECLARE VARIABLE Prd  Integer;
Begin
For
Select M.tipoproduto_codigo, M.familia_codigo, m.familia_alternativa, M.linha_codigo, M.grade_codigo, F.localizacao_codigo,
       IIF(char_length(Coalesce(M.UNIDADEMEDIDA_SIGLA,''))>0,M.UNIDADEMEDIDA_SIGLA,F.UNIDADEMEDIDA_SIGLA),
       F.ncm_codigo, F.habilita_compra, F.habilita_venda, F.mascara_produto,
       M.Descricao, F.Descricao,
      (Select First 1 C.Descricao From TbCor C Where C.Codigo = New.Cor_Id),
       Coalesce((Select First 1 P.Codigo From TbProduto P
                  Where P.Modelo_Codigo = New.Modelo_Id
                    and P.Cor_Codigo = New.Cor_Id),0)
From TbModelo M, TbFamilia F
Where M.Codigo = New.Modelo_Id
  and M.Familia_Alternativa = F.Codigo

Into :Tip,:Fam,:Fam_Alt,:Lin,:Grd,:Loc,:UM,:Ncm,:HCom,:HVen,:Mask,:dMod, :dFam, :dCor, :Prd
Do
    begin
     if (:Prd = 0) then
          Begin
          MASK = Replace(:MASK,'#FAMILIA_ID',fn_lPad(:FAM_ALT,4,'0'));
          MASK = Replace(:MASK,'#FAMILIA_DESCRICAO',:DFAM);
          MASK = Replace(:MASK,'#MODELO_ID',fn_lPad(NEW.MODELO_ID,4,'0'));
          MASK = Replace(:MASK,'#MODELO_DESCRICAO',:DMOD);
          MASK = Replace(:MASK,'#COR_ID',fn_lPad(NEW.COR_ID,4,'0'));
          MASK = Replace(:MASK,'#COR_DESCRICAO',dCor);
          COD  = (Select GEN_ID(gtbproduto,1) FROM RDB$DATABASE);
    
    --      IF ( FN_CURRENT_USER_ID() <> 293 ) THEN
    --      BEGIN
              INSERT INTO TBPRODUTO (
              CODIGO,DESCRICAO,CODIGOANTIGO,UNIDADEMEDIDA_SIGLA,FAMILIA_CODIGO,FAMILIA_ALTERNATIVA,GRADE_CODIGO,
              LOCALIZACAO_CODIGO,TIPOPRODUTO_CODIGO,NCM_CODIGO,EAN,MODELO_CODIGO,COR_CODIGO,
              LINHA_CODIGO,STATUS,USUARIO_CODIGO,DATA,HABILITA_COMPRA,HABILITA_VENDA)
              VALUES (:COD,:MASK,0,:UM,:FAM,:FAM_ALT,:GRD,:LOC,:TIP,:NCM,'',
              NEW.MODELO_ID,NEW.COR_ID,:LIN,COALESCE(NEW.STATUS_PRODUTO,'1'),0,Current_Date,:HCOM,:HVEN);
    --      END
    
           INSERT INTO TBHISTORICO (
           TABELA, TABELA_ID, USUARIO, IP, HISTORICO) VALUES ('TBPRODUTO', :COD,
          (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),
           'Produto incluido via inclusao de Modelo/Cor (Mod.'||NEW.MODELO_ID||'/Cor '||NEW.COR_ID||')');
    
           INSERT INTO TBHISTORICO (
           TABELA, TABELA_ID, USUARIO, IP, HISTORICO) VALUES ('TBMODELO', NEW.MODELO_ID,
          (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),
           'Cor incluida: '||NEW.COR_ID||' - '||:dCor);
          End
      end
End
^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER trigger ttbfamilia_b9u for tbfamilia
inactive 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.DESCRICAO_AMIGAVEL <> NEW.DESCRICAO_AMIGAVEL) THEN
       BEGIN
       HISTORICO = HISTORICO||' DESC.AMIG.'||OLD.DESCRICAO_AMIGAVEL||'->'||NEW.DESCRICAO_AMIGAVEL;
       END
   if (OLD.DESCRICAO_RESUMIDA <> NEW.DESCRICAO_RESUMIDA) THEN
       BEGIN
       HISTORICO = HISTORICO||' AGRUP.CUSTOS:'||OLD.DESCRICAO_RESUMIDA||'->'||NEW.DESCRICAO_RESUMIDA;
       END
   if (OLD.OPERACAO_REQUISICAO <> NEW.OPERACAO_REQUISICAO) THEN
       BEGIN
       HISTORICO = HISTORICO||' OPER.REQ.'||OLD.OPERACAO_REQUISICAO||'->'||NEW.OPERACAO_REQUISICAO;
       END
   IF (OLD.UNIDADEMEDIDA_SIGLA <> NEW.UNIDADEMEDIDA_SIGLA) THEN
       BEGIN
       HISTORICO = HISTORICO||' UM.'||OLD.UNIDADEMEDIDA_SIGLA||'->'||NEW.UNIDADEMEDIDA_SIGLA;
       END
   IF (OLD.UNIDADEMEDIDA_ALTERNATIVO <> NEW.UNIDADEMEDIDA_ALTERNATIVO) THEN
       BEGIN
       HISTORICO = HISTORICO||' UM. ALT.'||OLD.UNIDADEMEDIDA_ALTERNATIVO||'->'||NEW.UNIDADEMEDIDA_ALTERNATIVO;
       END
   IF (OLD.LOCALIZACAO_CODIGO <> NEW.LOCALIZACAO_CODIGO) THEN
       BEGIN
       HISTORICO = HISTORICO||' LOC.PADR.'||OLD.LOCALIZACAO_CODIGO||'->'||NEW.LOCALIZACAO_CODIGO;
       END
   IF (OLD.TIPOPRODUTO_CODIGO <> NEW.TIPOPRODUTO_CODIGO) THEN
       BEGIN
       HISTORICO = HISTORICO||' TIPO:'||OLD.TIPOPRODUTO_CODIGO||'->'||NEW.TIPOPRODUTO_CODIGO;
       END
   IF (OLD.NCM_CODIGO <> NEW.NCM_CODIGO) THEN
       BEGIN
       HISTORICO = HISTORICO||' NCM:'||OLD.NCM_CODIGO||'->'||NEW.NCM_CODIGO;
       END
   IF (OLD.CEST <> NEW.CEST) THEN
       BEGIN
       HISTORICO = HISTORICO||' CEST:'||OLD.CEST||'->'||NEW.CEST;
       END
   IF (OLD.HABILITA_COMPRA <> NEW.HABILITA_COMPRA) THEN
       BEGIN
       HISTORICO = HISTORICO||' HAB.COMP.'||OLD.HABILITA_COMPRA||'->'||NEW.HABILITA_COMPRA;
       END
   IF (OLD.HABILITA_VENDA <> NEW.HABILITA_VENDA) THEN
       BEGIN
       HISTORICO = HISTORICO||' HAB.VEN.'||OLD.HABILITA_VENDA||'->'||NEW.HABILITA_VENDA;
       END
   IF (OLD.HABILITA_REPOSICAO <> NEW.HABILITA_REPOSICAO) THEN
       BEGIN
       HISTORICO = HISTORICO||' HAB.REP.'||OLD.HABILITA_REPOSICAO||'->'||NEW.HABILITA_REPOSICAO;
       END
   IF (OLD.QTD_MIN_FRT_CIF <> NEW.QTD_MIN_FRT_CIF) THEN
       BEGIN
       HISTORICO = HISTORICO||' QTD.MIN.CIF '||OLD.QTD_MIN_FRT_CIF||'->'||NEW.QTD_MIN_FRT_CIF;
       END
   if (OLD.CLASSIFICACAO <> NEW.CLASSIFICACAO) then
       BEGIN
       HISTORICO = HISTORICO||' CLASS.'||OLD.CLASSIFICACAO||'->'||NEW.CLASSIFICACAO;
       END
   IF (OLD.CONTROLE_PATRIMONIO <> NEW.CONTROLE_PATRIMONIO) THEN
       BEGIN
       HISTORICO = HISTORICO||' CONTR.PATRIM.'||OLD.CONTROLE_PATRIMONIO||'->'||NEW.CONTROLE_PATRIMONIO;
       END
   IF (OLD.INVENTARIO <> NEW.INVENTARIO) THEN
       BEGIN
       HISTORICO = HISTORICO||' CONTR.INVENT.'||OLD.INVENTARIO||'->'||NEW.INVENTARIO;
       END
   IF (OLD.CONTROLE_REVISAO <> NEW.CONTROLE_REVISAO) THEN
       BEGIN
       HISTORICO = HISTORICO||' CONTR.REV.'||OLD.CONTROLE_REVISAO||'->'||NEW.CONTROLE_REVISAO;
       END
   IF (OLD.UNIDADEMEDIDA_FCI <> NEW.UNIDADEMEDIDA_FCI) THEN
       BEGIN
       HISTORICO = HISTORICO||' UM.FCI:'||OLD.UNIDADEMEDIDA_FCI||'->'||NEW.UNIDADEMEDIDA_FCI;
       END
   IF (OLD.INSUMO_MP_FCI <> NEW.INSUMO_MP_FCI) THEN
       BEGIN
       HISTORICO = HISTORICO||' COMPOE FCI:'||OLD.INSUMO_MP_FCI||'->'||NEW.INSUMO_MP_FCI;
       END
   IF (OLD.MASCARA_PRODUTO <> NEW.MASCARA_PRODUTO) THEN
       BEGIN
       HISTORICO = HISTORICO||' MASCARA PROD:'||OLD.MASCARA_PRODUTO||'->'||NEW.MASCARA_PRODUTO;
       END
   IF (OLD.BLOQUEIA_DUPLICIDADE <> NEW.BLOQUEIA_DUPLICIDADE) THEN
       BEGIN
       HISTORICO = HISTORICO||' BLQ.DUPL.PROD.'||OLD.BLOQUEIA_DUPLICIDADE||'->'||NEW.BLOQUEIA_DUPLICIDADE;
       END
   IF (OLD.TOLERANCIA <> NEW.TOLERANCIA) THEN
       BEGIN
       HISTORICO = HISTORICO||' TOLER.P/COMPRA:'||OLD.TOLERANCIA||'->'||NEW.TOLERANCIA;
       END
   IF (OLD.TOLERANCIA_VENDA <> NEW.TOLERANCIA_VENDA) THEN
       BEGIN
       HISTORICO = HISTORICO||' TOLER.P/VENDA'||OLD.TOLERANCIA_VENDA||'->'||NEW.TOLERANCIA_VENDA;
       END
   IF (OLD.NIVEL <> NEW.NIVEL) THEN
       BEGIN
       HISTORICO = HISTORICO||' ORD.PROC.PROD:'||OLD.NIVEL||'->'||NEW.NIVEL;
       END
   IF (OLD.NIVEL_OC <> NEW.NIVEL_OC) THEN
       BEGIN
       HISTORICO = HISTORICO||' NIV.AUT.OC:'||OLD.NIVEL_OC||'->'||NEW.NIVEL_OC;
       END
   IF (OLD.DENSIDADE_ESPESSURA <> NEW.DENSIDADE_ESPESSURA) THEN
       BEGIN
       HISTORICO = HISTORICO||' CONTR.DENS/ESP.'||OLD.DENSIDADE_ESPESSURA||'->'||NEW.DENSIDADE_ESPESSURA;
       END
   IF (OLD.CONTROLE_ORCAMENTARIO <> NEW.CONTROLE_ORCAMENTARIO) THEN
       BEGIN
       HISTORICO = HISTORICO||' CONTR.ORCAM.'||OLD.CONTROLE_ORCAMENTARIO||'->'||NEW.CONTROLE_ORCAMENTARIO;
       END
   IF (OLD.CORES_BASICAS <> NEW.CORES_BASICAS) THEN
       BEGIN
       HISTORICO = HISTORICO||' COR BAS.'||OLD.CORES_BASICAS||'->'||NEW.CORES_BASICAS;
       END
   IF (OLD.CORES_SOBENCOMENDA <> NEW.CORES_SOBENCOMENDA) THEN
       BEGIN
       HISTORICO = HISTORICO||' COR S.ENC.'||OLD.CORES_SOBENCOMENDA||'->'||NEW.CORES_SOBENCOMENDA;
       END
   IF (OLD.SOBRA_TIPO <> NEW.SOBRA_TIPO) THEN
       BEGIN
       HISTORICO = HISTORICO||' SOB.TIPO '||OLD.SOBRA_TIPO||'->'||NEW.SOBRA_TIPO;
       END
   IF (OLD.TOLERANCIA_TIPO <> NEW.TOLERANCIA_TIPO) THEN
       BEGIN
       HISTORICO = HISTORICO||' TP.TOL.CONS.'||OLD.TOLERANCIA_TIPO||'->'||NEW.TOLERANCIA_TIPO;
       END
   IF (OLD.TOLERANCIA_QTD <> NEW.TOLERANCIA_QTD) THEN
       BEGIN
       HISTORICO = HISTORICO||' QTD.TOL.CONS.'||OLD.TOLERANCIA_QTD||'->'||NEW.TOLERANCIA_QTD;
       END
   IF (OLD.TOLERANCIA_PERC <> NEW.TOLERANCIA_PERC) THEN
       BEGIN
       HISTORICO = HISTORICO||' %TOL.CONS.'||OLD.TOLERANCIA_PERC||'->'||NEW.TOLERANCIA_PERC;
       END

   IF (OLD.CONTROLE_TALAO <> NEW.CONTROLE_TALAO) THEN
       BEGIN
       HISTORICO = HISTORICO||' CTR.TAL.'||OLD.CONTROLE_TALAO||'->'||NEW.CONTROLE_TALAO;
       END
   IF (OLD.CONTROLE_ALOCACAO <> NEW.CONTROLE_ALOCACAO) THEN
       BEGIN
       HISTORICO = HISTORICO||' CTR.ALOC.'||OLD.CONTROLE_ALOCACAO||'->'||NEW.CONTROLE_ALOCACAO;
       END
   IF (OLD.GGF <> NEW.GGF) THEN
       BEGIN
       HISTORICO = HISTORICO||' GGF:'||OLD.GGF||'->'||NEW.GGF;
       END
   IF (OLD.GERAR_EAN <> NEW.GERAR_EAN) THEN
       BEGIN
       HISTORICO = HISTORICO||' GERAR.EAN.AUT:'||OLD.GERAR_EAN||'->'||NEW.GERAR_EAN;
       END
   IF (OLD.FEEF <> NEW.FEEF) THEN
       BEGIN
       HISTORICO = HISTORICO||' FEEF: '||OLD.FEEF||'->'||NEW.FEEF;
       END
   IF (OLD.CONTROLE_PECA <> NEW.CONTROLE_PECA) THEN
       BEGIN
       HISTORICO = HISTORICO||' CONTR.EST.P/PECA:'||OLD.CONTROLE_PECA||'->'||NEW.CONTROLE_PECA;
       END
   IF (OLD.COMPOE_CUSTO <> NEW.COMPOE_CUSTO) THEN
       BEGIN
       HISTORICO = HISTORICO||' COMP.CUSTO:'||OLD.COMPOE_CUSTO||'->'||NEW.COMPOE_CUSTO;
       END
   IF (OLD.REPRESENTANTE_COMISSAO <> NEW.REPRESENTANTE_COMISSAO) THEN
       BEGIN
       HISTORICO = HISTORICO||' %COMISS:'||OLD.REPRESENTANTE_COMISSAO||'->'||NEW.REPRESENTANTE_COMISSAO;
       END
   IF (OLD.SEQ_COMPOSICAO_CUSTO <> NEW.SEQ_COMPOSICAO_CUSTO) THEN
       BEGIN
       HISTORICO = HISTORICO||' SEQ.PROD.FINS CUSTO:'||OLD.SEQ_COMPOSICAO_CUSTO||'->'||NEW.SEQ_COMPOSICAO_CUSTO;
       END

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

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

   IF (OLD.HABILITA_COMPOSICAO_CARGA <> NEW.HABILITA_COMPOSICAO_CARGA) THEN
       BEGIN
       HISTORICO = HISTORICO||' HAB.COMP.CARGA:'||OLD.HABILITA_COMPOSICAO_CARGA||'->'||NEW.HABILITA_COMPOSICAO_CARGA;
       END

   if (HISTORICO <> '') Then
       Begin
       INSERT INTO TBHISTORICO (
       TABELA, TABELA_ID, USUARIO, IP, HISTORICO) VALUES (
      'TBFAMILIA', 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
^

SET TERM ; ^

SET TERM ^ ;

CREATE OR ALTER trigger ttbremessa_consumo_b1u for tbremessa_consumo
active before update position 1
AS
declare variable UMAlternativo VarChar(3);
declare variable PRODUTO_DESCRICAO VARCHAR(150);   
declare variable PRODUTO_INVENTARIO VARCHAR(150);

declare variable qtd_kg Numeric(15,4);
declare variable qtd_ml Numeric(15,4);
declare variable QUANTIDADE_SOBRA NUMERIC(15,4);

declare variable talao_id integer;
declare variable produto_id integer;
declare variable gp_id integer;
declare variable perfil varchar(10);
declare variable quantidade_projetada numeric(15,4);
declare variable fator_unidade numeric(15,4);
declare variable quantidade_produzida numeric(15,4);
declare variable quantidade_utilizada numeric(15,4);
declare variable quantidade_alocada numeric(15,4);
declare variable QUANTIDADE_DEFEITO numeric(15,4);

declare variable tolerancia varchar(500);
declare variable tolerancia_pro_qtd_maior numeric(15,4);
declare variable tolerancia_pro_qtd_menor numeric(15,4);
declare variable tolerancia_con_qtd_maior numeric(15,4);
declare variable tolerancia_con_qtd_menor numeric(15,4);
declare variable tolerancia_tipo_pro varchar(10);
declare variable tolerancia_tipo_con varchar(10);
declare variable tolerancia_tipo varchar(10);
declare variable tolerancia_quantidade_maior numeric(15,4);
declare variable tolerancia_quantidade_menor numeric(15,4);
declare variable sobra_producao integer;
declare variable sobra_consumo integer;
declare variable um varchar(10);
declare variable QTD_MAX numeric(15,4);
declare variable QTD_MIN numeric(15,4);
declare variable QTD numeric(15,4);
declare variable QTD_ALOC numeric(15,4);
declare variable familia_id numeric(15,4);
declare variable CONTROLA_TOLERANCIA integer;
Begin

    familia_id = coalesce((select first 1 r.familia_codigo from tbremessa r where r.numero = new.remessa),0);
    CONTROLA_TOLERANCIA = fn_parametro('TBFAMILIA.TOLERANCIA', familia_id);
    
    if (NEW.CONFERENCIA = '1' AND New.Quantidade_Conferencia <> Old.Quantidade_Conferencia and New.Quantidade_Conferencia > Old.Quantidade_Conferencia and coalesce(new.baixado,0) = 0) then
    begin

        if( coalesce(new.liberar_tolerancia,0) = 0 AND CONTROLA_TOLERANCIA = 1)then
        begin
            SELECT FIRST 1
                   P.DESCRICAO,
                   P.INVENTARIO
              FROM TBPRODUTO P
             WHERE P.CODIGO = NEW.PRODUTO_ID
             INTO
                PRODUTO_DESCRICAO,
                PRODUTO_INVENTARIO
             ;
    
            QUANTIDADE_SOBRA = 0;
    
            UMAlternativo = Coalesce((Select First 1 F.UNIDADEMEDIDA_ALTERNATIVO From TbFamilia F, TbProduto P Where F.Codigo = P.Familia_Codigo and P.Codigo = New.Produto_Id),'');
            qtd_ml        = (New.Quantidade_Conferencia_ML + coalesce(new.quantidade_sobra,0));
            qtd_kg        = (New.quantidade_conferencia    + coalesce(new.quantidade_sobra,0));
            um            = Coalesce((Select First 1 F.UNIDADEMEDIDA_SIGLA From TbFamilia F, TbProduto P Where F.Codigo = P.Familia_Codigo and P.Codigo = New.Produto_Id),'');
    
            select
                TALAO_ID,
                PRODUTO_ID,
                GP_ID,
                PERFIL,
                QUANTIDADE_PROJETADA,
                FATOR_UNIDADE,
                QUANTIDADE_PRODUZIDA,
                QUANTIDADE_UTILIZADA,
                QUANTIDADE_ALOCADA,
                QUANTIDADE_DEFEITO
            from SPC_DADOS_CONSUMO(new.id) into
                :TALAO_ID,
                :PRODUTO_ID,
                :GP_ID,
                :PERFIL,
                :QUANTIDADE_PROJETADA,
                :FATOR_UNIDADE,
                :QUANTIDADE_PRODUZIDA,
                :QUANTIDADE_UTILIZADA,
                :QUANTIDADE_ALOCADA,
                :QUANTIDADE_DEFEITO;
    
            TOLERANCIA  = FN_TOLERANCIA_PRODUTO(NEW.PRODUTO_ID, :GP_ID, :PERFIL);
        
            TOLERANCIA_PRO_QTD_MAIOR = fn_json_v3(:TOLERANCIA, 'TOLERANCIA_PRO_QTD_MAIOR' );
            TOLERANCIA_PRO_QTD_MENOR = fn_json_v3(:TOLERANCIA, 'TOLERANCIA_PRO_QTD_MENOR' );
            TOLERANCIA_TIPO_PRO      = fn_json_v3(:TOLERANCIA, 'TOLERANCIA_TIPO_PRO'      );
            TOLERANCIA_CON_QTD_MAIOR = fn_json_v3(:TOLERANCIA, 'TOLERANCIA_CON_QTD_MAIOR' );
            TOLERANCIA_CON_QTD_MENOR = fn_json_v3(:TOLERANCIA, 'TOLERANCIA_CON_QTD_MENOR' );
            TOLERANCIA_TIPO_CON      = fn_json_v3(:TOLERANCIA, 'TOLERANCIA_TIPO_CON'      );
            SOBRA_PRODUCAO           = fn_json_v3(:TOLERANCIA, 'SOBRA_PRODUCAO'           );
            SOBRA_CONSUMO            = fn_json_v3(:TOLERANCIA, 'SOBRA_CONSUMO'            );
    
            IF(TOLERANCIA_TIPO_CON = 'Q')THEN
            BEGIN
                :TOLERANCIA_QUANTIDADE_MAIOR = TOLERANCIA_CON_QTD_MAIOR;
                :TOLERANCIA_QUANTIDADE_MENOR = TOLERANCIA_CON_QTD_MENOR;
                :TOLERANCIA_TIPO = 'Q';
            END ELSE
            BEGIN
                IF(TOLERANCIA_TIPO_CON = 'P')THEN
                BEGIN
                    :TOLERANCIA_QUANTIDADE_MAIOR = (QUANTIDADE_PROJETADA * (TOLERANCIA_CON_QTD_MAIOR / 100.0000));
                    :TOLERANCIA_QUANTIDADE_MENOR = (QUANTIDADE_PROJETADA * (TOLERANCIA_CON_QTD_MENOR / 100.0000));
                    :TOLERANCIA_TIPO = 'P';
                END ELSE
                BEGIN
                    exception "..." 'Tolerância do produto "'||:PRODUTO_ID||' - '||:PRODUTO_DESCRICAO||'" não identificada. (Verificar tolerância no produto e na família)';
                END
            END
    
            /*
            if (Char_Length(:UMAlternativo) > 0 and New.Quantidade_Conferencia_ML > 0) then
            begin
                QTD_MAX     = (New.Consumo_Ml + QUANTIDADE_SOBRA + :TOLERANCIA_QUANTIDADE_MAIOR);
                QTD_MIN     = (New.Consumo_Ml + QUANTIDADE_SOBRA - :TOLERANCIA_QUANTIDADE_MENOR);
                QTD         = (New.Consumo_Ml + QUANTIDADE_SOBRA);
                QTD_ALOC    = New.Quantidade_Conferencia_ML;
            end else
            begin
            */
    
            QTD_MAX     = (New.Consumo_Kg + QUANTIDADE_SOBRA + :TOLERANCIA_QUANTIDADE_MAIOR);
            QTD_MIN     = (New.Consumo_Kg + QUANTIDADE_SOBRA - :TOLERANCIA_QUANTIDADE_MENOR);
            QTD         = (New.Consumo_Kg + QUANTIDADE_SOBRA);
            QTD_ALOC    = New.quantidade_conferencia;
    
            um = ' '||lower(um)||'';
    
            if(not (:QUANTIDADE_UTILIZADA between QTD_MIN and QTD_MAX))then
            begin
                 Exception "..." 'QUANTIDADE DE CONSUMO INFORMADA FORA DA TOLERANCIA PERMITIDA "' || PRODUTO_DESCRICAO || '"! PROJECAO: '|| QTD ||um||' CONSUMO: '||QUANTIDADE_UTILIZADA||um||' TOLERANCIA (MAIS): '||TOLERANCIA_QUANTIDADE_MAIOR||um||' TOLERANCIA (MENOS): '||TOLERANCIA_QUANTIDADE_MENOR||um||' ID: ' || NEW.ID || ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .';
            end
    
            /*
            if( :QUANTIDADE_UTILIZADA > (QTD_ALOC + :TOLERANCIA_QUANTIDADE_MAIOR))then
            begin
                 Exception "..." 'QUANTIDADE DE CONSUMO NÃO PODE SER MAIOR DO QUE O ALOCADO "' || PRODUTO_DESCRICAO || '"! PROJECAO: '|| QTD ||um||' CONSUMO: '||:QUANTIDADE_UTILIZADA||um||' ALOCADO: '||:QTD_ALOC||um||' TOLERANCIA (MAIS): '||TOLERANCIA_QUANTIDADE_MAIOR||um||' TOLERANCIA (MENOS): '||TOLERANCIA_QUANTIDADE_MENOR||um||' ID: ' || NEW.ID || ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .';
            end
            */

            if(new.quantidade_sobra > 0 and SOBRA_CONSUMO = 0)then
            begin
                Exception "..." 'O PRODUTO "' || PRODUTO_DESCRICAO || '" NÃO PERMITE SOBRA DE CONSUMO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .';
            end

            /*
            if(:QUANTIDADE_PRODUZIDA > 0 and SOBRA_PRODUCAO = 0)then
            begin
                Exception "..." 'O PRODUTO "' || PRODUTO_DESCRICAO || '" NÃO PERMITE SOBRA DE PRODUÇÃO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .';
            end
            */
    
            if (Char_Length(:UMAlternativo) > 0 and New.Quantidade_Conferencia_ML > 0) then
            begin
                QTD_MAX     = (New.Consumo_Ml + :TOLERANCIA_QUANTIDADE_MAIOR);
                QTD_MIN     = (New.Consumo_Ml - :TOLERANCIA_QUANTIDADE_MENOR);
                QTD         = New.Consumo_Ml;
                QTD_ALOC    = New.Quantidade_Conferencia_ML;
                um          = ' '||lower(UMAlternativo)||'';

                if(not (:QTD_ALOC between QTD_MIN and QTD_MAX))then
                begin
                     --Exception "..." 'QUANTIDADE PRODUZIDA FORA DA TOLERANCIA PERMITIDA "' || PRODUTO_DESCRICAO || '"! PROJECAO: '|| QTD ||um||' PRODUZIDO: '||QTD_ALOC||um||' TOLERANCIA (MAIS): '||TOLERANCIA_QUANTIDADE_MAIOR||um||' TOLERANCIA (MENOS): '||TOLERANCIA_QUANTIDADE_MENOR||um||' ID: ' || NEW.ID || ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .';
                end
            end
    

    
            /*
            if (Char_Length(:UMAlternativo) > 0 and New.Quantidade_Conferencia_ML > 0 AND PRODUTO_INVENTARIO = '1' ) then
            begin
    
            if (((New.Quantidade_Conferencia_ML) > (New.Consumo_Ml + QUANTIDADE_SOBRA + :TOLERANCIA_QUANTIDADE_MAIOR)) or ((New.Quantidade_Conferencia_ML) < (New.Consumo_Ml + QUANTIDADE_SOBRA - :TOLERANCIA_QUANTIDADE_MENOR))) then
                begin
                Exception "..." 'QUANTIDADE DE CONSUMO INFORMADA FORA DA TOLERANCIA PERMITIDA "' || PRODUTO_DESCRICAO || '"! PROJECAO: '||New.Consumo_Ml||' CONSUMO: '||New.Quantidade_Conferencia_Ml||' TOLERANCIA (MAIS): '||TOLERANCIA_QUANTIDADE_MAIOR||' TOLERANCIA (MENOS): '||TOLERANCIA_QUANTIDADE_MENOR||' SOBRA: '||QUANTIDADE_SOBRA||' ID: ' || NEW.ID || ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .';
                End
            end else
            Begin
            if (((New.quantidade_conferencia) > (New.Consumo_Kg + QUANTIDADE_SOBRA + :TOLERANCIA_QUANTIDADE_MAIOR)) or ((New.quantidade_conferencia) < (New.Consumo_Kg + QUANTIDADE_SOBRA - :TOLERANCIA_QUANTIDADE_MENOR)))  then
                begin
                Exception "..." 'QUANTIDADE DE CONSUMO INFORMADA FORA DA TOLERANCIA PERMITIDA "' || PRODUTO_DESCRICAO || '"! PROJECAO: '||New.Consumo_Kg||' CONSUMO: '||New.Quantidade_Conferencia||' TOLERANCIA (MAIS): '||TOLERANCIA_QUANTIDADE_MAIOR||' TOLERANCIA (MENOS): '||TOLERANCIA_QUANTIDADE_MENOR||' SOBRA: '||QUANTIDADE_SOBRA||' ID: ' || NEW.ID || ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .';
                End
            End
            */
    
            /*
            tTolerancia = '';
    
            -- Verifica tolerancia por produto
            For
            Select First 1 PF.Tolerancia_Qtd, PF.Tolerancia_Perc, PF.Tolerancia_Tipo
              From TbProduto_Ficha PF Where PF.produto_codigo = New.Produto_Id and PF.Tolerancia_tipo in ('Q','P')
              Into :qTolerancia, :pTolerancia, :tTolerancia
             Do
             Begin
    
                UMAlternativo = Coalesce((Select First 1 F.UnidadeMedida_Alternativo From TbFamilia F, TbProduto P Where F.Codigo = P.Familia_Codigo and P.Codigo = New.Produto_Id),'');
                if (tTolerancia = 'Q') then --Tolerancia em Quantidade
                    Begin
                        qtd_ml = (New.Quantidade_Conferencia_ML + coalesce(new.quantidade_sobra,0));
                        qtd_kg = (New.quantidade_conferencia    + coalesce(new.quantidade_sobra,0));
    
                        if (Char_Length(:UMAlternativo) > 0 and New.Quantidade_Conferencia_ML > 0 AND PRODUTO_INVENTARIO = '1' ) then
                            begin
    
                            if (((New.Quantidade_Conferencia_ML) > (New.Consumo_Ml + QUANTIDADE_SOBRA + :qTolerancia)) or ((New.Quantidade_Conferencia_ML) < (New.Consumo_Ml + QUANTIDADE_SOBRA - :qTolerancia))) then
                                begin
                                Exception "..." 'QUANTIDADE INFORMADA FORA DA TOLERANCIA PERMITIDA PARA O PRODUTO "' || PRODUTO_DESCRICAO || '"! PROJECAO: '||New.Consumo_Ml||' CONSUMO: '||New.Quantidade_Conferencia_Ml||' TOLERANCIA: '||qTolerancia||' SOBRA: '||QUANTIDADE_SOBRA||' ID: ' || NEW.ID || ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .';
                                End
                            end else
                            Begin
                            if (((New.quantidade_conferencia) > (New.Consumo_Kg + QUANTIDADE_SOBRA + :qTolerancia)) or ((New.quantidade_conferencia) < (New.Consumo_Kg + QUANTIDADE_SOBRA - :qTolerancia)))  then
                                begin
                                Exception "..." 'QUANTIDADE INFORMADA FORA DA TOLERANCIA PERMITIDA PARA O PRODUTO "' || PRODUTO_DESCRICAO || '"! PROJECAO: '||New.Consumo_Kg||' CONSUMO: '||New.Quantidade_Conferencia||' TOLERANCIA: '||qTolerancia||' SOBRA: '||QUANTIDADE_SOBRA||' ID: ' || NEW.ID || ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .';
                                End
                            End
                    End else
                if (tTolerancia = 'P') then --Tolerancia em Percentual
                    Begin
    
                        if (Char_Length(:UMAlternativo) > 0 and New.Quantidade_Conferencia_ML > 0 AND PRODUTO_INVENTARIO = '1') then
                            begin
                            if (((New.Quantidade_Conferencia_ML) > (New.Consumo_Ml + ((New.Consumo_Ml + QUANTIDADE_SOBRA) * (:pTolerancia/100.0000)))) or
                                ((New.Quantidade_Conferencia_ML) < (New.Consumo_Ml - ((New.Consumo_Ml + QUANTIDADE_SOBRA) * (:pTolerancia/100.0000))))) then
                                begin
                                Exception "..." 'QUANTIDADE INFORMADA FORA DO PERCENTUAL DE TOLERANCIA PERMITIDO PARA O PRODUTO "' || PRODUTO_DESCRICAO || '"! PROJECAO: '||New.Consumo_Ml||' CONSUMO: '||New.Quantidade_Conferencia_Ml||' TOLERANCIA: '||pTolerancia||'% SOBRA: '||coalesce(new.quantidade_sobra,0)|| 'ID ' || NEW.ID ||' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .';
                                End
                            end else
                            Begin
                            if (((New.quantidade_conferencia) > (New.Consumo_Kg + ((New.Consumo_Kg + QUANTIDADE_SOBRA) * (:pTolerancia/100.0000)))) or
                                ((New.quantidade_conferencia) < (New.Consumo_Kg - ((New.Consumo_Kg + QUANTIDADE_SOBRA) * (:pTolerancia/100.0000))))) then
                                begin
                                Exception "..." 'QUANTIDADE INFORMADA FORA DO PERCENTUAL DE TOLERANCIA PERMITIDO PARA O PRODUTO "' || PRODUTO_DESCRICAO || '"! PROJECAO: '||New.Consumo_Kg||' CONSUMO: '||New.Quantidade_Conferencia||' TOLERANCIA: '||pTolerancia||'% SOBRA: '||coalesce(new.quantidade_sobra,0)|| 'ID ' || NEW.ID || ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .';
                                End
                            End
                    End
             End
    
                if (tTolerancia = '') then
                    begin
            
                        -- Verifica tolerancia por familia
                        For
                        Select First 1 F.Tolerancia_Qtd, F.Tolerancia_Perc, F.Tolerancia_Tipo, F.UnidadeMedida_Alternativo
                          From TbFamilia F, TbProduto P Where F.Codigo = P.Familia_Codigo and P.Codigo = New.Produto_Id and F.Tolerancia_tipo in ('Q','P')
                          Into :qTolerancia, :pTolerancia, :tTolerancia, :UMAlternativo
                         Do
                         Begin
            
                            if (tTolerancia = 'Q') then --Tolerancia em Quantidade
                                Begin
                                if (Char_Length(:UMAlternativo) > 0 and New.Quantidade_Conferencia_ML > 0 AND PRODUTO_INVENTARIO = '1') then
                                    begin
                                    if ((New.Quantidade_Conferencia_ML > (New.Consumo_Ml + QUANTIDADE_SOBRA + :qTolerancia)) or (New.Quantidade_Conferencia_ML < (New.Consumo_Ml + QUANTIDADE_SOBRA - :qTolerancia))) then
                                        begin
                                        Exception "..." 'QUANTIDADE INFORMADA FORA DA TOLERANCIA DA FAMILIA PERMITIDA PARA O PRODUTO "' || PRODUTO_DESCRICAO || '"! PROJECAO: '||New.Consumo_Ml||' CONSUMO: '||New.Quantidade_Conferencia_Ml||' TOLERANCIA: '||qTolerancia||'. ID:' || NEW.ID;
                                        End
                                    end else
                                    Begin
                                    if ((New.Quantidade_Conferencia > (New.Consumo_Kg + QUANTIDADE_SOBRA + :qTolerancia)) or (New.Quantidade_Conferencia < (New.Consumo_Kg + QUANTIDADE_SOBRA - :qTolerancia)))  then
                                        begin
                                        Exception "..." 'QUANTIDADE INFORMADA FORA DA TOLERANCIA DA FAMILIA PERMITIDA PARA O PRODUTO "' || PRODUTO_DESCRICAO || '"! PROJECAO: '||New.Consumo_Kg||' CONSUMO: '||New.Quantidade_Conferencia||' TOLERANCIA: '||qTolerancia||'. ID:' || NEW.ID;
                                        End
                                    End
                                End else
                            if (tTolerancia = 'P') then --Tolerancia em Percentual
                                Begin
                                if (Char_Length(:UMAlternativo) > 0 and New.Quantidade_Conferencia_ML > 0 AND PRODUTO_INVENTARIO = '1') then
                                    begin
                                    if ((New.Quantidade_Conferencia_Ml > (New.Consumo_Ml + ((New.Consumo_Ml + QUANTIDADE_SOBRA) * (:pTolerancia/100.0000)))) or
                                        (New.Quantidade_Conferencia_Ml < (New.Consumo_Ml - ((New.Consumo_Ml + QUANTIDADE_SOBRA) * (:pTolerancia/100.0000))))) then
                                        begin
                                        Exception "..." 'QUANTIDADE INFORMADA FORA DO PERCENTUAL DE TOLERANCIA DA FAMILIA PERMITIDO PARA O PRODUTO "' || PRODUTO_DESCRICAO || '"! PROJECAO: '||New.Consumo_Ml||' CONSUMO: '||New.Quantidade_Conferencia_Ml||' TOLERANCIA: '||pTolerancia||'%. ID:' || NEW.ID;
                                        End
                                    end else
