Ola, estou tentando Homologar o boleto do Banestes e vou postar aqui o que fiz, o que foi pedido, e o que foi alterado.
No primeiro envio meu, eles me responderam que o que eu deveria alterar era:
1ª) Logomarca: a logarmarca utilizada está desatualizada favor acessar o link abaixo para atualização: http://www.banestes.com.br/downloads/index.html; (Consegui corrigir)2ª) Local de Pagamento: Favor alterar a mensagem deste campo para: PAGAVEL PREFERÊNCIALMENTE NA REDE BANESTES (Consegui corrigir)3ª) Agência/ Código do Cedente ( Beneficiário ): a conta do cedente deve estar separados por pontos, a cada três dígitos da direita para a esquerda. Não existe digito na conta do cedente. Isto para obedecer ao layout de cobrança; (Consegui corrigir)Ex: 000 00.000.000 4ª) Campo do Cedente: Favor incluir a informação do “CNPJ” do cedente, após o nome do cedente; é obrigatório. (Consegui corrigir)5ª) Campo Nº do Documento: Neste campo a informação quando desejada pelo cedente deve constar o nº do titulo de acordo com a quantidade de impressão. Favor retirar o nº do Nosso Número deste campo. (Consegui corrigir)6ª) Campo Espécie: Favor alterar a palavra REAL para “R$”, conforme layout; (Consegui corrigir)7ª) Código Carteira: Favor informar um dos códigos a seguir: "11" cobrança simples ou “13”, para cobrança caucionada; Atenção: Para operar com a carteira ( 11 ) Cobrança simples, deverá ser utilizado na linha digitável na posição do tipo de cobrança, um dos códigos a seguir: 2 para cobrança sem registro, e 4, 5, 6 ou 7 para cobrança registrada. 8ª) Autenticação Mecânica - Ficha de Compensação: Favor mover o termo “Ficha de Compensação” de forma que fique logo após “Autenticação Mecânica”, sendo separados por hífen, apresentando a seguinte configuração: (NÃO FIZ E ELES NÃO RECLAMARAM)Ex: Autenticação Mecânica - Ficha de Compensação 9ª) A altura da Ficha de Compensação ( vertical ): A distância da linha pontilhada abaixo do Recibo do Sacado até a borda do papel está com 144 mm. Esta altura deve constar entre 95 a 108 mm. Vide página 29; 10ª) O código de barras (Dimensões): O comprimento (horizontal) está com 105 mm. Favor corrigir para 103 mm conforme o layout de Cobrança. A altura (vertical) está com 12 mm, favor alterar para 13 mm e a distância do centro da altura do Código de Barras ( vertical ) até a borda inferior da folha está com 37 mm, favor alterar para 12 mm.
Na segunda remeça de boletos, vieram as seguintes alterações para realizar (veio ontem na verdade, dia 30/01/14)
1ª) A altura da Ficha de Compensação ( vertical ): A distância da linha pontilhada abaixo do Recibo do Sacado até a borda do papel está com 143 mm. Esta altura deve constar entre 95 a 108 mm. Vide página 29;
2ª) Campo Carteira e Linha Digitável: Foi informado na linha digitavel, na 26ª posição da esquerda p/ direita o código "1" que indica Cobrança de desconto e no campo carteira foi informado o código "1" que não existe neste campo. Favor verificar com o cedente qual ele deseja utilizar, pois se for utilizar a Carteira Caucionada ele devera utilizar o código "13" no campo de carteira e o código "3" no campo referente ao tipo de carteira na Linha Digitável, e se for trabalhar com a Carteira Simples deverá utilizar no Campo Carteira o código "11" e no tipo de Cobrança na Linha Digitável um dos códigos as seguir: "2" para cobrança sem registro e 4,5,6 ou 7 para cobrança registrada.
3ª) Estrutura e conformação: Estruturalmente as linhas laterais ( formando um quadro ) da Ficha de Compensação não existem. Favor retirar.
4ª) O código de barras (Dimensões): O comprimento (horizontal) está com 104 mm. Favor corrigir para 103 mm conforme o layout de Cobrança. A altura (vertical) está com 12 mm, favor alterar para 13 mm e a distância do centro da altura do Código de Barras ( vertical ) até a borda inferior da folha está com 36 mm, favor alterar para 12 mm.
Minhas alterações foram as seguintes.
- Eu troquei a Biblioteca do Bopepo, estava numa versão de 2011, e eu peguei a ultima versão que tinha no nexus ( jrimum-bopepo-0.2.3-20111228.180206-4 ).
- Formatei o campo "Agencia / Código do cedente, tive que utilizar "addTextosExtras" para colocar o valor no campo,me utilizei deste código aqui.
- int sizeAgencia = 3; //Tamanho dos numeros da agencia
-
- String codigoAgencia = boleto.getTitulo().getContaBancaria().getAgencia().getCodigo().toString();//Pegar o codigo da agencia
-
- int leftAgencia = sizeAgencia - boleto.getTitulo().getContaBancaria().getAgencia().getCodigo().toString().length();//verificar quantas casa esta sobrando
- String randAgencia = "";
- for (int i = 0; i < leftAgencia; i++) {
- randAgencia = randAgencia.concat("0");
- }
- codigoAgencia = randAgencia + boleto.getTitulo().getContaBancaria().getAgencia().getCodigo(); //Coloca '0' ate completar 3 digitos
-
- String CodigoCC = boleto.getTitulo().getContaBancaria().getNumeroDaConta().getCodigoDaConta().toString(); //Pega o numero da conta
-
- String bloco1 = CodigoCC.substring(0, 2); //coloca separa os dois peimeiros
- String bloco2 = CodigoCC.substring(2, 5); //depois em tres
- String bloco3 = CodigoCC.substring(5, 8); //e depois em mais tres
-
- CodigoCC = bloco1+"."+bloco2+"."+bloco3; // acrecenta um '.' entre cada conjunto de numeros
-
- boleto.addTextosExtras("txtRsAgenciaCodigoCedente", (codigoAgencia + " " + CodigoCC));
- boleto.addTextosExtras("txtFcAgenciaCodigoCedente", (codigoAgencia + " " + CodigoCC));
- Campo especie, trocar Real para 'R$'
- boleto.addTextosExtras("txtRsEspecie", "R$");
- boleto.addTextosExtras("txtFcEspecie", "R$");
- Campo Cedente, não sei o por que, mas mesmo passando o CNPJ, não era adicionado ao nome o CNPJ, então adicionei na mão.
- boleto.addTextosExtras("txtRsCedente", (boleto.getTitulo().getCedente().getNome() + " CNPJ: " + boleto.getTitulo().getCedente().getCPRF().toString()));
- boleto.addTextosExtras("txtFcCedente", (boleto.getTitulo().getCedente().getNome() + " CNPJ: " + boleto.getTitulo().getCedente().getCPRF().toString()));
- Local de pagamento, tive que alterar, pois utilizava outro banco, agora cada banco tem sua mensagem.
- E o NossoNumero, ele não estava na formatação, dava erro direto, então um novo calculo para ele foi feito.
- public static String getDigitioVerificadorBanestes(String nn)
- {
- String[] chars = nossoNumero.getNumero().toString().split("");
-
- int soma = 0;
- for(String s : chars)
- {
- if(!"".equals(s))
- {
- int val = Integer.parseInt(s);
- //deve somar
- soma += val;
- }
- }
-
- int resto = soma % 11;
- Integer digito = 0;
- String digitoStr = "0";
- if(resto > 1)
- digito = 11 - resto;
- digitoStr = digito.toString();
-
- soma = soma + digito;
- resto = soma % 11;
- digito = 0;
- if (resto > 1)
- digito = 11 - resto;
- digitoStr = digitoStr.concat(digito.toString());
-
- return digitoStr;//String.valueOf(digito);
- }
- A questão da carteira, da uma olhada, pois eu tentei cadastrar com 11, e ele da erro no campo, fala que esta fora de formatação ( "java.lang.IllegalArgumentException: O tamaho do campo [ 11 ] é incompatível com o especificado [1]!" e o seguinte erro tambem junto com o mesmo "org.jrimum.bopepo.campolivre.CampoLivreException: java.lang.IllegalStateException: Erro na escrita do campo de posição [ 2 ]")
Bom, é isso, falta ver o tamanho ali do codigo de barras, e tudo mais, vou estar enviando o logo do Banestes atualizado (Arquivo 021.png) , o primeiro boleto que enviei (Boleto1.pdf) e 1 dos últimos que eu mandei (Boleto2.pdf).
Se faltou algo, me desculpe, comente, e eu vejo dai.
Obrigado.