Nova versao do BOPEPO

140 views
Skip to first unread message

Carlos Eloi Oliveira

unread,
Oct 25, 2010, 11:59:02 AM10/25/10
to jrimum-c...@googlegroups.com
Pessoal, já saiu a nova versão da biblioteca que atende ao boleto da CAIXA SIGCB ?

Outra coisa, que método eu devo chamar para calcular o digito verificador do Campo Livre? Fuçando o código eu vi que tem um método chamado calculeDigitoVerificadorDoCampoLivre, só que ele é privado. Como eu faço para invocar ele e setar no meu boleto ?

Agradeço desde já

Douglas Tybel - GMail

unread,
Oct 25, 2010, 5:37:41 PM10/25/10
to jrimum-c...@googlegroups.com

Calcular o dígito do nosso numero da caixa, é o módulo 11 com base
9,1, nos comentarios existe exemplo de uso: 

Exemplo de uso: getMod11(nossoNumero, 9,1)
O retorno será o dígito.

 
public static int getMod11(String num, int base, int r){
    /**
     *   Autor:
     *           Douglas Tybel <dty
...@yahoo.com.br>
     *
     *   Função:
     *    Calculo do Modulo 11 para geracao do digito verificador
     *    de boletos bancarios conforme documentos obtidos
     *    da Febraban -
www.febraban.org.br
     *
     *   Entrada:
     *     $num: string numérica para a qual se deseja calcularo
digito verificador;
     *     $base: valor maximo de multiplicacao [2-$base]
     *     $r: quando especificado um devolve somente o resto
     *
     *   Saída:
     *     Retorna o Digito verificador.
     *
     *   Observações:
     *     - Script desenvolvido sem nenhum reaproveitamento de código
existente.
     *     - Script original de Pablo Costa
<pa
...@users.sourceforge.net>
     *     - Transportado de php para java
     *     - Exemplo de uso: getMod11(nossoNumero, 9,1)
     *     - 9 e 1 são fixos de acordo com a base
     *     - Assume-se que a verificação do formato das variáveis de
entrada é feita antes da execução deste script.
     */
    base = 9;
    r    = 0;

    int soma = 0;
    int fator = 2;
    String[] numeros,parcial;
    numeros = new String[num.length()+1];
    parcial = new String[num.length()+1];

    /* Separacao dos numeros */
    for (int i = num.length(); i > 0; i--) {
        // pega cada numero isoladamente
        numeros[i] = num.substring(i-1,i);
        // Efetua multiplicacao do numero pelo falor
        parcial[i] = String.valueOf(Integer.parseInt(numeros[i]) *
fator);
        // Soma dos digitos
        soma += Integer.parseInt(parcial[i]);
        if (fator == base) {
            // restaura fator de multiplicacao para 2
            fator = 1;
        }
        fator++;

    }

    /* Calculo do modulo 11 */
    if (r == 0) {
        soma *= 10;
        int digito = soma % 11;
        if (digito == 10) {
            digito = 0;
        }
        return digito;
    } else {
        int resto = soma % 11;
        return resto;
    }

}
 

Douglas Tybel
__________________________________________
Analista de Sistemas
Engenharia de Sistemas
MCP + MCDST
(27)9937-9892

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

Misael Barreto

unread,
Oct 25, 2010, 6:31:04 PM10/25/10
to JRimum Community
Olá Carlos,

Carlos, dá uma sacada aqui nesta thread aqui, com certeza vai te
ajudar:

===============
Boleto Caixa SIGCB
===============
http://groups.google.com.br/group/jrimum-community/browse_thread/thread/8462b94d6f479eac/9866ee7ae701fa7e?hl=pt-br&lnk=gst&q=Boleto+Caixa+SIGCB#9866ee7ae701fa7e


A versão 0.2-Helio não tá fechada, mas este recurdo que tu querer
creio que já está presente neste SNAPSHOT "JRimum-Bopepo-
SNAPSHOT-20100805.jar".
http://groups.google.com.br/group/jrimum-community/files?hl=pt-br

Quanto ao dígito verificados do campo livre, não esquenta que o Bopepo
já calcula pra você, por isso ele é privado.

Um abraço.

Misael Barreto
JRimum Developer

Carlos Eloi Oliveira

unread,
Oct 26, 2010, 6:43:57 AM10/26/10
to jrimum-c...@googlegroups.com
Ficou mais claro agora, mas vamos a um exemplo para exemplificar melhor. =)

Vamos supor que eu tenho o seguinte "nosso numero";

String nossoNumero = "24000000000000996";

Eu sei que o digito verificador desse nossoNumero é 6, logo eu quero fazer o seguinte:

boleto.addTextosExtras("txtRsNossoNumero", nossoNumero+"-"+DIGITO_VERIFICADOR);

A minha pergunta é: Como eu obtenho DIGITO_VERIFICADOR ? Eu já tenho o nossoNumero só me resta calcular o digito. O método já existe só que privado. Essa é a minha dúvida.




2010/10/25 Misael Barreto <misael...@gmail.com>

Rômulo Augusto

unread,
Oct 26, 2010, 1:54:55 PM10/26/10
to jrimum-c...@googlegroups.com
Seguinte Carlos;

Uma coisa é o dígito do Campo Livre, outra coisa é o dígito do Nosso Número.

O Nosso Número é um número controlado por quem emite o título (cobrança não registrada) ou já é fornecido pelo banco (registrada), ou seja, o número já vem "completo". Hoje o Bopepo não calcula o dígito desse número, assim como não calcula ainda o dígito do número da conta bancária.

No seu caso, vc mesmo já disse que sabe qual é o dígito verificador desse número: 24000000000000996 ... sendo assim, basta vc criar substrings dessa sua string.

No objeto está separado o número do dígito para ficar melhor de usar. Mas vc que deve montá-lo dessa forma.

De qualquer forma, existe uma classe Modulo que vc pode usar pra auxiliar a calcular o dígito do nosso número.

Valeu


-------------------------------------------------------------------
Rômulo Augusto
JRimum Developer
www.jrimum.org

Misael Barreto de Queiroz

unread,
Oct 26, 2010, 2:26:12 PM10/26/10
to jrimum-c...@googlegroups.com, cel...@gmail.com
Olá Carlos, tudo bom cara?

Carlos, no caso cara são duas coisas distintas: uma é o cálculo do dígito verificador do CAMPO LIVRE, o que o Bopepo já faz pra você. A outra e o cálculo do dígito verificador do NOSSO NUMERO, que daí neste caso deverá ser feito por você utilizando o módulo 11.

No caso, você vai criar um método na classe que está gerando os boletos para você e este método será o responsável pelo cálculo do dígito verificador do NOSSO NUMERO. Para isso você pode usar a classe Modulo e se basear na rotina existente no campo livre CLCaixaEconomicaFederalSIGCB.

Só lembrando, o método calculeDigitoVerificador da classe CLCaixaEconomicaFederalSIGCB é privado porque é algo característico para essa classe, que no caso é um CAMPO LIVRE. Quando fala-se em "calcular DV usando módulo X", tem-se que observar a documentação do banco para ver os detalhes da regra, como será tratado o resto da operação, limite mínimo e máximo etc.

Deu pra entender legal?
Qualquer coisa avisa aí.

Abração.

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

Carlos Eloi Oliveira

unread,
Oct 26, 2010, 4:10:11 PM10/26/10
to Misael Barreto de Queiroz, jrimum-c...@googlegroups.com
Muito obrigado pelo esclarecimento pessoal.

Eu queria solicitar apenas uma melhoria então.

Misael, quando vc diz: "No caso, você vai criar um método na classe que está gerando os boletos para você e este método será o responsável pelo cálculo do dígito verificador do NOSSO NUMERO. Para isso você pode usar a classe Modulo e se basear na rotina existente no campo livre CLCaixaEconomicaFederalSIGCB."

Não já seria interessante a própria bibliteca dispor esse método para mim ? Algo do tipo static no pacote util ? Porque tipo, eu vou copiar para minha classe um método que já está "disponível" na biblioteca.

Mais uma vez obrigado.


2010/10/26 Misael Barreto de Queiroz <misael...@tjrn.jus.br>

Gilmar P.S.L.

unread,
Oct 26, 2010, 4:16:34 PM10/26/10
to jrimum-c...@googlegroups.com
Verdade Carlos,

Vamos fazer isso em breve, só que pretendemos fazer objetos do tipo:

org.jrimum.domkee.banco.bb.NossoNumero

Então esse objeto será capaz de ser um nosso número já. Tanto calcula como é um tipo. Seguindo o modelo do cnpj / cpf.

Porém, por enquanto ainda não.

Mas é a partir de colocações como a sua que temos cada vez mais a confiança de que estamos no caminho certo.

Valeu.
--
Gilmar P.S.L.
JRimum Developer
      
http://www.jrimum.org
http://www.blog.jrimum.org




2010/10/26 Carlos Eloi Oliveira <cel...@gmail.com>

Misael Barreto de Queiroz

unread,
Oct 26, 2010, 4:38:11 PM10/26/10
to jrimum-c...@googlegroups.com, cel...@gmail.com
Fala Carlos,

Carlos, entendi a sua solicitação, só que no caso não dá pra criar um método utilitário chamado calculeDigitioVerificador pois ele não atenderá a todos os casos, vai variar de banco pra banco, assim como o campo livre, entende? Depende da regra definida por cada banco.

Hoje o Bopepo atua justamente na confecção do CampoLivre, mas no futuro a gente também quer atuar na confeção do Nosso Número. Por enquanto a confecção do nosso número fica a cargo do cliente.

E aí, deu certo cara?

Qualquer coisa avisa aí.
Valeu aí pela sugestão cara.


Abração.

Misael Barreto
JRimum Developer



Carlos Eloi Oliveira

unread,
Oct 27, 2010, 6:55:19 AM10/27/10
to Misael Barreto de Queiroz, jrimum-c...@googlegroups.com
Tudo entendido e funcionando direitinho. =)

Obrigado pela atenção e disponibilidade

Basso

unread,
Jan 12, 2011, 11:08:32 AM1/12/11
to jrimum-c...@googlegroups.com, Misael Barreto de Queiroz
Oi Carlos.

Você conseguiu homologar com a Caixa SIGCB? Eu não consegui. Se conseguiu, você pode disponibilizar os fontes ou um exemplo.

Obrigado.

Karlos Thadeu

unread,
Jan 12, 2011, 1:54:29 PM1/12/11
to jrimum-c...@googlegroups.com, Misael Barreto de Queiroz
Olá Basso infelizmente eu não enviei para Caixa homologar ainda não. Apareceram outras prioridades. =(

2011/1/12 Basso <fabio...@gmail.com>
Oi Carlos.

Você conseguiu homologar com a Caixa SIGCB? Eu não consegui. Se conseguiu, você pode disponibilizar os fontes ou um exemplo.

Obrigado.

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



--
Atenciosamente, Karlos Thadeu
Msc em Sistemas e Computação, Universidade Federal do Rio Grande do Norte (UFRN)
Contatos: (84) 9916-3695; (83) 8803-0589
Skype: karlosthadeu

"A minha vida é andar por esse país
 Pra ver se um dia descanso feliz."

Reply all
Reply to author
Forward
0 new messages