Identificador de Regra
CPR-000TORTC01
Finalidade: Permitir que a customização decida se tolera (ignora) ou bloqueia divergências entre o valor calculado pelo ERP e o valor recebido no XML da NF-e, para os tributos da Reforma Tributária (IBS, CBS e Imposto Seletivo), item a item, no Recebimento Eletrônico. O objetivo é evitar que pequenas diferenças de arredondamento no cálculo item a item — que não representam erro tributário real — bloqueiem o recebimento da nota. O valor gravado na nota permanece sempre o calculado pelo ERP; este identificador não altera o valor gravado, apenas decide se a divergência impede ou não o processamento.
Módulo: CPR - Compras.
Rotinas:
- F000INE - Recebimento Eletrônico
- Processo Agendado 67
- Web Service com.senior.g5.co.mcm.cpr.recebimentoeletronico, porta Processar.
Transação: Não se aplica.
Características:
- O identificador é executado durante a consistência de valores da Reforma Tributária no Recebimento Eletrônico, uma vez para cada item de produto ou serviço que apresente ao menos uma divergência de base de cálculo, alíquota ou valor de imposto entre o XML e o cálculo do ERP.
- Inativo (comportamento padrão): qualquer divergência encontrada bloqueia o recebimento, deixando a nota como "Inconsistente".
- Ativo: a regra percorre a lista de divergências do item (CprNLista) e, para cada linha que se deseje tolerar, altera o valor da variável CprATolDvg para S. Linhas não alteradas permanecem com o valor padrão N (bloqueia).
- Nenhuma mensagem ou consistência deve ser utilizada neste identificador; a regra deve apenas percorrer a lista e alterar a variável CprATolDvg nas linhas aplicáveis.
Atenção!
Dependência com o identificador CPR-000INECN01: este identificador só é executado quando o item apresenta divergência na consistência de valores dos Impostos RTC. Essa consistência depende da parametrização definida no CPR-000INECN01:
- CprATransfereImpostosRTCDoXMLProduto / CprATransfereImpostosRTCDoXMLServico: quando configuradas como S, o sistema assume os valores do XML sem compará-los ao calculado pelo ERP. Nesse caso, a consistência de valores nunca é executada e o CPR-000TORTC01 nunca é chamado para aquele item.
- CprAImpostosRTCProduto / CprAImpostosRTCServico: definem quais impostos RTC (CBS, IBS, IS) são ignorados na consistência. Se o Imposto Seletivo (IS) estiver incluído nessa lista, as divergências desse imposto não são verificadas e a tolerância configurada para IS no CPR-000TORTC01 nunca será avaliada.
Variáveis Disponibilizadas:
| Nome | Tipo | Observações | Retorna Valor |
|---|---|---|---|
| CprACgcFil | ALFA | CNPJ/CPF da filial que está recebendo a nota fiscal. | N |
| CprACgcFor | ALFA | CNPJ/CPF do fornecedor que emitiu a nota fiscal. | N |
| CprAChvNel | ALFA | Chave eletrônica da nota. | N |
| CprAProSer | ALFA | Indica se o item é um produto ou serviço. Valores: PRODUTO, SERVICO. | N |
| CprNSeqIte | NÚMERO | Sequência do item de produto/serviço na nota fiscal (SeqIpc/SeqIsc). | N |
| CprNLista | LISTA | Lista das divergências encontradas entre o valor calculado pelo ERP e o valor recebido no XML, para o item atual. | N |
Campos da lista CprNLista:
Lista das divergências de base de cálculo, alíquota ou valor encontradas entre o calculado pelo ERP e o recebido no XML, para cada imposto do item atual (IBS, CBS ou Imposto Seletivo).
| Nome | Tipo | Observações | Retorna Valor |
|---|---|---|---|
| CprACodImp | ALFA | Código do imposto (E051IMP.CODIMP). | N |
| CprAGrdDvg | ALFA | Grandeza divergente. Valores: BASE, ALIQUOTA, VALOR. | N |
| CprNVlrCal | NÚMERO | Valor calculado pelo ERP para a grandeza indicada em CprAGrdDvg. | N |
| CprNVlrXml | NÚMERO | Valor informado no XML da NF-e para a grandeza indicada em CprAGrdDvg. | N |
| CprNValDif | NÚMERO | Valor da diferença absoluta entre o calculado e o do XML, já arredondada. | N |
| CprATolDvg | ALFA | Tolerar a divergência encontrada. Valores: S, N. Valor padrão: N (bloqueia). Deve ser alterado para S por meio de ListaRegraAlterarLinhaAlfa quando a customização decidir tolerar aquela divergência específica. | S |
Regra:
definir alfa CprACgcFil;
definir alfa CprACgcFor;
definir alfa CprAChvNel;
definir alfa CprAProSer;
definir numero CprNSeqIte;
@ Variaveis da Lista de divergencias @
definir numero CprNLista;
Definir Alfa RetornouValor;
Definir Alfa FimDaLista;
Definir Alfa obtValorAlfa_CodImp;
Definir Alfa obtValorAlfa_GrdDvg;
Definir Numero obtValorNumero_VlrCal;
Definir Numero obtValorNumero_VlrXml;
Definir Numero obtValorNumero_ValDif;
Definir Alfa AlterouValor;
@ Varre a lista de divergencias do item atual @
ListaRegraPrimeiro(CprNLista, RetornouValor);
se (RetornouValor = "S")
inicio
FimDaLista = "N";
enquanto (FimDaLista <> "S")
inicio
ListaRegraObterValorAlfa(CprNLista, "CprACodImp", obtValorAlfa_CodImp, RetornouValor);
ListaRegraObterValorAlfa(CprNLista, "CprAGrdDvg", obtValorAlfa_GrdDvg, RetornouValor);
ListaRegraObterValorNumero(CprNLista, "CprNVlrCal", obtValorNumero_VlrCal, RetornouValor);
ListaRegraObterValorNumero(CprNLista, "CprNVlrXml", obtValorNumero_VlrXml, RetornouValor);
ListaRegraObterValorNumero(CprNLista, "CprNValDif", obtValorNumero_ValDif, RetornouValor);
@ Exemplo de tolerancia especifica por imposto: IS tolera ate R$ 0,05 na BASE @
se ((obtValorAlfa_CodImp = "IS") e (obtValorAlfa_GrdDvg = "BASE") e (obtValorNumero_ValDif <= 0.05))
inicio
ListaRegraAlterarLinhaAlfa(CprNLista, "CprATolDvg", "S", AlterouValor);
fim
@ Exemplo de tolerancia: tolera ate R$ 0,15 na ALIQUOTA @
se ((obtValorAlfa_GrdDvg = "ALIQUOTA") e (obtValorNumero_ValDif <= 0.15))
inicio
ListaRegraAlterarLinhaAlfa(CprNLista, "CprATolDvg", "S", AlterouValor);
fim
@ Exemplo de tolerancia: tolera R$ 0,01 no VALOR do imposto @
se ((obtValorAlfa_GrdDvg = "VALOR") e (obtValorNumero_ValDif <= 0.01))
inicio
ListaRegraAlterarLinhaAlfa(CprNLista, "CprATolDvg", "S", AlterouValor);
fim
ListaRegraProximo(CprNLista, RetornouValor);
ListaRegraFim(CprNLista, FimDaLista);
fim
fim
|
Atenção
Caso o parâmetro global LisVarReg esteja habilitado, a variável ListaVariaveis estará disponível em todos os identificadores de regras do sistema. O conteúdo desta variável lista os campos disponibilizados no identificador de regras em questão.
Não é aconselhada a ativação desse parâmetro global para o uso cotidiano. Esse recurso de listagem dos campos de identificadores auxilia a construção de regras e o Suporte para, por exemplo, depuração ou quando não houver acesso à documentação dos identificadores de regras.
English
Español
English
Español


