Problemas ao gerar uma guia de arrecadação.

179 visualizações
Pular para a primeira mensagem não lida

Euclides Filizola

não lida,
5 de mai. de 2011, 10:05:4005/05/2011
para JRimum Community
Bom dia Pessoal,

há um mês atrás, eu vim aqui na comunidade para ver como eu poderia gerar um guia de arrecadação.

Bem, eu tinha conseguido e estava dando tudo certo.

Porém, eu fui fazer umas modificações hoje, e me apareceu esse erro:

Exception in thread "main" java.lang.IllegalArgumentException: Código com tamanho diferente de 44 dígitos! str = "856300000143914000062010105252011256000003195005"
    at org.jrimum.utilix.Objects.checkArgument(Objects.java:161)
    at org.jrimum.bopepo.pdf.CodigoDeBarras.checkCodigo(CodigoDeBarras.java:106)
    at org.jrimum.bopepo.pdf.CodigoDeBarras.valueOf(CodigoDeBarras.java:78)
    at org.jrimum.bopepo.exemplo.GuiaDAE.gerarGuia(GuiaDAE.java:164)
    at org.jrimum.bopepo.exemplo.GuiaDAE.main(GuiaDAE.java:83)


Eu entendo que o erro é porque a quantidade de carcteres do codigo de barra, ultrapassou os 44 caracteres, porém o meu código de barra vem da seguinte forma:

856300000143 914000062010 105252011256 000003195005|201125000003195|


Aqui está a classe que estou tentando gerar o código de barra.


public class GuiaDAE {

    /**
     * @param args
     */
    public static void main(String[] args) {
       
String codigoBarra = "856300000143 914000062010 105252011256 000003195005|201125000003195|" ;
        String codEspecifico = "1112 - ICMS Estoque Final";
        String dataVencimento= "22/02/2010";
        String periodoRef= "01/2010";
        String valorPrincipal= "1.000,00";
        String infComplementares= "DAE IMPRESSO NO SITE WWW.SEFAZ.CE.GOV.BR";
        String vlrMulta= "150,00";
        String vlrJuros= "95,70";
        String dataLimite= "25/02/2011";
        String vlrDesconto= "0,00";
        String vlrTotalRecolher= "1.245,70";
        String cgf = "CGF: 06 105 848-3";
        String complem1 = "COMPANHIA ENERGETICA DO CEARA";
        String complem2 = "R PADRE VALDEVINO, 00150;";
        String complem3 = "CENTRO";
        String complem4 = "FORTALEZA - CEARA CEP:60135040";
        String complem5 = "CAE: 3514000-DISTRIBUIÇÃO DE ENERGIA ELÉTRICA";
       
    File test =    gerarGuia(codigoBarra, codEspecifico,  dataVencimento,  periodoRef,
                 valorPrincipal,infComplementares,  vlrMulta, vlrJuros, dataLimite,
                 vlrDesconto,  vlrTotalRecolher,cgf,complem1,complem2,complem3,complem4,complem5);
       
        mostreArquivoNaTela(test);

    }


public static File gerarGuia(String codigoBarra, String codEspecifico, String dataVencimento, String periodoRef,
        String valorPrincipal, String infComplementares, String vlrMulta, String vlrJuros,String dataLimite,
        String vlrDesconto, String vlrTotalRecolher, String cgf, String complem1,String complem2,String complem3,String complem4,String complem5){
   
    String barCode = extracCodigoDeBarras(codigoBarra.substring(0,51));
       
    String nossoNum = codigoBarra.substring(52,67);
   
    String test = transfNumIdentSefaz(nossoNum);
   
    System.out.println(test);
   
   
    File guia = PdfDocMix.createWithTemplate("RELATORIO_DAE2.pdf")
   
        .put("TxtLinhaDigitavel", codigoBarra)
        .put("TxtLinhaDigitavel2", codigoBarra)
        .put("TxtCodEspecif", codEspecifico)
        .put("TxtCodEspecif2", codEspecifico)
        .put("TxtDtVencimento", dataVencimento)
        .put("TxtDtVencimento2", dataVencimento)
        .put("TxtDtLimite", dataLimite)
        .put("TxtDtLimite2", dataLimite)
        .put("TxtNossoNum", test)
        .put("TxtNossoNum2", test)
        .put("TxtPeriodoRef",periodoRef )
        .put("TxtPeriodoRef2", periodoRef)
        .put("TxtVlrPrincipal", "***** R$ "+valorPrincipal)
        .put("TxtVlrPrincipal2", "***** R$ "+valorPrincipal)
        .put("TxtInfComplementares",infComplementares )
        .put("TxtInfComplementares2",infComplementares )
        .put("TxtMulta", "***** R$ "+vlrMulta)
        .put("TxtMulta2","***** R$ "+vlrMulta)
        .put("TxtJuros", "***** R$ "+vlrJuros)
        .put("TxtJuros2", "***** R$ "+vlrJuros)
        .put("TxtDesconto", "***** R$ "+vlrDesconto)
        .put("TxtDesconto2", "***** R$ "+vlrDesconto)
        .put("TxtTotalRecolher", "***** R$ "+vlrTotalRecolher)
        .put("TxtTotalRecolher2", "***** R$ "+vlrTotalRecolher)
        .put("TxtCgf", cgf)
        .put("TxtCgf2", cgf)
        .put("TxtComplem1", complem1)
        .put("TxtComplem12",complem1 )
        .put("TxtComplem2", complem2)
        .put("TxtComplem22", complem2)
        .put("TxtComplem3", complem3)
        .put("TxtComplem32", complem3)
        .put("TxtComplem4", complem4)
        .put("TxtComplem42", complem4)
        .put("TxtComplem5", complem5)
        .put("TxtComplem52", complem5)
        .put("TxtCodigoDeBarras", CodigoDeBarras.valueOf(barCode).toImage())
        .put("TxtCodigoDeBarras2", CodigoDeBarras.valueOf(barCode).toImage())
       
        .toFile("DAE.pdf");
   
    return guia;
   
}
   
   
public static String extracCodigoDeBarras(String reprentacaoNumerica){
       
        String rep = reprentacaoNumerica.replaceAll(" ", "");
       
        return new StringBuilder()
        .append(rep.substring(0,12))
        .append(rep.substring(12,24))
        .append(rep.substring(24,36))
        .append(rep.substring(36,48))
        .toString();
    }

/**
 * Método para transformar a String no formato do Número
 * que a SEFAZ utiliza.
 * Exemplo: 201125000003195 para 2011.25.0000031-95
 *
 */
public static String transfNumIdentSefaz(String numIdentificador){
   
    numIdentificador = new StringBuilder()
    .append(numIdentificador.substring(0,4))
    .append(".")
    .append(numIdentificador.substring(4,6))
    .append(".")
    .append(numIdentificador.substring(6,13))
    .append("-")
    .append(numIdentificador.substring(13,15))
    .toString();
   
    return numIdentificador;
   
}


private static void mostreArquivoNaTela(File arquivo) {

    java.awt.Desktop desktop = java.awt.Desktop.getDesktop();
   
    try {
        desktop.open(arquivo);
    } catch (IOException e) {
        e.printStackTrace();
    }
}


Rômulo Augusto

não lida,
5 de mai. de 2011, 10:45:5705/05/2011
para jrimum-c...@googlegroups.com
Você tem o layout desse seu código de barras? Me parece que ele tem mais informações que o necessário pra guia né?

E ainda tem uma parte extra: |201125000003195|


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





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

Euclides Filizola

não lida,
5 de mai. de 2011, 10:50:0405/05/2011
para jrimum-c...@googlegroups.com
Bom,

essa parada ae |201125000003195| é um número de identificação da sefaz, então ela eu retiro,

mas o código mesmo é esse:

856300000143 914000062010 105252011256 000003195005.

Porém o Gilmar me passou um exemplo de gerar a imagem.

Só que ocorre o seguinte:

ele antes utilizou o seguinte método:



public static String extracCodigoDeBarras(String reprentacaoNumerica){
         
        String rep = reprentacaoNumerica.replaceAll(" ", "");
         
        return new StringBuilder()
        .append(rep.substring(0,11))
        .append(rep.substring(12,23))
        .append(rep.substring(24,35))
        .append(rep.substring(36,47))
        .toString();
    }


Isso faz com que o último número de cada grupo de 12 caracteres seja removido, ou seja,

o código fica assim:

85630000014 91400006201 10525201125 00000319500.

E eu tentei passar ele por inteiro, com 48 caracteres, dae ocorreu aquele erro.

Então eu quero saber, para a imagem ser gerada é necessário esse último dígito de cada grupo ?

Ou o certo é realmente retirar ele para que a imagem seja gerada ???

Euclides Filizola

não lida,
5 de mai. de 2011, 10:51:4405/05/2011
para jrimum-c...@googlegroups.com
aqui vai um exemplo em anexo.
--
Euclides Filizola ® - Java Developer.



"What is a clever code for you? give me a sample."

"A própria idéia  de reconfigurar uma máquina para que ela faça uma quantidade aparentemente infinita de tarefas é forte e fascinante"
dae.pdf

Euclides Filizola

não lida,
5 de mai. de 2011, 11:02:0305/05/2011
para jrimum-c...@googlegroups.com
Bem,

acredito que me responderam aqui na minha sala de trabalho.

O último digito de cada grupo é apenas para validação, sendo assim,

o que tem na imagem são realmente apenas os 44 caracteres.

Desculpem-me o meu erro, pois era erro de conceito, e não do código.

Desculpem mais uma vez.


Agradeço a todos.

Rômulo Augusto

não lida,
5 de mai. de 2011, 11:13:3705/05/2011
para jrimum-c...@googlegroups.com
É, veja se isso aí não é a linha digitável. A classe trata o código em forma de número.



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



Euclides Filizola

não lida,
5 de mai. de 2011, 11:15:4005/05/2011
para jrimum-c...@googlegroups.com
O problema é que eu não sei a diferença entre linha digitavel e código de barra.

qual é a diferença entre eles ?

Misael Barreto de Queiroz

não lida,
5 de mai. de 2011, 11:28:5105/05/2011
para jrimum-c...@googlegroups.com
Olá Euclides,

Olha só, no caso da GUIA a linha digitável é isso que você passou aí como exemplo:

85630000014(3)   91400006201(0)  10525201125(6)   00000319500(5)

O código de barras, no caso da GUIA, é a linha digitável sem os digítos verificadores de cada agrupamento, ou seja, sem os dígitos que destaquei entre parênteses.
Desta forma você vai fazer um pequeno tratamento, para retirar este dígitos verificadores na hora de montar o código de barras. No caso você passaria a sequência abaixo:

85630000014914000062011052520112500000319500   (44 posições)

Faz o teste aí...
Um abraço.



Misael Barreto
JRimum Developer


http://www.jrimum.org
http://www.blog.jrimum.org
--
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

Euclides Filizola

não lida,
5 de mai. de 2011, 12:11:3805/05/2011
para jrimum-c...@googlegroups.com
Show de bola então.


Agradeço a ajuda Misael.


Abraços.
JRiboyToEmail.png

Gilmar P.S.L.

não lida,
5 de mai. de 2011, 13:13:3605/05/2011
para jrimum-c...@googlegroups.com
Olá Euclides,

Que bom que o exemplo do nosso amigo Misael lhe esclareceu. Agora só para reforçar, ..
Eu já tinha lhe passado o conceito na outra thread:

É o que eu to te falando eu estou preparando um release, essas classes irão no novo release.

Agora o importante é vc saber a diferença entre código de barras e linha digitável.

NO caso da guia, o conceito é o seguinte:

Os dados da linha digitável representam o conteúdo do código de barras, dispostos na mesma ordem, mas separados em 4 grupos onde cada um deles é acrescido de 1 dígito verificador. Logo, se o código de barras tem 44 dígitos, a linha digitável terá 48. Ela deve ser utilizada quando da impossibilidade da captura do código de barras e/ou para pagamentos em terminais de auto-atendimento, Internet, home/office bank, personal bank, etc.

Então, no caso dos códigos numéricos que vc me passou, esses são as linhas digitáveis do código de barras.

Atenciosamente
------------------------------------------------------
Gilmar P.S.L.
@gilmatryx



2011/5/5 Euclides Filizola <euclides...@gmail.com>
JRiboyToEmail.png

Marlon Fernando Dirksen

não lida,
27 de fev. de 2013, 07:48:2627/02/2013
para jrimum-c...@googlegroups.com
Sim, o grupo ainda funciona. O que você precisa?


Em 27 de fevereiro de 2013 09:39, Felipe Tavares <tavar...@gmail.com> escreveu:
O grupo ainda funciona ?

--
--
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ê está recebendo esta mensagem porque se inscreveu no grupo "JRimum Community" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para jrimum-communi...@googlegroups.com.
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
 
 



--

Atenciosamente,


Marlon Fernando Dirksen

Sances Sistemas

SC  (47) 3036-6650
RJ   (21) 4063-9185
SP  (11) 3522-6674
AC (68) 3025-0056
GO (62) 4053-9366 
Nextel 55*119*91479

Felipe Tavares

não lida,
27 de fev. de 2013, 07:53:0227/02/2013
para jrimum-c...@googlegroups.com
O mesmo que o Euclides li os post e percebi q o Gilmar disponibilizou um release para a criação do dae e me encontro na mesma situação estou recebendo os parâmetros para criação do msm e gostaria de receber este projeto para que possa gerar uma guia!

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

Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
 
 



--
Atensiosamente,
Felipe Tavares - Desenvolvedor WEB
(85) 87794004 | 32131724

Felipe Tavares

não lida,
1 de mar. de 2013, 08:34:1201/03/2013
para jrimum-c...@googlegroups.com
Alguém pode me ajudar ?


Em quarta-feira, 27 de fevereiro de 2013 09h53min02s UTC-3, Felipe Tavares escreveu:
O mesmo que o Euclides li os post e percebi q o Gilmar disponibilizou um release para a criação do dae e me encontro na mesma situação estou recebendo os parâmetros para criação do msm e gostaria de receber este projeto para que possa gerar uma guia!

Em 27 de fevereiro de 2013 09:48, Marlon Fernando Dirksen <marlon....@sances.com.br> escreveu:
Sim, o grupo ainda funciona. O que você precisa?
Em 27 de fevereiro de 2013 09:39, Felipe Tavares <tavar...@gmail.com> escreveu:
O grupo ainda funciona ?

--
--
Você recebeu esta mensagem porque está inscrito no Grupo "JRimum
Community" nos Grupos do Google.
Para postar neste grupo, envie um e-mail para

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

Para ver mais opções, visite este grupo em
http://groups.google.com/group/jrimum-community?hl=pt-BR?hl=pt-BR
 
---
Você está recebendo esta mensagem porque se inscreveu no grupo "JRimum Community" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para jrimum-community+unsubscribe@googlegroups.com.

Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
 
 



--

Atenciosamente,


Marlon Fernando Dirksen

Sances Sistemas

--
--
Você recebeu esta mensagem porque está inscrito no Grupo "JRimum
Community" nos Grupos do Google.
Para postar neste grupo, envie um e-mail para

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

Para ver mais opções, visite este grupo em
http://groups.google.com/group/jrimum-community?hl=pt-BR?hl=pt-BR
 
---
Você recebeu esta mensagem porque está inscrito em um tópico do grupo "JRimum Community" dos Grupos do Google.
Para cancelar a inscrição neste tópico, acesse https://groups.google.com/d/topic/jrimum-community/BlhngDeOxdw/unsubscribe?hl=pt-BR.
Para cancelar a inscrição neste grupo e todos os seus tópicos, envie um e-mail para jrimum-community+unsubscribe@googlegroups.com.

Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
 
 
Responder a todos
Responder ao autor
Encaminhar
0 nova mensagem