Ir para conteúdo
  • Cadastre-se

dev botao

Correção Na Impressão Boleto Cef-Sicob


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

Recommended Posts

Postado (editado)

Bom dia.

 

Foram feitas algumas correções na unit ACBrCaixaEconomicaSICOB quanto ao nosso número, que, na minha opinião, ficou excelente, pois somente é modificado o nosso número quando o mesmo estiver com tamanho diferente (10/15).

 

Porém, ao imprimir o boleto utilizando Nosso Número com tamanho 10, a linha digitável fica incorreta.

 

Eu havia enviado essa correção num post anterior, que tratava do mesmo assunto, porém acho que deve ter passado despercebido.


Segue a unit com a devida correção.

 

Atenciosamente.

Jéter Rabelo Ferreira

ACBrCaixaEconomicaSICOB.pas

Editado por jeter.rabelo

------------------------------------------------

Jéter Rabelo Ferreira
Campestre/MG

  • Administradores
Postado

Boa noite Jeter.

 

Fiz alguns testes com essa alteração, porém não consegui fazer com que caísse na situação dos  10 dígitos, como você fez este teste?

 

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

Postado

Boa noite Juliana.

 

O ajuste foi efetuado na rotina MontarCodigoBarras.

 

A Mudança é somente na forma de montar o CampoLivre


15 = CampoLivre := ANossoNumero + ACBrTitulo.ACBrBoleto.Cedente.CodigoCedente;

10 = CampoLivre := ANossoNumero + ACBrTitulo.ACBrBoleto.Cedente.Agencia + ACBrTitulo.ACBrBoleto.Cedente.CodigoCedente;

 

O restante é igual.









  ANossoNumero := FormataNossoNumero(ACBrTitulo);

  {Montando Campo Livre}
  {Codigo de Barras}
  with ACBrTitulo.ACBrBoleto do
  begin
    if Length(ANossoNumero) > 11 then
    begin
      CampoLivre := ANossoNumero + ACBrTitulo.ACBrBoleto.Cedente.CodigoCedente;
      CodigoBarras := IntToStrZero(Banco.Numero, 3) +
                      '9' +
                      FatorVencimento +
                      IntToStrZero(Round(ACBrTitulo.ValorDocumento * 100), 10) +
                      CampoLivre;
    end
    else
    begin
      CampoLivre   := ANossoNumero +
                      ACBrTitulo.ACBrBoleto.Cedente.Agencia +
                      ACBrTitulo.ACBrBoleto.Cedente.CodigoCedente;
      CodigoBarras := IntToStrZero(Banco.Numero, 3) +
                      '9' +
                      FatorVencimento +
                      IntToStrZero(Round(ACBrTitulo.ValorDocumento * 100), 10) +
                      CampoLivre;
    end;
  end;

 

Atenciosamente

------------------------------------------------

Jéter Rabelo Ferreira
Campestre/MG

  • Administradores
Postado

Bom dia Jeter.

 

Quanto a alteração feita eu compreendi perfeitamente, minha pergunta é como você fez para testar o else da condição, ou seja (Length(ANossoNumero) > 11) ser falso, já que o setnossonumero sempre formata o nosso número com 15 posições.

 

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

Postado

Bom dia Juliana.


Desculpe, não havia entendido sua pergunta anterior.

 

Não sei se você vai lembrar, mas há meses atrás eu solicitei que você colocasse na property TACBrBanco.TamanhoMaximoNossoNum o método de write, pois inicialmente ele era apenas read;

 

Com isso, quando eu vou preencher o boleto, eu seto essa property para o tamanho máximo do campo nosso número desejado:

 

Exemplo:

104 :
  begin
    Banco.TipoCobranca := cobCaixaSicob;
    Banco.TamanhoMaximoNossoNum := 10;
  end;

 

Atenciosamente.

 

------------------------------------------------

Jéter Rabelo Ferreira
Campestre/MG

  • Administradores
Postado

Sem problemas, lembro sim mas estou pensando em fazer algo um pouco diferente, não sei se você viu como ficou a classe do Banco do Brasil a função CalcularTamMaximoNossoNumero, penso em fazer a mesma coisa para a caixa, apenas precisamos confirmar quais são os tamanhos válidos do nosso número livre(sem os prefixos), aparentemente seriam 8(sem os dois dígitos do prefixo) , 9(sem o digito do prefixo), 14(sem o digito do prefixo) e 10 e 15(ambos não utilizam nenhum prefixo).

 

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

Postado

Eu não sei a respeito do SigCB, mas do Sicob são apenas 2: 9(10) e 14(15).

 

Não sei se há necessidade de fazer como o Banco do Brasil, visto que esse banco tem N quantidade de carteira e tamanho de nossos números, sem falar na tag "Convenio". A CEF-Sicob apenas 2 tamanhos possíveis de Nosso Número..

 

Sem falar que a CEF -SICOB a carteira sempre vai ser SR, para as duas situações e não tem o campo Convenio para "ajudar" a controlar isso.

 

Mas, de qualquer maneira, caso precisar de alguma coisa, é só me avisar.

Atenciosamente.

------------------------------------------------

Jéter Rabelo Ferreira
Campestre/MG

  • Administradores
Postado

Bom dia.

 

A alteração por enquanto seria apenas no SICOB.

 

Abaixo a explicação das diferenças de tamanho de nosso número livre, pensei em caso o nosso número informado contiver 10 ou 15 caracteres a formatação para incluir os valores fixos não seja aplicada e na função que citei antes definir o tamanho máximo baseado no que foi recebido.

 

Carteira Sem Registro

Com relação as possibilidades de tamanho para os nosso número de 10 posições é possível que exista o caractere fixo "9" ou "82" neste casos as posições livres são  9 e 8 respectivamente...para  a de 15 posições o primeiro caractere fixo é 8, ou seja sobram 14 posições. 

 

Carteira Registrada

Possui 10 posições porém o primeiro caractere também é fixo "9", fazendo com que sobrem apenas 9 dígitos livres

 

A função seria algo como:

 

TamMaximoNossoNumero:= 15;

 

wTamNossoNumero:= length(NossoNumero);

if ( (wTamNossoNumero >= 8 ) or  (wTamNossoNumero <= 10)) or ( (wTamNossoNumero >= 14 ) or (wTamNossoNumero <= 15))   then

   TamMaximoNossoNumero = wTamNossoNumero;

 

 

Acredito que desta forma manteríamos a compatibilidade para que o componente faça a formatação caso o usuário não tenha feito também atenderíamos corretamente o Nosso Número de 10 dígitos.

 

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

  • Administradores
Postado

Boa tarde Jeter.

 

Implementei as correções que discutimos aqui, se possível efetue novos testes com os convênios de 10 posições que você utiliza.

 

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

Postado

Juliana, bom dia.

 

Fui testar a unit conforme solicitação.

 

Resultado:

 

Na linha 89 e 90 você definiu tamanhos fixos para:

 

fpTamanhoAgencia := 5;
fpTamanhoConta := 8;

 

Eu li um post relatando problemas com espaços na geração de arquivos remessas, acho que foi por isso que você deve ter setado o campo Agencia como 5

Mas, ao setar o tamanho da agência como 5, o formatarnossonumero coloca um zero na frete, o que é compreensivel, mas a impressão do boleto sai incorreta (Imagem comparativa anexa).

Comentei essa linha e deu certo

 

Outra correção foi no método MontarCodigoBarras:

- Não há mais necessidade da verificação do tamanho do nosso número.

 

Segue anexa a unit modificada.

 

Atenciosamente.

post-258-0-85647200-1358166662_thumb.jpg

ACBrCaixaEconomicaSICOB.pas

------------------------------------------------

Jéter Rabelo Ferreira
Campestre/MG

  • Administradores
Postado

Boa noite Jeter.

 

Como em alguns lugares a agência tem 5 dígitos e em outros tem 4, acredito que o ideal seja fixar em 5 e efetuar o tratamento nos locais onde se utiliza apenas 4.

 

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

  • Administradores
  • Solution
Postado

Boa noite Jeter.

 

Sua alteração já está disponível no svn.

 

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

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

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

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