Pessoal, boa tarde.
Hoje meu cliente foi transmitir uma NFe com finalidade de Ajuste, a nota é um estorno de uma nota não cancelada no prazo legal, então a finalidade deve ser de ajuste. Neste casos o NCM deve ser 00, mas ao fazer a validação das regras de negócio está criticando as seguintes falhas.
564-Rejeição: Total do Produto / Serviço difere do somatório dos itens
610-Rejeição: Total da NF difere do somatório dos valores compõe o valor Total da NF
Analisando a Unit ACBrNFeNotasFiscais no método ValidarRegrasdeNegocios na linha 1029 verifiquei que é feito a seguinte validação.
// quando for serviço o produto não soma do total de produtos
if (Prod.NCM <> '00') then
fsvProd := fsvProd + Prod.vProd;
Então ele irá somar a variável fsvProd apenas quando NCM diferente de 00. Mas ai que entra a situação exemplificada acima, pois a nota de Ajuste é de um produto e não serviço, e validando o XML gerado não ocorre críticas.
Acredito que tenha que existir uma segunda condição nesta linha, que ao meu ver ficaria da seguinte forma.
// quando for serviço o produto não soma do total de produtos, quando for nota de ajuste também irá somar
if (Prod.NCM <> '00') or ((Prod.NCM = '00') and (NFe.Ide.finNFe = fnAjuste)) then
fsvProd := fsvProd + Prod.vProd;
Caso o NCM seja 00 e a nota seja de Ajuste irá compor total dos produtos.
Por favor, vejam se está situação está correta e desde já agradeço pelo apoio.