Representação Numérica do Código de Barras (linha digitável) - 4º Campo

2,113 views
Skip to first unread message

Ronaldo Peixoto

unread,
Sep 28, 2011, 10:29:38 PM9/28/11
to jrimum-c...@googlegroups.com
Olá a todos,

Para homologação na CEF precisa gerar uma sequência de 10 boletos aonde o 4º Campo - Dígito Verificador geral do Código de Barras (posição 5 do Código de Barras) tenha uma sequência de 0 a 9. Após várias tentativas e chegando ao ponto de gerar uma sequência de 3600 boletos com datas do dia 01/01/2012 a 31/12/2012, nenhum boleto retornou com o valor 0 no 4º Campo. Nos testes realizados obtive somente valores entre 1 e 9. 

Poderiam vê o que há de errado:


/*
* INFORMANDO DADOS SOBRE O CEDENTE.
*/

Cedente cedente = new Cedente(nomeCedente,cnpjCedente);

// Informando dados sobre a conta bancáia do cendente.
Banco banco = BancoSuportado.CAIXA_ECONOMICA_FEDERAL.create();
ContaBancaria contaBancariaCed = new ContaBancaria(banco);
contaBancariaCed.setBanco(banco);
contaBancariaCed.setNumeroDaConta(new NumeroDaConta(codCedente));
contaBancariaCed.setCarteira(new Carteira(24,TipoDeCobranca.SEM_REGISTRO));
contaBancariaCed.setModalidade(new Modalidade(4));
contaBancariaCed.setAgencia(new Agencia(755,"2"));

cedente.addContaBancaria(contaBancariaCed);

/*
* INFORMANDO DADOS SOBRE O SACADO.
*/
Sacado sacado = new Sacado(nomeSacado, cpfSacado);

// Informando o endereço do sacado.
Endereco enderecoSac = new Endereco();

sacado.addEndereco(enderecoSac);

/*
* INFORMANDO OS DADOS SOBRE O TÍTULO.
*/

Titulo titulo = new Titulo(contaBancariaCed, sacado, cedente);

titulo.setNumeroDoDocumento(num + "");

String zeros = "";
int concat = 15 - (num + "").length();
for (int j = 0; j < concat; j++)
zeros += "0";
String numeroIncremento = zeros + num;
String nossoNumero = "24" + numeroIncremento;
titulo.setNossoNumero(nossoNumero);
int dvNossoNumero = SigcbCampoLivre.calculeDVModulo11(nossoNumero);
titulo.setDigitoDoNossoNumero(dvNossoNumero + "");
BigDecimal valor = BigDecimal.valueOf(valorVencimento);
titulo.setValor(valor);
titulo.setDataDoDocumento(new Date());
Date dataVencimento = dt;
titulo.setDataDoVencimento(dataVencimento);
titulo.setTipoDeDocumento(TipoDeTitulo.NF_NOTA_FISCAL);
titulo.setAceite(EnumAceite.A);
titulo.setDesconto(new BigDecimal(0.0));
titulo.setTipoDeMoeda(TipoDeMoeda.REAL);
/*
* INFORMANDO OS DADOS SOBRE O BOLETO.
*/

Boleto boleto = new Boleto(titulo, new SigcbCampoLivre(
conta+dvconta, nossoNumero, dataVencimento, valor));

/*
* GERANDO O BOLETO BANCÁRIO.
*/

Estou usando a versão: JRimum-Bopepo-SNAPSHOT-20100805.jar


grato
Ronaldo Peixoto

Ronaldo Peixoto

unread,
Sep 29, 2011, 10:12:45 AM9/29/11
to jrimum-c...@googlegroups.com
Alguma luz para essa situação?

Estou anexando quatro boletos para vocês analisarem.


boleto04.pdf
boleto00.pdf
boleto01.pdf
boleto02.pdf
boleto03.pdf

Misael Barreto de Queiroz

unread,
Sep 29, 2011, 1:49:34 PM9/29/11
to jrimum-c...@googlegroups.com, ronaldoliv...@gmail.com
Olá Ronaldo, tudo bom?

Ronaldo, acho que houve um pequeno equívoco aí nesse pedido que o pessoal da CAIXA te fez: gerar boletos com DV Geral do código de barras (posição 5 do Código de Barras) de 0 a 9. Infelizmente nunca vai dar zero, sempre vai dar algo entre 1 e 9, conforme está especificado no próprio manual da FEBRABAN:




No caso o Bopepo tá seguindo a regra estipulada pela FEBRABAN.




No caso a dica que te dou é entrar em contato com a CAIXA e repassar a eles esta informação.

Se precisar de algo mais é só avisar.



Um abraço.


Misael Barreto
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



Misael Barreto de Queiroz

unread,
Sep 29, 2011, 2:46:35 PM9/29/11
to JRimum Community (COMUNIDADE), Ronaldo Peixoto

Olá Ronaldo,

Exatamente cara, esse manual que te passaram não tá 100%.
Quando você conseguir uma resposta deles aí é só avisar.

Valeu!




Um abraço.


Misael Barreto
JRimum Developer
www.jrimum.org
P Antes de imprimir, pense em seu compromisso com o meio ambiente





Em 29/09/2011 15:22, Ronaldo Peixoto escreveu:
Boa tarde Misael Barreto,

Grato pela resposta. Consultei o manual que ele me enviou e anexo agora pra ti, versão 67.119 v004 micro, e não especifica que deverá ser utilizado o dígito 1 para os restos 0, 10 ou 1:

4.2.3 Cálculo do Dígito Verificador geral do Código de Barras

4.2.3.1 Exemplo do cálculo do DV geral do Código de Barras, utilizando-se os dados do item 4.2.1:

1049 1 32420000032112 0055077 000100040000000190 <- Sentido do Cálculo
4329 87654329876543 2987654 329876543298765432 <- Índice multiplicação

1º passo - Aplicar o módulo 11 aos dados do Código de Barras, o primeiro dígito da direita para a esquerda, será multiplicado por 2, o segundo, por 3 e assim sucessivamente até o 9;

2º passo - Somar o resultado da multiplicação:
4+0+8+81+24+14+24+10+0+0+0+0+0+21+12+5+4+6+0+0+40+35+0+35+28+0+0+0+8+0+0+0+16+0+0+0+0+0+0+0+4+27+0 = 406

Obs: Quando o resultado da soma for MENOR que o quociente (no caso 11), ele deverá ser diminuído diretamente do quociente, obtendo-se o DV como resultado.

3º passo - dividir o resultado da multiplicação por 11

406/11 = 36
Resto = 10

4º passo - subtrair o resto da divisão de 11
11 - 10 = 1, no exemplo o DV geral do Código de Barras é 1 (DV = 1)


Ou seja, tem um erro aí. Se o resto no 3º passo for igual a 1 o resultado no 4º passo será 10. Vou entrar em contato com eles e vê se é para utilizar a regra dígito 1 para os restos 0, 10 ou 1 no 4º passo:


grato pela orientação e te informarei sobre o retorno deles.

Ronaldo Peixoto

Ronaldo Peixoto

unread,
Oct 3, 2011, 3:47:16 PM10/3/11
to jrimum-c...@googlegroups.com
Olá Misael, tudo bem?

Depois de muitas conversas ficou entendido para o pessoal do banco o conceito de DV geral (4º Campo). Enviei uma massa de boletos de testes, aonde a sequencia teria que ser o DV geral (4º Campo) de 1 a 9.
Assim que estiver homologado repassarei a informação.

Ronaldo Peixoto



Misael Barreto de Queiroz Misael

unread,
Oct 4, 2011, 5:37:06 AM10/4/11
to jrimum-c...@googlegroups.com
Olá Ronaldo,

Beleza cara. Quanto a ter que explicar pro banco as regras de como gerar um boleto/guia, regras essas estipuladas pela própria FEBRABAN, é um fato "curioso". Eu mesmo também já passei por isso heheehhheh. :-)

Ficamos no aguardo então da homologação.
Precisando de algo mais aí é só falar.

Um abraço.




Misael Barreto
JRimum Developer
www.jrimum.org
P Antes de imprimir, pense em seu compromisso com o meio ambiente








Ronaldo Peixoto



Ronaldo Peixoto

unread,
Oct 10, 2011, 8:08:34 AM10/10/11
to jrimum-c...@googlegroups.com
Bom dia Misael,

Estamos quase lá. Agora querem que o espaço entre a ficha de compensação e o início do código de barra de acordo com o 3º item do 2º paragrafo: "5 mm da lateral esquerda da Ficha de Compensação até o início do Código de Barras (zona de silêncio);"  não seja a partir da linha de corte e sim a partir da borda vertical da ficha de compensação. Resolvido quanto a isso. Agora fizeram uma solicitação aonde querem que o boleto esteja na parte inferior da página alinhado a direita. Como resolveria isso? 

Grato

Ronaldo Peixoto

Misael Barreto de Queiroz Misael

unread,
Oct 10, 2011, 11:31:26 PM10/10/11
to jrimum-c...@googlegroups.com
Olá Ronando, tudo bom?

Ronaldo, acabei de voltar de viagem. Vou ver isso pra você amanhã. No
caso você já alterou o template quanto a "5 mm da lateral esqueda
..."?

Falta somente o ajuste do "boleto esteja na parte inferior da página
alinhado a direita"?

Avisa aí. Vamo que vamo pra esses caras homologarem o seu boleto o quanto antes.

Abração cara.


Em 10/10/11, Ronaldo Peixoto<ronaldoliv...@gmail.com> escreveu:

Ronaldo Peixoto

unread,
Oct 11, 2011, 8:57:51 AM10/11/11
to jrimum-c...@googlegroups.com
Olá Misael,

Afirmativo para as duas perguntas.
É isso aí, estamos chegando na reta final.

PS. Se o bopepo é nota 10, o JRimum Community é nota 1000

valeu,

Ronaldo Peixoto

Ronaldo Peixoto

unread,
Oct 11, 2011, 9:24:52 AM10/11/11
to jrimum-c...@googlegroups.com
Cara, quanto a impressão do boleto na parte inferior da página alinhado a direita, eu acho que resolverá na hora de imprimir, mas, ainda não resolvi. Estou usando Adobe Reader 10.1.1

Ronaldo

Misael Barreto de Queiroz

unread,
Oct 11, 2011, 10:28:38 AM10/11/11
to jrimum-c...@googlegroups.com
Fala Ronaldo,

Ronaldo, quanto ao "o boleto na parte inferior da página alinhado a direita", em anexo tô enviando o template do boleto com esse ajuste, agora tenho que ressaltar que a diferença é pouca porque o boleto toma praticamente todo o espaço horizontal. Podemos até ajustar um pouco mais a direita se for necessário, mas daí possa ser que a impressão seja "cortada".

Quanto ao ajuste de "5 mm da lateral esquerda da Ficha de Compensação até o início ... e sim a partir da borda vertical da ficha de compensação", eu vi que tu falou que ajustou, mas não ficou claro pra mim que ajuste seria esse, pois não entendi o "... não seja a partir da linha de corte e sim a partir da borda vertical da ficha de compensação". Tu poderia mandar o template pra eu espiar como ficou?

Se o teu template tiver OK e estiver faltando só o alinhamento a direita, que fiz no template em anexo, manda pra mim que faço rapidão e te mando de volta.

Abraço.





Misael Barreto
JRimum Developer
www.jrimum.org
P Antes de imprimir, pense em seu compromisso com o meio ambiente






Em 11/10/2011 10:24, Ronaldo Peixoto escreveu:
Cara, quanto a impressão do boleto na parte inferior da página alinhado a direita, eu acho que resolverá na hora de imprimir, mas, ainda não resolvi. Estou usando Adobe Reader 10.1.1

Ronaldo
BoletoTemplateSemSacadorAvalista_AlinhadoADireita.pdf
BoletoTemplateSemSacadorAvalista_AlinhadoADireita.odt

Ronaldo Peixoto

unread,
Oct 11, 2011, 3:30:14 PM10/11/11
to jrimum-c...@googlegroups.com
Show....
Segue o template. Lembrando que esse boleto está no formato paisagem.

valeu


BoletoCarne2PorPagina-Caixa3-teste2.odt
BoletoCarne2PorPagina-Caixa3-teste2.pdf

Misael Barreto de Queiroz Misael

unread,
Oct 12, 2011, 9:02:56 AM10/12/11
to jrimum-c...@googlegroups.com
Olá Ronaldo,

Acabei de fazer o ajuste aqui no teu template (anexo BoletoCarne2PorPagina-Caixa3-teste2-AlinhadoADireita - ODT e PDF), alinhando o boleto a direita.

Além disso fiz umas pequenas correções no alinhamento dos campos (dá uma comparada nos arquivos BoletoCarne2PorPagina-Caixa3-teste2.png e BoletoCarne2PorPagina-Caixa3-teste2-AlinhadoADireita). Observe que a título de demonstração, eu alterei a cor de fundo dos campos (textfield) para cinza-azulado, assim fica melhor de ver se o campo está bem posicionado dentro da respectiva área. 

Se você precisar fazer algum ajuste de alinhamento, usando o OpenOffice, a dica que dou é mudar a cor de fundo dos campos e usar a barra de alinhamento (em último caso pode ser o ALT + SETA para pequenas modificações). No final, use um zoom de 200% para fazer os ajustes finais. O vídeo "Bopepo - Boleto personalizado - Adição de campo dinâmico" presente na página http://jrimum.org/bopepo/wiki/Componente/Documentacao/Tutoriais com certeza te ajudará a fazer uma edição.

Espero que o ajuste realizado atenda suas necessidades.
Qualquer coisa JRimum tá na área.



Misael Barreto
JRimum Developer
www.jrimum.org
P Antes de imprimir, pense em seu compromisso com o meio ambiente




JRiboyToEmail.png
BoletoCarne2PorPagina-Caixa3-teste2-AlinhadoADireita.odt
BoletoCarne2PorPagina-Caixa3-teste2-AlinhadoADireita.pdf
BoletoCarne2PorPagina-Caixa3-teste2.png
BoletoCarne2PorPagina-Caixa3-teste2-AlinhadoADireita.png

Misael Barreto de Queiroz

unread,
Oct 25, 2011, 3:41:41 PM10/25/11
to jrimum-c...@googlegroups.com
Olá Ronaldo, tudo bom?

E aí cara, o template deu certo? Precisa de mais alguma força aí?

Abraço.

Ronaldo Peixoto

unread,
Oct 25, 2011, 4:40:19 PM10/25/11
to jrimum-c...@googlegroups.com
Grande Misael, boa tarde.

Recebemos a homologação na sexta. Temos muito o que agradece a você e toda a JRimum Community.

O nosso template ficou o que está em anexo.

Depois vou postar no tópico de Casos de Sucesso da lista


Ronaldo Peixoto
BoletoCarne.odt
Reply all
Reply to author
Forward
0 new messages