Anda di halaman 1dari 3

const

TablaMul:Array[1..10] of Integer=(5,4,3,2,7,6,5,4,3,2); {Tabla Arbitraria}


function EsCUITValido(Num:String):boolean;
type
ArrayDe11=Array[1..11] of Integer;
var
R:ArrayDe11; {Resultados de Multiplicar por la Tabla Arbitraria}
CUIT:ArrayDe11; {Para convertir cada digito}
I:Integer; {Indice}
Sumatoria, {Sumatoria de los Digitos menos el último}
Dividendo, {Resultado de la División}
Producto,
Diferencia,
DigitoVerif:Integer; {Digito Verificador Calculado}
begin
result:=false; { Asumir Invalido }
if Length(Num) = 11 then
begin
try
for i:=1 to 11 do CUIT[i]:=StrToInt(Num[i]); { Convertir cada caracter a
Número}
except
Exit; { Si hay error de conversión e
s CUIT invalido}
end; { try }
end else Exit; { if } { Si no tiene 11 caracteres es CUIT invalido }
for i:=1 to 10 do // Multiplicar cada digito por la
R[i]:=CUIT[i]*TablaMul[i]; // Tabla Arbitraria menos el último
Sumatoria:=0;
for i:=1 to 10 do
Sumatoria:=Sumatoria+R[i]; // Calcular la sumatoria de los resultados
Dividendo:=Sumatoria div 11; // Dividir por 11 (división entera)
Producto:=Dividendo * 11; // El resultado multiplica por 11
Diferencia:=Sumatoria - Producto; // Obtener la diferencia
if Diferencia > 0 then // Si la dif. es mayor a cero
DigitoVerif:=11 - Diferencia // El digito verificador es 11 menos la dife
rencia
else DigitoVerif:=Diferencia; // sino es Cero.
if DigitoVerif = CUIT[11] then result:=true; // si el Digito Verificador es ig
ual
end;
--------------------------------------------------------------------------------
-----------------
--------------------------------------------------------------------------------
-----------------
function UfValidStrCuit($cuit,&$resultado)
{
$coeficiente[0]=5;
$coeficiente[1]=4;
$coeficiente[2]=3;
$coeficiente[3]=2;
$coeficiente[4]=7;
$coeficiente[5]=6;
$coeficiente[6]=5;
$coeficiente[7]=4;
$coeficiente[8]=3;
$coeficiente[9]=2;
$resultado=1;
for ($i=0; $i < strlen($cuit); $i= $i +1) { //separo cualquier caracter que
no tenga que ver con numeros
if ((Ord(substr($cuit, $i, 1)) >= 48) && (Ord(substr($cuit, $i, 1)) <= 57))
{
$cuit_rearmado = $cuit_rearmado . substr($cuit, $i, 1);
}
}
If (strlen($cuit_rearmado) <> 11) { // si to estan todos los digitos
$resultado=0;
} Else {
$sumador = 0;
$verificador = substr($cuit_rearmado, 10, 1); //tomo el digito verificador
For ($i=0; $i <=9; $i=$i+1) {
$sumador = $sumador + (substr($cuit_rearmado, $i, 1)) * $coeficiente[$i];//se
paro cada digito y lo multiplico por el coeficiente
}
$resultado = $sumador % 11;
$resultado = 11 - $resultado; //saco el digito verificador
$veri_nro = intval($verificador);
If ($veri_nro <> $resultado) {
$resultado=0;
} else {
$cuit_rearmado = substr($cuit_rearmado, 0, 2) . "-" . substr($cuit_rearmado,
2, 8) . "-" . substr($cuit_rearmado, 10, 1);
}
}
}
--------------------------------------------------------------------------------
----------------------
--------------------------------------------------------------------------------
----------------------
Function valida_rut(rt As String) As Boolean
increm = 2
suma = 0
For i = 10 To 1 Step -1
dig = Mid$(rt, i, 1)
If (dig <> ".") Then
dig = Val(dig)
suma = suma + (increm * dig)
If increm = 7 Then
increm = 1
End If
increm = increm + 1
End If
Next i
resto = suma Mod 11
dig_ver = 11 - resto
Select Case dig_ver
Case Is = 11
dig_ver = "0"
Case Is = 10
dig_ver = "K"
End Select
If dig_ver = Mid$(rt, 12, 1) Then
val_rut = True
Else
val_rut = False
End If
End Function

Anda mungkin juga menyukai