Error en registro  

 
Jaime
 Jaime
Usuario experto

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

Citar
Respondido : 26/02/2017 8:58 pm
Pepe
 Pepe
Soporte CMS Webempresa Admin

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

Si nuestra ayuda te sirve déjanos tu testimonio y mejora así el posicionamiento de tu web:
Enviar Testimonio
¿Has probado WpCenter?, es nuestro nuevo manager de WordPress desde el propio cPanel sin necesidad de acceder a tu administración, te permitirá configurar actualizaciones automáticas y mucho más.
Pruébalo accediendo a tu cPanel > Aplicaciones Webempresa > WpCenter
¡Gracias!.

ResponderCitar
Respondido : 27/02/2017 12:55 pm

optimiza-automaticamente-todas-las-imagenes-de-tu-wordpress

Jaime
 Jaime
Usuario experto

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

ResponderCitar
Respondido : 27/02/2017 5:12 pm
Jhon
 Jhon
Soporte CMS Webempresa Moderator

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 nuestra ayuda te sirve déjanos tu testimonio y mejora así el posicionamiento de tu web:
Enviar mi Testimonio
¡Gracias!.

ResponderCitar
Respondido : 27/02/2017 10:36 pm

Cursos Gratuitos WordPress

Jaime
 Jaime
Usuario experto

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

ResponderCitar
Respondido : 27/02/2017 10:46 pm
Jhon
 Jhon
Soporte CMS Webempresa Moderator

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

Si nuestra ayuda te sirve déjanos tu testimonio y mejora así el posicionamiento de tu web:
Enviar mi Testimonio
¡Gracias!.

ResponderCitar
Respondido : 27/02/2017 11:46 pm

Gestor de Contraseñas - VPN Conexión Segura - Gestor 2FA (Segundo Factor de Autenticación

Jaime
 Jaime
Usuario experto

Fenómeno, funciona!!!!
Muchas gracias!!

ResponderCitar
Respondido : 28/02/2017 10:39 am

Por favor Iniciar Sesión o Registro