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á 150 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.pas

  • 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 08: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

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
20 minutos atrás, 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.

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: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

  • Consultores
  • Solution
Postado
1 hora atrás, 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.

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á 150 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.