Jump to content

joanagr90

Recommended Posts

Buenas, 

tengo un problema y espero que puedan ayudarme. Actualmente estoy trabajando con Prestashop 1.6 y necesito saber como puedo poner que la referencia id sea igual al pedido id. El caso es que con el siguiente código se pone igual, pero el problema es que cuando elimino el pedido la referencia se pierde. Necesito que cuando se haga un nuevo pedido la referencia siga siendo la misma que el id pedido.

Ese es el código que hace que la referencia sea igual al pedido:

$last_id = Db::getInstance()->getValue('
        SELECT MAX(id_order)
        FROM '._DB_PREFIX_.'orders');
    return str_pad((int)$last_id + 1, 9, '000000000', STR_PAD_LEFT);

Ahora necesito saber lo siguiente. Adjunto pantallazos para que vean.

Espero que puedan ayudarme. Gracias

Captura de pantalla 2018-10-26 a las 13.10.22.png

Link to comment
Share on other sites

Hace unos años (2013), comente uno de los módulos gratuitos que tenias por el foro (que te simulaban la función), en mi blog => https://victor-rodenas.com/2013/02/07/guia-usar-el-id-del-pedido-y-no-el-numero-de-referencia-en-prestashop-1-5/

Con el tiempo, han salido módulos nuevos, etc.

Por ejemplo, este módulo gratuito => https://www.prestashop.com/forums/topic/548800-free-module-custom-order-reference/ 

Edited by nadie (see edit history)
Link to comment
Share on other sites

Eso no me sirve, lo que necesito exactamente es que cuando haga un pedido nuevo, la referencia sea igual al id del pedido y que cuando elimine un pedido y haga otro nuevo la referencia sea igual. Por ejemplo, cuando hago un pedido tiene el id 49, pues necesito que la referencia sea 49. Si yo borro el pedido con el id 49, y hago uno nuevo, este será id 50 pues necesito que la referencia sea 50. Adjunto un pantallazo para que puedan verlo.

He añadido en public_html/override/classes/order/Order.php el siguiente código:

public static function generateReference()
	{
    	$last_id = Db::getInstance()->getValue('
        SELECT MAX(id_order)
        FROM '._DB_PREFIX_.'orders');
    	return str_pad((int)$last_id + 1, 9, '000000000', STR_PAD_LEFT);
	}

Muchas gracias

Captura de pantalla 2018-10-28 a las 18.08.34.png

Link to comment
Share on other sites

13 minutes ago, joanagr90 said:

Eso no me sirve, lo que necesito exactamente es que cuando haga un pedido nuevo, la referencia sea igual al id del pedido y que cuando elimine un pedido y haga otro nuevo la referencia sea igual. Por ejemplo, cuando hago un pedido tiene el id 49, pues necesito que la referencia sea 49. Si yo borro el pedido con el id 49, y hago uno nuevo, este será id 50 pues necesito que la referencia sea 50. Adjunto un pantallazo para que puedan verlo.

He añadido en public_html/override/classes/order/Order.php el siguiente código:


public static function generateReference()
	{
    	$last_id = Db::getInstance()->getValue('
        SELECT MAX(id_order)
        FROM '._DB_PREFIX_.'orders');
    	return str_pad((int)$last_id + 1, 9, '000000000', STR_PAD_LEFT);
	}

Muchas gracias

Captura de pantalla 2018-10-28 a las 18.08.34.png

Me cuelo por este tema.

Uno de los módulos que te ha comentado @nadie, hace algo parecido o similar a lo que comentas.

De todos modos, un consejo, no editas directamente la clase, haz un override de la clase.  

Suerte

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...