Recientemente me he involucrado en un proyecto de implementación del ERP El Gestor a un cliente en Medellín, quien nos solicitó implementar el dígito de verificación que la DIAN obliga para el NIT de los proveedores.
Luego de algo de investigación, encontramos un post con el algoritmo en Visual Basic para excel, lo tradujimos a PowerScript y funcionó perfecto.
A continuación el código:
///******************************************************** //* FUNCION : fn_co_nitdv //* FUNCION : Devuelve el Digito de Verificacion de un Nit (COLOMBIA) //* PARAMETROS : _nit: Numero de Nit a Calcular en string //* RETORNO : Digito de Verificación en string //* AUTOR : Johan Gálvez (johangalvez@lylsistemas.com) //********************************************************/ long WSuma, lnRetorno, Arreglo_PA[15], WDig_Ver, I string WDato _Nit = TRIM(_Nit) if _Nit="" or isnull(_Nit) then MESSAGEBOX("Error de NIT","El valor de NIT no puede ser nulo.") RETURN 0 end if Arreglo_PA[1] = 71 Arreglo_PA[2] = 67 Arreglo_PA[3] = 59 Arreglo_PA[4] = 53 Arreglo_PA[5] = 47 Arreglo_PA[6] = 43 Arreglo_PA[7] = 41 Arreglo_PA[8] = 37 Arreglo_PA[9] = 29 Arreglo_PA[10] = 23 Arreglo_PA[11] = 19 Arreglo_PA[12] = 17 Arreglo_PA[13] = 13 Arreglo_PA[14] = 7 Arreglo_PA[15] = 3 lnRetorno = 0 WDato=RIGHT(SPACE(15)+TRIM(_Nit),15) WSuma=0 WDig_Ver=0 FOR I = 1 TO 15 WSuma=WSuma+(long(mid(WDato,I,1))*Arreglo_PA[I]) NEXT WSuma=MOD(WSuma,11) IF WSuma=0 OR WSuma=1 then lnRetorno = WSuma ELSE lnRetorno = 11 - WSuma END IF RETURN lnRetorno
No hay comentarios:
Publicar un comentario