Ao carregar o retorno do sicredi está ocorrendo um erro de conversão para inteiro em função de não estar sendo previsto o motivo de rejeição de baixa "C5", conforme corrigido no código abaixo:
Linhas 941 a 959:
toRetornoBaixaRejeitada: //27
case AnsiIndexStr(CodMotivo,['A1', 'C5', 'C6', 'C7']) of
0: Result:= 'A1-Praça do sacado não cadastrada';
1: Result:= 'C5-Título rejeitado pela centralizadora';
2: Result:= 'C6-Título já liquidado';
3: Result:= 'C7-Título já baixado';
else
case StrToInt(CodMotivo) of // << Linha onde ocorria o erro
00: Result:= '00-Ocorrência aceita, baixa rejeitada';
07: Result:= '07-Agência\Conta\dígito inválidos';
08: Result:= '08-Nosso número inválido';
10: Result:= '10-Carteira inválida';
15: Result:= '15-Agência\Carteira\Conta\nosso número inválidos';
40: Result:= '40-Título com ordem de protesto emitida';
60: Result:= '60-Movimento para título não cadastrado';
else
Result:= padR(CodMotivo,2,'0') +' - Outros Motivos';
end;
end;
A correção foi simples mas o que me preocupa é que pelo manual CNAB400 do Sicredi há outros motivos cujo código possui letras que não estão sendo tratados e que no momento em que ocorrerem resultará no mesmo problema!
Estou anexando o fonte para atualização no SVN
Obrigado.
ACBrBancoSicredi.pas