Documentos de Académico
Documentos de Profesional
Documentos de Cultura
mercy C0de: Validar RUC (SUNAT PERU)
viernes, 14 de agosto de 2009
Tributos Fáciles BCP
Validar RUC (SUNAT PERU) Genera tu código NPS.
Para saber de que el RUC es valido se usa un algoritmo Ingresa Aquí y sigue los
tambien llamado Modulo 11, esto nos permite hacer un pasos. Contigo BCP
calculo de los primeros 10 digitos y validarlo con el digito
numero 11, de ser correcto se dice que el RUC es valido.
Aqui le adjunto la funcion que hace la validacion al RUC
Public Function ValidationRUC(ByVal ruc As String) As Boolean
Try
If Not IsNumeric(ruc) Then
Throw New Exception("El valor no es numerico") Credencial Facebook
End If
Afu Tse Mundaca
If ruc.Length <> 11 Then
Throw New Exception("Numero de digitos invalido")
End If
Dim dig01 As Integer = CInt(ruc.Substring(0, 1)) * 5
Dim dig02 As Integer = CInt(ruc.Substring(1, 1)) * 4
Dim dig03 As Integer = CInt(ruc.Substring(2, 1)) * 3
Dim dig04 As Integer = CInt(ruc.Substring(3, 1)) * 2
Dim dig05 As Integer = CInt(ruc.Substring(4, 1)) * 7
Dim dig06 As Integer = CInt(ruc.Substring(5, 1)) * 6
Dim dig07 As Integer = CInt(ruc.Substring(6, 1)) * 5
Dim dig08 As Integer = CInt(ruc.Substring(7, 1)) * 4
Dim dig09 As Integer = CInt(ruc.Substring(8, 1)) * 3
Dim dig10 As Integer = CInt(ruc.Substring(9, 1)) * 2
Dim dig11 As Integer = CInt(ruc.Substring(10, 1))
Crea tu insignia
Dim suma As Integer = dig01 + dig02 + dig03 + dig04 + dig05 + dig06
Dim residuo As Integer = suma Mod 11 Etiquetas
Dim resta As Integer = 11 ‐ residuo
.net
Dim digChk As Integer c#
If resta = 10 Then
digChk = 0 chrome
ElseIf resta = 11 Then
django
digChk = 1
Else excel
digChk = resta
End If Git
gmail
If dig11 = digChk Then
Return True Informix
Else
libro
Return False
End If linux
http://r3xet.blogspot.pe/2009/08/validarrucsunatperu.html 1/8
26/5/2016 N0 mercy C0de: Validar RUC (SUNAT PERU)
log4net
Catch ex As Exception
Throw ex mac
End Try
mongodb
End Function
mongolab
Ejm:
RUC = 10254824220 mssql
FACTOR = 5432765432
mssql2008
Se separa los 10 primeros digitos de la izquierda y se hace mysql
un calculo inividual
1 * 5 =5 Personales
0 * 4 = 0 php
2 * 3 = 6
5 * 2 = 10 propel
4 * 7 = 28
python
8 * 6 = 48
2 * 5 = 10 rest
4 * 4 = 16
2 * 3 = 6 SOA
2 * 2 = 4 tfs
Se suma el resultado de todas las multiplicaciones tfs2010
SUMA = 133 trucos
Se calcula el residuo de la division por 11 vb
133/ 11 = 1
vb.net
RESIDUO = 1
vs
Se resta 11 menos el residuo
11 1 vs2005
RESTA = 10 vs2010
digito de chequeo = RESTA WCF
si resta = 10 entonces digito de cheque = 0
windows
si resta = 11 entonces digito de cheque = 1
Windows Phone
Por lo tanto el RUC 10254824220 es valido por que su digito
numero 11 es 0 y el digito de chekeo es 0. windows service
Me gusta 1 xcode
Archivo del blog
► 2016 (1)
► 2015 (2)
► 2014 (10)
Publicado por r3xet en 14:39
Recomendar esto en Google ► 2013 (5)
► 2012 (12)
Etiquetas: vb.net
► 2011 (13)
► 2010 (3)
15 comentarios:
▼ 2009 (7)
aciddd dijo... ► diciembre (2)
Este comentario ha sido eliminado por el autor.
http://r3xet.blogspot.pe/2009/08/validarrucsunatperu.html 2/8
26/5/2016 N0 mercy C0de: Validar RUC (SUNAT PERU)
22 de septiembre de 2009, 12:30 ► noviembre (1)
aciddd dijo... ▼ agosto (2)
Excelente explicacion, aqui lo transcribi en otro Validar RUC (SUNAT
lenguaje como lo es PHP como funcion PERU)
function ValidRucPeru($ruc){ Obtener multiples
$factor= "5432765432"; resultados en
$ruc= trim($ruc); ADO.NET
if ( (!is_numeric($ruc)) || (strlen($ruc) != 11) ){
► junio (2)
return false;
}
► 2008 (14)
$dig_verif= substr($ruc, 10, 1);
for ($i=0; $i < 10; $i++){ Twitter Updates
$arr[]= substr($ruc, $i, 1) * substr($factor, $i, 1);
}
Sigame no Twitter
$suma=0;
foreach($arr as $a){
$suma= $suma + $a;
}
//Calculamos el residuo
$residuo= round(($suma/11),1);
$residuo= substr($residuo, 1);
$resta= 11 $residuo;
$dig_verif_aux= substr($resta, 1);
if ($dig_verif == $dig_verif_aux){
return true;
} else {
return false;
}
}
//ejecutamos la validacion
$ruc= "20372706288";
$isValidRuc= ValidRucPeru($ruc);
if ($isValidRuc){
echo "es valido";
} else {
echo "es invalido";
}
22 de septiembre de 2009, 12:33
aciddd dijo...
Buenas eh descubierto una validacion mas leyendo
unos powerpoint que encontre por la web ya me paso
que ingreso como nro de RUC 29061992072 este
numero y me sale como valido pero hay que tener en
cuenta que los primeros 2 digitos deben ser de la
siguiente manera:
10 Indica si se trata de una persona natural.
20 sociedad conyugal.
17 o 15 extranjeros
http://r3xet.blogspot.pe/2009/08/validarrucsunatperu.html 3/8
26/5/2016 N0 mercy C0de: Validar RUC (SUNAT PERU)
Por lo tanto al codigo en PHP que realice hay que
agregarle lo siguiente:
//verificacion de los 2 digitos iniciales permitidos
$dig_valid= array("10", "20" ,"17", "15");
$dig=substr($ruc, 0, 2);
if (!in_array($dig, $dig_valid, true)) {
return false;
}
Saludos, Brian.
20 de noviembre de 2009, 10:00
COCO dijo...
hola amigo no podrias compilar el codigo en un
aplicativo.. seriaa de gran ayuda tu gran aporte..
gracias y saludos
11 de enero de 2010, 13:13
aciddd dijo...
pasa que en mi ejemplo es en PHP por lo tanto
deberias copiar el codigo y correrlo con una pc con
apache que levante PHP si a eso te referis.
11 de enero de 2010, 19:46
r3xet dijo...
Gracias por los aportes, deberia compilarlo o tener
una clase ya que es de gran utilidad y tomare en
cuenta sus comentarios
22 de enero de 2010, 9:13
Marcelo dijo...
Error al hallar el residuo :S cambiar:
$residuo= round(($suma/11),1);
$residuo= substr($residuo, 1);
por esto
$residuo = $suma%11;
El substraer el ultimo decimal no te da el residuo
verdadero, por ejemplo prueba el RUC 101068886844
el residuo te daría 6 y no 7 ;) saludos
9 de diciembre de 2011, 9:30
Anónimo dijo...
visiten C&J System
hay encontran un ejemplo del aplicativo
http://www.facebook.com/cjsystem
14 de junio de 2013, 16:12
Anónimo dijo...
Aqui les mando una funcion en PHP que les puede
servir para validar el número de ruc.
http://r3xet.blogspot.pe/2009/08/validarrucsunatperu.html 4/8
26/5/2016 N0 mercy C0de: Validar RUC (SUNAT PERU)
function isrucok($ruc){
$est=false;
if (preg_match('/^(10|20|15|17)[09]{9}$/',$ruc)) {
$suma = 0;
$x = 6;
for ($i=0; $i<10;$i++){
if ( $i == 4 ) $x = 8;
$digito = substr($ruc,$i,1);
$x;
$suma+= ($digito*$x);
}
$resto = $suma % 11;
$resto = 11 $resto;
if ( $resto >= 10) {
$resto = $resto 10;
}
if ( $resto == substr($ruc,10,1)){
$est=true;
}
}
return $est;
}
23 de septiembre de 2013, 12:06
Anónimo dijo...
El ultimo si valida correctamente
29 de abril de 2014, 10:43
Marco Antonio Llapapasca Montes dijo...
Gracias por el aporte,funciona muy bien en c#...
Sigue adelante
14 de noviembre de 2014, 8:13
Anónimo dijo...
*
*//Aqui el codigo de validacion:
*edm
PARAMETERS __Ruc
IF INLIST(LEFT(__Ruc,2),"10","20","15","17")=.F.
RETURN .F.
ENDIF
_Factor = "5432765432"
DIMENSION _aFac[10]
DIMENSION _aRuc[10]
FOR _i = 1 TO 10
_aFac[_i]= VAL(SUBSTR(_Factor,_i,1))
NEXT
STORE 0 TO _aRuc, _xSum
_cRuc = __Ruc
FOR _i = 1 TO 10
_aRuc[_i]= VAL(SUBSTR(_cRuc,_i,1))
_xSum=_xSum+_aRuc[_i]*_aFac[_i]
NEXT
http://r3xet.blogspot.pe/2009/08/validarrucsunatperu.html 5/8
26/5/2016 N0 mercy C0de: Validar RUC (SUNAT PERU)
_xResta=11MOD(_xSum,11)
DO CASE
CASE _xResta=10
_nCh=0
CASE _xResta=11
_nCh=1
OTHERWISE
_nCh=_xResta
ENDCASE
_xCh=STR(_nCh,1,0)
_Mca=IIF(_xCh # SUBSTR(_cRuc,11,1),.F.,.T.)
RETURN (_Mca)
*
17 de febrero de 2015, 6:58
Anónimo dijo...
la función esta en sunat en java
function valruc(valor){
valor = trim(valor)
if ( esnumero( valor ) ) {
if ( valor.length == 8 ){
suma = 0
for (i=0; i= 10) resto = resto 10;
if ( resto == valor.charAt( valor.length1 ) '0' ){
return true
}
}
}
return false
10 de marzo de 2015, 20:51
Robert Salvatierra dijo...
function valruc(valor){
valor = trim(valor)
if ( esnumero( valor ) ) {
if ( valor.length == 8 ){
suma = 0
for (i=0; i= 10) resto = resto 10;
if ( resto == valor.charAt( valor.length1 ) '0' ){
return true
}
}
}
return false
10 de marzo de 2015, 20:53
Juan Carlos dijo...
El residuo no es más que el resto de la división, para
eso se debe utilizar el símbolo %. Aquí les comparto
esta funcionalidad hecha en javascript:
function IsNumeric(data){
return parseInt(data)==data;
http://r3xet.blogspot.pe/2009/08/validarrucsunatperu.html 6/8
26/5/2016 N0 mercy C0de: Validar RUC (SUNAT PERU)
function validarRUC(identificacion) {
if(!IsNumeric(identificacion) || identificacion.length !=
11){
return false;
}
var dig01 = identificacion.substr(0, 1) * 5;
var dig02 = identificacion.substr(1, 1) * 4;
var dig03 = identificacion.substr(2, 1) * 3;
var dig04 = identificacion.substr(3, 1) * 2;
var dig05 = identificacion.substr(4, 1) * 7;
var dig06 = identificacion.substr(5, 1) * 6;
var dig07 = identificacion.substr(6, 1) * 5;
var dig08 = identificacion.substr(7, 1) * 4;
var dig09 = identificacion.substr(8, 1) * 3;
var dig10 = identificacion.substr(9, 1) * 2;
var dig11 = identificacion.substr(10, 1);
var suma = dig01 + dig02 + dig03 + dig04 + dig05 +
dig06 + dig07 + dig08 + dig09 + dig10;
var residuo = suma % 11;
var resta = 11 residuo;
var digChk;
if(resta == 10)
digChk = 0;
else if (resta == 11) {
digChk = 1;
} else {
digChk = resta;
}
if(dig11 == digChk) {
return true;
}
else{
return false;
}
}
6 de abril de 2016, 9:03
Publicar un comentario en la entrada
http://r3xet.blogspot.pe/2009/08/validarrucsunatperu.html 7/8
26/5/2016 N0 mercy C0de: Validar RUC (SUNAT PERU)
UP: Derecho
Digital
Especialización en Derecho
Digital y Nuevas
Tecnologías. ¡Infórmate!
Suscribirse a: Enviar comentarios (Atom)
http://r3xet.blogspot.pe/2009/08/validarrucsunatperu.html 8/8