buen día, disculpen mi ignorancia... q es el RUC, busque en google y nada...
function zero_fill($nit)
{
$relleno = '';
for ($i=1; $i < 15; $i++)
{
$total_char = strlen($nit) + $i;
if ($total_char <= 15)
$relleno .= "0";
else
break;
}
$nit = $relleno.$nit;
return $nit;
}
function calcularDV($nit)
{
$pesos = array(71,67,59,53,47,43,41,37,29,23,19,17,13,7,3);
$nit_fmt = zero_fill($nit);
$suma = 0;
for ($i=0; $i<=14; $i++)
$suma += substr($nit_fmt, $i, 1) * $pesos[$i];
$resto = $suma % 11;
if ($resto == 0 || $resto == 1)
$digitov = $resto;
else
$digitov = 11 - $resto;
echo $digitov;
}
estimados,
gracias por sus funciones, muy útiles, pero tengo un par de dudas con su sistema de identificación personal(soy chileno).
he visto en varias paginas que ocupan distintos números de identificación, el CC, el NIT, el NUIP
también hay diferencias entre las cédulas dependiendo de la edad. cual es el numero ocupado para identificarse como mayor de 18 años en Colombia? el NIT, el NUIP ?? todos???
según, he buscado y no tengo claro cual, deberia ser el NUIP pero es muy nuevo y se supone que desde el 2010 todos deberían tener este numero, pero formular para validar un NUIP o un CC no puedo encontrar.
Si fueran tan amables de indicarme como puedo obtener estas formulas o si con el nit es suficiente.
Saludos
Algoritmo en JavaScript
Hola laneros!
Anexo mi aporte en JavaScript.
Mil gracias a todos los que han aportado a este tema, me solucionaron un problema muy importante que tengo en un proyecto.
El código está basado en el script publicado por acehart.
Que lo disfruten!!
================================
function zero_fill(i_valor, num_ceros) {
relleno = ""
i = 1
salir = 0
while ( ! salir ) {
total_caracteres = i_valor.length + i
if ( i > num_ceros || total_caracteres > num_ceros )
salir = 1
else
relleno = relleno + "0"
i++
}
i_valor = relleno + i_valor
return i_valor
}
function calcularDV(i_rut) {
var pesos = new Array(71,67,59,53,47,43,41,37,29,23,19,17,13,7,3);
rut_fmt = zero_fill(i_rut, 15)
suma = 0
for ( i=0; i<=14; i++ )
suma += rut_fmt.substring(i, i+1) * pesos
resto = suma % 11
if ( resto == 0 || resto == 1 )
digitov = resto
else
digitov = 11 - resto
return(digitov)
}