Bom dia a todos,
Estou com uma dúvida sobre este assunto, não seria interessante acertarmos a Unit: pcnNFeW, mudando o parâmetro de "0" para "1";
Sei que a regra "N12-97" é facultativa, mas mudando o parâmetro da Unit acima , exclusivamente na "cst51", irá resolver o problema de todos, sem ter a necessidade de informar valores inexistentes.
Alteração foi feita no método: TNFeW.GerarDetImpostoICMS;
if nfe.Det.Imposto.ICMS.modBC <> dbiNenhum then
Gerador.wCampo(tcStr, 'N13', 'modBC', 01, 01, 1, modBCToStr(nfe.Det.Imposto.ICMS.modBC), DSC_MODBC);
Gerador.wCampo(IIf(FUsar_tcDe4,tcDe4,tcDe2), 'N14', 'pRedBC ', 01, IIf(FUsar_tcDe4,07,05), 1, nfe.Det.Imposto.ICMS.pRedBC, DSC_PREDBC);
Gerador.wCampo(tcDe2, 'N15', 'vBC ', 01, 15, 1, nfe.Det.Imposto.ICMS.vBC, DSC_VBC);
Gerador.wCampo(IIf(FUsar_tcDe4,tcDe4,tcDe2), 'N16', 'pICMS ', 01, IIf(FUsar_tcDe4,07,05), 1, nfe.Det.Imposto.ICMS.pICMS, DSC_PICMS);
Gerador.wCampo(tcDe2, 'N16a', 'vICMSOp ', 01, 15, 1, nfe.Det.Imposto.ICMS.vICMSOp, DSC_VICMS);
Gerador.wCampo(IIf(FUsar_tcDe4,tcDe4,tcDe2), 'N16b', 'pDif ', 01, IIf(FUsar_tcDe4,07,05), 1, nfe.Det.Imposto.ICMS.pDif, DSC_PICMS);
Gerador.wCampo(tcDe2, 'N16c', 'vICMSDif', 01, 15, 1, nfe.Det.Imposto.ICMS.vICMSDif, DSC_VICMS);
{if (nfe.Det.Imposto.ICMS.pICMS = 0) and (nfe.Det.Imposto.ICMS.pDif = 0) then
Gerador.wCampo(tcDe2, 'N17', 'vICMS', 01, 15, 1, nfe.Det.Imposto.ICMS.vICMS, DSC_VICMS)
else }
Gerador.wCampo(tcDe2, 'N17', 'vICMS', 01, 15, 1, nfe.Det.Imposto.ICMS.vICMS, DSC_VICMS);
Fiz testes com pDif igual a 30% e 100%, além disso foi feito testes com o mesmo igual a 0% e os demais campos também zerados. Aparentemente todas NF-es autorizadas pela SEFAZ.
Espero ter ajudado.
Att. Alan Leônidas.
pcnNFeW.pas