Olá amigos,
estava fazendo testes com o ACBrBoleto e encontrei alguns problemas no trato do boleto da CEF (SIGCB), mais especificamente na geração da linha digitável e na leitura do arquivo retorno.
Posto abaixo alguns ajustes que precisei fazer para que ambos os procedimentos funcionassem.
1 - ACBrBoleto.pas (linha 1835)
de acordo com o manual da caixa, para calcular o digito verificador o multiplicador inicial é 2, depois 1 e assim sucessivamente. No meu código fonte estava ao contrário (primeiro 1, depois 2). O que fiz foi exatamente trocar os valores dos multiplicadores inicial e final. ficando assim:
fpModulo.MultiplicadorInicial := 2;
fpModulo.MultiplicadorFinal := 1;
2 - ACBrCaixaEconomica (linha 550)
na leitura do arquivo retorno padrão 240 o componente estava lendo o vencimento com apenas 2 digitos no ano (ddmmyy), sendo que o arquivo retorna o vencimento com 4 digitos (ddmmyyyy). Alterei a linha citada para que fossem lidos os 4 digitos, como segue:
Vencimento := StringToDateTimeDef( Copy(Linha,74,2)+'/'+
Copy(Linha,76,2)+'/'+
Copy(Linha,78,4),0, 'DD/MM/YY' );