Algoritmo de módulo 11 SRI C#
Para Facturación Electronica
En este Blog vamos a ver parte por parte ademas dejaremos el codigo para la realizar todo sobre fcturacion electronica
Puedes Seguirme en mi pagina de Facebook
Tambien Seguirme en mi canal de Youtube
El Video Correspondiente Video de Demostracion
En esta Primera entrega veremos el algoritmo del Modulo 11
Segun lo que dice el SRI es lo Siguiente
Ahora veremos el codigo Resuelto en c#
Primero debemos obtener los 48 digitos q se da para formar la clave de Acceso
var x= digito11("120320210607044538100011100001000000806000000511");
x.ToString();
Luego de eso realizar los siguientes pasos
Que es primero Sacar el areglo de la Clave de Acceso en ToCharArray(), para poder sumar y multiplicar cada una de los char;
En segundo lugar es recorrer todo el array realizando la suma y multiplicando por el factor q segun el SRI va del 1 al 7 y restar cada uno al factor por cada Iteracion;
Por ultimo hacemos la verificacion de el modulo 11 q es la suma por el mod 11 y comparar si es diferente de 11 o 10 va el numero q salio Si es igual a 11 va 0 y si es 10 va 1
Por ultimo retornamos el Codigo Verificador mas el digito verificador y es todo sobre el Algoritmo de Codigo 11 para el SRI
private static string digito11(string claveAcceso48)
{
var clave1 = claveAcceso48.ToCharArray();
int suma = 0, factor = 7;
foreach (var item in clave1)
{
suma = suma + Convert.ToInt32(item.ToString()) * factor;
factor = factor - 1;
if (factor == 1)
factor = 7;
}
var digitoverificador = (suma % 11);
digitoverificador = 11 - digitoverificador;
if (digitoverificador == 11)
digitoverificador = 0;
else if (digitoverificador == 10)
digitoverificador = 1;
return claveAcceso48 + digitoverificador.ToString(); ;
}
excelente , gracias mil
ResponderEliminarGracias amigo
ResponderEliminarHola, estuve tratando de verificar la validacion de ruc de sociedades, con tercer digito 9, intente verificar con 2 metodos el del modulo 11 con verificador en el 9no y 10mo digito y vale a unos y otros no, la verdad esta super raro este tema. Si alguien sabe algo se agradece informacion
ResponderEliminar