Olá,
Uso a ECF Bematech MP-25-FI
Quando peço para imprimir Serviço com alíquota de ISSQN não consegue imprimir,
Quanto o ISSQN é isento ou não tributado funciona perfeitamente, o problema é só quando tem alíquota
A alíquota utilizada esta cadastrada.
Eu sou novo no projeto ACBr e ainda não tenho permissões para efetuar commit.
Quem puder dar essa força de verificar e aplicar a devida correção, agradeço.
ACBrECFBematech.pas
Verificando o código encontrei o problema.
Unit ACBrECFBematech
arquivo fisico: \ACBr\Fontes\ACBrSerial\ACBrECFBematech.pas
Método: function TACBrECFBematech.AchaICMSAliquota( var AliquotaICMS: String): TACBrECFAliquota;
quando é serviço e tem aliquota, retorna S1 ou S0 e deve retornar o índice da alíquota.
Linha com Bug
// 'S' : AliquotaStr := PadL( AliquotaICMS, 2, 'N') ; { SN, SF, SI }
Sugestão de correção
'S' : if (Length(AliquotaICMS) > 1) and (AliquotaICMS[2] in ['N', 'F', 'I']) then
AliquotaStr := padL(AliquotaICMS, 2, 'N')
else
AliquotaStr := padR(copy(AliquotaICMS,2,2),2,'0') ; {Indice}
=======================================
Metodo completo para melhor visualização
=====================================
function TACBrECFBematech.AchaICMSAliquota( var AliquotaICMS: String):
TACBrECFAliquota;
Var AliquotaStr : String ;
begin
Result := nil ;
AliquotaStr := '' ;
AliquotaICMS := UpperCase( Trim( AliquotaICMS ) ) ;
case AliquotaICMS[1] of
'I' : AliquotaStr := 'II' ;
'N' : AliquotaStr := 'NN' ;
'F' : AliquotaStr := 'FF' ;
'T' : AliquotaICMS := 'T'+padR(copy(AliquotaICMS,2,2),2,'0') ; {Indice}
// 'S' : AliquotaStr := PadL( AliquotaICMS, 2, 'N') ; { SN, SF, SI } // código anterior que deve ser melhorado.
'S' : if (Length(AliquotaICMS) > 1) and (AliquotaICMS[2] in ['N', 'F', 'I']) then // sugestão do novo código.
AliquotaStr := padL(AliquotaICMS, 2, 'N')
else
AliquotaStr := padR(copy(AliquotaICMS,2,2),2,'0') ; {Indice}
end;
if AliquotaStr = '' then
Result := inherited AchaICMSAliquota( AliquotaICMS )
else
AliquotaICMS := AliquotaStr ;
end;
================================
em anexo a unit completa.