Ir para conteúdo
  • Cadastre-se

dev botao

Lendo A Data Baixa Do Aquivo De Retorno Errado


  • Este tópico foi criado há 2629 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Boa tarde pessoal!

Emiti um boleto da sicoob, enviei a remessa e quando importei o retorno do banco vi que a data da baixa não estava correta.

No arquivo de retorno a data esta assim:

...000000022968010000000OU00000000000000000000 02050110142014                          29091400000000242007564379001011014000...

Mas no meu sistema esta lendo a data "30/12/1899" como se tivesse lendo zero ou nada.

Esta é a linha aonde recebo o campo data:

DataM.ADQTempCAMPO5.asDateTime   := DataBaixa;

Alguem saberia me dizer como faço para ler a data corretamente?

 

Muito obrigado!

"A arte de programar consiste em organizar e dominar a complexidade." 🤖

-Edsger W. Dijkstra

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Boa noite

com o seu arquivo de retorno do banco, faça o debug verificando onde o componente alimenta o mesmo!

assim poderemos saber  o que está acontecendo para o componente estar com a data errada!

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
 

 

Link para o comentário
Compartilhar em outros sites

Boa tarde!

Verificando as Units do ACBR aonde ele faz os "Copy" para leitura do arquivo descobri que por exemplo dentro da unit "ACBrBanestes" contem a leitura da Data Baixa:

         if StrToIntDef(Copy(Linha,111,6),0) <> 0 then
            DataBaixa := StringToDateTimeDef(Copy(Linha,111,2)+'/'+
                         Copy(Linha,113,2)+'/'+
                         Copy(Linha,115,2),0,'DD/MM/YY');

Mas dentro da unit "ACBrBancoob" nao tem a leitura da "DataBaixa", provavelmente não contém no layout do bancoob. Mas ali dentro existe a leitura do campo "Data Credito" que irei usar para "substituir".

Se estou falando besteira favor me corrijam mas foi o que eu entendi.

 

Muito Obrigado por enquanto!

"A arte de programar consiste em organizar e dominar a complexidade." 🤖

-Edsger W. Dijkstra

Link para o comentário
Compartilhar em outros sites

Bom dia Juliomar,

Entrei em contato com o banco e a data de quitação do boleto é chamada de "Data da liquidação" analisando o manual deles tem na linha 51 o item 25 da tabela "detalhe" a posição desta informação como colocado abaixo:

 

Seq. | Inicio | Final | Tam. | Máscara | Campo/ Descrição/Conteúdo

25     | 111   | 116   | 006     |     9(06)      | Data da Entrada/Liquidação: formato ddmmaa |

 

Abri a unit do banco e aonde lê a posição 111 à 116 é chamado de "DataOcorrencia":

         DataOcorrencia := StringToDateTimeDef( Copy(Linha,111,2)+'/'+
                                                Copy(Linha,113,2)+'/'+
                                                Copy(Linha,115,2),0, 'DD/MM/YY' );

Irei anexar a página de retorno CNAB400 do manual do banco bancoob aonde tem todos os campos para mor de dúvida!

 

Muito obrigado Juliomar!

 

 

Manual sicoob.txt

Editado por Ferdinan Marco
  • Curtir 1

"A arte de programar consiste em organizar e dominar a complexidade." 🤖

-Edsger W. Dijkstra

Link para o comentário
Compartilhar em outros sites

  • 2 anos depois...

Estou com o mesmo problema e debugando vi que na unit ACBrBancoBancoob ainda se encontra copiando a partir da posição 176, porem ela esta zerada no arquivo de retorno e realmente pelo manual que tenho aqui a posição é a 111

111

116

06

Data Entrada ou Liquidação

9(06)

 (ddmmaa)

Conferindo o arquivo na posição 111-> 240117 já na posição 176  000000

Vou alterar o arquivo para pegar a informação correta porém na próxima atualização do ACBR irei perder essas alterações?

Alguém que passou por isso tratou como?
 

Como resolvi:


procedure TACBrBancoob.LerRetorno400(ARetorno: TStringList);

...

if StrToIntDef(Copy(Linha,176,6),0) <> 0 then
            DataCredito:= StringToDateTimeDef( Copy(Linha,176,2)+'/'+
                                               Copy(Linha,178,2)+'/'+
                                               Copy(Linha,180,2),0, 'DD/MM/YY' )
         Else DataCredito:= StringToDateTimeDef( Copy(Linha,111,2)+'/'+
                                               Copy(Linha,113,2)+'/'+
                                               Copy(Linha,115,2),0, 'DD/MM/YY' );

 

-----------------------------------------------------------

Até a Vitória sempre!

Atenciosamente

Ronnei Peterson

Invictos Tecnologia - www.invictos.com.br

Link para o comentário
Compartilhar em outros sites

  • Administradores

Bom dia.

Uma vez que o banco retorna as duas informações, acho mais sensato que a data de entrada/liquidação seja lida na propriedade DataBaixa.

Att.

Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Link para o comentário
Compartilhar em outros sites

Juliana ele não retorna as duas, a data do credito vem zerada, acredito que o ideal serial seria personalizar para se a opção vir zerada pegar a data de liquidação, como eu postei no fonte acima, não encontrei a propriedade databaixa, somente a DataOcorrencia, se for essa que você se referiu dá diferença de dias em relaçaã ao crédito do banco, isso gera inconsistência na conciliação bancária.

-----------------------------------------------------------

Até a Vitória sempre!

Atenciosamente

Ronnei Peterson

Invictos Tecnologia - www.invictos.com.br

Link para o comentário
Compartilhar em outros sites

  • Administradores

Boa tarde.

5 horas atrás, ronnei disse:

data do credito vem zerada

Me refiro ao fato de estas informações existirem no layout do banco.

6 horas atrás, ronnei disse:

não encontrei a propriedade databaixa

A propriedade seria DataBaixa mesmo, observe que isto que sugeri é feito inclusive para outros bancos.

Att.

 

Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Link para o comentário
Compartilhar em outros sites

Arquivo de retorno em anexo, por enquanto vou alterar o fonte do meu ACBR até chegarem no consenso de qual a data correta.

4340_01325850_20170125_C400_00.ret

17 horas atrás, Dercide Alvarez disse:

Boa noite Ronnei,

O ideal é você postar o arquivo retorno para analisarmos.

Pois a data crédito (176 a 181) somente virá preenchida se a posição 109-110 tiver um código de liquidação (05, 06, 15).

Dercide.

Veio como 06 e mesmo assim a datacredito veio zerada, conforme arquivo enviado em anexo no post anterior

-----------------------------------------------------------

Até a Vitória sempre!

Atenciosamente

Ronnei Peterson

Invictos Tecnologia - www.invictos.com.br

Link para o comentário
Compartilhar em outros sites

Ronnei,

Pelo que vi, o banco não esta gerando a Data Crédito, 176 a 181.

Esta vindo apenas a data liquidação, na posição 111-116 (240117)

Fora isso tem apenas a data da gravação do arquivo no header  95-110 (250117) e a data movimento no trailler 156-164 (25012017).

Acho que o melhor é verificar com o banco essa questão da não geração da data crédito, pois ela é diferente da data liquidação e essencial para a conciliação bancária.

Dercide.

 

Link para o comentário
Compartilhar em outros sites

23 horas atrás, Dercide Alvarez disse:

Ronnei,

Pelo que vi, o banco não esta gerando a Data Crédito, 176 a 181.

Esta vindo apenas a data liquidação, na posição 111-116 (240117)

Fora isso tem apenas a data da gravação do arquivo no header  95-110 (250117) e a data movimento no trailler 156-164 (25012017).

Acho que o melhor é verificar com o banco essa questão da não geração da data crédito, pois ela é diferente da data liquidação e essencial para a conciliação bancária.

Dercide.

 

Vou tentar contato com o banco, mas já viu né, é um parto kkk, de qualquer forma vou manter meu fonte do ACBR nessa unit alterado localmente e vou cuidar sempre que tiver uma atualização para não dar conflito nisso, até que o SICOOB me dê alguma posição, de qualquer forma acredito que nesse caso o correto é trabalhar com a data de liquidação quando a data de crédito vir em branco, foi isso que eu fiz.

  • Curtir 1

-----------------------------------------------------------

Até a Vitória sempre!

Atenciosamente

Ronnei Peterson

Invictos Tecnologia - www.invictos.com.br

Link para o comentário
Compartilhar em outros sites

  • 3 semanas depois ...

Saiu abaixo a resposta do SICOOB, significa que os títulos que foram descontados, ao serem pagos pelo cliente a data que vem preenchida é da de liquidação e não a de crédito, deixo como sugestão a alteração da unit conforme eu postei anteriormente.

procedure TACBrBancoob.LerRetorno400(ARetorno: TStringList);

...

if StrToIntDef(Copy(Linha,176,6),0) <> 0 then
            DataCredito:= StringToDateTimeDef( Copy(Linha,176,2)+'/'+
                                               Copy(Linha,178,2)+'/'+
                                               Copy(Linha,180,2),0, 'DD/MM/YY' )
         Else DataCredito:= StringToDateTimeDef( Copy(Linha,111,2)+'/'+
                                               Copy(Linha,113,2)+'/'+
                                               Copy(Linha,115,2),0, 'DD/MM/YY' );

 

Resposta do SICOOB

-------- Mensagem encaminhada --------

Assunto: Re: Fwd: Fwd: Re: Fwd: HOMOLOGAÇÃO - VIDRAÇARIA PARIS
Data: Tue, 21 Feb 2017 09:08:32 -0300
De: Seguros <[email protected]>
Para: Ronnei Peterson <[email protected]>


 

Bom dia

Segue o que a central me mandou.

"Para títulos que estejam na Cobrança (que não tenham sido transferidos para o TD), observei que a data de crédito vem preenchida.

Este arquivo que enviaram, todos os boletos já tiveram a transferência para TD. Se eles não tiveram o retorno para cobrança simples, ao serem liquidados não terão o crédito lançado em conta corrente e com isso não haverá preenchimento desta informação."

Pelo que verificamos esses títulos foram baixados não retornando para simples. Assim, a data não será preenchida.

 

Att,

 

Caio

-----------------------------------------------------------

Até a Vitória sempre!

Atenciosamente

Ronnei Peterson

Invictos Tecnologia - www.invictos.com.br

Link para o comentário
Compartilhar em outros sites

Ronnei,

Mas isso é uma particularidade, e não tem o porque ter a data credito, visto que você já recebeu o dinheiro (descontou o titulo), e não haverá movimentação para a integração bancaria.

Esse tratamento, acredito eu que deve ser feito no próprio sistema. Eu controlo os titulos descontados e são lidos normalmente no retorno, apenas não geram a movimentação bancária.

 

Dercide.

Link para o comentário
Compartilhar em outros sites

16 horas atrás, Dercide Alvarez disse:

Ronnei,

Mas isso é uma particularidade, e não tem o porque ter a data credito, visto que você já recebeu o dinheiro (descontou o titulo), e não haverá movimentação para a integração bancaria.

Esse tratamento, acredito eu que deve ser feito no próprio sistema. Eu controlo os titulos descontados e são lidos normalmente no retorno, apenas não geram a movimentação bancária.

 

Dercide.

Concordo que sim, porém se eu não baixar o titulo que foi descontado ele ficará em aberto, visto que não pode ser baixado no momento do desconto pois se o cliente não pagar o banco descontará de mim, de qualquer forma não teria como tratar pelo software visto que o processamento do arquivo é feito pelo componente, somente alterando a função direto nas units do componente, foi o que eu fiz, de qualquer forma é apenas uma sugestão de melhoria ao componente.

Atenciosamente

Ronnei Peterson

  • Curtir 1

-----------------------------------------------------------

Até a Vitória sempre!

Atenciosamente

Ronnei Peterson

Invictos Tecnologia - www.invictos.com.br

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 2629 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.