Hola a todos.
Estamos usando la última versión estable, la 3.4.1.
El problema que tenemos es que tanto en el buscador interno como en el buscador del TPV cuando escaneas un código de barras EAN13 con sus 12 dígitos todo es correcto, pero hay muchos fabricantes que meten en el código de barras el dígito de control número 13 (el que se calcula sólo) y cuando lo pistoleteas dolibarr no es capaz de encontrarlo.
No sé si es un bug o que no está contemplado, supongo que un javascript en el campo del formulario podría calcular si son 13 dígitos lo que han metido y que lo recorte a 12 dígitos.
¿sabe alguien la solución a este tema?
Un saludo y gracias.
EAN13 buscador código barras 13 dígitos
Hola.
Os cuento la solución que he hecho para el módulo TPV:
archivo cashdesk/facturation.php buscar:
Sustituir por:
Para el buscador de código de barras en el "Área de producto":
abrir archivo product/liste.php
Añadimos después de la línea
Buscamos el siguiente código :
Sustituimos por:
Un saludo
Os cuento la solución que he hecho para el módulo TPV:
archivo cashdesk/facturation.php buscar:
Código: Seleccionar todo
if (! empty($conf->barcode->enabled)) $sql.= " OR p.barcode LIKE '%".$db->escape(GETPOST('filtre'))."%')";
else $sql.= ")";
Sustituir por:
Código: Seleccionar todo
if (! empty($conf->barcode->enabled)){
$str = GETPOST('filtre');
$chars=str_split($str, 1);
$ean12 = $chars[0].$chars[1].$chars[2].$chars[3].$chars[4].$chars[5].$chars[6].$chars[7].$chars[8].$chars[9].$chars[10].$chars[11];
$sql.= " OR p.barcode LIKE '%".$db->escape(GETPOST('filtre'))."%'";
$sql.= " OR p.barcode LIKE '%".$db->escape($ean12)."%')";
}else{ $sql.= ")";
}
Para el buscador de código de barras en el "Área de producto":
abrir archivo product/liste.php
Añadimos después de la línea
Código: Seleccionar todo
$sbarcode=GETPOST("sbarcode");
Código: Seleccionar todo
$str = $sbarcode;
$chars=str_split($str, 1);
$ean12 = $chars[0].$chars[1].$chars[2].$chars[3].$chars[4].$chars[5].$chars[6].$chars[7].$chars[8].$chars[9].$chars[10].$chars[11];
Buscamos el siguiente código :
Código: Seleccionar todo
if ($sbarcode) $sql.= " AND p.barcode LIKE '%".$sbarcode."%'";
Sustituimos por:
Código: Seleccionar todo
if ($sbarcode){
$sql.= " AND p.barcode LIKE '%".$sbarcode."%'";
$sql.= " OR p.barcode LIKE '%".$ean12."%'";
}
Un saludo
Hola:
Gracias por informar del error. Será corregido en la próxima versión 3.4.2.
Hipnosapo, he utilizado parte de tu código para resolver el error. He incluido el link a este mensaje en los comentarios para que conste tu autoría. Si quieres que aparezca tu nombre real e Email envíame un mensaje a marc...@gmail.com (entra aquí para ver la dirección completa: http://www.google.com/recaptcha/mailhid ... wyn6bORlA=) o haz un Pull Request en la branch 3.4 de Github.
Un saludo.
Gracias por informar del error. Será corregido en la próxima versión 3.4.2.
Hipnosapo, he utilizado parte de tu código para resolver el error. He incluido el link a este mensaje en los comentarios para que conste tu autoría. Si quieres que aparezca tu nombre real e Email envíame un mensaje a marc...@gmail.com (entra aquí para ver la dirección completa: http://www.google.com/recaptcha/mailhid ... wyn6bORlA=) o haz un Pull Request en la branch 3.4 de Github.
Un saludo.
Desarrollador con categoría Almirante de Dolibarr.
¿Quiere soporte personalizado? Contacte conmigo.
¿Quiere soporte personalizado? Contacte conmigo.