Ver Mensaje Individual
  #8 (permalink)  
Antiguo 24/03/2008, 12:18
Avatar de genco
genco
 
Fecha de Ingreso: febrero-2008
Mensajes: 9
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: validar RUC sunat peru java script

gracias Sick comenzare inmediatamente a trabajar, por cierto si quieres un numero de ruc valido puedes ir a la misma pagina de la sunat y en ves de usar busqueda por numero de ruc, buscas por "nombre o razon social", la empresa o el nombre te lo dejo a tu imaginacion. ejm" juan perez" etc.
gracias


Cita:
Iniciado por zick Ver Mensaje
Despues de un buen rato tratando de descifrar tu genoma.. he podido limpiar el codigo con lo necesario, espero lo puedas implementar bien en tu pagina, ya que no tengo ningun RUC válido como para testearlo. En fin, he aquí el codigo:

Código HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0067)http://www.sunat.gob.pe/cl-ti-itmrconsruc/frameCriterioBusqueda.jsp -->
<HTML><HEAD><TITLE>Consulta RUC</TITLE>
<META http-equiv=Content-Type content="text/html; charset=windows-1252"><LINK
href="frameCriterioBusqueda_archivos/estilos2_0.css" rel=stylesheet>
<SCRIPT languaje="JavaScript">
function esnulo(campo){ return (campo == null||campo=="");}
function esnumero(campo){ return (!(isNaN( campo )));}
function eslongrucok(ruc){return ( ruc.length == 11 );}
function esrucok(ruc){
return (!( esnulo(ruc) || !esnumero(ruc) || !eslongrucok(ruc) || !valruc(ruc) ));
}
function trim(cadena){
cadena2 = "";
len = cadena.length;
for ( var i=0; i <= len ; i++ ) if ( cadena.charAt(i) != " " ){cadena2+=cadena.charAt(i); }
return cadena2;
}
function valruc(valor){
valor = trim(valor)
if ( esnumero( valor ) ) {
if ( valor.length == 8 ){
suma = 0
for (i=0; i<valor.length-1;i++){

digito = valor.charAt(i) - '0'; // aqui lo que no entiendo es - '0' no se que es, supongo que elimina los ceros, parece una resta pero como se va a restar si el chaart solo te devuelve un digito?
<!--
//Exactamente, al parecer, esto elimina los posibles ceros que existan dentro de los parametro que se ingresaron en el input
-->

if ( i==0 ) suma += (digito*2)
else suma += (digito*(valor.length-i))
}
resto = suma % 11;
if ( resto == 1) resto = 11;
if ( resto + ( valor.charAt( valor.length-1 ) - '0' ) == 11 ){
return true
}
} else if ( valor.length == 11 ){
suma = 0
x = 6
for (i=0; i<valor.length-1;i++){
if ( i == 4 ) x = 8
digito = valor.charAt(i) - '0';
x--
if ( i==0 ) suma += (digito*x)
else suma += (digito*x)
}
resto = suma % 11;
resto = 11 - resto

if ( resto >= 10) resto = resto - 10;
if ( resto == valor.charAt( valor.length-1 ) - '0' )
{
return true
}
}
}
return false
}
</SCRIPT>
<SCRIPT type=text/javascript languaje="JavaScript">
function RUC(){
if(!esrucok(mainForm.nroRuc.value)){
alert('Por favor, ingrese numero de RUC valido.')
mainForm.busqueda.focus();
return;
}else{
MainForm.submit();
}
}
</SCRIPT>
</HEAD>
<BODY>
<FORM name='mainForm' action='jcrS00Alias' method='post' target='mainFrame'>
<TABLE class=form-table cellSpacing=2 cellPadding=3 width="100%" border=0>
<TBODY>
<TR>
<TD>
<TABLE cellSpacing=2 cellPadding=3 width="100%" border=0>
<TBODY>
<TR>
<TD align=left bgColor=#3399cc><B>CRITERIOS DE
BÚSQUEDA:</B></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD align=left width=180>
<input type="hidden" id="nroRuc">
<input type="hidden" id="ruc">
<INPUT class='form-text' name='busqueda'></TD>
<TD align=left vAlign=center><INPUT class=form-button onclick="RUC()" type='button' value='Buscar'> <A href="javascript:goRefresh()"></A></TD>
</TR>
</TBODY></TABLE></TD></TR></TBODY></TABLE></FORM></BODY></HTML> 
A la espera de tus comentario..

Salud!!