Hola grupo
Tengo el siguiente problema: el dígito verificador que se calcula con la
función que se encuentra en
http://www.portalfox.com/article.php?sid4 es
diferente al del producto.
¿Será que el código en el producto está mal? Se trata de un producto
argentino (Chicles beldent) con código 77900166.
El dígito verificador que se calcula con la función de portalfox es el 4,
sin embargo, en el producto es el 6 (el último dígito de 77900166)
¿Estoy haciendo mal algo? reitero que utilizo exactamente la función enviada
por Luis Maria, en PortalFox.
Lo llamativo es que, si cambio una parte del código de la siguiente forma,
el dígito verificador calculado coincide con el del producto:
código original:
IF MOD(lnI,2) = 0
lnCheckSum = lnCheckSum + VAL(SUBS(lcRet,lnI,1)) * 3
ELSE
lnCheckSum = lnCheckSum + VAL(SUBS(lcRet,lnI,1)) * 1
ENDIF
código cambiado:
IF MOD(lnI,2) = 0
lnCheckSum = lnCheckSum + VAL(SUBS(lcRet,lnI,1)) * 1 && 1 en vez de 3
ELSE
lnCheckSum = lnCheckSum + VAL(SUBS(lcRet,lnI,1)) * 3 && 3 en vez de 1
ENDIF
Por favor, ayúdenme a resolver este dilema! ¿Acaso hay un error en la
función? y si es así, ¿se aplicaría lo mismo para códigos EAN12?
Mario Esquivel Bado
Sistemas Epsilon
Desarrollo de Sistemas de Gestión Administrativa Financiera y Contable