Foros del Web » Programación » Java »

Rutina para obtener Digito verificador del ABL - GCBA

Estas en el tema de Rutina para obtener Digito verificador del ABL - GCBA en el foro de Java en Foros del Web. ABL GCBA - OBTENER DIGITO VERIFICADOR En muchos casos al alquilar se nos da la impresion del ABL para pagar solo con el numero de ...
  #1 (permalink)  
Antiguo 19/04/2013, 12:55
 
Fecha de Ingreso: diciembre-2012
Mensajes: 2
Antigüedad: 1 año, 10 meses
Puntos: 0
Mensaje Rutina para obtener Digito verificador del ABL - GCBA

ABL GCBA - OBTENER DIGITO VERIFICADOR


En muchos casos al alquilar se nos da la impresion del ABL para pagar solo con el numero de partida. Sin tener el digito verificador no podemos ver nombre/apellido del propietario ni el domicilio, en particular se me ocurrio que no era mi dpto el cual estaba pagando el abl y quise averiguar cual era este DV. En fin, desde la pagina del GCBA tienen publica la validacion que realiza aca se las dejo (esta incluida en un .js visible desde el navegador).




Para explicar esto tomamos de ejemplo el nro de partida "3781376".


PASO 1

El numero de partida se compone de 7 digitos, cada uno de estos debera ser multiplicado por un valor y luego estas multiplicaciones deberan ser sumadas de la siguiente forma.

(digito 7)*7 + (digito 6) * 6 + (digito 5)*5 + (digito 4)*4 + (digito 3)*3 + (digito 2)*2 + (digito 1)*7

Para el ejemplo sera:

6*7 + 7*6 + 3*5 + 1*4 + 8*3 + 7*2 + 3*7 = 162


PASO 2
El valor obtenido en el paso anterior % 11

Para el ejemplo sera 162 % 11 = 8

PASO 3
El digito verificador debe ser de dos digitos, por lo tanto el valor obtenido en el paso 2 tiene que ir con un cero delante, quedando 08


nota: si el paso 2 diese como resultado "10" el digito verificador es "01"




Por lo tanto para el numero de partida 3781376 el digito verificador sera 08.



A continuacion la rutina java para esto:


public static void main(String[] args) {


String n = "3781376";
char[] a = n.toCharArray();
int i;

int digito_verdadero_int = (Character.getNumericValue(a[6])*7 +
Character.getNumericValue(a[5])*6 +
Character.getNumericValue(a[4])*5 +
Character.getNumericValue(a[3])*4 +
Character.getNumericValue(a[2])*3 +
Character.getNumericValue(a[1])*2 +
Character.getNumericValue(a[0])*7) % 11;

String digito_verdadero = String.valueOf(digito_verdadero_int);


if ( digito_verdadero.equals("10") )
digito_verdadero = "1";

int longitud_digito=2;

if ( digito_verdadero.length() < longitud_digito ){
String x = new String();
for(i=digito_verdadero.length(); i<longitud_digito ; i++)
x = x + "0";
digito_verdadero = x + digito_verdadero;
}


System.out.println("El digito verificador de la partida: " + n +" es: " + digito_verdadero);

}

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 17:59.
SEO by vBSEO 3.3.2