diff --git a/modules/privatesales_logistique/AdminPrivateSalesLogistique.php b/modules/privatesales_logistique/AdminPrivateSalesLogistique.php index 7860dfda..0d7132d0 100755 --- a/modules/privatesales_logistique/AdminPrivateSalesLogistique.php +++ b/modules/privatesales_logistique/AdminPrivateSalesLogistique.php @@ -634,6 +634,7 @@ class AdminPrivateSalesLogistique extends AdminTab { public function getSaleExportsByDate($date_start,$date_end,$id_lang) { + $order_states = explode(',', Configuration::get('PS_IT_OF_ORDER_STATES')); $ids = Db::getInstance()->ExecuteS(' SELECT c.id_category FROM `'._DB_PREFIX_.'privatesale` p @@ -799,16 +800,30 @@ class AdminPrivateSalesLogistique extends AdminTab { sort($names, SORT_STRING); $quantity_sold = (int) Db::getInstance()->getValue(' - SELECT SUM(d.`product_quantity`) + SELECT SUM(d.`product_quantity` - d.`product_quantity_reinjected`) FROM `'._DB_PREFIX_.'order_detail` d - LEFT JOIN `'._DB_PREFIX_.'orders` o - ON o.`id_order` = d.`id_order` - LEFT JOIN `'._DB_PREFIX_.'order_history` h - ON h.`id_order` = d.`id_order` + LEFT JOIN `'._DB_PREFIX_.'orders` o ON o.`id_order` = d.`id_order` WHERE d.`product_id` = '.(int) $p->id.' AND d.`product_attribute_id` = '.(int) $k.' - AND h.`id_order_state` = 2 + AND ( + SELECT `id_order_state` + FROM `'._DB_PREFIX_.'order_history` oh + WHERE o.`id_order` = oh.`id_order` + ORDER BY `id_order_history` DESC + LIMIT 1 + ) IN ("'.implode('","', $order_states).'") '); + // $quantity_sold = (int) Db::getInstance()->getValue(' + // SELECT SUM(d.`product_quantity`) + // FROM `'._DB_PREFIX_.'order_detail` d + // LEFT JOIN `'._DB_PREFIX_.'orders` o + // ON o.`id_order` = d.`id_order` + // LEFT JOIN `'._DB_PREFIX_.'order_history` h + // ON h.`id_order` = d.`id_order` + // WHERE d.`product_id` = '.(int) $p->id.' + // AND d.`product_attribute_id` = '.(int) $k.' + // AND h.`id_order_state` = 2 + // '); $customs = Db::getInstance()->getRow(' SELECT `nc8`, `id_country` @@ -850,17 +865,30 @@ class AdminPrivateSalesLogistique extends AdminTab { ), ';', '"'); } } else { - $quantity_sold = (int) Db::getInstance()->getValue(' - SELECT SUM(d.`product_quantity`) + SELECT SUM(d.`product_quantity` - d.`product_quantity_reinjected`) FROM `'._DB_PREFIX_.'order_detail` d - LEFT JOIN `'._DB_PREFIX_.'orders` o - ON o.`id_order` = d.`id_order` - LEFT JOIN `'._DB_PREFIX_.'order_history` h - ON h.`id_order` = d.`id_order` + LEFT JOIN `'._DB_PREFIX_.'orders` o ON o.`id_order` = d.`id_order` WHERE d.`product_id` = '.(int) $p->id.' - AND h.`id_order_state` = 2 + AND d.`product_attribute_id` = 0 + AND ( + SELECT `id_order_state` + FROM `'._DB_PREFIX_.'order_history` oh + WHERE o.`id_order` = oh.`id_order` + ORDER BY `id_order_history` DESC + LIMIT 1 + ) IN ("'.implode('","', $order_states).'") '); + // $quantity_sold = (int) Db::getInstance()->getValue(' + // SELECT SUM(d.`product_quantity`) + // FROM `'._DB_PREFIX_.'order_detail` d + // LEFT JOIN `'._DB_PREFIX_.'orders` o + // ON o.`id_order` = d.`id_order` + // LEFT JOIN `'._DB_PREFIX_.'order_history` h + // ON h.`id_order` = d.`id_order` + // WHERE d.`product_id` = '.(int) $p->id.' + // AND h.`id_order_state` = 2 + // '); $customs = Db::getInstance()->getRow(' SELECT `nc8`, `id_country` @@ -920,6 +948,7 @@ class AdminPrivateSalesLogistique extends AdminTab { if($id_lang == 0) { $id_lang = $cookie->id_lang; } + $order_states = explode(',', Configuration::get('PS_IT_OF_ORDER_STATES')); $sale = Sale::getSaleFromCategory($id_category); $category = new Category($id_category, $cookie->id_lang); if ($category) { @@ -1078,16 +1107,30 @@ class AdminPrivateSalesLogistique extends AdminTab { } $quantity_sold = (int) Db::getInstance()->getValue(' - SELECT SUM(d.`product_quantity`) + SELECT SUM(d.`product_quantity` - d.`product_quantity_reinjected`) FROM `'._DB_PREFIX_.'order_detail` d - LEFT JOIN `'._DB_PREFIX_.'orders` o - ON o.`id_order` = d.`id_order` - LEFT JOIN `'._DB_PREFIX_.'order_history` h - ON h.`id_order` = d.`id_order` + LEFT JOIN `'._DB_PREFIX_.'orders` o ON o.`id_order` = d.`id_order` WHERE d.`product_id` = '.(int) $p->id.' AND d.`product_attribute_id` = '.(int) $k.' - AND h.`id_order_state` = 2 + AND ( + SELECT `id_order_state` + FROM `'._DB_PREFIX_.'order_history` oh + WHERE o.`id_order` = oh.`id_order` + ORDER BY `id_order_history` DESC + LIMIT 1 + ) IN ("'.implode('","', $order_states).'") '); + // $quantity_sold = (int) Db::getInstance()->getValue(' + // SELECT SUM(d.`product_quantity`) + // FROM `'._DB_PREFIX_.'order_detail` d + // LEFT JOIN `'._DB_PREFIX_.'orders` o + // ON o.`id_order` = d.`id_order` + // LEFT JOIN `'._DB_PREFIX_.'order_history` h + // ON h.`id_order` = d.`id_order` + // WHERE d.`product_id` = '.(int) $p->id.' + // AND d.`product_attribute_id` = '.(int) $k.' + // AND h.`id_order_state` = 2 + // '); $names = array_unique($v['name']); sort($names, SORT_STRING); @@ -1125,15 +1168,29 @@ class AdminPrivateSalesLogistique extends AdminTab { } } else { $quantity_sold = (int) Db::getInstance()->getValue(' - SELECT SUM(d.`product_quantity`) + SELECT SUM(d.`product_quantity` - d.`product_quantity_reinjected`) FROM `'._DB_PREFIX_.'order_detail` d - LEFT JOIN `'._DB_PREFIX_.'orders` o - ON o.`id_order` = d.`id_order` - LEFT JOIN `'._DB_PREFIX_.'order_history` h - ON h.`id_order` = d.`id_order` + LEFT JOIN `'._DB_PREFIX_.'orders` o ON o.`id_order` = d.`id_order` WHERE d.`product_id` = '.(int) $p->id.' - AND h.`id_order_state` = 2 + AND d.`product_attribute_id` = 0 + AND ( + SELECT `id_order_state` + FROM `'._DB_PREFIX_.'order_history` oh + WHERE o.`id_order` = oh.`id_order` + ORDER BY `id_order_history` DESC + LIMIT 1 + ) IN ("'.implode('","', $order_states).'") '); + // $quantity_sold = (int) Db::getInstance()->getValue(' + // SELECT SUM(d.`product_quantity`) + // FROM `'._DB_PREFIX_.'order_detail` d + // LEFT JOIN `'._DB_PREFIX_.'orders` o + // ON o.`id_order` = d.`id_order` + // LEFT JOIN `'._DB_PREFIX_.'order_history` h + // ON h.`id_order` = d.`id_order` + // WHERE d.`product_id` = '.(int) $p->id.' + // AND h.`id_order_state` = 2 + // '); fputcsv($f, array( $p->supplier_reference,