R H Posted March 19, 2013 Share Posted March 19, 2013 Saludos colegas, estoy construyendo mi web con Prestashop 1.4.9, actualmente estoy creando unos modulos que necesito para la pestaña Estadisticas del BO y me encuentro con unos inconvenientes: Quiero que el modulo me muestre una lista desplegable con los id_order de los pedidos que se han realizado en el periodo definido en el calendario de la pestaña Estadisticas del BO, cuando selecciono el id del pedido en la lista desplegable se muestran los productos asociados al pedido con algunos datos. He logrado hacerlo en parte, utilizando como base el modulo statsstock, pero no consigo hacer que muestre en la lista desplegable solo los pedidos que estan comprendidos dentro del periodo definido por el calendario. Me aparecen en la lista desplegable todos los pedidos de la tienda independientemente del periodo definido en el calendario. Me parece que la clave está en la definicion de las opciones : <form action="'.$ru.'" method="post" style="float:right"> <input type="hidden" name="submitOrder" value="1" /> '.$this->l('Pedidos').' : <select name="statsstock_id_order" onchange="this.form.submit();"> <option value="0">-- '.$this->l('Todos').' --</option>'; foreach (Order::getOrders($cookie->id_order) as $order) echo '<option value="'.(int)$order['id_order'].'" '.($cookie->statsstock_id_order == $order['id_order'] ? 'selected="selected"' : '').'>'.$order['id_order'].'</option>'; echo ' </select> </form> Como se ve llama a la funcion getOrders de la clase Order que esta en el archivo Order.php y considera a todos los pedidos como se puede ver en este extracto del archivo Order.php: public static function getOrders($limit = NULL) { Tools::displayAsDeprecated(); return Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS(' SELECT * FROM `'._DB_PREFIX_.'orders` ORDER BY `date_add` '.((int)$limit ? 'LIMIT 0, '.(int)$limit : '')); } Entonces, la pregunta es como consigo que en la lista desplegable me aparezcan solo los pedidos que se han hecho o pagado dentro del periodo del calendario. Hay otras funciones como la que muestro a continuacion, pero a pesar de probar no he conseguido hacerlas funcionar: public static function getOrdersIdInvoiceByDate($date_from, $date_to, $id_customer = NULL, $type = NULL) { $result = Db::getInstance(_PS_USE_SQL_SLAVE_)->ExecuteS(' SELECT `id_order` FROM `'._DB_PREFIX_.'orders` WHERE DATE_ADD(invoice_date, INTERVAL -1 DAY) <= \''.pSQL($date_to).'\' AND invoice_date >= \''.pSQL($date_from).'\'' .($type ? ' AND '.pSQL(strval($type)).'_number != 0' : '') .($id_customer ? ' AND id_customer = '.(int)($id_customer) : ''). ' ORDER BY invoice_date ASC'); $orders = array(); foreach ($result AS $order) $orders[] = (int)($order['id_order']); return $orders; } Esta si incluye las fechas del calendario, pero no se como colocarlas correctamente. No soy experto, soy autodidacta asi que les agradeceria mucho su ayuda. Link to comment Share on other sites More sharing options...
R H Posted March 20, 2013 Author Share Posted March 20, 2013 Alguna idea? Link to comment Share on other sites More sharing options...
R H Posted March 23, 2013 Author Share Posted March 23, 2013 Recibo sugerencias muchachos!!! Link to comment Share on other sites More sharing options...
R H Posted March 24, 2013 Author Share Posted March 24, 2013 Alguna idea??? Link to comment Share on other sites More sharing options...
R H Posted March 25, 2013 Author Share Posted March 25, 2013 Ninguna sugerencia? Link to comment Share on other sites More sharing options...
rperales Posted March 26, 2013 Share Posted March 26, 2013 Yo suelo controlar los intervalos de fechas dentro de los controllers ya que ahi puedes procesar los valores antes de pasar a los viewers, haces el filtrado dentro los controles para el apartado que quieras, para que solamente pasen los registros que necesites a los viewers. Link to comment Share on other sites More sharing options...
R H Posted March 29, 2013 Author Share Posted March 29, 2013 Gracias por la idea, pero ya opté por utilizar la pestaña pedidos mejorandola para poder gestionar la tienda. Quise hacerlo desde estadisticas, pero despues de mucho probar me es mas facil clonando y mejorando la pestaña pedidos. Link to comment Share on other sites More sharing options...
Recommended Posts