Ir para conteúdo
  • Cadastre-se

dev botao

Problema com o boleto do Sicredi referente ao Código de Cobrança de Juros.


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

Recommended Posts

Postado

Bom dia a todos,

 

Temos um problema com o boleto do Sicredi referente ao Código de Cobrança de Juros.

No trecho de código do método “GerarRegistroTransacao400()” na unit "ACBrBancoSicredi.pas" sempre a variável “CodigoMora” chega com o valor em branco. Portanto sempre vai receber o valor ‘A’ e a cobrança de juros sempre será por valor (R$).

if (CodigoMora <> 'A') and (CodigoMora <> 'B') then

   CodigoMora := 'A';

Para corrigir o problema eu acrescento o seguinte código antes.

if (CodigoMoraJuros = cjTaxaMensal) then

    CodigoMora := 'B';

Assim caso o “CodigoMoraJuros” seja por percentual (%) a variável já é setada para o valor ‘B’ e não passará pelo trecho de código seguinte.

Já utilizamos a tempo esse código e funciona perfeitamente. O problema é que toda vez que atualizo minha pasta do ACBr local pelo SVN eu tenho que tornar a fazer essa modificação.

Teria como corrigir isso no repositório do SVN do ACBr para que já ficasse certo para todos.

 

  • Consultores
Postado
26 minutos atrás, trigus disse:

No Item 8.2 Registro Detalhe (Tipo 1).

Manual CNAB 400 do Sicredi - Novembro/2021 – Versão 2.1 (em anexo)

 

image.png.b870fe192126c281fe9746c99e059375.png

manual_sicredi_cnab_400_2_1.pdf 1.7 MB · 0 downloads

Anexe também a(s) unit(s) alterada(s), por favor.

Consultor SAC ACBr

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

Postado

Apenas a unit ACBrBancoSicredi.pas foi alterada (em anexo).

Alterei na linha 325 para o CNAB 400

     if (CodigoMoraJuros = cjTaxaMensal) then
       CodigoMora := 'B';
 

E na linha 1922 para o CNAB 240

    if (CodigoMoraJuros = cjTaxaMensal) then
      CodigoMora := '2';
 

ACBrBancoSicredi.pas

  • Curtir 1
  • Consultores
Postado

Obrigado pela contribuição, em breve será validada para possível inclusão ao svn #TK-3272

Consultor SAC ACBr

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

  • Consultores
Postado

@trigus
Bom dia estava analisando o caso, já existe um campo quando vamos adicionar um título CodigoMora (Titulo.CodigoMora);
Se puder testar por favor, quando você gera um boleto, vc informa se o titulo vai ser tipo A ou B:


screenshot_20221116_103448.png

Informando este campo, automaticamente vai ser gerado no layout posição 19 (CNAB 400) como B:


screenshot_20221116_103510.png

Aguardo um retorno !
Abraços !


 

Consultor SAC ACBr

Daniel de Morais (Infocotidiano)
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Postado

Boa tarde!


Já testei também, mas não funciona. Quando se tenta setar o Titulo.CodigoMora= ‘B’ é disparada a exceção abaixo.

unit ACBrBoleto.pas

procedure TACBrTitulo.SetCodigoMora(const AValue: String);
begin
  if fCodigoMora = AValue then
      exit;
  if Pos(AValue,ACBrBoleto.Banco.CodigosMoraAceitos) = 0 then
     raise Exception.Create( ACBrStr('Código de Mora/Juros informado não é permitido ' +
                                     'para este banco!') );

  fCodigoMora := AValue;
end;

A verificação está sendo feita somente na classe base e como o valor de "CodigoMora" é diferente para o Sicredi a exceção é disparada.
Na classe base o valor de fpCodigosMoraAceitos está sendo iniciado apenas com '12'. 

Na minha humilde opinião, neste caso, acredito ser interessante iniciar essa variável na própria classe final, no caso TACBrBancoSicredi, sobrescrevendo o método SetCodigoMora da classe base.

Postado
16 minutos atrás, trigus disse:

Boa tarde!


Já testei também, mas não funciona. Quando se tenta setar o Titulo.CodigoMora= ‘B’ é disparada a exceção abaixo.

unit ACBrBoleto.pas

procedure TACBrTitulo.SetCodigoMora(const AValue: String);
begin
  if fCodigoMora = AValue then
      exit;
  if Pos(AValue,ACBrBoleto.Banco.CodigosMoraAceitos) = 0 then
     raise Exception.Create( ACBrStr('Código de Mora/Juros informado não é permitido ' +
                                     'para este banco!') );

  fCodigoMora := AValue;
end;

A verificação está sendo feita somente na classe base e como o valor de "CodigoMora" é diferente para o Sicredi a exceção é disparada.
Na classe base o valor de fpCodigosMoraAceitos está sendo iniciado apenas com '12'. 

Na minha humilde opinião, neste caso, acredito ser interessante iniciar essa variável na própria classe final, no caso TACBrBancoSicredi, sobrescrevendo o método SetCodigoMora da classe base.

 

Na verdade, e como se a classe TACBrBancoSicredi não estivesse reconhecendo os valores iniciados em TACBrBancoSicredi.create para variável fpCodigosMoraAceitos ;

fpCodigosMoraAceitos  := 'AB0123';

  • Consultores
  • Solution
Postado

Tarde @trigus
Seus fontes estão atualizados ?
Como enviei acima existe o campo Titulo.CodigoMora onde vc determina = 'A' ou 'B'
Se puder testar com o programa exemplo, aqui esta funcionando.
lembre-se de setar CNAB 400
Na função que lerini, ele vem 1 como default:

screenshot_20221117_160354.png

por isso pedi para vc informar o Titulo.CodigoMora := ''B'' na hora que está gerando o título. (não vai alterar nada da unit ACBrBoleto.pas);

Lá na pasta q está configurada o SVN, se puder ver a versão que está (tortoise svn - show log);

Aguardo o feedback !

 

Consultor SAC ACBr

Daniel de Morais (Infocotidiano)
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Postado

Desculpa, não tinha entendido corretamente.

Meu SVN tinha sido atualizado dia 11/11.

Acabei de atualizar e agora funcionou corretamente. Está aceitando o valor Titulo.CodigoMora := ‘B’ sem problemas.

 

Obrigado!

  • Consultores
Postado

@trigus
heee maravilha !!!!!
Fico feliz por ter ajudado. Então como funcionou com este parâmetro que já existia, vamos descartar esta colaboração.
Mas agradecemos muito e quando quiser, pode nos enviar para análise.
Abraços ! 
 

Consultor SAC ACBr

Daniel de Morais (Infocotidiano)
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

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