Ir para conteúdo
  • Cadastre-se

dev botao

Sugestão de correção ACBrBoletoW_Itau_API.pas - ACBrBoleto Itaú híbrido (Bolecode/Boleto+Pix)


Ver Solução Respondido por Victor H. Gonzales - Panda,
  • Este tópico foi criado há 288 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Olá!

Estou implantando o Bolecode Itaú em um cliente e precisei fazer um pequeno ajuste na unit "ACBrBoletoW_Itau_API.pas".

O par "instrucao_cobranca" do JSON estava sendo alimentado com somente uma instrução. Alterei para que fosse alimentado com um array das eventuais 3 instruções possíveis.

Também em "instrucao_cobranca", acrescentei o par "dia_util", pois a API do banco criticou/exigiu esta informação.

--------- ACBrBoletoW_Itau_API.pas ---------
@@ -500,44 +500,47 @@ end;
 procedure TBoletoW_Itau_API.GerarInstruCaoCobranca(AJson: TACBrJSONObject);
 var
   LJsonDados, LJsonDados2, LJsonDados3 : TACBrJSONObject;
   LJsonArray : TACBrJSONArray;
 begin
   if Assigned(ATitulo) and Assigned(AJson) then
   begin
     LJsonDados := TACBrJSONObject.Create;
     LJsonArray := TACBrJSONArray.Create;
     if (ATitulo.Instrucao1) <> '' then
     begin
       LJsonDados.AddPair('codigo_instrucao_cobranca', Copy(trim((ATitulo.Instrucao1)), 1, 2));
       LJsonDados.AddPair('quantidade_dias_apos_vencimento', Copy(trim((ATitulo.Instrucao1)), 3, 2));
+      LJsonDados.AddPair('dia_util', ATitulo.TipoDiasProtesto = diUteis);
       LJsonArray.AddElementJSON(LJsonDados);
     end;
     if ATitulo.Instrucao2 <> '' then
     begin
       LJsonDados2 := TACBrJSONObject.Create;
       LJsonDados2.AddPair('codigo_instrucao_cobranca', Copy(trim((ATitulo.Instrucao2)), 1, 2));
       LJsonDados2.AddPair('quantidade_dias_apos_vencimento', Copy(trim((ATitulo.Instrucao2)), 3, 2));
+      LJsonDados2.AddPair('dia_util', ATitulo.TipoDiasProtesto = diUteis);
       LJsonArray.AddElementJSON(LJsonDados2);
     end;
     if ATitulo.Instrucao3 <> '' then
     begin
       LJsonDados3 := TACBrJSONObject.Create;
       LJsonDados3.AddPair('codigo_instrucao_cobranca', Copy(trim((ATitulo.Instrucao3)), 1, 2));
       LJsonDados3.AddPair('quantidade_dias_apos_vencimento', Copy(trim((ATitulo.Instrucao3)), 3, 2));
+      LJsonDados3.AddPair('dia_util', ATitulo.TipoDiasProtesto = diUteis);
       LJsonArray.AddElementJSON(LJsonDados3);
     end;
 
-    AJson.AddPair('instrucao_cobranca',LJsonDados);
+    AJson.AddPair('instrucao_cobranca',LJsonArray);
   end;
 end;

Unit em anexo.

Aproveito a oportunidade para agradecer a todos que trabalharam na implementação desta integração.

Observação: eu só não dei continuidade no tópico abaixo, pois ele foi encerrado:

 

ACBrBoletoW_Itau_API.pasFetching info...

  • Consultores
Postado

Bom dia.

Criada a TK-5600 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
  Em 13/06/2024 at 11:57, Eliezer Riani disse:

Olá!

Estou implantando o Bolecode Itaú em um cliente e precisei fazer um pequeno ajuste na unit "ACBrBoletoW_Itau_API.pas".

O par "instrucao_cobranca" do JSON estava sendo alimentado com somente uma instrução. Alterei para que fosse alimentado com um array das eventuais 3 instruções possíveis.

Também em "instrucao_cobranca", acrescentei o par "dia_util", pois a API do banco criticou/exigiu esta informação.

--------- ACBrBoletoW_Itau_API.pas ---------
@@ -500,44 +500,47 @@ end;
 procedure TBoletoW_Itau_API.GerarInstruCaoCobranca(AJson: TACBrJSONObject);
 var
   LJsonDados, LJsonDados2, LJsonDados3 : TACBrJSONObject;
   LJsonArray : TACBrJSONArray;
 begin
   if Assigned(ATitulo) and Assigned(AJson) then
   begin
     LJsonDados := TACBrJSONObject.Create;
     LJsonArray := TACBrJSONArray.Create;
     if (ATitulo.Instrucao1) <> '' then
     begin
       LJsonDados.AddPair('codigo_instrucao_cobranca', Copy(trim((ATitulo.Instrucao1)), 1, 2));
       LJsonDados.AddPair('quantidade_dias_apos_vencimento', Copy(trim((ATitulo.Instrucao1)), 3, 2));
+      LJsonDados.AddPair('dia_util', ATitulo.TipoDiasProtesto = diUteis);
       LJsonArray.AddElementJSON(LJsonDados);
     end;
     if ATitulo.Instrucao2 <> '' then
     begin
       LJsonDados2 := TACBrJSONObject.Create;
       LJsonDados2.AddPair('codigo_instrucao_cobranca', Copy(trim((ATitulo.Instrucao2)), 1, 2));
       LJsonDados2.AddPair('quantidade_dias_apos_vencimento', Copy(trim((ATitulo.Instrucao2)), 3, 2));
+      LJsonDados2.AddPair('dia_util', ATitulo.TipoDiasProtesto = diUteis);
       LJsonArray.AddElementJSON(LJsonDados2);
     end;
     if ATitulo.Instrucao3 <> '' then
     begin
       LJsonDados3 := TACBrJSONObject.Create;
       LJsonDados3.AddPair('codigo_instrucao_cobranca', Copy(trim((ATitulo.Instrucao3)), 1, 2));
       LJsonDados3.AddPair('quantidade_dias_apos_vencimento', Copy(trim((ATitulo.Instrucao3)), 3, 2));
+      LJsonDados3.AddPair('dia_util', ATitulo.TipoDiasProtesto = diUteis);
       LJsonArray.AddElementJSON(LJsonDados3);
     end;
 
-    AJson.AddPair('instrucao_cobranca',LJsonDados);
+    AJson.AddPair('instrucao_cobranca',LJsonArray);
   end;
 end;

Unit em anexo.

Aproveito a oportunidade para agradecer a todos que trabalharam na implementação desta integração.

Observação: eu só não dei continuidade no tópico abaixo, pois ele foi encerrado:

 

ACBrBoletoW_Itau_API.pas 43.01 kB · 2 downloads

Expandir  

Bom dia,

Verifique por favor se com o código atual (28/06/2024 - 11:30) todas essas mudanças não são desnecessárias

não detectei merge a ser realizado

Consultor SAC ACBr

Victor H Gonzales - Pandaaa
Ajude o Projeto ACBr crescer - Assine o SAC

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 !!

"Aprender é a única coisa que a mente nunca se cansa, nunca tem medo e nunca se arrepende” - Leonardo da Vinci

"Ter sucesso é falhar repetidamente, mas sem perder o entusiasmo"

Postado

Boa tarde!

Não sei se foi por essas alterações, mas ao atualizar o ACBr estou tendo um erro ao compilar o pacote de Boletos:

Pacote "DCLACBr_DFeComum.dpk" compilado com sucesso.
Compiling package C:\Program Files\Borland\Delphi7\Meus Componentes\ACBr\trunk2\Pacotes\Delphi\ACBrBoleto\ACBr_Boleto.dpk
"C:\Program Files\Borland\Delphi7\bin\dcc32.exe" "C:\Program Files\Borland\Delphi7\Meus Componentes\ACBr\trunk2\Pacotes\Delphi\ACBrBoleto\ACBr_Boleto.dpk"
Borland Delphi Version 15.0
Copyright (c) 1983,2002 Borland Software Corporation
C:\Program Files\Borland\Delphi7\Meus Componentes\ACBr\trunk2\Fontes\ACBrBoleto\WS\ACBrBoletoRet_Itau_API.pas(441) Error: Record, object or class type required
C:\Program Files\Borland\Delphi7\Meus Componentes\ACBr\trunk2\Fontes\ACBrBoleto\WS\ACBrBoletoRet_Itau_API.pas(441) Error: 'END' expected but ',' found
C:\Program Files\Borland\Delphi7\Meus Componentes\ACBr\trunk2\Fontes\ACBrBoleto\WS\ACBrBoletoRet_Itau_API.pas(469) Error: EXCEPT or FINALLY expected
C:\Program Files\Borland\Delphi7\Meus Componentes\ACBr\trunk2\Fontes\ACBrBoleto\WS\ACBrBoletoRet_Itau_API.pas(473) Error: 'END' expected but 'EXCEPT' found
C:\Program Files\Borland\Delphi7\Meus Componentes\ACBr\trunk2\Fontes\ACBrBoleto\WS\ACBrBoletoRet_Itau_API.pas(477) Error: '.' expected but 'ELSE' found
C:\Program Files\Borland\Delphi7\Meus Componentes\ACBr\trunk2\Fontes\ACBrBoleto\WS\ACBrBoletoRet_Itau_API.pas(479) Error: Undeclared identifier: 'HTTPResultCode'
C:\Program Files\Borland\Delphi7\Meus Componentes\ACBr\trunk2\Fontes\ACBrBoleto\WS\ACBrBoletoRet_Itau_API.pas(482) Error: Undeclared identifier: 'LListaRejeicao'
C:\Program Files\Borland\Delphi7\Meus Componentes\ACBr\trunk2\Fontes\ACBrBoleto\WS\ACBrBoletoRet_Itau_API.pas(482) Error: Undeclared identifier: 'ListaRetorno'
C:\Program Files\Borland\Delphi7\Meus Componentes\ACBr\trunk2\Fontes\ACBrBoleto\WS\ACBrBoletoRet_Itau_API.pas(482) Error: Missing operator or semicolon
C:\Program Files\Borland\Delphi7\Meus Componentes\ACBr\trunk2\Fontes\ACBrBoleto\WS\ACBrBoletoRet_Itau_API.pas(483) Error: Missing operator or semicolon
C:\Program Files\Borland\Delphi7\Meus Componentes\ACBr\trunk2\Fontes\ACBrBoleto\WS\ACBrBoletoRet_Itau_API.pas(484) Error: Missing operator or semicolon
C:\Program Files\Borland\Delphi7\Meus Componentes\ACBr\trunk2\Fontes\ACBrBoleto\WS\ACBrBoletoRet_Itau_API.pas(488) Error: Missing operator or semicolon
C:\Program Files\Borland\Delphi7\Meus Componentes\ACBr\trunk2\Fontes\ACBrBoleto\WS\ACBrBoletoRet_Itau_API.pas(489) Error: Missing operator or semicolon
C:\Program Files\Borland\Delphi7\Meus Componentes\ACBr\trunk2\Fontes\ACBrBoleto\WS\ACBrBoletoRet_Itau_API.pas(490) Error: Missing operator or semicolon
C:\Program Files\Borland\Delphi7\Meus Componentes\ACBr\trunk2\Fontes\ACBrBoleto\WS\ACBrBoletoRet_Itau_API.pas(491) Error: Missing operator or semicolon
C:\Program Files\Borland\Delphi7\Meus Componentes\ACBr\trunk2\Fontes\ACBrBoleto\WS\ACBrBoletoRet_Itau_API.pas(492) Error: Missing operator or semicolon
C:\Program Files\Borland\Delphi7\Meus Componentes\ACBr\trunk2\Fontes\ACBrBoleto\ACBrBoletoWS.pas(236) Fatal: Could not compile used unit '..\..\..\Fontes\ACBrBoleto\WS\ACBrBoletoRet_Itau_API.pas'
Compilation failure
Erro ao compilar o pacote "ACBr_Boleto.dpk".
Abortando... Ocorreram erros na compilação dos pacotes.

 

(Desculpem se é má prática postar o retorno dessa forma)

Uso o Delphi 7 ainda.  Se alguém tiver alguma dica, agradeço!

  • Consultores
Postado

atualiza o svn novamente

 

  • Curtir 1
Consultor SAC ACBr

Victor H Gonzales - Pandaaa
Ajude o Projeto ACBr crescer - Assine o SAC

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 !!

"Aprender é a única coisa que a mente nunca se cansa, nunca tem medo e nunca se arrepende” - Leonardo da Vinci

"Ter sucesso é falhar repetidamente, mas sem perder o entusiasmo"

Postado

Obrigado pela ajuda, porém continua dando erro. Agora em outra Unit:

Pacote "DCLACBr_DFeComum.dpk" compilado com sucesso.
Compiling package C:\Program Files\Borland\Delphi7\Meus Componentes\ACBr\trunk2\Pacotes\Delphi\ACBrBoleto\ACBr_Boleto.dpk
"C:\Program Files\Borland\Delphi7\bin\dcc32.exe" "C:\Program Files\Borland\Delphi7\Meus Componentes\ACBr\trunk2\Pacotes\Delphi\ACBrBoleto\ACBr_Boleto.dpk"
Borland Delphi Version 15.0
Copyright (c) 1983,2002 Borland Software Corporation
C:\Program Files\Borland\Delphi7\Meus Componentes\ACBr\trunk2\Fontes\ACBrBoleto\WS\ACBrBoletoRetorno.pas(350) Error: Field or method identifier expected
C:\Program Files\Borland\Delphi7\Meus Componentes\ACBr\trunk2\Fontes\ACBrBoleto\WS\ACBrBoletoRetorno.pas(350) Error: Field or method identifier expected
C:\Program Files\Borland\Delphi7\Meus Componentes\ACBr\trunk2\Fontes\ACBrBoleto\ACBrBoleto.pas(60) Fatal: Could not compile used unit '..\..\..\Fontes\ACBrBoleto\WS\ACBrBoletoRetorno.pas'
Compilation failure
Erro ao compilar o pacote "ACBr_Boleto.dpk".
Abortando... Ocorreram erros na compilação dos pacotes.

  • Moderadores
Postado
  Em 28/06/2024 at 17:26, marcoandre disse:

Obrigado pela ajuda, porém continua dando erro. Agora em outra Unit:

Pacote "DCLACBr_DFeComum.dpk" compilado com sucesso.
Compiling package C:\Program Files\Borland\Delphi7\Meus Componentes\ACBr\trunk2\Pacotes\Delphi\ACBrBoleto\ACBr_Boleto.dpk
"C:\Program Files\Borland\Delphi7\bin\dcc32.exe" "C:\Program Files\Borland\Delphi7\Meus Componentes\ACBr\trunk2\Pacotes\Delphi\ACBrBoleto\ACBr_Boleto.dpk"
Borland Delphi Version 15.0
Copyright (c) 1983,2002 Borland Software Corporation
C:\Program Files\Borland\Delphi7\Meus Componentes\ACBr\trunk2\Fontes\ACBrBoleto\WS\ACBrBoletoRetorno.pas(350) Error: Field or method identifier expected
C:\Program Files\Borland\Delphi7\Meus Componentes\ACBr\trunk2\Fontes\ACBrBoleto\WS\ACBrBoletoRetorno.pas(350) Error: Field or method identifier expected
C:\Program Files\Borland\Delphi7\Meus Componentes\ACBr\trunk2\Fontes\ACBrBoleto\ACBrBoleto.pas(60) Fatal: Could not compile used unit '..\..\..\Fontes\ACBrBoleto\WS\ACBrBoletoRetorno.pas'
Compilation failure
Erro ao compilar o pacote "ACBr_Boleto.dpk".
Abortando... Ocorreram erros na compilação dos pacotes.

Expandir  

primeira coisa que diria

não deixei na pasta de program files.

já de proposito colocamos algo c:\ACBr ou faça um c:\componentes\xxx

pastas protegidas do sistemas geram problemas.

ao que parece tente fazer um revert e um clean no ACBR

e dai rode novamente

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: juliomar_m@yahoo.com.br
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

  • Consultores
  • Solution
Postado
  Em 28/06/2024 at 17:26, marcoandre disse:

Obrigado pela ajuda, porém continua dando erro. Agora em outra Unit:

Pacote "DCLACBr_DFeComum.dpk" compilado com sucesso.
Compiling package C:\Program Files\Borland\Delphi7\Meus Componentes\ACBr\trunk2\Pacotes\Delphi\ACBrBoleto\ACBr_Boleto.dpk
"C:\Program Files\Borland\Delphi7\bin\dcc32.exe" "C:\Program Files\Borland\Delphi7\Meus Componentes\ACBr\trunk2\Pacotes\Delphi\ACBrBoleto\ACBr_Boleto.dpk"
Borland Delphi Version 15.0
Copyright (c) 1983,2002 Borland Software Corporation
C:\Program Files\Borland\Delphi7\Meus Componentes\ACBr\trunk2\Fontes\ACBrBoleto\WS\ACBrBoletoRetorno.pas(350) Error: Field or method identifier expected
C:\Program Files\Borland\Delphi7\Meus Componentes\ACBr\trunk2\Fontes\ACBrBoleto\WS\ACBrBoletoRetorno.pas(350) Error: Field or method identifier expected
C:\Program Files\Borland\Delphi7\Meus Componentes\ACBr\trunk2\Fontes\ACBrBoleto\ACBrBoleto.pas(60) Fatal: Could not compile used unit '..\..\..\Fontes\ACBrBoleto\WS\ACBrBoletoRetorno.pas'
Compilation failure
Erro ao compilar o pacote "ACBr_Boleto.dpk".
Abortando... Ocorreram erros na compilação dos pacotes.

Expandir  

Só atualizar novamente o SVN e instalar

  • Curtir 1
Consultor SAC ACBr

Victor H Gonzales - Pandaaa
Ajude o Projeto ACBr crescer - Assine o SAC

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 !!

"Aprender é a única coisa que a mente nunca se cansa, nunca tem medo e nunca se arrepende” - Leonardo da Vinci

"Ter sucesso é falhar repetidamente, mas sem perder o entusiasmo"

Postado

Obrigado, Victor!  Continua dando essa mensagem agora:

Compilation success
Pacote "DCLACBr_NFeDanfeRL.dpk" compilado com sucesso.
Compiling package C:\Program Files\Borland\Delphi7\Meus Componentes\ACBr\trunk2\Pacotes\Delphi\ACBrBoleto\FC\Fortes\ACBr_BoletoRL.dpk
"C:\Program Files\Borland\Delphi7\bin\dcc32.exe" "C:\Program Files\Borland\Delphi7\Meus Componentes\ACBr\trunk2\Pacotes\Delphi\ACBrBoleto\FC\Fortes\ACBr_BoletoRL.dpk"
Borland Delphi Version 15.0
Copyright (c) 1983,2002 Borland Software Corporation
C:\Program Files\Borland\Delphi7\Meus Componentes\ACBr\trunk2\Fontes\ACBrBoleto\FC\Fortes\ACBrBoletoFCFortesFr.pas(1427) Error: Incompatible types: 'TRLCustomPrintFilter' and 'TRLPDFFilter'
ACBr_BoletoRL.dpk(39) Fatal: Could not compile used unit '..\..\..\..\..\Fontes\ACBrBoleto\FC\Fortes\ACBrBoletoFCFortesFr.pas'
Compilation failure
Erro ao compilar o pacote "ACBr_BoletoRL.dpk".
Abortando... Ocorreram erros na compilação dos pacotes.

Saberia dizer o que pode ser?

  • Este tópico foi criado há 288 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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...
The popup will be closed in 10 segundos...