Ver Mensaje Individual
  #5 (permalink)  
Antiguo 24/04/2012, 11:20
Avatar de fahs82
fahs82
 
Fecha de Ingreso: abril-2012
Ubicación: guadalajara
Mensajes: 139
Antigüedad: 12 años
Puntos: 12
De acuerdo Respuesta: Necesito Orientacion Calculo de digito verificador EAN 13 al ingresar nuev

muy bien ya resolvi la query y posteo el codigo en una forma mas limpia e intentare explicarla de una forma clara agradesco al compañero que me oriento con el codigo del check a continuacion posteo el codigo y la explicacion

primero ver la ecuacion para sacar el verificador

ejemplo

codigo 123456789012
primero
sumamos los numeros en posicion par y el resultado lo multiplicamos por 3

2+4+6+8+0+2 = 22 * 3 = 66

segundo
despues sumamos los numeros en posicion non
1+3+5+7+9+1 = 26

tercero
los dos resultados los sumamos
66+26 = 92

Se busca decena inmediatamente superior y se le resta el resultado obtenido. El resultado final es el dígito de control. Si el resultado es múltiplo de 10 el dígito de control será 0.
y al final determinamos el Próximo múltiplo de 10
del resultado = 100
Dígito de control: 100 - 92 = 8


implementandolo en mysql

funciones a utilizar
resta
substr
mod
en un query

en mi caso la tabla de la cual extraigo la consulta se llama bc_articulos y el campo donde se encuentran los 12 digitos del codigo se llama barcode

asi que con la siguiente query obtengo el verificador

select 10-(((substr(barcode,2,1)+substr(barcode,4,1)+substr( barcode,6,1)+substr(barcode,8,1)+substr(barcode,10 ,1)+substr(barcode,12,1))*3)+((substr(barcode,1,1) +substr(barcode,3,1)+substr(barcode,5,1)+substr(ba rcode,7,1)+substr(barcode,9,1)+substr(barcode,11,1 ))))mod 10 from bc_articulos

si alguien lo necesita puede modificar el codigo a su necesidad y utilizarlo en un trigger o en un update espero le sea de utilidad a quien lo necesite ya que como yo no encontre casi informacion ni codigo de como aplicarlo , si tienen duda pueden consultarme