SET TERM ^ ;

CREATE OR ALTER procedure SPU_NFS_ITEM (
    NFS_CONTROLE integer,
    SEQUENCIA 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(18,8),
    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(10),
    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),
    CCUSTO varchar(8),
    CONTA_CONTABIL varchar(11),
    MARGEM numeric(10,2) = 0,
    PDV_CONFERENCIA_ITEM_ID integer = 0,
    PDV_CONFERENCIA_ID integer = 0,
    PERCENTUAL_SUFRAMA numeric(15,2) = 0,
    VALOR_SUFRAMA numeric(15,2) = 0,
    PERCENTUAL_ICMS_OPERACAO numeric(15,2) = 0,
    BASECALCULO_SUFRAMA NUMERIC(15,2) = 0,
    VALOR_SUFRAMA_PIS NUMERIC(15,2) = 0,
    VALOR_SUFRAMA_COFINS NUMERIC(15,2) = 0,
    VALOR_SUFRAMA_IPI NUMERIC(15,2) = 0,
    VALOR_SUFRAMA_ICMS NUMERIC(15,2) = 0,
    PERCENTUAL_SUFRAMA_PIS NUMERIC(15,2) = 0,
    PERCENTUAL_SUFRAMA_COFINS NUMERIC(15,2) = 0,
    PERCENTUAL_SUFRAMA_IPI NUMERIC(15,2) = 0,
    PERCENTUAL_SUFRAMA_ICMS NUMERIC(15,2) = 0)
as
BEGIN

-- UPDATE TBNFS_ITEM
UPDATE TBNFS_ITEM SET
ESTABELECIMENTO_CODIGO              = :ESTABELECIMENTO_CODIGO,
SEQUENCIA                           = :SEQUENCIA,
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_ALTERNATIVA                      = :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,
PERCENTUAL_SUFRAMA                  = :PERCENTUAL_SUFRAMA,
VALOR_SUFRAMA                       = :VALOR_SUFRAMA,
PERCENTUAL_ICMS_OPERACAO            = :PERCENTUAL_ICMS_OPERACAO,
BASECALCULO_SUFRAMA                 = :BASECALCULO_SUFRAMA,
VALOR_SUFRAMA_PIS                   = :VALOR_SUFRAMA_PIS,
VALOR_SUFRAMA_COFINS                = :VALOR_SUFRAMA_COFINS,
VALOR_SUFRAMA_IPI                   = :VALOR_SUFRAMA_IPI,
VALOR_SUFRAMA_ICMS                  = :VALOR_SUFRAMA_ICMS,
PERCENTUAL_SUFRAMA_PIS              = :PERCENTUAL_SUFRAMA_PIS,
PERCENTUAL_SUFRAMA_COFINS           = :PERCENTUAL_SUFRAMA_COFINS,
PERCENTUAL_SUFRAMA_IPI              = :PERCENTUAL_SUFRAMA_IPI,
PERCENTUAL_SUFRAMA_ICMS             = :PERCENTUAL_SUFRAMA_ICMS,

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,
CCUSTO                              = :CCUSTO,
CONTA_CONTABIL                      = :CONTA_CONTABIL


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 ; ^

