1º Erro - CST 49
Na emissão do CF-e com o CST 49 no PIS/COFINS, o projeto acbr está gerando o xml com a tag PISOutr e COFINSOutr quando de acordo com o leiaute o correto seria gerar as tags PISSN e COFINSSN somente com o campo CST. ( Manual de Especificações Técnica de Requistos - SAT Paginas: 77/81 ).
Unit:
pcnCFeW
Procedimentos:
procedure TCFeW.GerarDetImpostoPIS(const i: integer);
procedure TCFeW.GerarDetImpostoCOFINS(const i: integer);
Está tratando o CST 49 da mesma forma que os códigos 50, 51, 52, 53, 54, 55, 56, 60, 61, 62, 63, 64, 65, 66, 67, 70, 71, 72, 73, 74, 75, 98 e 99.
else if CFe.Det.Imposto.PIS.CST in [pis49, pis50, pis51, pis52, pis53, pis54, pis55, pis56, pis60, pis61, pis62, pis63, pis64, pis65, pis66, pis67, pis70, pis71, pis72, pis73, pis74, pis75, pis98, pis99] then
else if CFe.Det.Imposto.COFINS.CST in [cof49, cof50, cof51, cof52, cof53, cof54, cof55, cof56, cof60, cof61, cof62, cof63, cof64, cof65, cof66, cof67, cof70, cof71, cof72, cof73, cof74, cof75, cof98, cof99] then
Sugestão de correção:
(* PIS *)
else if CFe.Det.Imposto.PIS.CST = pis49 then
begin
Gerador.wGrupo('PISSN', 'Q05');
Gerador.wCampo(tcStr, 'Q07', 'CST ', 02, 02, 1, CSTPISTOStr(CFe.Det.Imposto.PIS.CST), DSC_CST);
Gerador.wGrupo('/PISSN');
end
else if CFe.Det.Imposto.PIS.CST in [pis50, pis51, pis52, pis53, pis54, pis55, pis56, pis60, pis61, pis62, pis63, pis64, pis65, pis66, pis67, pis70, pis71, pis72, pis73, pis74, pis75, pis98, pis99] then
(* COFINS *)
else if CFe.Det.Imposto.COFINS.CST = cof49 then
begin
Gerador.wGrupo('COFINSSN', 'S05');
Gerador.wCampo(tcStr, 'S07', 'CST ', 02, 02, 1, CSTCOFINSTOStr(CFe.Det.Imposto.COFINS.CST), DSC_CST);
Gerador.wGrupo('/COFINSSN');
end
else if CFe.Det.Imposto.COFINS.CST in [cof50, cof51, cof52, cof53, cof54, cof55, cof56, cof60, cof61, cof62, cof63, cof64, cof65, cof66, cof67, cof70, cof71, cof72, cof73, cof74, cof75, cof98, cof99] then
2º Erro - CST 99
Na emissão do CF-e com o CST 99 no PIS, o projeto acbr não está gerando a tag pPIS diferente do COFINS que está gerando corretamente, ocorrendo um erro no envio do xml ao SAT.
Procedimentos:
procedure TCFeW.GerarDetImpostoPIS(const i: integer);
No parametro "ocorrencias" deve ser informado o valor 1 para gerar a tag mesmo se o valor for 0 (zero).
errado: Gerador.wCampo(tcDe4, 'Q12', 'vAliqProd', 01, 15, 0, CFe.Det.Imposto.PIS.vAliqProd, DSC_VALIQPROD);
certo: Gerador.wCampo(tcDe4, 'Q12', 'vAliqProd', 01, 15, 1, CFe.Det.Imposto.PIS.vAliqProd, DSC_VALIQPROD);
a mesma alteração deve ser feita nos campos: CST, qBCProd, vAliqProd e vBC.