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

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.

The popup will be closed in 10 segundos...