Ir para conteúdo
  • Cadastre-se

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

image.png

Alexandre de Paula
Gerente de Projetos
Ajude o Projeto ACBr crescer - Assine o Clube PRO                    

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.

  • Consultores
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

 

Consultora ACBr Pro

Juliomar Marchetti

Ajude o Projeto ACBr crescer - Seja Pro

discord: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br

 

MVP_NewLogo_100x100_Transparent-02.png
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 !!

  • 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?

  • Consultores
Postado

Obrigado por reportar.

Fechando. Para novas dúvidas, criar um novo tópico.

 

Consultora ACBr Pro

Juliomar Marchetti

Ajude o Projeto ACBr crescer - Seja Pro

discord: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br

 

MVP_NewLogo_100x100_Transparent-02.png
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 !!

  • Este tópico foi criado há 742 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...