Banco do brasil
git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/GeneradorBoletosCNAB/trunk@81763 d1611594-4594-4d17-8e1d-87c2c4800839master
parent
224ed6afed
commit
4ce7421fc4
|
@ -0,0 +1,66 @@
|
||||||
|
package com.rjconsultores.ventaboletos.utils;
|
||||||
|
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
public class FormataUtil {
|
||||||
|
|
||||||
|
public static String formatarValorPorTamanho(String value, int tamanho) {
|
||||||
|
|
||||||
|
value = value == null ? "" : value;
|
||||||
|
|
||||||
|
if(value.length() > tamanho){
|
||||||
|
value = value.substring(0, tamanho);
|
||||||
|
}
|
||||||
|
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String formatarValorPorTamanhoZeroEsquerda(String value, int tamanho) {
|
||||||
|
|
||||||
|
value = value == null ? "" : value;
|
||||||
|
|
||||||
|
if(value.length() > tamanho){
|
||||||
|
value = value.substring(0, tamanho);
|
||||||
|
}
|
||||||
|
|
||||||
|
while(value.length() < tamanho){
|
||||||
|
value = "0" + value;
|
||||||
|
}
|
||||||
|
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String formatarValorPorTamanhoZeroDireita(String value, int tamanho) {
|
||||||
|
|
||||||
|
value = value == null ? "" : value;
|
||||||
|
|
||||||
|
if(value.length() > tamanho){
|
||||||
|
value = value.substring(0, tamanho);
|
||||||
|
}
|
||||||
|
|
||||||
|
while(value.length() < tamanho){
|
||||||
|
value = value + "0";
|
||||||
|
}
|
||||||
|
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Date formataData(Date data) {
|
||||||
|
|
||||||
|
if(data == null){
|
||||||
|
data = new Date();
|
||||||
|
}
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String formataDataToString(Date data, String defaultValue) {
|
||||||
|
|
||||||
|
if(data == null){
|
||||||
|
return defaultValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
return new SimpleDateFormat("ddMMyyyy").format(data);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,277 @@
|
||||||
|
package com.rjconsultores.ventaboletos.utils;
|
||||||
|
|
||||||
|
import java.math.BigInteger;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
import org.apache.commons.lang.StringUtils;
|
||||||
|
import org.apache.commons.lang.time.DateUtils;
|
||||||
|
|
||||||
|
import com.rjconsultores.ventaboletos.enuns.BancoLayout;
|
||||||
|
|
||||||
|
public class NossoNumeroUtils {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Devolve o nosso numero do Bradesco com o DV calculado (Tamanho 12)...
|
||||||
|
* @param numCarteira
|
||||||
|
* @param nossoNumero
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static String calcularNossonumeroBradesco(Integer numCarteira, BigInteger nossoNumero){
|
||||||
|
|
||||||
|
|
||||||
|
return StringUtils.right("00000000000" + nossoNumero, 11) + dacBradesco(numCarteira, nossoNumero);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Devolve o nosso numero do Itau com o DV calculado (Tamanho 9)...
|
||||||
|
* @param codAgencia
|
||||||
|
* @param numConta
|
||||||
|
* @param numCarteira
|
||||||
|
* @param nossoNumero
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static String calcularNossoNumeroItau(Integer codAgencia, Integer numConta, Integer numCarteira, BigInteger nossoNumero){
|
||||||
|
|
||||||
|
|
||||||
|
return StringUtils.right("00000000" + nossoNumero, 8) + dacItau(codAgencia, numConta, numCarteira, nossoNumero);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Devolve o nosso numero do BB com o DV calculado (Tamanho 20)...
|
||||||
|
* @param convenioBanco
|
||||||
|
* @param numCarteira
|
||||||
|
* @param nossoNumero
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static String calcularNossoNumeroBancoBrasil(Integer convenioBanco, Integer numCarteira, BigInteger nossoNumero){
|
||||||
|
|
||||||
|
int controllConvenioNossoNumero = 0;
|
||||||
|
int controllNossoNumero = 0;
|
||||||
|
boolean dvControll = Boolean.TRUE;
|
||||||
|
|
||||||
|
if(convenioBanco < 10000){
|
||||||
|
controllConvenioNossoNumero = 4;
|
||||||
|
controllNossoNumero = 7;
|
||||||
|
}else if(convenioBanco < 1000000){
|
||||||
|
controllConvenioNossoNumero = 6;
|
||||||
|
controllNossoNumero = 5;
|
||||||
|
}else{
|
||||||
|
controllConvenioNossoNumero = 7;
|
||||||
|
controllNossoNumero = 10;
|
||||||
|
dvControll = Boolean.FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
String nC = StringUtils.right("0000000" + convenioBanco, controllConvenioNossoNumero);
|
||||||
|
String nN = StringUtils.right("0000000000" + nossoNumero, controllNossoNumero);
|
||||||
|
|
||||||
|
String base = nC + nN;
|
||||||
|
|
||||||
|
return dvControll ? StringUtils.left(base + dacBB(base, numCarteira), 20) : base;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Calcula do DV para o Bradesco
|
||||||
|
* @param numCarteira
|
||||||
|
* @param nossoNumero
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static String dacBradesco(Integer numCarteira, BigInteger nossoNumero){
|
||||||
|
|
||||||
|
|
||||||
|
int multiplicadores[] = {2,7,6,5,4,3,2,7,6,5,4,3,2};
|
||||||
|
int multiplicandos[] = new int[13];
|
||||||
|
|
||||||
|
String carteira = StringUtils.right("00" + numCarteira, 2);
|
||||||
|
String nNumero = StringUtils.right("00000000000" + nossoNumero, 11);
|
||||||
|
|
||||||
|
String base = carteira + nNumero;
|
||||||
|
|
||||||
|
for (int i = 0; i < multiplicandos.length; i++) {
|
||||||
|
|
||||||
|
String d = base.charAt(i) + "";
|
||||||
|
|
||||||
|
multiplicandos[i] = Integer.valueOf(d) * multiplicadores[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
int dac = 0;
|
||||||
|
|
||||||
|
for(Integer v : multiplicandos){
|
||||||
|
|
||||||
|
dac += v;
|
||||||
|
}
|
||||||
|
|
||||||
|
dac = 11 - (dac % 11);
|
||||||
|
|
||||||
|
return (dac == 10) ? "P" : dac + "";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Calcula do DV para o Itau
|
||||||
|
* @param codAgencia
|
||||||
|
* @param numConta
|
||||||
|
* @param numCarteira
|
||||||
|
* @param nossoNumero
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static String dacItau(Integer codAgencia, Integer numConta, Integer numCarteira, BigInteger nossoNumero){
|
||||||
|
|
||||||
|
|
||||||
|
int multiplicadores[] = {1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2};
|
||||||
|
int multiplicandos[] = new int[20];
|
||||||
|
|
||||||
|
String agencia = StringUtils.right("0000" + codAgencia, 4);
|
||||||
|
String conta = StringUtils.right("00000" + numConta, 5);
|
||||||
|
String carteira = StringUtils.right("000" + numCarteira, 3);
|
||||||
|
String nNumero = StringUtils.right("00000000" + nossoNumero, 8);
|
||||||
|
|
||||||
|
String base = agencia + conta + carteira + nNumero;
|
||||||
|
|
||||||
|
for (int i = 0; i < multiplicandos.length; i++) {
|
||||||
|
|
||||||
|
String d = base.charAt(i) + "";
|
||||||
|
|
||||||
|
multiplicandos[i] = Integer.valueOf(d) * multiplicadores[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
int dac = 0;
|
||||||
|
|
||||||
|
for(Integer v : multiplicandos){
|
||||||
|
|
||||||
|
if(v < 10){
|
||||||
|
dac += v;
|
||||||
|
}else{
|
||||||
|
dac += 1 + (v - 10);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dac = 10 - (dac % 10);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
return dac + "";
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Calcula do DV para o Banco do Brasil
|
||||||
|
* @param nossoNumero
|
||||||
|
* @param numCarteira
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static String dacBB(String nossoNumero, Integer numCarteira){
|
||||||
|
|
||||||
|
int multiplicador = 9;
|
||||||
|
|
||||||
|
int soma = 0;
|
||||||
|
|
||||||
|
for (int i = nossoNumero.length() - 1; i >= 0 ; i--) {
|
||||||
|
|
||||||
|
int current = Integer.parseInt(nossoNumero.charAt(i) + "");
|
||||||
|
|
||||||
|
current = current * multiplicador;
|
||||||
|
soma = soma + current;
|
||||||
|
multiplicador--;
|
||||||
|
|
||||||
|
if(multiplicador == 2){
|
||||||
|
multiplicador = 9;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int mod = soma % 11;
|
||||||
|
|
||||||
|
if(mod == 10){
|
||||||
|
return "X";
|
||||||
|
}
|
||||||
|
|
||||||
|
return mod + "";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Calcula do DV para o Itau (Numero Documento)
|
||||||
|
* @param codAgencia
|
||||||
|
* @param numConta
|
||||||
|
* @param numCarteira
|
||||||
|
* @param nossoNumero
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static String dvDocumentoItau(Integer numeroDoc){
|
||||||
|
|
||||||
|
|
||||||
|
int multiplicadores[] = {1,2,1,2,1,2,1,2,1,2};
|
||||||
|
int multiplicandos[] = new int[10];
|
||||||
|
|
||||||
|
String doc = StringUtils.right("0000000000" + numeroDoc, 10);
|
||||||
|
|
||||||
|
String base = doc;
|
||||||
|
|
||||||
|
for (int i = 0; i < multiplicandos.length; i++) {
|
||||||
|
|
||||||
|
String d = base.charAt(i) + "";
|
||||||
|
|
||||||
|
multiplicandos[i] = Integer.valueOf(d) * multiplicadores[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
int dac = 0;
|
||||||
|
|
||||||
|
for(Integer v : multiplicandos){
|
||||||
|
|
||||||
|
if(v < 10){
|
||||||
|
dac += v;
|
||||||
|
}else{
|
||||||
|
dac += 1 + (v - 10);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dac = 10 - (dac % 10);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
return dac + "";
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean validaNossoNumero(String nossoNumero, BancoLayout bancoLayout){
|
||||||
|
|
||||||
|
if(BancoLayout.BRADESCO_400_Envio.equals(bancoLayout) && nossoNumero.length() == 12 ){
|
||||||
|
return Boolean.TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(BancoLayout.ITAU_400_Envio.equals(bancoLayout) && nossoNumero.length() == 9 ){
|
||||||
|
return Boolean.TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(BancoLayout.BB_240_Envio.equals(bancoLayout)){
|
||||||
|
return Boolean.TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return Boolean.FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
|
||||||
|
//System.out.println(calcularNossonumeroBradesco(19, new BigInteger("00166509652")));
|
||||||
|
//System.out.println(calcularNossonumeroBradesco(19, new BigInteger("00000000001")));
|
||||||
|
//System.out.println(calcularNossoNumeroItau(57, 72192, 109, new BigInteger("987123451")));
|
||||||
|
//System.out.println(dvDocumentoItau(1108954));
|
||||||
|
|
||||||
|
// System.out.println(calcularNossoNumeroBancoBrasil(3088490, 17, new BigInteger("100000")));
|
||||||
|
// System.out.println(calcularNossoNumeroBancoBrasil(3088490, 17, new BigInteger("100001")));
|
||||||
|
// System.out.println(calcularNossoNumeroBancoBrasil(3088490, 17, new BigInteger("100002")));
|
||||||
|
// System.out.println(calcularNossoNumeroBancoBrasil(3088490, 17, new BigInteger("100003")));
|
||||||
|
// System.out.println(calcularNossoNumeroBancoBrasil(3088490, 17, new BigInteger("100004")));
|
||||||
|
// System.out.println(calcularNossoNumeroBancoBrasil(3088490, 17, new BigInteger("100005")));
|
||||||
|
|
||||||
|
|
||||||
|
System.out.println(calcularNossoNumeroBancoBrasil(490, 17, new BigInteger("100006")));
|
||||||
|
System.out.println(calcularNossoNumeroBancoBrasil(88490, 17, new BigInteger("100007")));
|
||||||
|
System.out.println(calcularNossoNumeroBancoBrasil(3088490, 17, new BigInteger("100005")));
|
||||||
|
|
||||||
|
Date ini = new Date(97, 9, 7);
|
||||||
|
Date end = new Date();
|
||||||
|
System.out.println(((end.getTime() - ini.getTime()) / DateUtils.MILLIS_IN_DAY));
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue