Erro para gerar Boleto do Sicredi usando o exemplo do Ricardo

764 views
Skip to first unread message

crsilveira

unread,
Jul 16, 2008, 7:44:53 AM7/16/08
to JRimum Community
Olá , agradeceria se alguém pudesse me ajudar, mudei as seguintes
linhas no exemplo do Sicredi:

ContaBancaria contaBancariaCed = new ContaBancaria(banco);
contaBancariaCed.setAgencia(new Agencia(3025, "02"));
contaBancariaCed.setCarteira(new Carteira(5));
contaBancariaCed.setNumeroDaConta(new NumeroDaConta(15026, "0"));
cedente.addContaBancaria(contaBancariaCed);

Tenho o seguinte erro :

log4j:WARN No appenders could be found for logger
(br.com.nordestefomento.jrimum.ACurbitaObject).
log4j:WARN Please initialize the log4j system properly.
Exception in thread "main"
br.com.nordestefomento.jrimum.bopepo.campolivre.CampoLivreException:
Ocorreu um problema ao tentar gerar o campo livre Sicredi.
at
br.com.nordestefomento.jrimum.bopepo.exemplos.CampoLivreSicredi.<init>(CampoLivreSicredi.java:
179)
at
br.com.nordestefomento.jrimum.bopepo.exemplos.MeuPrimeiroBoletoSicredi.main(MeuPrimeiroBoletoSicredi.java:
117)
Caused by: java.lang.IllegalArgumentException: O dígito da Conta/
Código do Cedente Sicredi deve ser fornecido somente quando o número
da (Conta/Código do Cedente) for composto de 1 a 4 dígitos, e não: []
at
br.com.nordestefomento.jrimum.bopepo.exemplos.CampoLivreSicredi.componhaCodigoDoCedente(CampoLivreSicredi.java:
318)
at
br.com.nordestefomento.jrimum.bopepo.exemplos.CampoLivreSicredi.<init>(CampoLivreSicredi.java:
168)
... 1 more
Java Result: 1
BUILD SUCCESSFUL (total time: 2 seconds)


Atenciosamente,

Carlos

Gilmar P.S.L.

unread,
Jul 16, 2008, 11:58:34 AM7/16/08
to jrimum-c...@googlegroups.com
Olá Carlos...
 
Pirmeiramente gostaríamos de agradecer pela colaboração.
 
Bom, o erro foi causado por falha no exemplo..
A falha foi corrigida, mas como se trata de um exemplo o código não foi coberto por testes...
 
A intenção era mas ser um exemplo de demonstração de extenção do que um implementação propriamente dita..
Na próxima versão esse campo livre do sicredi já deve estar incorporado, embora, nessa nova versão da classe em:
 
 
Esperamos que esteja correto.
 
Para incorporar essa correção no exemplo vc só precisa baixar um único arquivo .java em:
 
 
Que é a mesma coisa de clicar em "Original Format" no final da página do link anterior.
 
E depois incluir esse arquivo no pacote: br.com.nordestefomento.jrimum.bopepo.exemplos
 
Pronto é só isso, dessa forma o exemplo deve funcionar corretamente.
 
Agradecemos sua colaboração e caso outro problema ocorra ou tenha alguma dúvida pode entrar em contato conosco.

--
Gilmar P.S.L.

crsilveira

unread,
Jul 18, 2008, 1:53:07 PM7/18/08
to JRimum Community
Blz Gilmar, agora funcionou,

Mas surgiu mais uma dúvida, em cima do exemplo do sicredi, eu inseri
dados para me certificar da validade do boleto,
tenho um boleto Gerado pelo Programa do Sicredi, e comparando os dados
a linha digitavel não bate:
veja a diferença:
Prog. Sicredi : 74891.10820 00014.230270 02150.561070 6
39290000006500
jRimum : 74893.10826 00014.201552 92150.561006 8
39290000006500

Dados usados: Agencia : 3027 C/C 15056-8
Data Emissão : 02/07/2008
Data Vencimento: 10/07/2008
Valor : 65,00
N. Documento : 495

No MeuPrimeiroBoletoSicredi.java :

ContaBancaria contaBancariaCed = new
ContaBancaria(banco);
contaBancariaCed.setAgencia(new Agencia(03027, "02"));
contaBancariaCed.setCarteira(new Carteira(5)); // 5
contaBancariaCed.setNumeroDaConta(new NumeroDaConta(15056, "8"));

Titulo titulo = new Titulo(contaBancariaCed, sacado,
cedente,sacadorAvalista);
titulo.setNumeroDoDocumento("495");//123456789
titulo.setNossoNumero("08200014");// NossNúmero já Vem Calculado
"07200009"
titulo.setDigitoDoNossoNumero("2");
titulo.setValor(BigDecimal.valueOf(65));

DateFormat formatter = new SimpleDateFormat("dd/MM/
yyyy");
try{
Date dataDoc = (Date)formatter.parse("02/07/2008");
titulo.setDataDoDocumento(dataDoc); //(new Date());
} catch (ParseException e) {
throw new Exception("Data com formato
inválido");
}



try{
Date dataVenc =
(Date)formatter.parse("10/07/2008");
titulo.setDataDoVencimento(dataVenc); //(new
Date());
} catch (ParseException e) {
throw new Exception("Data com formato
inválido");
}


Grato,

Carlos.



On 16 jul, 12:58, "Gilmar P.S.L." <gilmat...@gmail.com> wrote:
> Olá Carlos...
>
> Pirmeiramente gostaríamos de agradecer pela colaboração.
>
> Bom, o erro foi causado por falha no exemplo..
> A falha foi corrigida, mas como se trata de um exemplo o código não foi
> coberto por testes...
>
> A intenção era mas ser um exemplo de demonstração de extenção do que um
> implementação propriamente dita..
> Na próxima versão esse campo livre do sicredi já deve estar incorporado,
> embora, nessa nova versão da classe em:
>
> http://jrimum.nordestefomento.com.br/wprojeto/browser/trunk/WProjeto/...
>
> Esperamos que esteja correto.
>
> Para incorporar essa correção no exemplo vc só precisa baixar um único
> arquivo .java em:
>
> http://jrimum.nordestefomento.com.br/wprojeto/browser/trunk/WProjeto/...

Gilmar P.S.L.

unread,
Jul 21, 2008, 3:19:49 AM7/21/08
to jrimum-c...@googlegroups.com
Olá Carlos,

Olha, as informações que vc enviou ajudaram bastante, as diferenças foram vistas rapidamente.
Então vamo lá...

A primeira coisa analisada foi a entrada de dados no exemplo que vc modificou, exatamente nos dados referentes a agência bancária:

contaBancariaCed.setAgencia(new Agencia(03027, "02"));

Vc está passando um Octal como número da agência e não um inteiro por causa do zero antes do 3027, então é só tirar o zero inicial.

Fizemos outra modificação para o campo aceitar até exatamente 4 dígitos e dois ditos no digito verificador da agência. Estávamos com dúvida se eram 5 ou 4, mas sabiamos que o total eram 6 digitos ao todo. Agora com a linha digitável do programa Sicredi que vc mandou tiramos a dúvida.

Para baixar a nova versão é só fazer a mesma coisa de antes, o link da nova versão do arquivo agora é:

http://jrimum.nordestefomento.com.br/wprojeto/browser/trunk/WProjeto/src/br/com/nordestefomento/jrimum/bopepo/example/CampoLivreSicredi.java?rev=6&format=raw

Apartir das informações que vc nos enviou geramos novamente o exemplo e comparamos com a linha digitável do boleto gerado pelo programa do SICREDI:


SICREDI

74891.10820 00014.230270 02150.561070 6 39290000006500

JRimum-Bopepo
74893.10826 00014.230270 02150.561005 5 39290000006500

Vc pode notar que temos 5 digitos diferentes entre as duas gerações (Jrimum X Sicredi). Achamos que seja normal, pois o quinto digito da esquerda para direita (em destaque) remete a um indicador de tipo de cobrança. De acordo com o layout preenchemos com 3. As outras diferenças são decorrentes dessa, pois são campos calculados com base nesse digito.

Entendemos que o código 3 seja para indicar um cobrança em que o cedente emite o boleto e o código 1 quando o Sicredi emite o mesmo boleto. Mas é só uma suspeita.

Não vemos outra opção agora a não ser a de tentar homologar junto ao banco.

Mas, é isso, será que vc poderia tentar mais alguns testes aí ou tentar uma homologação?

Estamos contando com sua colaboração, qualquer coisa pode entrar em contato.
Mais uma vez obrigado pela qualidade da informação e colaboração.
Valeu mesmo.

Anteciosamente,
--
Gilmar P.S.L.
Reply all
Reply to author
Forward
0 new messages