Ir para conteúdo
  • Cadastre-se

dev botao

Recommended Posts

Postado

Olá, segue contribuição para retornar a data do crédito, em verde as alterações.

Procedure

function TRetornoEnvio_Itau_API.LerRetorno(const ARetornoWS: TACBrBoletoRetornoWS): Boolean;
LJsonArray, LJsonBoletoIndividualArray, LJsonPagamentoCobrancaArray, LJsonHistoricoCobrancaArray : TACBrJSONArray;

 

              if LJsonBoletoObject.AsJSONObject['dado_boleto'].IsJSONArray('pagamentos_cobranca') then
              begin
                LJsonPagamentoCobrancaArray := LJsonBoletoObject.AsJSONObject['dado_boleto'].AsJSONArray['pagamentos_cobranca'];
                for j := 0 to Pred(LJsonPagamentoCobrancaArray.Count) do
                begin
                  ARetornoWS.DadosRet.TituloRet.DataProcessamento    := Iso8601ToDateTime(LJsonPagamentoCobrancaArray.ItemAsJSONObject[J].AsString['data_inclusao_pagamento']);
                  ARetornoWS.DadosRet.TituloRet.DataCredito          := Iso8601ToDateTime(LJsonPagamentoCobrancaArray.ItemAsJSONObject[J].AsString['data_inclusao_pagamento']);
                  ARetornoWS.DadosRet.TituloRet.ValorPago            := StrToFloatDef( StringReplace(LJsonPagamentoCobrancaArray.ItemAsJSONObject[J].AsString['valor_pago_total_cobranca'],'.',',',[rfReplaceAll]), 0);
                  ARetornoWS.DadosRet.TituloRet.ValorMulta           := StrToFloatDef( StringReplace(LJsonPagamentoCobrancaArray.ItemAsJSONObject[J].AsString['valor_pago_multa_cobranca'],'.',',',[rfReplaceAll]), 0);
                  ARetornoWS.DadosRet.TituloRet.ValorMoraJuros       := StrToFloatDef( StringReplace(LJsonPagamentoCobrancaArray.ItemAsJSONObject[J].AsString['valor_pago_juro_cobranca'],'.',',',[rfReplaceAll]), 0);
                  ARetornoWS.DadosRet.TituloRet.ValorDesconto        := StrToFloatDef( StringReplace(LJsonPagamentoCobrancaArray.ItemAsJSONObject[J].AsString['valor_pago_desconto_cobranca'],'.',',',[rfReplaceAll]), 0);
                  ARetornoWS.DadosRet.TituloRet.ValorAbatimento      := StrToFloatDef( StringReplace(LJsonPagamentoCobrancaArray.ItemAsJSONObject[J].AsString['valor_pago_abatimento_cobranca'],'.',',',[rfReplaceAll]), 0);
                  if ARetornoWS.DadosRet.TituloRet.ValorPago > ARetornoWS.DadosRet.TituloRet.ValorDocumento then
                     ARetornoWS.DadosRet.TituloRet.ValorOutrasDespesas := (ARetornoWS.DadosRet.TituloRet.ValorPago - ARetornoWS.DadosRet.TituloRet.ValorDocumento)
                end;
              end;

              //Caso estiver liquidado, pegar a data do crédito real, quando cai no conta corrente o dinheiro, e remaneja a data credito para a data movimento, que é a data do pagto
              if LJsonBoletoObject.AsJSONObject['dado_boleto'].IsJSONArray('historico') then
              begin
                LJsonHistoricoCobrancaArray := LJsonBoletoObject.AsJSONObject['dado_boleto'].AsJSONArray['historico'];
                for j := 0 to Pred(LJsonHistoricoCobrancaArray.Count) do
                begin
                  if UpperCase(LJsonHistoricoCobrancaArray.ItemAsJSONObject[J].AsString['operacao'])='TITULO LIQUIDADO' then
                  begin
                     if ARetornoWS.DadosRet.TituloRet.DataCredito > 0 then
                     begin
                        ARetornoWS.DadosRet.TituloRet.DataMovimento := ARetornoWS.DadosRet.TituloRet.DataCredito;
                        ARetornoWS.DadosRet.TituloRet.DataCredito   := DateToDateTimeItau(LJsonHistoricoCobrancaArray.ItemAsJSONObject[J].AsString['data']);
                     end;
                  end;
                end;
              end;

 

JSON de Retorno e .pas em anexo

Local do JSON com a data de compensção

image.png.e87fe93d31aeef70ddeccea5ba930ed6.png

ACBrBoletoRet_Itau_API.pas Ret_Bol_Itau_Api.json

  • Consultores
Postado

Bom dia,

Criada a TK-6698 para avaliação.

Obrigado pela contribuição.

Consultor SAC ACBr

Alexandre de Paula
Ajude o Projeto ACBr crescer - Assine o SAC                    

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  ícone Discórdia Discord   

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

 

 

  • 2 semanas depois ...
  • Consultores
Postado

@jaidomini

Segue anexo as 2 units

ACBrBoletoW_Itau_API.pas

ACBrBoletoRet_Itau_API.pas
Salve em ..\ACBr\Fontes\ACBrBoleto\WS e rode o instalador.
 

Boleto.Configuracoes.WebService.Operacao = TpConsulta
Boleto.Configuracoes.WebService.Filtro.indicadorSituacao := isbBaixado ou isbCancelado

//Filtro é a data Movimento conforme exemplo abaixo:
Boleto.Configuracoes.WebService.Filtro.dataMovimento.DataInicio :=


Só consulta 1 dia por vêz não é período.
 

Consultor SAC ACBr

Daniel de Morais (Infocotidiano)
Ajude o Projeto ACBr crescer - Assine o SAC

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

Postado

Fiz os testes, e já incluí minhas contribuições. (Data do Crédito na Consulta Detalhada e Sacador Avalista na criação do JSON na emissão)

Também incluí o Log do tipo paranóico para maiores detalhes.

Precisei incluir 1 título apenas para infomar a carteira

image.png.7e4b372ccdd4aeeb3b30a4b00f23a530.png

No tipo de consulta, tpConsulta não está vindo a data de pagamento, provavelmente é uma das 2 datas do print abaixo, porém o Itaú não fornece a data do crédito.

image.thumb.png.ad8ee054b0b1e9d8571151b971bf72f1.png

ACBrBoletoRet_Itau_API.pas ACBrBoletoW_Itau_API.pas BoletoWS_341.txt

  • 5 semanas depois ...
  • Consultores
Postado

Apenas para lhe posicionar.
Hoje comitamos a consulta de francesinhas.
Seu tarefa esta na minha lista de tarefas e aviso qdo concluido.

  • Curtir 1
Consultor SAC ACBr

Daniel de Morais (Infocotidiano)
Ajude o Projeto ACBr crescer - Assine o SAC

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

  • 2 semanas depois ...
Postado
Em 22/04/2025 at 16:54, Daniel InfoCotidiano disse:

Apenas para lhe posicionar.
Hoje comitamos a consulta de francesinhas.
Seu tarefa esta na minha lista de tarefas e aviso qdo concluido.

@Daniel InfoCotidiano na consulta francesinha está retornando no json da consulta a tarifa de cobrança como desconto,  é possivel fazer algum tratamento usando operacoes_cobranca considerando a descrição "Tarifa de cobrança"? Olhando nos fontes aqui não esta mapeado esse campo na unit ACBrBoletoRet_Itau_API.pas.

Do jeito que esta hj ele retorna o valor líquido já considerando a tarifa e não o valor pago pelo cliente, diferente do retorno via CNAB. 

  • Consultores
Postado

@Allan Hilário
Vou te mandar 2 units, pode testar em seu ambiente por favor para que eu possa subir para o SVN?
ACBrBoletoRet_Itau_API.pas

ACBrBoletoW_Itau_API.pas

Em 07/05/2025 at 08:45, Allan Hilário disse:

  é possivel fazer algum tratamento usando operacoes_cobranca considerando a descrição "Tarifa de cobrança"

Se observar esta comentado o mapeamento destas propriedades da operacao_cobranca.
Nao esta batendo com os dados do manual, e precisamos saber todos campos para mapear e nao quebrar.

Enviei um email para o time API do itau, estou aguardando a resposta. mas por enq, vou comitando sua colaboração se funcionar ai em seu ambiente, ja que tivemos modificações. fizemos alguns ajustes.

Aguardo sua reposta. Obrigado

Consultor SAC ACBr

Daniel de Morais (Infocotidiano)
Ajude o Projeto ACBr crescer - Assine o SAC

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

  • Consultores
Postado

Por favor atualize seus fontes, pelo SVN do ACBr... 

Já subimos para o nosso repositório de fontes, modificações que podem corrigir algum dos itens referentes a esse tópico...

Por favor atualize seus fontes, faça testes, e se possível comente em uma nova resposta, se o problema foi resolvido...

Dúvidas, sobre o uso do SVN ?  Clique aqui e veja um vídeo

Consultor SAC ACBr

Daniel de Morais (Infocotidiano)
Ajude o Projeto ACBr crescer - Assine o SAC

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

Postado
18 horas atrás, Daniel InfoCotidiano disse:

@Allan Hilário
Vou te mandar 2 units, pode testar em seu ambiente por favor para que eu possa subir para o SVN?
ACBrBoletoRet_Itau_API.pas

ACBrBoletoW_Itau_API.pas 51.79 kB · 1 download

Se observar esta comentado o mapeamento destas propriedades da operacao_cobranca.
Nao esta batendo com os dados do manual, e precisamos saber todos campos para mapear e nao quebrar.

Enviei um email para o time API do itau, estou aguardando a resposta. mas por enq, vou comitando sua colaboração se funcionar ai em seu ambiente, ja que tivemos modificações. fizemos alguns ajustes.

Aguardo sua reposta. Obrigado

Bom dia. 

Nos clientes que tenho as credenciais aqui, só tem informação de tarifa de cobrança e juros, eles não trabalham com multa e outras despesas. 

Retorno que estou recebendo do banco: 

"operacoes_cobranca":[{"codigo":"1","descricao":"Tarifa de cobrança","valor":"-1.20"},{"codigo":"4","descricao":"Juros","valor":"0.62"}]

Esta diferente do bloco comentado os textos da descrição, acho melhor esperar o retorno do Itaú para ver se eles informam todos os tipos possíveis para não ter quebra. Lembrando que a a tarifa esta retornando como desconto e considerado no valor líquido no json. 

  • Consultores
Postado

Chegou a testar inclusão e novas consultas? deu certo ?
 

12 minutos atrás, Allan Hilário disse:

Esta diferente do bloco comentado os textos da descrição, acho melhor esperar o retorno do Itaú para ver se eles informam todos os tipos possíveis para não ter quebra. Lembrando que a a tarifa esta retornando como desconto e considerado no valor líquido no json. 

Estou aguardando uma resposta.

Consultor SAC ACBr

Daniel de Morais (Infocotidiano)
Ajude o Projeto ACBr crescer - Assine o SAC

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

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.