presiculebras Posted March 13, 2017 Share Posted March 13, 2017 (edited) SOLUCIONADO!! No se si soy yo o es un bug de prestashop1.7.0.5 El caso es que si activo el modo B2B cuando un cliente se va ha registrar siempre da error en el campo dni/cif lo pongo con letra, sin letra, con guión sin guión en mayusculas, minusculas y nada. Alguien podría comprobarlo. O indicarme en que archivo realiza la comprobación. Gracias de antemano. Edited June 8, 2017 by presiculebras (see edit history) Link to comment Share on other sites More sharing options...
marosea Posted April 18, 2017 Share Posted April 18, 2017 Me pasa lo mismo. Como lo has arreglado??? Gracias Link to comment Share on other sites More sharing options...
jmeca Posted May 14, 2017 Share Posted May 14, 2017 Pues si asi estamos todos, llevo echadas un monton de horas en esto y no se como solucionarlo, si alguien nos echara una mano le estariamos muy agradecidos. Link to comment Share on other sites More sharing options...
presiculebras Posted June 8, 2017 Author Share Posted June 8, 2017 Bueno encontre la solución hace un tiempo y se me olvidó comentarla. Hay va. prestashop es francés y ellos usan el código SIRET que es el equivalente a nuestro CIF/DNI Vamos al fichero en nuestra carpeta de instalación de prestashop en el principal classes/validate.php a la function isSiret (esta sobre la linea 1034) habrimos el archivo con un editor de texto o con notepad++(gratuito e indispensable si nos dedicamos a tocar archivos o modificar bases de datos, y cualquier archivo que contenga código o texto, si no lo teneis herramienta crucial para trabajar) en buscar ponemos SIRET y nos localiza la función concreta. para comentar /** la función y */ se nos pone en verde (eso es que esta comentado) y añadimos la última linea que nos deja meter un código de 9 digitos, 8+una letra, una letra y 8 digitos. No comprueba si es correcta la letra. para eso tendriamos que escribir una función más compleja, pero nos coje el dni. Debe quedar el archivo asin /** * Validate SIRET Code * @static * @param $siret SIRET Code * @return boolean Returntrue if is valid */ publicstaticfunction isSiret($siret) { /*Codigo original comentado if (Tools::strlen($siret)!= 14) return false; $sum = 0; for ($i = 0; $i != 14;$i++) { $tmp = ((($i + 1) %2) + 1) * intval($siret[$i]); if ($tmp >= 10) $tmp -= 9; $sum += $tmp; } return ($sum % 10 === 0);*/ return preg_match(‘/^[+0-9. ()-]*$/’,$number); } Comentaremos el código de validación original, lo podemos borrar pero así lo tendremos si queremos consultarlo alguna vez, e incluimos una validación mucho menos restrictiva. guardamos, forzamos compilación en parametros avanzados >> rendimiento >> forzar compilación. Vamos a parametros de la tienda>>ajustes sobre clientes>> activar modo B2B Despues vamos a traducciones buscamos SIRET y lo traducimos como DNI/CIF. El campo DNI/Cif debe salir en el registro y ya es compatible con los datos españoles. En realidad estamos introduciendo el SIRET francés a la española pero nos funciona. Saludos y si os he ayudado. Un like. Link to comment Share on other sites More sharing options...
jmeca Posted June 11, 2017 Share Posted June 11, 2017 Muchas gracias por enviar la informacion Presiculebras. A mi no me funciona, se va las paginas en blanco, a lo mejor a troas fersonas le puede funcionar Link to comment Share on other sites More sharing options...
presiculebras Posted June 16, 2017 Author Share Posted June 16, 2017 si se te va a blanco activa modo depuración en parametros avanzados rendimiento, en vez de ir a blanco te dira porque se va a blanco, realmente funciona, debes tener algún parametro mal configurado y el modo depuración te ayudara. Envia copia del error e intentare ayudarte. Link to comment Share on other sites More sharing options...
Recommended Posts