Data de Vencimento

1,060 views
Skip to first unread message

Bruno de Souza

unread,
Mar 1, 2011, 2:01:09 PM3/1/11
to jrimum-c...@googlegroups.com
Sou novo no Jrimum, me desculpem se esse não é o melhor lugar para tirar uma duvida.

Mas como crio um boleto comum, por exemplo do Banco Santander, onde a data de vencimento não existe, ou seja, onde ja vi em muitos boletos algo como "contra apresentação" no lugar da data.

Desde já obrigado

Bruno de Souza

Misael Barreto

unread,
Mar 2, 2011, 12:10:44 AM3/2/11
to jrimum-c...@googlegroups.com, Bruno de Souza
Olá Bruno, tudo bom?

Bruno, em anexo tem um exemplo de como você gerar este boleto do banco Santander. Utilize esta classe exemplo juntamente com o último SNAPSHOT do Bopepo 0.2-Helio (2011/02/09):
http://code.google.com/p/jrimum/downloads/detail?name=JRimum-Bopepo-SNAPSHOT-20110209-bin.jar

Quanto a questão da data de vencimento no estilo "CONTRA APRESENTAÇÃO", um solução para isto é você informar como data de vencimento a data estipulada pela FEBRABAN como data base para o cálculo do fator de vencimento (07/10/1997), informação essa imprescindível para a confecção da "dupla dinâmica" CÓDIGO DE BARRAS e LINHA DIGITÁVEL.
http://www.jrimum.org/bopepo/wiki/Componente/Documentacao/Negocio#Fatordevencimento
http://www.jrimum.org/bopepo/browser/branches/0.2-Helio/doc/Manual_De_Especifica%C3%A7%C3%A3o_FEBRABAN_Para_Boletos.pdf

        // Data base para o cálculo do fator de vencimento definido no manual da FEBRABAN.
        // Utilizando esta data o fator de vencimento terá o valor 0000 (ZERO).
        titulo.setDataDoVencimento(  Dates.parse("07/10/1997", "dd/MM/yyyy")  );


E para que seja exibida uma mensagem no estilo "CONTRA APRESENTAÇÃO", ou outra pertinente, você pode realizar isso através da sobreescrita da exibição do campo "Data de Vencimento"...
http://www.jrimum.org/bopepo/wiki/Componente/Documentacao/Tutoriais/SobrecritaDeCampos
http://www.jrimum.org/bopepo/wiki/Componente/Documentacao/Tutoriais

        // Sobrescrita de campos...
        boleto.addTextosExtras("txtFcDataVencimento", "CONTRA APRESENTAÇÃO");
        boleto.addTextosExtras("txtRsDataVencimento", "CONTRA APRESENTAÇÃO");



Bruno, esta situação do vencimento "CONTRA APRESENTAÇÃO" ainda é algo que a gente conhece mas que na prática ainda não foi validada. Fiz uma busca no grupo e não achei nada. Aproveitando esta oportunidade, vamos trabalhar juntos aí para atender a sua necessidade e validar este situação da CONTRA APRESENTAÇÃO.

De cara já se senti a necessidade de informar essa situação da CONTRA APRESENTAÇÃO de uma forma mais amigável. Em breve poderíamos disponibilizar algo do tipo:
        (Opção 1) titulo.setDataDoVencimento( FatorDeVencimento.DATA_BASE_DO_FATOR_DE_VENCIMENTO  );
        (Opção 2) titulo.setDataDoVencimentoComoContraApresentacao();
E caso esta informação fosse repassada, por default a mensagem "CONTRA APRESENTAÇÃO" já seria exibida no boleto.


Faça um test drive com o conteúdo que te passei e me dá um retorno, beleza?
Estamos juntos!

Um abraço.


Misael Barreto
JRimum Developer



http://www.jrimum.org
http://www.blog.jrimum.org








--
Você está recebendo esta mensagem porque se inscreveu no grupo "JRimum Community" dos Grupos do Google.
Para postar neste grupo, envie um e-mail para jrimum-c...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para jrimum-communi...@googlegroups.com.
Para obter mais opções, visite esse grupo em http://groups.google.com/group/jrimum-community?hl=pt-BR.

MeuPrimeiroBoleto.java
MeuPrimeiroBoleto.pdf

Misael Barreto

unread,
Mar 2, 2011, 12:44:48 AM3/2/11
to jrimum-c...@googlegroups.com, Bruno de Souza
Olá Bruno,

Bruno, dando uma espiada a pouco no manual do Santander, eu acabei ficando confuso. Espia aí:
http://www.hsbc.com.br/1/PA_1_1_S5/content/hbbr_pws/pt/para-sua-empresa/pagamentos-e-recebimentos/layouts-tecnicos/pdf/cobranca-nao-registrada/cnrbarra.pdf

6.3 – FATOR DE VENCIMENTO
Este campo deverá ser formatado com um número sequencial a partir de 03/07/2000, cuja
codificação deste dia será 1000 (Fator contado à partir da data base 07/10/1997),
acrescentando-se 1 unidade a cada dia decorrido. Exemplos:
04/07/2000 fator igual a = 1001
01/05/2002 fator igual a = 1667
04/07/2008 fator igual a = 3923
17/10/2010 fator igual a = 4758
21/02/2025 fator igual a = 9999

Nota: Se utilizado o Tipo Identificador “5”, o fator de vencimento deverá ser preenchido
com quatro zeros = 0000, para toda e qualquer situação de vencimento.


6.3.1 – Vencimentos “À Vista” ou “Contra Apresentação”

Para vencimento “À VISTA” ou “CONTRA APRESENTAÇÃO”, o fator de vencimento
deverá ser obtido somando-se 15 dias corridos à data de processamento do bloqueto.
Exemplo:
Data de processamento = 02/01/2008, correspondente ao fator de vencimento = 3739.
Data de vencimento = 17/01/2008 (+ 15 dias corridos), correspondente ao fator de
vencimento = 3754.
Então o fator de vencimento a ser gravado no código de barras será 3754.
Obs.: Á Vista ou Contra Apresentação é somente utilizado com o tipo identificador “5”.



Desse jeito fica complicado, "num to entendendo meu...". Os trechos que destaquem em negrito se contradizem, um é a negação do outro.

Bem, to com sono e amanhá tem trampo.
Vamos manter contato aí pra tentar entender essa situação.

Como sempre digo, o dífícil não é gerar boletos, e sim entender os manuais heheheh.

Gilmar P.S.L.

unread,
Mar 2, 2011, 10:40:47 AM3/2/11
to jrimum-c...@googlegroups.com, Misael Barreto, Bruno de Souza
Olá Bruno,

Na verdade, a regra geral é:

Vencimento –  é um campo obrigatório e deve conter as data de vencimento ou a expressão “à vista” ou “na apresentação” ou “contra apresentação”.

Para Boletos com vencimento “à vista” ou “contra apresentação”
– somam-se 15 dias corridos à “data do processamento”. O resultado desta operação representa a data do vencimento, cujo fator correspondente deve constar no código de barras e na linha digitável.

Sendo assim, você só precisa adicionar 15 dias a data de geração de boleto, exemplo:

Calendar vencimento = Calendar.getInstance();
vencimento.setTime(boleto.getDataDeProcessamento());
vencimento.add(Calendar.DAY_OF_YEAR, 15);
titulo.setDataDoVencimento(vencimento.getTime());

E em seguida, fazer como Misal já disse:


// Sobrescrita de campos... 
boleto.addTextosExtras("txtFcDataVencimento", "CONTRA APRESENTAÇÃO");
boleto.addTextosExtras("txtRsDataVencimento", "CONTRA APRESENTAÇÃO");

Agora, caso o banco em questão tenha mais alguma orientação, deve ser de impressão ou atribuição de valores, o resto é com o Bopepo.

Obs: O caso do HSBC ao qual Misael se referiu é em relação a data juliana, e já está implementado pelo Bopepo.

Atenciosamente
------------------------------------------------------
Gilmar P.S.L.



2011/3/2 Misael Barreto <misael...@gmail.com>

Misael Barreto de Queiroz

unread,
Mar 2, 2011, 1:13:47 PM3/2/11
to jrimum-c...@googlegroups.com
Fala galera,

Bruno, o que Gilmar falou realmente é a regra geral estipulada pela FEBRABAN, e em tese todos os bancos têm de seguir: "Para Boletos com vencimento “à vista” ou “contra apresentação” – somam-se 15 dias corridos ...".

Quanto ao trecho do manual do HSBC que citei, eu "errei de banco" mas realmente estava falando do fator de vencimento (posição 06 a 09 do código de barras), e não de cálculo de data juliano, utilizado por alguns bancos para compor outros campos. A informação de como calcular o fator de vencimento, DESTE MANUAL ESPECIFICAMENTE, é confuso.

Mas bola pra frente. Por coincidência, lembrei que tenho uns boletos recentes do Santander que possuem essa situação da CONTRA APRESENTAÇÃO. Aí vai um deles, saindo do forno:



Seguindo a regra da FEBRABAN, como o processamento foi realizado em 02/03/2011, a data de vencimento deveria ser 15 dias após, ou seja, 17/03/2011 (Fator de Vencimento = 4909). No entanto, veja que o valor do fator de vencimento do boleto é 4926 (em destaque na cor vermelha na LINHA DIGITÁVEL), o que equivale exatamente a data presente na mensagem "Após 03/04/2011 pagar somente nas ..." (em destaque na cor velha do campo instruções) . Verifiquei outros boletos anteriores e ocorre a mesma situação.

Então resumindo, tente seguir aqui as dicas da galera mas obtenha o manual junto ao Santander  para que consigamos realmente atender a sua necessidade.

Um abraço.
Equipe JRimum na área!
--
Misael Barreto de Queiroz
Analista de Sistemas
Squadra Tecnologia
A serviço do:
Departamento de Desenvolvimento de Sistemas
Tribunal de Justiça do Estado do Rio Grande do Norte
e Conselho Nacional De Justiça
+55 (84) 3616.6200 r6415
+55 (84) 3616.6415

Bruno de Souza

unread,
Mar 4, 2011, 1:42:21 PM3/4/11
to jrimum-c...@googlegroups.com, Misael Barreto de Queiroz
Bom galera, obrigado pela atenção...

Enviei alguns boletos para homologação, com as alterações que vcs sugeriram, mas parece que o Santander é cheio de frescuras.
Acabei de ter uma resposta do Banco Santader, e eles me responderam o seguinte:


Como será utilizado vencimento Contra Apresentação, então na linha digitavel o fator vencimento (posição 34 até 36) deve ser zerado. Segue exemplo:

 

Linha digitável

Enviado:   033991996.1   7540000050.3   0000550102.8   8   48950000123600

Esperado: 033991996.1   7540000050.3   0000550102.8   1   00000000123600



Como devo prosseguir, há algo que posso fazer de imediato, é uma alteração simples?

Valeu, e mais uma vez obrigado.

Bruno de Souza
moz-screenshot-162.png

Gilmar P.S.L.

unread,
Mar 4, 2011, 2:59:47 PM3/4/11
to jrimum-c...@googlegroups.com, Bruno de Souza, Misael Barreto de Queiroz
Sim Bruno,

Aí você pode fazer o seguinte:

titulo.setDataDoVencimento(org.jrimum.bopepo.FatorDeVencimento.toDate(0));

E pronto, já sairá no código de barras.

Beleza?

------------------------------------------------------
Gilmar P.S.L.



2011/3/4 Bruno de Souza <brun...@gmail.com>
moz-screenshot-162.png

Vinicius

unread,
Aug 29, 2016, 9:02:43 AM8/29/16
to JRimum Community
Bom dia galera, estou em dúvida como incrementar a data de vencimento, no boleto estilo carnê, alguem tem algum modelo pra me ajudar?
Reply all
Reply to author
Forward
0 new messages