jaidomini Postado 2 Março Postado 2 Março 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 ACBrBoletoRet_Itau_API.pas Ret_Bol_Itau_Api.json
Consultores Alexandre de Paula Postado 3 Março Consultores Postado 3 Março Bom dia, Criada a TK-6698 para avaliação. Obrigado pela contribuição. Alexandre de Paula Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Discord Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil
Consultores Daniel InfoCotidiano Postado 17 Março Consultores Postado 17 Março @jaidomini Boa tarde ! Estamos realizando uns testes com o novo endpoint de francesinhas. Se eu te mandar as units, vc consegue realizar testes ai no seu ambiente? Daniel de Morais (Infocotidiano) Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Discord
Consultores Daniel InfoCotidiano Postado 24 Março Consultores Postado 24 Março @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. Daniel de Morais (Infocotidiano) Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Discord
jaidomini Postado 24 Março Autor Postado 24 Março 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 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. ACBrBoletoRet_Itau_API.pas ACBrBoletoW_Itau_API.pas BoletoWS_341.txt
Recommended Posts
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 contaEntrar
Já tem uma conta? Faça o login.
Entrar Agora