Ir para conteúdo
  • Cadastre-se

dev botao

Gerar Linha Digitável Hsbc


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

Recommended Posts

  • Membros Pro

Estou com um problema que ao imprimir o boleto, a linha digitável do boleto HSBC está vindo com uma divergência.

 

Na posição 22 a 28 do Campo 3 da Composicao da Linha Digitável Pag em anexo N° 19

 

De    Ate   Posição        Conteúdo 

22  a  28        7              Conta da Agência - Final da Conta Cobrança

 

Nessa informação esta vindo o numero da conta sem o digito

 

 

Na posição 29 a 30 do Campo 3 da Composicao da Linha Digitável Pag em anexo N° 19

De    Ate   Posição        Conteúdo 

29  a  30        2              Código da carteira = '00'

Na rotina não tem esse '00' igual ao layout.

 

 

Na rotina atual esta assim na Class: ACBrBancoHSBC, na linha 214 a 223

 
      {'CSB' Cobranca Registrada}
      if aCarteira = '1' then
       begin
         Parte2 := CalcularFatorVencimento(Vencimento) +
                   IntToStrZero(Round(ValorDocumento * 100), 10) +
                   RightStr(padR(ANossoNumero, 13, '0'),11) +       // precisa passar nosso numero + digito
                   padR(OnlyNumber(ACBrBoleto.Cedente.Agencia), 4, '0') +
                   padR(OnlyNumber(ACBrBoleto.Cedente.Conta), 7, '0')+
                   padR(ACBrBoleto.Cedente.ContaDigito,2,'0');
       end
 
Observei que no layout do banco que esta em anexo, essa rotina deveria fazer o seguinte
 
Parte2 := CalcularFatorVencimento(Vencimento) +
                   IntToStrZero(Round(ValorDocumento * 100), 10) +
                   RightStr(padR(ANossoNumero, 13, '0'),11) +       // precisa passar nosso numero + digito
                   padR(OnlyNumber(ACBrBoleto.Cedente.Agencia), 4, '0') +
                  // as linha acima da rotina estão corretas
                   
                   //a linha abaixo esta vindo somente o numero da conta sem o digito, por padrao esta indo  isso ocorrre divergencia 
                   padR(OnlyNumber(ACBrBoleto.Cedente.Conta), 7, '0')+ 
                  
                  //Nessa linha abaixo deveria vir '00', que esta padrão no layout do banco
                   padR(ACBrBoleto.Cedente.ContaDigito,2,'0');
 
ou seja nessas divergencia acima deveria vir
       Numero da conta do banco + //
       Digito da Conta                   +
       '00'  que é o padrão do Layout
 
    
    

Boleto HSBC.PDF

Link para o comentário
Compartilhar em outros sites

  • Administradores

Realmente será necessário efetuar um ajuste para atender este banco..alteração estará disponível nos próximos dias.

 

Att.

Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

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 para o comentário
Compartilhar em outros sites

  • Administradores

Alteração disponibilizada no svn.

 

Att.

  • Curtir 2
Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

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 para o comentário
Compartilhar em outros sites

  • Membros Pro
Alteração Feita
 
Class ACBrBancoHSBC
 
217        Parte2 := CalcularFatorVencimento(Vencimento) +
218                        IntToStrZero(Round(ValorDocumento * 100), 10) +
219                        RightStr(padR(ANossoNumero, 13, '0'),11) +       // precisa passar nosso numero + digito
220                        padR(OnlyNumber(ACBrBoleto.Cedente.Agencia), 4, '0') +
221                        padR(OnlyNumber(ACBrBoleto.Cedente.Conta) +
222                        OnlyNumber(ACBrBoleto.Cedente.ContaDigito) , 7, '0')+
223                        '00'
 
 
So que nesse caso na linha 221 e 222, esta tirando um numero que seria o numero do digito, pois no Create dessa Class o Tamanho da Conta esta com 7
Fiz um teste deixando o tamanho da Conta com 6 e assim deu certo, pois na linha 221 padR(OnlyNumber(ACBrBoleto.Cedente.Conta) ele ja traz o numero da conta com zero a esquerda dando 7 digitos, e e assim ignora a linha 222 que seria do digito, logo a linha digitável fica diferente
 
 
Create da Class:
   fpDigito                                      := 9;
   fpNome                                      := 'HSBC';
   fpNumero                                   := 399;
   fpTamanhoMaximoNossoNum    := 16;
   fpTamanhoAgencia                    := 4;
   fpTamanhoConta                        := 7;   aqui eu fiz um teste e deixei 6
   fpTamanhoCarteira                     := 3;
Link para o comentário
Compartilhar em outros sites

  • Administradores
  • Solution

Bom dia.

 

Devido a possibilidade de alguns usuários utilizarem o componente hoje informando o DV no Campo Conta, a alteração realizada foi a verificação se o primeiro digito da conta é 0 e neste caso são utilizados somente os 6 últimos.

 

Alteração já está no svn.

 

Att.

  • Curtir 2
Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

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 para o comentário
Compartilhar em outros sites

×
×
  • 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.