ERP - Recebimento Eletrônico - Diferença de Valor do ISS entre Dados Gerais e Itens de Serviço
Incidente
No módulo de Recebimento, ao tentar gerar a nota fiscal de entrada na tela F000INE_SRNF - Suprimentos / Gestão de Recebimento / Notas Fiscais de Entrada / Via Recebimento de Documento Eletrônico, é identificada uma diferença de valor na Base de Cálculo do ISS entre os dados gerais e os itens de serviço.
Causa
Este incidente ocorre, pois no XML da nota não foi enviado a tag baseCalculoIss no item, somente para os dados gerais. Com isso, na importação, o ERP irá calcular a base do ISS do item com base no na alíquota e no valor do ISS.
Solução
Caso queira igualar os valores, pode utilizar os identificadores CPR-000INECM01 e CPR-000INECM02, para manipular os valores a serem considerados nos itens. Dessa forma, o valor do ISS ficará igual nos dados gerais e itens.
No identificador CPR-000INECM01 informe a Alíquota, Valor, Base de Calculo do ISS e Valor bruto do item, para que possam ser utilizados no ID CPR-000INECM02.
Abaixo seguem exemplos de regra que podem ser utilizados nos identificadores CPR-000INECM01 e CPR-000INECM02:
CPR-000INECM01:
Se (CPRATIPDEC = "S") { @Quando for NFs-e @
CPRATAGISC = "item|aliquota,item|iss,item|baseCalculoIss,item|valorBruto";
CPR-000INECM02:
Definir Alfa CPRA_ITEM_ALIQUOTA;
Definir Alfa CPRA_ITEM_ISS;
Definir Alfa CPRA_ITEM_VALORBRUTO;
Definir Alfa CPRA_ITEM_BASECALCULOISS;
Definir Numero vsAliquota;
Definir Numero vsIss;
Definir Numero vsValorBruto;
Definir Numero vsBaseCalculoISS;
Se ((CPRATIPDEC = "S") e (CPRATABELA = "E000ISC")) @S = NFS@
inicio
SubstAlfa(".", ",", CPRA_ITEM_ALIQUOTA);
SubstAlfa(".", ",", CPRA_ITEM_ISS);
SubstAlfa(".", ",", CPRA_ITEM_VALORBRUTO);
SubstAlfa(".", ",", CPRA_ITEM_BASECALCULOISS);
alfaparaint(CPRA_ITEM_ALIQUOTA,vsAliquota);
alfaparaint(CPRA_ITEM_ISS,vsIss);
alfaparaint(CPRA_ITEM_VALORBRUTO,vsValorBruto);
alfaparaint(CPRA_ITEM_BASECALCULOISS,vsBaseCalculoISS);
@temos aliquota ISS | não temos Base ISS | temos Valor de ISS | temos Valor Bruto@
se ((vsAliquota > 0) e (vsBaseCalculoISS = 0) e (vsIss > 0) e (vsValorBruto > 0))
inicio
@como não temos a base, aplicaremos o valor bruto como base@
E000ISC.vlrBis = vsValorBruto;
fim;
fim;