rive68 Posted September 21, 2013 Share Posted September 21, 2013 (edited) Buenas Noches, estoy buscando la manera de que se refleje en admin orders (listado de pedidos en backoffice) el mensaje que el cliente envía cuando realiza su pedido, adjunto unos screen de lo que estoy tratando de hacer, a ver si alguien sabe hacerlo o lo a hecho que me ayude. gracias de antemano Edited September 21, 2013 by rive68 (see edit history) Link to comment Share on other sites More sharing options...
Enrique Gómez Posted September 21, 2013 Share Posted September 21, 2013 (edited) Buenas, en AdminOrdersControllers (en el constructor) tienen las query sql que se utiliza para generar el listado, modificala para que saque además el mensaje (hace una join con la tabla ps_message) $this->_select = ' a.id_currency, a.id_order AS id_pdf, CONCAT(LEFT(c.`firstname`, 1), \'. \', c.`lastname`) AS `customer`, osl.`name` AS `osname`, os.`color`, mssg.`message` AS `message`, IF((SELECT COUNT(so.id_order) FROM `'._DB_PREFIX_.'orders` so WHERE so.id_customer = a.id_customer) > 1, 0, 1) as new'; $this->_join = ' LEFT JOIN `'._DB_PREFIX_.'customer` c ON (c.`id_customer` = a.`id_customer`) LEFT JOIN `'._DB_PREFIX_.'order_state` os ON (os.`id_order_state` = a.`current_state`) LEFT JOIN `'._DB_PREFIX_.'order_state_lang` osl ON (os.`id_order_state` = osl.`id_order_state` AND osl.`id_lang` = '.(int)$this->context->language->id.') LEFT JOIN `'._DB_PREFIX_.'message` mssg ON (mssg .`id_order` = a.`id_order` AND mssg .`id_customer` =a.`id_customer`)'; $this->_orderBy = 'id_order'; $this->_orderWay = 'DESC'; Ahora hay que decirle que muestre el nuevo campo message, entonces justo después de la select se construye un array con los campos, estos están en $this->fields_list. añade donde quieras el nuevo (que se tiene que llamar como el de la query). P.ej después de customer: 'customer' => array( 'title' => $this->l('Customer'), 'havingFilter' => true, ), 'message' => array( 'title' => $this->l('Message'), ), 'total_paid_tax_incl' => array( 'title' => $this->l('Total'), 'width' => 70, 'align' => 'right', 'prefix' => '<b>', 'suffix' => '</b>', 'type' => 'price', 'currency' => true ), Y ya esta. ------ Fusión Mensajes ------- Recuerda que los cambios mejor hacerlos en la carpeta override extendiendo la clase y sobrescribiendo. Edited September 22, 2013 by Enrique Gómez (see edit history) Link to comment Share on other sites More sharing options...
rive68 Posted September 21, 2013 Author Share Posted September 21, 2013 buenas noches! era lo que buscaba!!! muchas gracias por la ayuda Enrique Gómez! una cosa, cuando el cliente me envia el mensaje con una letra (Ñ) sale asi: (Ñ) por ejemplo: Feliz Cumpleaños sale visualizado: FELIZ CUMPLEAÑOS hay forma de arreglar eso? o Link to comment Share on other sites More sharing options...
Enrique Gómez Posted September 22, 2013 Share Posted September 22, 2013 Es raro porque a mi me sale correctamente. En la base de datos se me guarda correctamente sin ese formato (código Html), y es mas si lo modifico en la misma base de datos y le pongo el código html luego también se me ve bien... Probado en PS 1.5.4.1 Te sale en mas sitios en ese formato o sólo en el nuevo listado? Link to comment Share on other sites More sharing options...
rive68 Posted September 22, 2013 Author Share Posted September 22, 2013 Si solamente me pasa alli! yo utilizo prestashop 1.5.3.1 Link to comment Share on other sites More sharing options...
rive68 Posted September 22, 2013 Author Share Posted September 22, 2013 será porque no hice los cambios en la carpeta override? Link to comment Share on other sites More sharing options...
ctrlsoluciones.com Posted November 18, 2013 Share Posted November 18, 2013 alguien ha dado con la solucion de los acentos? Link to comment Share on other sites More sharing options...
Enrique Gómez Posted November 20, 2013 Share Posted November 20, 2013 (edited) A bote pronto lo que se me ocurre es que la tabla ps_messages -> campo messge no esté en utf. Por cierto a la consulta le viene bien añadir un filtro por mensajes no privados (AND mssg.`private` = 0) porque algunos módulos de pago meten ahí mensajes (privados). De forma que queda $this->_select = ' a.id_currency, a.id_order AS id_pdf, CONCAT(LEFT(c.`firstname`, 1), \'. \', c.`lastname`) AS `customer`, osl.`name` AS `osname`, os.`color`, mssg.`message` AS `message`, IF((SELECT COUNT(so.id_order) FROM `'._DB_PREFIX_.'orders` so WHERE so.id_customer = a.id_customer) > 1, 0, 1) as new'; $this->_join = ' LEFT JOIN `'._DB_PREFIX_.'customer` c ON (c.`id_customer` = a.`id_customer`) LEFT JOIN `'._DB_PREFIX_.'order_state` os ON (os.`id_order_state` = a.`current_state`) LEFT JOIN `'._DB_PREFIX_.'order_state_lang` osl ON (os.`id_order_state` = osl.`id_order_state` AND osl.`id_lang` = '.(int)$this->context->language->id.') LEFT JOIN `'._DB_PREFIX_.'message` mssg ON (mssg .`id_order` = a.`id_order` AND mssg .`id_customer` =a.`id_customer` AND mssg.`private` = 0 )'; $this->_orderBy = 'id_order'; $this->_orderWay = 'DESC'; Edited November 20, 2013 by Enrique Gómez (see edit history) Link to comment Share on other sites More sharing options...
Recommended Posts