Jump to content

Assista click.png tectoy.png

C6 chamada_c6.png botao.png

Remessa Banco HSBC - Composição campo Conta Corrente


Valdemir Jacon Sanches
  • Este tópico foi criado há 2291 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro

Boa Tarde!

 

Comparando o arquivo de remessa gerado pelo componente com o gerado pelo sistema do banco observei uma divergência na composição da conta corrente do cliente:

Posições 34 a 44 Registro Header   /   Posições 25 a 35 Registro Detalhe.

De acordo com o layout padrao CNAB 400 nota explicativa 1:

NOTA         CAMPO                              CONTEÚDO  /  SIGNIFICADO  
1                  CONTA CORRENTE         É composto pelo código da agência onde o Cliente / Beneficiário mantém conta corrente, e pelo respectivo número.

                                                              Exemplo:  Agência  4321;     Conta  56789-00 Campo Conta Corrente então será:   43215678900

O componente monta somente com a conta e o DV:

 ACBrBancoHSBC  linha 259:      padR(OnlyNumber(Conta)+ContaDigito, 11, '0')    + // Conta Corrente //Removi agencia repetido //ALFEU MOTA //

 

Obs: A nota explicativa pode ser conferida no layout do banco que vou deixar em anexo na página 19.

 

Obrigado a todos e qualquer dúvida estarei a disposição.

multi400.pdf

Link to comment
Share on other sites

  • Administradores

Boa tarde.

Ainda não foi alterado nos fontes, mas ao analisar o manual realmente parecer ser necessário ajuste no fonte, o qual estará disponível até o final dessa semana.

Att. 

Consultora SAC ACBr

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

Link to comment
Share on other sites

  • Administradores

Boa noite.

Alterações disponíveis no svn.

Att.

  • Like 1
Consultora SAC ACBr

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

Link to comment
Share on other sites

  • Membros Pro

Boa Tarde!

Juliana desculpe a demora em responder...

Analisando a alteração enviada no svn, o campo conta corrente ficou com 7 caracteres e não esta compondo a agencia, como o campo ocupava 11 posições e está indo com apenas 7, a linha esta sendo gerada com apenas 396 caracteres, ficando em desacordo com o layout.

Consegui uma remessa com um cliente feita no sistema do próprio banco, vou fazer algumas alterações no fonte para que os arquivos gerados fiquem compatíveis e assim que tiver a homologação do banco posto a unit com as alterações para que possa analisar e subir no svn se estiver tudo correto.

  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...
  • Membros Pro

Bom Dia!

Tive a homologação do arquivo feita pelo banco, vou postar a unit para verificação e se for o caso subir no svn.

Juliana ainda não migramos totalmente para o Trunk2 estamos trabalhando nisso ainda, porém eu fiz a instalação em um computador para testar a ultima alteração que vc fez e detectei o problema na quantidade de caracteres...

As mudanças são simples mas fiz apenas nos fontes antigos, então vou postar a unit e os detalhes do que mudei para facilitar a implementação no Trunk2.

 procedure TACBrBancoHSBC.GerarRegistroHeader400:

Criação de variaveis para os campos Agencia e Conta Corrente, alteração na sigla do layout.

247  .....  wLinha, wAgencia, wConta: String;

251  .....  wAgencia := padR(OnlyNumber(Agencia), 4, '0');
252  .....  wConta := wAgencia + padR(RightStr(OnlyNumber(Conta)+ContaDigito,7), 7, '0');

260  .....  wAgencia                                        + // Agencia cedente

262  .....  wConta                                          + // Conta Corrente

271  .....  'COB V12.3  SCD  '                              + // Sigla Layout
272  .....  padL( '', 268,' ')                              + // Uso do Banco

 
 procedure TACBrBancoHSBC.GerarRegistroTransacao400:

Criação de variaveis para os campos Agencia e Conta Corrente, alterado o campo Data Desconto 

280  .....  Ocorrencia, aEspecie, wLinha, wAgencia, wConta :String;

339  .....  wAgencia := padR(OnlyNumber(ACBrBanco.ACBrBoleto.Cedente.Agencia), 4, '0');
340  .....  wConta := wAgencia + padR(RightStr(OnlyNumber(ACBrBanco.ACBrBoleto.Cedente.Conta) + ACBrBanco.ACBrBoleto.Cedente.ContaDigito,7), 7, '0');

353  .....  wAgencia                                                      + // Agencia cedente

355  .....  wConta                                                        +

377  .....  IfThen(DataDesconto < EncodeDate(2000,01,01),'      ',
378  .....             FormatDateTime( 'ddmmyy', DataDesconto))               +

ACBrBancoHSBC.pas

Link to comment
Share on other sites

  • Administradores

Boa tarde.

Pretendo analisar até amanhã a noite  as alterações.

Att.

Consultora SAC ACBr

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

Link to comment
Share on other sites

  • Administradores

Boa noite.

Alterações disponíveis no svn.

Att.

Consultora SAC ACBr

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

Link to comment
Share on other sites

  • Membros Pro

Boa Tarde!

 

Juliana terminamos a migração para o Trunk2 e estava testando as alterações.

Alguns ajustes foram necessários na rotina, pois o PadLeft usado pra gerar o valor da variável wConta truncava o valor com 7 caracteres, a conta em si já tem 7 dígitos, somada aos digitos da agencia ultrapassa o Length passado para o PadLeft, fazendo o valor de wConta nunca conter os digitos.

Segue as modificações e a Unit em anexo, qualquer duvida estou a disposição.

 

GerarRegistroHeader400

usado o RightStr para pegar os digitos da conta:

255 --- wConta   := PadLeft(RightStr(OnlyNumber(Conta) + ContaDigito, 7),7,'0');

 

não sei se daria problema mas o banco gera com uma sigla diferente de layout:

274 --- 'COB V12.3  SCD  '            + // Sigla Layout
275 --- PadRight( '', 268,' ')            + // Uso do Banco

 

GerarRegistroTransacao400

usado o RightStr para pegar os digitos da conta:

354 --- wConta   := PadLeft(RightStr(OnlyNumber(Cedente.Conta) + Cedente.ContaDigito, 7),7,'0');

ACBrBancoHSBC.pas

Link to comment
Share on other sites

  • Administradores

Boa noite.

Por favor anexe aqui o manual utilizado como base para essas alterações.

Att.

  • Like 1
Consultora SAC ACBr

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

Link to comment
Share on other sites

  • 2 months later...
  • Membros Pro

Boa Tarde!

Juliana aqui é o Luiz, me desculpe por deixar o tópico sem resposta e demorar tanto em dar uma satisfação, fiz uma cirurgia e devido a isso fiquei afastado da empresa por um período de 60 dias, voltei no inicio da semana passada e comecei a por as coisas em ordem...

Voltando a esse caso percebi que foram feitas algumas mudanças na unit enquanto estive fora.

Fazendo os testes com algumas contas notei que a alteração no tamanho da conta resolve quase todos os problemas que tivemos com esse caso, só não entendi muito bem um trecho da rotina que gera o código de barras:

225                   PadLeft(OnlyNumber(ACBrBoleto.Cedente.Agencia), 4, '0') +
226                   PadLeft(IfThen(ACBrBoleto.Cedente.Conta[1] = '0', RightStr(OnlyNumber(ACBrBoleto.Cedente.Conta),5) +
227                        OnlyNumber(ACBrBoleto.Cedente.ContaDigito),OnlyNumber(ACBrBoleto.Cedente.Conta)) , 7, '0')+

228                   '00'

Pelo que entendi no trecho em destaque é analisado o primeiro caractere da conta e se ele for '0' é considerada a conta + digito para compor o código de barras, do contrario o digito da conta simplesmente é ignorado pegando apenas a conta.

Se considerarmos uma conta qualquer onde o primeiro caractere é igual a 0 "01234-56" passando pelo código acima ficaria "0123456", porém se considerarmos uma conta que comece com um caractere diferente de 0 "12345-67" passando pelo código ficaria "0012345" e não "1234567" como acredito que deva ficar.

Não encontrei nada no layout de impressão na parte que mostra como compor o código de barras que se refira a essa regra para situações em que a conta comece diferente de "0", poderia verificar por favor?

Sugiro que nessa parte do código seja usada a mesma lógica usada nas rotinas de gerar o arquivo de remessa (header e transação) já que a informação é a mesma e lá está gerando corretamente, assim o código ficaria assim:  

225                   PadLeft(OnlyNumber(ACBrBoleto.Cedente.Agencia), 4, '0') +
226                   PadLeft(OnlyNumber(ACBrBoleto.Cedente.Conta) + OnlyNumber(ACBrBoleto.Cedente.ContaDigito),7,'0')+
227                   '00'

Deixo o layout que explica o processo de impressão de boletos e também o layout de remessa em anexo caso precise para fazer a conferência.

Qualquer dúvida estou à disposição.

Att, Luiz.

cobbarra.pdf

multi400.pdf

  • Like 1
Link to comment
Share on other sites

  • Administradores

Boa tarde.

Realmente não encontrei nenhum motivo para a implementação atual, por isso o ajuste foi aplicado e disponibilizado no svn.

Obs. Observei que os manuais do svn já estão atualizados.

  • Like 1
Consultora SAC ACBr

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

Link to comment
Share on other sites

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.