ferran.herrero Posted January 2, 2020 Share Posted January 2, 2020 Hola a todos! Comento mi situación: Hace unos meses instalé prestashop 1.7.6 para crear mi tienda online. Después de realizar las configuraciones, activé el modo B2B y traducí los campos SIRET y APE a DNI y CNAE (datos fiscales en España) e importé los datos de mis clientes. Hasta aquí todo funciona correctamente, el problema viene cuando quiero modificar cualquier campo del cliente, ya que Prestashop detecta el DNI como inválido y no puedo guardar cualquier dato que haya cambiado en la ficha de cliente. Tras visitar varios posts en diferentes foros, he anulado el validador que se encuentra dentro de Classes/Validate.php devolviendo true al final de las funciones isSiret y isApe: /** * Validate SIRET Code. * * @param string $siret SIRET Code * * @return bool Return true if is valid */ public static function isSiret($siret) { return true; } /** * Validate APE Code. * * @param string $ape APE Code * * @return bool Return true if is valid */ public static function isApe($ape) { return (bool) preg_match('/^[+0-9. ()-]*$/', $ape); } Esto lamentablemente, no solucionó mi problema, así que encontré este POST: https://www.prestashop.com/forums/topic/350955-property-customer-siret-is-not-valid/ En el que borran y regeneran los campos en la tabla de clientes de prestashop. También he realizado este paso, y sigo teniendo el problema. No se a qué se debe este problema y como solucionarlo, pero necesito poder guardar estos datos para sincronizar mi ERP con prestashop. Dejo adjunta una imagen con un cliente real para que veáis a que me refiero. Gracias de antemano, toda la ayuda es bienvenida. ¡Feliz año nuevo! Link to comment Share on other sites More sharing options...
ferran.herrero Posted January 28, 2020 Author Share Posted January 28, 2020 ¿A nadie le ha pasado? a día de hoy, sigo teniendo el problema y no he podido resolverlo, no se si desactivando alguna validación adicional se puede solucionar.... Link to comment Share on other sites More sharing options...
gusman126 Posted January 28, 2020 Share Posted January 28, 2020 (edited) En la Class de customer.php, el siret lo tiene como generic name, prueba a cambiarlo a isString 'siret' => array('type' => self::TYPE_STRING, 'validate' => 'isGenericName'), --> 'siret' => array('type' => self::TYPE_STRING, 'validate' => 'isString'), Recuerda que cualquier actualización lo perderas. Edited January 28, 2020 by gusman126 (see edit history) 1 Link to comment Share on other sites More sharing options...
ferran.herrero Posted January 29, 2020 Author Share Posted January 29, 2020 19 hours ago, gusman126 said: En la Class de customer.php, el siret lo tiene como generic name, prueba a cambiarlo a isString 'siret' => array('type' => self::TYPE_STRING, 'validate' => 'isGenericName'), --> 'siret' => array('type' => self::TYPE_STRING, 'validate' => 'isString'), Recuerda que cualquier actualización lo perderas. Buenos días, muchas gracias, pero lamentablemente este cambio no ha resuelto mi problema... Después de cambiar a isString y limpiar la caché del servidor, al intentar guardar cualquier modificación de un cliente o crear uno nuevo desde el back office, me sigue saliendo la misma advertencia, el cual impide hacer un insert/update del cliente. ¿Alguna otra sugerencia? Link to comment Share on other sites More sharing options...
gusman126 Posted January 29, 2020 Share Posted January 29, 2020 Pues entonces ¿es posible que lo este verificando en javascript? Busca id del campo en la carpeta del prestashop, en todas a ver Link to comment Share on other sites More sharing options...
talla7 Posted January 31, 2020 Share Posted January 31, 2020 Buenas Ferran, llevaba mucho tiempo con este problema y esta misma tarde se me ocurrió probar a actualizar la versión de prestashop a la 1.7.6.3 Parece que ya han solucionado el problema, ahora mismo me deja modificar desde el Back Office a mis clientes y poder agregar un NIF o DNI español sin problema. También tengo como tú, el archivo validate.php modificado public static function isSiret($siret) { return true; } /** * Validate APE Code. * * @param string $ape APE Code * * @return bool Return true if is valid */ public static function isApe($ape) { return true; } Espero que te ayude, un saludo. Link to comment Share on other sites More sharing options...
ferran.herrero Posted February 3, 2020 Author Share Posted February 3, 2020 (edited) On 1/31/2020 at 8:28 PM, talla7 said: Buenas Ferran, llevaba mucho tiempo con este problema y esta misma tarde se me ocurrió probar a actualizar la versión de prestashop a la 1.7.6.3 Parece que ya han solucionado el problema, ahora mismo me deja modificar desde el Back Office a mis clientes y poder agregar un NIF o DNI español sin problema. También tengo como tú, el archivo validate.php modificado public static function isSiret($siret) { return true; } /** * Validate APE Code. * * @param string $ape APE Code * * @return bool Return true if is valid */ public static function isApe($ape) { return true; } Espero que te ayude, un saludo. Buenos días @talla7! Gracias por tu respuesta. La verdad es que no he querido actualizar a la 1.7.6.3 porque hemos hecho modificaciones de algunas clases para adaptar PrestaShop a la empresa (soy consciente que lo ideal es hacer modificaciones mediante modulos para evitar perder este tipo de cambios en las actualizaciones). He visto, tras instalar la 1.7.6.3 en un servidor a parte que este problema no existe, y he tratado de copiar los ficheros en lo que a este formulario respecta para evitar este problema. La cuestión es que aún así el problema persiste. Si alguien pudiera indicarme en qué método y fichero hace PrestaShop la validación de este campo me sería de gran ayuda, ya que con anular dicho validador puedo solucionar el tema. Gracias y un saludo Edited February 3, 2020 by ferran.herrero (see edit history) Link to comment Share on other sites More sharing options...
jadobar Posted November 12, 2020 Share Posted November 12, 2020 En versión de Prestashop 1.7.6.1 lo he solucionado en archivo: src\PrestaShopBundle\Form\Admin\Sell\Customer\CustomerType.php A partir de la linea 203, pone: ->add('siret_code', TextType::class, [ 'required' => false, 'constraints' => [ new Type([ 'type' => 'numeric', 'message' => $this->trans('This field is invalid', [], 'Admin.Notifications.Error'), ]), ], ]) Modifica el 'type' numerico a Alfanumerico: ->add('siret_code', TextType::class, [ 'required' => false, 'constraints' => [ new Type([ 'type' => 'alnum', 'message' => $this->trans('This field is invalid', [], 'Admin.Notifications.Error'), ]), ], ]) Espero que te sirva esta solución. 1 Link to comment Share on other sites More sharing options...
ideaindividual Posted December 15, 2020 Share Posted December 15, 2020 (edited) On 11/12/2020 at 8:52 AM, jadobar said: En versión de Prestashop 1.7.6.1 lo he solucionado en archivo: src\PrestaShopBundle\Form\Admin\Sell\Customer\CustomerType.php A partir de la linea 203, pone: ->add('siret_code', TextType::class, [ 'required' => false, 'constraints' => [ new Type([ 'type' => 'numeric', 'message' => $this->trans('This field is invalid', [], 'Admin.Notifications.Error'), ]), ], ]) Modifica el 'type' numerico a Alfanumerico: ->add('siret_code', TextType::class, [ 'required' => false, 'constraints' => [ new Type([ 'type' => 'alnum', 'message' => $this->trans('This field is invalid', [], 'Admin.Notifications.Error'), ]), ], ]) Espero que te sirva esta solución. Hola gracias por tu aporte, realice estos mismo pasos con el APE y se elimino la alerta que se muestra debajo del form, pero si edito el cliente como administrador no me deja guardar el cliente, me muestra una alerta que dice "El campo "APE" no es válido", pero ahora lo muestra arriba. Como si hubiera otro validador extra Edited December 15, 2020 by ideaindividual (see edit history) Link to comment Share on other sites More sharing options...
AleAlejandro Posted January 5, 2021 Share Posted January 5, 2021 Este es tu Error?, Yo tengo el mismo... , Link to comment Share on other sites More sharing options...
ideaindividual Posted January 6, 2021 Share Posted January 6, 2021 19 hours ago, alex222er said: Este es tu Error?, Yo tengo el mismo... , Holaa yo pude ya solucionarlo, hay que editar varios archivos Link to comment Share on other sites More sharing options...
gusman126 Posted January 6, 2021 Share Posted January 6, 2021 hace 19 horas, alex222er dijo: Este es tu Error?, Yo tengo el mismo... Nunca, nunca pongais datos de clientes o datos reales, os pueden denunciar Link to comment Share on other sites More sharing options...
AleAlejandro Posted January 6, 2021 Share Posted January 6, 2021 hace 3 horas, gusman126 dijo: Nunca, nunca pongais datos de clientes o datos reales, os pueden denunciar Gracias por el consejo, pero esos datos yo los puse de prueba, no existen Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now