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