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 Camellador Lanero VIP

    Registrado:
    14 Junio 2004
    Mensajes:
    836
    Gustó a:
    327
    Ubicación:
    Colombia
    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.

    Anuncio


    Saludos
     
  2. xjuanch0x

    xjuanch0x Lanero aventajado (6)

    Registrado:
    25 Septiembre 2004
    Mensajes:
    690
    Gustó a:
    56
    Ubicación:
    Barranquilla
    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 adicto (9)

    Registrado:
    1 Septiembre 2004
    Mensajes:
    3,624
    Gustó a:
    2,118
    Ubicación:
    12º33N81º42
    buen día, disculpen mi ignorancia... q es el RUC, busque en google y nada...
     
  4. xjuanch0x

    xjuanch0x Lanero aventajado (6)

    Registrado:
    25 Septiembre 2004
    Mensajes:
    690
    Gustó a:
    56
    Ubicación:
    Barranquilla


    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 (1)

    Registrado:
    6 Febrero 2007
    Mensajes:
    1
    Gustó a:
    0
    Ubicación:
    Cali, Colombia
    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 (1)

    Registrado:
    26 Enero 2008
    Mensajes:
    2
    Gustó a:
    0
    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 veterano (4)

    Registrado:
    2 Abril 2004
    Mensajes:
    204
    Gustó a:
    23
    Ubicación:
    Bogotá
    gracias a todos por los aportes ... seran muy utiles p
     
  8. Balr0G

    Balr0G Lanero novato (1)

    Registrado:
    20 Septiembre 2012
    Mensajes:
    1
    Gustó a:
    0
    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 (1)

    Registrado:
    26 Enero 2008
    Mensajes:
    2
    Gustó a:
    0
    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
     
  10. nicknico2

    nicknico2 nk2 Lanero VIP

    Registrado:
    11 Noviembre 2006
    Mensajes:
    3,591
    Gustó a:
    1,635
    Ubicación:
    Bogotá D.C.

Compartir esta página