Histórico da Página
...
A API tem como objetivo realizar a geração de um documento no conversor de NF-e (notas fiscais eletrônicas) e se parametrizado, também realizar a efetivação deste documento no recebimento físico ou fiscal.
Funcionamento
A API REP/REAPI320.P recebe como parâmetro um valor lógico para indicar se deve processar a nota para o recebimento, as temp-tables que contem as informações no XML da NF-e e retorna uma temp-table com os erros ocorridos durante esse processo.
O primeiro parâmetro deve conter o valor “NO” quando a nota fiscal deve ser criada no Conversor de NF-e, porém não deve ser efetivado no recebimento. Neste caso a nota ficará como em “Em validação”. Se informado o valor “YES”, a nota será criada no recebimento e a API tentará efetivá-la no recebimento físico ou fiscal (conforme regras estabelecidas para a recepção de NF-e)
Na forma padrão, realiza-se a chamada através de um comando RUN normal, passando-se os parâmetros necessários.
A sintaxe para a chamada da API é:
RUN rep/reapi320.p (INPUT < YES/NO >, /* YES – Processar o document para o recebimento*/
INPUT TABLE tt-doc-orig-nfe,
INPUT TABLE tt-doc-orig-duplic-nfe,
INPUT TABLE tt-doc-orig-lacre-nfe,
INPUT TABLE tt-doc-orig-refer-nfe,
INPUT TABLE tt-doc-orig-proc-ref-nfe,
INPUT TABLE tt-doc-orig-volume-nfe,
INPUT TABLE tt-item-doc-orig-nfe,
INPUT TABLE tt-item-doc-orig-adic-nfe,
INPUT TABLE tt-item-doc-orig-arma-nfe,
INPUT TABLE tt-item-doc-orig-di-nfe,
INPUT TABLE tt-item-doc-orig-med-nfe,
INPUT TABLE tt-doc-orig-for-dia-cana,
INPUT TABLE tt-doc-orig-deduc-cana,
INPUT-OUTPUT TABLE tt-erro).
...
sugestão dos CST (Código de Situação Tributária) para os tributos IPI (Imposto Sobre Produto Industrialização), PIS (Programa Integração Social) e COFINS (Contribuição para o Financiamento da Seguridade Social) na entrada de notas fiscais no recebimento.
Ressaltamos que essa funcionalidade está disponível a partir da release 12.1.27 do sistema Datasul.
Funcionamento
A API pode ser executada de várias formas dependendo da necessidade. Por exemplo, se houver a necessidade de se sugerir apenas o CST de um dos tributos, é possível.
Abaixo colocamos a sintaxe para a chamada das procedures da REAPI414, para sugerir o CST de todos os tributos:
RUN rep\reapi414.p PERSISTENT SET h-reapi414.
RUN setTipoNota IN h-reapi414 (INPUT 1).
RUN setCodEstabel IN h-reapi414 (INPUT docum-est.cod-estabel).
RUN setCodNatOperacao IN h-reapi414 (INPUT IF item-doc-est.nat-of <> "" THEN item-doc-est.nat-of ELSE item-doc-est.nat-operacao).
RUN setNcm IN h-reapi414 (INPUT item-doc-est.class-fiscal).
RUN setItCodigo IN h-reapi414 (INPUT item-doc-est.it-codigo).
RUN setCodGrupEmit IN h-reapi414 (INPUT emitente.cod-gr-forn).
RUN setCodEmitente IN h-reapi414 (INPUT item-doc-est.cod-emitente).
RUN setDtEmissao IN h-reapi414 (INPUT docum-est.dt-emissao).
RUN calcCSTCD0303 IN h-reapi414.
RUN posicionarRegistros IN h-reapi414 (INPUT ROWID(item-doc-est)).
RUN calcCSTICMS IN h-reapi414.
RUN getCodOrigemItem IN h-reapi414 (OUTPUT c-cod-origem-item).
RUN getCodSitTribICMS IN h-reapi414 (OUTPUT c-cod-sit-tribut-icms).
RUN calcCSTIPI IN h-reapi414 (INPUT item-doc-est.cd-trib-ipi, INPUT item-doc-est.aliquota-ipi).
RUN getCodSitTribIPI IN h-reapi414 (OUTPUT c-cod-sit-tribut-ipi).
RUN getAliqPISCOFINSItDoc IN h-reapi414 (INPUT ROWID(item-doc-est), OUTPUT de-aliq-pis, OUTPUT de-aliq-cofins).
RUN calcCSTPIS IN h-reapi414 (INPUT item-doc-est.idi-tributac-pis, INPUT de-aliq-pis).
RUN calcCSTCOFINS IN h-reapi414 (INPUT item-doc-est.idi-tributac-cofins, INPUT de-aliq-cofins).
RUN getCodSitTribPIS IN h-reapi414 (OUTPUT c-cod-sit-tribut-pis).
RUN getCodSitTribCOFINS IN h-reapi414 (OUTPUT c-cod-sit-tribut-cofins).
DELETE PROCEDURE h-reapi414.
A seguir iremos detalhar a funcionalidade de cada procedure:
Procedure | Objetivo | Parâmetros de Entrada | Parâmetros de Retorno | Pré-requisito |
---|---|---|---|---|
setTipoNota | Setar o tipo de nota. | Fixo 1-NF Entrada | ||
setCodEstabel | Setar o código do estabelecimento da nota. | Código do estabelecimento | ||
setCodNatOperacao | Setar a natureza de operação do item da nota. | Código da natureza de operação | ||
setNcm | Setar a NCM (classificação fiscal) do item da nota. | Código da classificação fiscal | ||
setItCodigo | Setar o código do item da nota. | Código do item da nota | ||
setCodGrupEmit | Setar o grupo do fornecedor da nota. | Código do grupo do fornecedor | ||
setCodEmitente | Setar o código do fornecedor da nota. | Código do fornecedor | ||
setDtEmissao | Setar a data de emissão da nota. | Data de emissão da nota | ||
posicionarRegistros | Posicionar nas tabelas necessárias para a sugestão dos CSTs. | ROWID da tabela item-doc-est | ||
calcCSTCD0303 | Buscar a parametrização do CD0303 (Manutenção Relacionamento CST), caso a mesma exista. | Executar as procedures setTipoNota, setCodEstabel, setCodNatOperacao, setNcm, setItCodigo, setCodGrupEmit, setCodEmitente e setDtEmissao. | ||
calcCSTICMS | Calcular o CST do ICMS conforme a combinação da parametrização da natureza de operação e do item da nota. | Executar a procedure posicionarRegistros. | ||
calcCSTIPI | Calcular o CST do IPI conforme a combinação da parametrização da natureza de operação e do item da nota. Caso, não tenha encontrado relacionamentos no CD0303. | Código de tributação IPI, Alíquota IPI | Executar a procedure posicionarRegistros. | |
calcCSTPIS | Calcular o CST do PIS conforme a combinação da parametrização da natureza de operação e do item da nota. Caso, não tenha encontrado relacionamentos no CD0303. | Código de tributação PIS, Alíquota PIS | Executar a procedure posicionarRegistros. | |
calcCSTCOFINS | Calcular o CST do COFINS conforme a combinação da parametrização da natureza de operação e do item da nota. Caso, não tenha encontrado relacionamentos no CD0303. | Código de tributação COFINS, Alíquota COFINS | Executar a procedure posicionarRegistros. | |
getAliqPISCOFINSItDoc | Retornar as alíquotas de PIS e da COFINS do item da nota. | ROWID da tabela item-doc-est | Alíquota PIS e Alíquota COFINS | |
getCodOrigemItem | Retornar a origem do item da nota. | Origem | Executar a procedure calcCSTICMS. | |
getCodSitTribICMS | Retornar o CST do ICMS, seja da combinação da parametrização ou do CD0303. | CST ICMS | Executar a procedure calcCSTICMS. | |
getCodSitTribIPI | Retornar o CST do IPI, seja da combinação da parametrização ou do CD0303. | CST IPI | Executar a procedure calcCSTCD0303 e/ou calcCSTICMS. | |
getCodSitTribPIS | Retornar o CST do PIS, seja da combinação da parametrização ou do CD0303. | CST PIS | Executar a procedure calcCSTCD0303 e/ou calcCSTICMS. | |
getCodSitTribCOFINS | Retornar o CST do COFINS, seja da combinação da parametrização ou do CD0303. | CST COFINS | Executar a procedure calcCSTCD0303 e/ou calcCSTICMS. |
Caso queira mais detalhes sobre as regras de negócio aplicadas pelo produto padrão para a sugestão do CST pela combinação da parametrização da natureza de operação e do item, e ou sobre a forma de busca do CST definido no CD0303, sugerimos consultar a documentação da Geração do CST para IPI, PIS e COFINS
Tabelas Temporárias
Definição das tabelas temporárias de entrada e saída:
DEF TEMP-TABLE tt-doc-orig-nfe LIKE doc-orig-nfe.
DEF TEMP-TABLE tt-doc-orig-duplic-nfe LIKE doc-orig-duplic-nfe.
DEF TEMP-TABLE tt-doc-orig-lacre-nfe LIKE doc-orig-lacre-nfe.
DEF TEMP-TABLE tt-doc-orig-refer-nfe LIKE doc-orig-refer-nfe.
DEF TEMP-TABLE tt-doc-orig-proc-ref-nfe LIKE doc-orig-proc-ref-nfe.
DEF TEMP-TABLE tt-doc-orig-volume-nfe LIKE doc-orig-volume-nfe.
DEF TEMP-TABLE tt-item-doc-orig-nfe LIKE item-doc-orig-nfe.
DEF TEMP-TABLE tt-item-doc-orig-adic-nfe LIKE item-doc-orig-adic-nfe.
DEF TEMP-TABLE tt-item-doc-orig-arma-nfe LIKE item-doc-orig-arma-nfe.
DEF TEMP-TABLE tt-item-doc-orig-di-nfe LIKE item-doc-orig-di-nfe.
DEF TEMP-TABLE tt-item-doc-orig-med-nfe LIKE item-doc-orig-med-nfe.
DEF TEMP-TABLE tt-doc-orig-for-dia-cana LIKE doc-orig-for-dia-cana.
DEF TEMP-TABLE tt-doc-orig-deduc-cana LIKE doc-orig-deduc-cana.
DEF TEMP-TABLE tt-erro NO-UNDO
FIELD identif-segment AS CHAR
FIELD cd-erro AS INTEGER
FIELD desc-erro AS CHAR FORMAT "x(80)".