Prezados,
Realizei algumas alterações bem como correções na unit “ACBrBancoBanestes”, sendo elas:
procedure LerRetorno400
No manual na pagina 14 item 6.1.2 fala a respeito do tamanho do nosso numero no arquivo retorno
Notem que o nosso numero é composto de 10 números, mas eles estava copiando apenas 8. Corrigido isso.
Antes:
NossoNumero := Copy(Linha,63,8);
Depois:
NossoNumero := Copy(Linha,63,10);
Também a propriedade "Carteira" está sendo atribuída com sendo aviso de movimentação. Mas logo abaixo no código a mesma "Carteira" está sendo atribuída com a informação correta.
1 Vez:
Carteira := copy(Linha,83,3);
2 Vez
Carteira := Copy(Linha,108,1);
Removido a primeira citação da carteira "Carteira := copy(Linha,83,3);" pois o correto é Carteira := Copy(Linha,108,1);
Removido o bloco:
ACBrBanco.ACBrBoleto.DataCreditoLanc := StringToDateTimeDef(Copy(ARetorno[1],111,2)+'/'+
Copy(ARetorno[1],113,2)+'/'+
Copy(ARetorno[1],115,2),0, 'DD/MM/YY' );
Pois as posições que estão sendo copiadas são referente ao filler – brancos, não tem valor algum.
Criado variável “CodAvisoMov” referente ao “Código do Lançamento (Aviso Movimentação)”
No manual na pagina 14 menciona essa informação que vem no retorno. No anexo XII contém uma lista de códigos que segundo o banco são meios para identificar se deve ou não realizar a baixa.
Por exemplo, o banco informou que se nesta posição vier os códigos abaixo a baixa poderá ser processada.
Obs.: Apesar desta informação ser parecida com o código de ocorrência, não é a mesma coisa, por exemplo no arquivo de retorno mencionado acima, temos duas informações em cada uma de suas posições.
Segue unit em anexo.
ACBrBancoBanestes.pas