Olá pessoal,
Por gentileza, alguém consegue me explicar o motivo do seguinte código abaixo estar presente nas units do ACBrBoleto? (ACBrBancoAmazonia, ACBrBancoBradesco, ACBrBancoBrasil, ACBrBancoCaixa, ACBrBancoHSBC, ACBrUniprime)
// Quando o numero documento vier em branco
if Trim(NumeroDocumento) = '' then
NumeroDocumento := NossoNumero;
ou
// prevenir quando o seunumero não vem informado no arquivo, altera para NossoNumero do banco
wSeuNumero := StringReplace(SeuNumero, '0','',[rfReplaceAll]);
if (AnsiSameText(wSeuNumero, EmptyStr)) then
begin
SeuNumero := NossoNumero;
NumeroDocumento := NossoNumero
end;
Isso é alguma prática definida nos manuais?
Toda vez eu tenho que remover estes trechos de código dos fontes porque, no meu ponto de vista, não tem sentido.
São dois campos diferentes: NossoNumero é uma numeração do banco, que pode ser diferente de NumeroDocumento, o qual corresponde a uma numeração interna da empresa, justamente para ser controlada pelo ERP do jeito que cada empresa quiser.
Minha sugestão é que cada um controle NumeroDocumento e SeuNumero em seu próprio ERP do jeito que preferir, quem quiser igualar o NumeroDocumento ao NossoNumero, que faça em seus próprios fontes.
Do jeito que está agora, este tratamento está sendo imposto, mascarando o valor real que vem no arquivo de retorno.
Sem falar que está sendo implementado em apenas algumas units. Ou seja, nem é uma prática padrão.
Fontes em anexo.
PS: Na unit ACBrbancoBrasil, aproveitei e substituí DataMoraJuros por DataMulta na função GerarRegistroTransacao400 (na função GerarRegistroTransacao240 já estava correto).
PS: Estão indo junto as alterações que enviei no tópico Correção na Comparação de Datas (TDatetime) com Null pois ainda não foram comitadas.
Concordam?
ACBrBancoBrasil.pas
ACBrBancoHSBC.pas
ACBrBancoBancoob.pas
ACBrBancoBrasil.pas
ACBrBancoHSBC.pas
ACBrBancoCaixa.pas
ACBrUniprime.pas
ACBrBancoBradesco.pas
ACBrBancoAmazonia.pas
ACBrBancoItau.pas
ACBrBancoCecred.pas
ACBrBancoCaixaSICOB.pas