Hola,
Tengo un problema con la comprobación del dato de SIRET (CIF) en el registro. Si se pone el CIF español da error. He probado unas cuantas soluciones de las que se encuentran en foros, incluido este, pero me deja inaccesible la web. Ya no sé qué hacer. Es posible eliminar esa comprobación? Cómo?
V Prestashop 1.6.1.4
Muchas gracias
URL del sitio: Contenido solo visible a usuarios registrados
Hola Jaime, Buenos Días.
Estos datos aparecen cuando se activa el modulo B2B de prestashop en el formulario de alta de los clientes.
El SIRET exige una longitud fija de 14 caracteres de forma obligatoria, esta restricción no nos sirve para el CIF por lo que hay que quitar esa validación modificando las comprobaciones.
.- Accede al archivo validate.php que encontraras en classes/validate.php
.- Busca la siguiente linea:
/** * Validate SIRET Code * * @param string $siret SIRET Code * @return bool Return true if is valid */ public static function isSiret($siret) { 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); }
La intención es dejar ese código comentado para que no tenga en cuenta la validación.
.- Molificado por el siguiente:
/** * Validate SIRET Code * * @param string $siret SIRET Code * @return bool Return true if is valid public static function isSiret($siret) { 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); } */
Lo que hemos realizado es dejar todo ese bloque de código como si fuera un comentario y que no tenga ningún efecto.
Espero que esta información sirva 😉
Cualquier consulta sobre lo que estamos tratando no dudes en ponerte en contacto con nosotros.
Un saludo
Es que al hacer eso, cuando intento registrarme, se me cae la web. Es como si hubiese una llamada en algún sitio que provoca la caida. Pero no tengo ni idea.
Saludos
Jaime
Hola
Envíanos el archivo que has modificado, puedes enviarlo como adjunto en un .zip
Me parece raro que esa modificación te cuase ese problema.
Si no modificas eso puedes loguearte normal?
Saludos.
Si no modifico eso e intento introducir un CIF o un CNAE me da error de validación. He desactivado de momento la opción B2B porque ya van varios clientes que tienen el problema. Si no ponen esos datos se pueden registrar sin problemas. Adjunto el zip. Da igual el cambio que haga que se me cuelga la web: comentar toda la validación o poner otra validación.
Muchas gracias
Hola
Prueba comentando sólo el contenido de la función pero al final antes de cerrar la función retorna true, es decir
public static function isSiret($siret) { // 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 true; }
Saludos
Fenómeno, funciona!!!!
Muchas gracias!!