Gadgeteros Laneros HWCol

validacion NIT y RUT de la DIAN

Tema en 'Programacion y Diseño de Software' iniciado por acehart, 4 Julio 2006.

  1. cahebebe

    cahebebe Lanero reconocido

    Mensajes:
    687
    Hola ccasilla, la funcion AlineaD sirve para alinear un array a la derecha y realiza un relleno en el queda libre. Voy a buscar el código de alinead, se que es una sola linea, y luego lo subo.

    Saludos

    Anuncio

  2. xjuanch0x

    xjuanch0x Lanero novato

    Mensajes:
    690
    Yo tengo la de validacion del RUC, esta hecha en C++ y solo debes crear un arreglo que se llame RUC lo llenas con el numero del RUC y solo lo validas asi


    if (strlen(RUC) == 11 && ValidarRUC() == 1)
    {
    // HACER ALGO

    }


    int ValidarRUC()
    {
    //Declaraciones
    int i, Residuo, Val;
    int iRUC[11], Auxi[11], Mult[11];

    //Se almacena el RUC en un vector Entero
    for(i = 0; i <= 10; i++)
    iRUC = (int)RUC & 0x0F;

    //Se llena vector auxiliar para operacion
    Auxi[0] = 5;
    Auxi[1] = 4;
    Auxi[2] = 3;
    Auxi[3] = 2;
    Auxi[4] = 7;
    Auxi[5] = 6;
    Auxi[6] = 5;
    Auxi[7] = 4;
    Auxi[8] = 3;
    Auxi[9] = 2;
    Auxi[10] = 0;

    //Se llena vector de evaluacion
    Mult[10] = 0;
    for(i = 0; i <= 9; i++)
    {
    Mult = iRUC * Auxi;
    Mult[10] += Mult;
    }

    //Se evalua el resultado
    Residuo = Mult[10] % 11;
    Val = 11 - Residuo;

    if (Val == 11)
    Val = 1;
    if (Val == 10)
    Val = 0;

    if (Val == iRUC[10])
    return 1;
    else
    return 0;
    }
  3. Likibuay

    Likibuay Lanero reconocido Colaborador Oficial

    Mensajes:
    3,561
    buen día, disculpen mi ignorancia... q es el RUC, busque en google y nada...
  4. xjuanch0x

    xjuanch0x Lanero novato

    Mensajes:
    690


    Registro Único de Contribuyentes (RUC) es el registro informático a cargo de la SUNAT que contiene los datos de identificación y de las obligaciones tributarias de los contribuyentes de los tributos administrados y/o recaudados por la SUNAT, de la información vinculada a sus actividades económicas, así como la información de sus responsables. (Esto es en Peru)
  5. fcog

    fcog Lanero novato

    Mensajes:
    1
    hago mi aporte en PHP para calcular el NIT en Colombia:
    PHP:
    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$i1) * $pesos[$i];
            
        
    $resto $suma 11;
        
        if (
    $resto == || $resto == 1)
            
    $digitov $resto;
        else
            
    $digitov 11 $resto;
            
        echo 
    $digitov;    
    }
  6. nuke12

    nuke12 Lanero novato

    Mensajes:
    2
    Me tome la molestia de pasar el algoritmo de PHP a Perl, ahí deje partes comentadas del algoritmo (empiezan por #) se pueden remover sin problemas. Que tengan un feliz dia.

    sub calcularDV()
    {
    my $nit=$_[0];
    $nit=~s/\n$//;#elimina salto de linea al final cuando se prueba por consola
    my @pesos = (71,67,59,53,47,43,41,37,29,23,19,17,13,7,3);
    #$nit_fmt = &zero_fill($nit);
    my $nit_fmt=('0'x(15-length($nit))).$nit; # Agrega ceros a la izquierda hasta completar 15 digitos
    my $suma = 0;

    for (my $i=0; $i<=14; $i++){
    $suma += substr($nit_fmt, $i, 1) * $pesos[$i];
    }
    my $resto = $suma % 11;
    my $digitov = ($resto == 0 || $resto == 1)?$resto:11 - $resto; # validacion descrita seguidamente
    #if ($resto == 0 || $resto == 1){
    #$digitov = $resto;
    #}else{
    #$digitov = 11 - $resto;
    #}
    print $digitov;
    }
    my $numero=<>;
    &calcularDV($numero);
  7. DFREYES

    DFREYES Lanero reconocido

    Mensajes:
    172
    gracias a todos por los aportes ... seran muy utiles p
  8. Balr0G

    Balr0G Lanero novato

    Mensajes:
    1
    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
  9. nuke12

    nuke12 Lanero novato

    Mensajes:
    2
    para el NUIP puedes mirar esto
    http://www.registraduria.gov.co/El-NUIP-es-el-numero-que-permite.html

    La cedula de ciudadania (CC) es el documento de personas mayores de edad (18 años o mas), El Numero de identificacion Tibutaria (NIT) es la identificacion ante DIAN (Impuestos nacionales) para las personas naturales el NIT vendria siendo la Cedula seguida con digito de verificacion (DV) que arriba se menciona, para las personas judicas (Sociedades o empresas) vendria siendo un numero de 9 digitos seguido del digito de verificacion (XXX.XXX.XXX - Y) http://es.wikipedia.org/wiki/Número_de_Identificación_Tributaria

Compartir esta página

Certain XenForo add-ons by Waindigo™ ©2011-2014 Waindigo Enterprises Ltd.