Jump to content

digao_go

Membros
  • Posts

    61
  • Joined

  • Last visited

Posts posted by digao_go

  1. Boa tarde,

    Estou tendo avisos de memory Leak ao fazer o seguinte.

    - Gero a lista de boletos
    - Faço o envio por e-mail
    - Limpo a lista de e-mail .... e ai da memory leak em TRetEnvio.

     

    Analisando o código AcbrBoleto, não achei hora alguma onde ele destroi o objeto

    No create
    fRetornoWeb := TRetEnvio.Create;

    ACBrBoleto.EnviarEmail(FEmails.Text, oempresa + ' - Boletos', vMensagemEmail, True, nil, nil);

     

    image.png.5c72c37c41815722740b5f388bca0f2b.png

    image.png.56b0cb0d025e858e3749133fe78449df.png

    image.png.fb246245e3e600d9b98aaa96ce90b248.png

    • Like 1
  2. 1 hora atrás, José M. S. Junior disse:

    Boa tarde, o Banco do Brasil ainda não faz uso desta função unificada, note que a função LerRetorno deste banco permanece a mesma na Unit do Banco do Brasil. Quando essa Unit for refatorada precisaremos realizar adaptações.  Mas no momento note que permanece a leitura nos campos ValorPago e ValorRecebido na classe do BB.

    Correto, mas ai no caso eu precisaria ficar testando (Se banco = 237 leia ValorRecebido, se 001 - Valor Pago) pois mudou as posições. Acredito que de toda forma por existir as posições vai precisar de ajustar como eu fiz pois temos 2 informações distintas no retorno. Primeiro houve uma mudança no nome do campo, ao ser transportado para a Unificada, permaneceu o ValorRecebido, que antes lia uma determina posição e agora passou a ler outras, isso gerou inconsistência no sistema todo. Se for mudar elas, teria que manter no mesmo padrão até todos os bancos serem transportados para a Unificada, assim eu sei que estou lendo ValorPago/ValorRecebido, e a posição é a mesma para todos os bancos. Agora da foram que foi feito, mudou posição

    Antes
    ValorRecebido       := StrToFloatDef(copy(Linha, 93, 15), 0) / 100;

    Agora  
     ValorRecebido       := StrToFloatDef(copy(Linha, 78, 15), 0) / 100;

    Se manter igual, fica transparente essa modificação até tudo ser unificado. #Sugestão

  3. Em 03/11/2020 at 17:00, José M. S. Junior disse:

    Boa tarde, mesmo algumas funções sendo migradas para a unit ACBrBoleto, aparentemente não houve mudanças quanto ao campo, aparentemente diversos Bancos utilizam apenas um campo para a leitura do valor pago. Se houver alterações por favor anexe a sugestão e o manual para análise.

    Bom dia,

    Antes do refactory temos a leitura dos 2 campos, seja Valor pago e valor liquido previsto no manual. Depois do refactory não temos. Segue em anexo a Unit, acredito que se eles existem, devemos manter e os nomes poderiam ser sugestivos conforme layout do banco (Vlr pago e Vlr Liquido). No componente é Vlr Pago e valor Recebido, gera uma ambiguidade. Segue foto do banco do brasil que ainda está sem ajustes pelo que notei.

    Outro detalhe ValorRecebido agora no refactory mudou a posição:

    Antes:

     ValorPago           := StrToFloatDef(copy(Linha, 78, 15), 0) / 100;
     ValorRecebido       := StrToFloatDef(copy(Linha, 93, 15), 0) / 100;

    Agora 

     ValorRecebido       := StrToFloatDef(copy(Linha, 78, 15), 0) / 100;

    Ou seja eu tenho uma rotina para leitura de Arquivos retornos unica, porém quando vem do BB preciso ler ValorPago para ter acesso a 78 com 15, quando vem de outro banco preciso ler ValorRecebido para ter acesso.

     

    image.thumb.png.01686fc5e86e8284b5ebe9473ac8fc2f.png

    ACBrBoleto.pas

  4. Boa tarde,

    Segue novos ajustes para o Refactory. Falei no Bradesco para homologação e no manual onde diz carteira posição 58(Carteira) na verdade é a característica do Titulo, notei pois estava vindo um digito 1 e estou usando a carteira 09.

    Então foi alterado conforme instruções.

              Carteira := copy(Linha, 39, 2);
              case strtoint(copy(Linha, 58, 1)) of
               '1': CaracTitulo := tcSimples;
               '2': CaracTitulo := tcVinculada;
               '3': CaracTitulo := tcCaucionada;
               '4': CaracTitulo := tcDescontada;
               '5': CaracTitulo := tcVendor;
              end;

    image.png.86ae5a14e7c03608be7a1fa7de7dcd9a.png

    image.png.db61eed864d44dfe31f54e6096cfe49c.png

    image.thumb.png.b297d4663ebaccbbefb98cac482b0f89.png

    ACBrBoleto.pas

    • Like 1
  5. 19 minutos atrás, José M. S. Junior disse:

    Boa tarde

    O Refactory realizado até o momento afeta apenas as classes Bradesco e Unicred. Note que os demais bancos permanecem com todas as funções implementadas na própria classe, portanto não utilizam os métodos unificados na classe ACBrBoleto. Isso está sendo ajustado a medida que for sendo realizado a reescrita de cada classe.

    Talvez esse problema possa ser local dessa classe. Chegou a fazer um debug?

    Boa tarde,

    Não estou na verdade tendo problemas, apenas indicando que siga o padrão de nomenclatura do manual, ao invés do campo ValorRecebido, usar o ValorPago, pois é o nome que volta no manual na posição 78. Assim quando unificar banco que tem valor pago e valor recebido não teremos novamente problemas como citados no Post que coloquei de referência.

    ValorPago           := StrToFloatDef(copy(Linha, 78, 15), 0) / 100;
    ValorRecebido       := StrToFloatDef(copy(Linha, 93, 15), 0) / 100;

     

  6. Boa tarde,

    09/04/2020
    -- ACBrBoleto, ACBrBancoBradesco, ACBrBancoUnicredRS, ACBrBancoUnicredSC, ACBrBancoUnicredES --
    [*] Realização de Refactory nas classes dos Bancos, unificando funcionalidades criadas na classe principal ACBrBancoClass, notei que a função LerRetorno240, agora fica dentro da AcbrBoleto, vale lembrar que alguns bancos retorna o "Valor pago" e o "Valor Creditado", isso havia sido padronizado um tempo atrás, e depois modificou. Estou trabalhando no Bradesco neste momento e conforme manual existe o Valor Pago, e Valor Creditado, que antes vinha no campo valor Recebido. Sugiro que mesmo que alguns bancos não retorne o valor recebido, seja utilizado da forma que estava, pois acredito ser o 2 commit que altera e afeta.

    Sugiro que mantenha o padrão anterior pois no banco do Brasil volta dados na posição 93, diferente do Bradesco que por algum motivo não informa o valor creditado.

    ValorPago           := StrToFloatDef(copy(Linha, 78, 15), 0) / 100;
    ValorRecebido       := StrToFloatDef(copy(Linha, 93, 15), 0) / 100;

     

    image.thumb.png.7ea7937bcc9ea5901d2cdef19256eeb9.png

    Existe um outro Tópico também sobre o assunto que achei

     

    ACBrBoleto.pas

  7. Bom dia pessoal!
    Como acessar o método CalcularNomeArquivoRemessa do banco sicredi. Tentei fazer assim mas da access violation.

    TACBrBancoSicredi(ACBrBoleto).CalcularNomeArquivoRemessa

    ACBrBoleto é o componente e ele ta instanciado, é onde estou jogando todos os dados do boleto etc.

  8. Hoje após atualizar os fontes, começou a travar o Instalador. Fica não respondendo, já fiz de tudo e nada dele passar para frente! 
    Ps: Sempre atualizava e nunca dava erro.

    Caminho: D:\Delphi\Componentes\Acbr\
    Versão do delphi: Delphi 2010 (0)
    Plataforma: Win32(0)
    ================================================================================
    Criando diretórios de bibliotecas...
    Removendo diretorios e pacotes antigos instalados...
    Adicionando library paths...
     

  9. Boa tarde pessoal, 
    Descobri o que é, segue a solução.

    No Sicoob Net empresarial, quando você acessa, já existe ali um menu ARQUIVOS -> CNAB 240 -> Enviar, porém o menu superior selecionado é o MENU CONTA, o que induz ao erro. Esse arquivo é outro tipo de arquivo, acredito que pagamentos. Para cobrança tem que clicar no menu SERVIÇOS->TRANSFERÊNCIA DE ARQUIVOS->CNAB240->ENVIAR.

    Como não tinha familiaridade com o portal do banco, pois é o usuário que acessa, não percebi que existe essa diferença.

    Fica a dica!

    • Like 5
    • Thanks 3
  10. Bom dia Antonio,

    Fiz o teste pelo validador e o arquivo foi validado com sucesso, tudo indica ser alguma configuração na conta bancária ou algo assim. Estou aguardando respostas do TI do sicoob para responder o Tópico e deixar esclarecido o que ocorre com o sicoob que passa a pedir essa nova versão 87.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.