Juliomar, acabei de ver aqui que na minha versão atual aqui no pcnNFEew.pas está assim na linha 1518:
case NFe.Det[i].Imposto.ICMS.CST of
cst02, cst15, cst53, cst61:
begin
sTagTemp := BuscaTag( NFe.Det[i].Imposto.ICMS.CST );
Gerador.wGrupo('ICMS' + sTagTemp, 'N' + CSTICMSTOStrTagPos(NFe.Det[i].Imposto.ICMS.CST));
Gerador.wCampo(tcStr, 'N11', 'orig ', 01, 01, 1, OrigTOStr(NFe.Det[i].Imposto.ICMS.orig), DSC_ORIG);
Gerador.wCampo(tcStr, 'N12', 'CST ', 02, 02, 1, CSTICMSTOStr(NFe.Det[i].Imposto.ICMS.CST), DSC_CST);
case NFe.Det[i].Imposto.ICMS.CST of
cst02 :
begin
Gerador.wCampo(tcDe4, 'N15', 'qBCMono', 01, 15, 1, NFe.Det[i].Imposto.ICMS.qBCMono, DSC_QBCMONO);
Gerador.wCampo(tcDe4, 'N15', 'adRemICMS', 01, 5, 1, NFe.Det[i].Imposto.ICMS.adRemICMS, DSC_ADREMICMS);
Gerador.wCampo(tcDe2, 'N17', 'vICMSMono', 01, 15, 1, NFe.Det[i].Imposto.ICMS.vICMSMono, DSC_VICMSMONO);
end;
cst15 :
begin
Gerador.wCampo(tcDe4, 'N15', 'qBCMono', 01, 15, 1, NFe.Det[i].Imposto.ICMS.qBCMono, DSC_QBCMONO);
Gerador.wCampo(tcDe4, 'N15', 'adRemICMS', 01, 5, 1, NFe.Det[i].Imposto.ICMS.adRemICMS, DSC_ADREMICMS);
Gerador.wCampo(tcDe2, 'N17', 'vICMSMono', 01, 15, 1, NFe.Det[i].Imposto.ICMS.vICMSMono, DSC_VICMSMONO);
Gerador.wCampo(tcDe4, 'N15', 'qBCMonoReten', 01, 15, 1, NFe.Det[i].Imposto.ICMS.qBCMonoReten, DSC_QBCMONORETEN);
Gerador.wCampo(tcDe4, 'N15', 'adRemICMSReten', 01, 5, 1, NFe.Det[i].Imposto.ICMS.adRemICMSReten, DSC_ADREMICMSRETEN);
Gerador.wCampo(tcDe2, 'N17', 'vICMSMonoReten', 01, 15, 1, NFe.Det[i].Imposto.ICMS.vICMSMonoReten, DSC_VICMSMONORETEN);
if NFe.Det[i].Imposto.ICMS.pRedAdRem <> 0 then
begin
Gerador.wCampo(tcDe2, 'N17', 'pRedAdRem', 01, 5, 1, NFe.Det[i].Imposto.ICMS.pRedAdRem, DSC_PREDADREM);
Gerador.wCampo(tcStr, 'N33b', 'motRedAdRem', 01, 01, 1, motRedAdRemToStr(NFe.Det[i].Imposto.ICMS.motRedAdRem), DSC_MOTREDADREM);
end;
end;
cst53 :
begin
Gerador.wCampo(tcDe4, 'N15', 'qBCMono ', 01, 15, 1, NFe.Det[i].Imposto.ICMS.qBCMono, DSC_QBCMONO);
Gerador.wCampo(tcDe4, 'N15', 'adRemICMS ', 01, 5, 0, NFe.Det[i].Imposto.ICMS.adRemICMS, DSC_ADREMICMS);
Gerador.wCampo(tcDe2, 'N17', 'vICMSMonoOp ', 01, 15, 0, NFe.Det[i].Imposto.ICMS.vICMSMonoOp, DSC_VICMSMONOOP);
Gerador.wCampo(tcDe4, 'N17', 'pDif ', 01, 15, 0, NFe.Det[i].Imposto.ICMS.pDif, DSC_PDIF);
Gerador.wCampo(tcDe2, 'N17', 'vICMSMonoDif', 01, 15, 0, NFe.Det[i].Imposto.ICMS.vICMSMonoDif, DSC_VICMSMONODIF);
Gerador.wCampo(tcDe2, 'N17', 'vICMSMono ', 01, 15, 0, NFe.Det[i].Imposto.ICMS.vICMSMono, DSC_VICMSMONO);
end;
cst61 :
begin
Gerador.wCampo(tcDe4, 'N15', 'qBCMonoRet', 01, 15, 1, NFe.Det[i].Imposto.ICMS.qBCMonoRet, DSC_QBCMONORET);
Gerador.wCampo(tcDe4, 'N15', 'adRemICMSRet', 01, 5, 1, NFe.Det[i].Imposto.ICMS.adRemICMSRet, DSC_ADREMICMSRET);
Gerador.wCampo(tcDe2, 'N17', 'vICMSMonoRet', 01, 15, 1, NFe.Det[i].Imposto.ICMS.vICMSMonoRet, DSC_VICMSMONORET);
end;
end;
Gerador.wGrupo('/ICMS' + sTagTemp );
end;
else
case NFe.Emit.CRT of
crtRegimeNormal, crtSimplesExcessoReceita :
begin
sTagTemp := BuscaTag( NFe.Det[i].Imposto.ICMS.CST );
e a parte onde verifica qual tipo de CRT está no else desse case então quando o cst é 61 nunca entra na parte do CSOSN, isso foi mudado ou ainda está assim atualmente ?