Bopepo: dúvida na geração de boleto para Banrisul com TipoCobranca.COM_REGISTRO

492 views
Skip to first unread message

Rodrigo Rosa

unread,
Jun 19, 2012, 8:31:15 AM6/19/12
to jrimum-c...@googlegroups.com
Saudações!

Estou utilizando o projeto JRimum Bopepo com sucesso para geração de boletos para os bancos BB, Bradesco, Caixa, Itau, Santander, Sicredi e Banrisul.

Para esse último caso, percebi uma diferença na geração da linha digitável quando utilizado tipo de cobrança com registro (TipoCobranca.COM_REGISTRO). Fiz uma busca na lista e não encontrei menção a esse assunto, se já foi discutido, por favor me perdoem e encaminhem o link.

Gerando o boleto SEM_REGISTRO, a linha digitável gerada é 

04192.10273 90011.280113 20003.940374 3 55650000005000

o que bate com o meu boleto impresso. O mesmo boleto sendo gerado COM_REGISTRO, no modelo que tenho, deveria gerar o mesmo valor, mas gera a linha digitável

04191.10275 90011.280113 20003.940689 5 55650000005000

A primeira  coisa que chama atenção é a mudança do dígito 2 para 1 no primeiro bloco, que provoca mudança no DV.

04192.10273 => 04191.10275

Procurando na documentação do banco (Cobrança Eletrônica Banrisul - Layout CNAB - Padrão Febraban Versão 02.0 de 18.03.2010 - anexo), encontrei essa definição

6.5 LINHA DIGITÁVEL PADRÃO COMPENSAÇÃO ELETRÔNICA.

041M2.1AAAd1bb ACCCCC.CCNNd2bb NNNNN.N40XXd3bb V FFFF9999999999

Em que:

041 Constante, Código do Banco junto a Câmara de Compensação (posição 01 a 03 do Código de Barras).
M    Moeda (posição 04 a 04 do Código de Barras).
2    Constante, identifica o Produto (posição 20 do Código de Barras)
1    Constante, identifica o Sistema BDL - Carteira de Letras (posição 21 do Código de Barras).
A    Agência, sem o NC, quatro primeiros dígitos (posição 22 a 25 do Código de Barras).

Dando a entender que a quinta posição da linha digitável é uma constante, sempre com "2". 
Mas procurando no código fonte do Bopepo, me pareceu que as classes CLBanrisulCobrancaNaoRegistrada e CLBanrisulCobrancaRegistrada são especializações que justamente chaveiam entre esse código 2 e 1.

Eu entendi ou interpretei as informações equivocadamente? O manual que possuo está desatualizado? Alguém já homologou boleto com cobrança registrada para o banrisul gerando o código com o 1 na quinta posição?

Agradeço a atenção.

Rodrigo Rosa
Wonder Sistemas de Informações
Erechim - RS
CNAB 240 - Banrisul_vrs18032010.pdf

Rômulo Augusto

unread,
Jun 20, 2012, 7:54:41 AM6/20/12
to jrimum-c...@googlegroups.com
Rodrigo, no manual que temos e usamos para implementar o banrisul ( http://www.jrimum.org/bopepo/attachment/ticket/21/CobrancaEletronicaBanrisul_layout_pdr_Febraban400_vrs26052010_ed02.pdf )
diz que essa constante varia para cada tipo de cobrança:

Página 37:
5.2  CAMPO LIVRE - SISTEMA BDL/CARTEIRA DE LETRAS
 
Posições 20 a 20    Produto: 
                                         "1" Cobrança Normal, Fichário emitido pelo BANRISUL.
                                         "2" Cobrança Direta, Fichário emitido pelo CLIENTE.

Então, de acordo com a documentação, para cobranças registradas, a constante é 1, e sem registro, 2.
Esse documento data de 06/08/2010

No documento que vc enviou podemos ver a mesma informação na página 30.

Esse boleto que vc tem de exemplo, gerado com a cobrança COM REGISTRO, já está homologado? Porque a própria documentação diferencia os produtos.


-------------------------------------------------------------------
Rômulo Augusto
JRimum Developer
www.jrimum.org
P Antes de imprimir, pense em seu compromisso com o meio ambiente



--
Você recebeu esta mensagem porque está inscrito no Grupo "JRimum
Community" nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
jrimum-c...@googlegroups.com
ANTES DE POSTAR... leia:
https://groups.google.com/d/topic/jrimum-community/ULU8QHHgaBs/discussion
Para cancelar a sua inscrição neste grupo, envie um e-mail para
jrimum-communi...@googlegroups.com
Para ver mais opções, visite este grupo em
http://groups.google.com/group/jrimum-community?hl=pt-BR?hl=pt-BR

Rodrigo Rosa

unread,
Jun 20, 2012, 12:57:56 PM6/20/12
to jrimum-c...@googlegroups.com
Salve, Rômulo.
Obrigado pela rápida resposta.

Eu estava com a interpretação que o tipo de emissão (banco ou cliente) era uma informação e que o tipo de cobrança (com ou sem registro) era outra, podendo existir um boleto emitido pelo cliente e com registro. Vou alterar meu código para utilizar dessa forma então.

Muito obrigado,
Rodrigo Rosa

Rômulo Augusto

unread,
Jun 20, 2012, 1:06:05 PM6/20/12
to jrimum-c...@googlegroups.com
Blz cara. De qualquer forma, quando vc for homologar com o banco teremos a resposta definitiva.



-------------------------------------------------------------------
Rômulo Augusto
JRimum Developer
www.jrimum.org
P Antes de imprimir, pense em seu compromisso com o meio ambiente



--

Ivan

unread,
Apr 29, 2014, 4:27:20 PM4/29/14
to jrimum-c...@googlegroups.com
Olá Rodrigo!

Como você procedeu com o dígito que difere se a impressão é pelo cliente ou banco?

Onde seto este valor?

Rodrigo Rosa

unread,
Apr 29, 2014, 4:39:58 PM4/29/14
to jrimum-c...@googlegroups.com
Salve, Ivan.

Fiz uma alteração no core do bopepo, não vi outra forma. Adicionei o valor do meu atributo ao map ParametrosBancarios ao criar o Titulo.
E alterei a criação do campo livre, nas classes AbstractCLBanrisul e as duas implementações CLBanrisulCobrancaNaoRegistrada e CLBanrisulCobrancaRegistrada, setando o meu atributo no lugar das constantes.
Não ficou muito elegante, foi uma solução paliativa. Talvez o ideal seria adicionar um atributo ao Titulo, mas aparentemente os outros bancos não utilizam esse cara, e sim a carteira  para inferir essa informação.





--
--
Você recebeu esta mensagem porque está inscrito no Grupo "JRimum
Community" nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
jrimum-c...@googlegroups.com
ANTES DE POSTAR... leia:
https://groups.google.com/d/topic/jrimum-community/ULU8QHHgaBs/discussion
Para cancelar a sua inscrição neste grupo, envie um e-mail para
jrimum-communi...@googlegroups.com
Para ver mais opções, visite este grupo em
http://groups.google.com/group/jrimum-community?hl=pt-BR?hl=pt-BR

---
Você recebeu essa mensagem porque está inscrito no grupo quot;JRimum Community" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para jrimum-communi...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.

Ivan Daniel

unread,
Apr 29, 2014, 5:11:16 PM4/29/14
to jrimum-c...@googlegroups.com
Olha só, alterei a carteira para sem registro, aí ficou setado 2 como preciso.

Sem registro - na quinta posição está correto certo?  Informa que a impressão é feita pelo cliente.

04192.10950 - o último 0 é digito verificador?

Com registro
04191.10952 


Mas existe outro campo ou informação que precisa ser alterada no código de barras?




Você recebeu essa mensagem porque está inscrito em um tópico no grupo "JRimum Community" dos Grupos do Google.
Para cancelar inscrição nesse tópico, acesse https://groups.google.com/d/topic/jrimum-community/TZ6ejSJ7Xmg/unsubscribe.
Para cancelar inscrição nesse grupo e todos os seus tópicos, envie um e-mail para jrimum-communi...@googlegroups.com.

Rodrigo Rosa

unread,
Apr 29, 2014, 6:52:15 PM4/29/14
to jrimum-c...@googlegroups.com
Pelo manual que tenho, a quinta posição da linha digitável é a posição 20 do código de barras, que define se a emissão do boleto é feita pelo banco (1) ou pelo cliente(2). Se a carteira é com ou sem registro, é outra informação (salvo equívoco meu). Via de regra, é feito esse mapeamento de carteira com registro => 1 - emitido pelo banco e carteira sem registro => 2 - emitido pelo cliente. É o comportamento padrão e funciona bem para o seu caso. Eu fiz a alteração porque tenho um caso onde a carteira é "com registro" e o boleto "emitido pelo cliente". Então precisei manipular o segundo valor conforme meu parâmetro e não mais em função do primeiro. Pelo que eu vi, o Banrisul é o único banco a usar o emissor no campo livre, por isso é incomum essa situação. Caso contrário é só setar a carteira e correr para o abraço mesmo.

Ivan Daniel

unread,
Apr 29, 2014, 9:13:22 PM4/29/14
to jrimum-c...@googlegroups.com
Eu fiz a seguinte alteração:

Carteira carteira = new Carteira(1);
 carteira.setTipoCobranca(TipoDeCobranca.SEM_REGISTRO);

Vou mandar pra homologação! Posto resultado!

Temos que ajustar essas novas exigências no projeto!
Tem várias outras que solicitaram!

Reply all
Reply to author
Forward
0 new messages