Encontrei um problema de registro de itens na impressora fiscal blindada, quando o item é tributado por ISSQN de 4%. A alíquota está registrada na impressora, o problema é que não encontra a alíquota na impressora. Verificando os fontes, localizei o problema na linha 2116, função AchaICMSAliquota, o fonte atual está implementado da seguinte forma:
function TACBrECFEscECF.AchaICMSAliquota(var AliquotaICMS: String): TACBrECFAliquota;
begin
if (upcase(AliquotaICMS[1]) = 'T') then
AliquotaICMS := 'TT'+PadLeft(copy(AliquotaICMS,2,2),2,'0') ; {Indice}
Result := inherited AchaICMSAliquota( AliquotaICMS );
end;
Se modificar o IF, e a concatenação da string da seguinte forma, tudo funciona corretamente:
function TACBrECFEscECF.AchaICMSAliquota(var AliquotaICMS: String): TACBrECFAliquota;
begin
if CharInSet(UpCase(AliquotaICMS[1]), ['T', 'S']) then
AliquotaICMS := 'T' + UpCase(AliquotaICMS[1]) + PadLeft(Copy(AliquotaICMS, 2, 2), 2, '0');
Result := inherited AchaICMSAliquota(AliquotaICMS);
end;
Obrigado.