From b17c44c6653a49256640742364934e27b7b96ed1 Mon Sep 17 00:00:00 2001 From: wdammak <26695620+wdammak@users.noreply.github.com> Date: Sun, 16 Sep 2018 16:53:35 +0100 Subject: [PATCH 1/5] Update html.form.class.php Add the ability to sort products by category --- htdocs/core/class/html.form.class.php | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index df485ea0ede..dce2192d10d 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -2013,6 +2013,7 @@ class Form $selectFields = " p.rowid, p.label, p.ref, p.description, p.barcode, p.fk_product_type, p.price, p.price_ttc, p.price_base_type, p.tva_tx, p.duration, p.fk_price_expression"; (count($warehouseStatusArray)) ? $selectFieldsGrouped = ", sum(ps.reel) as stock" : $selectFieldsGrouped = ", p.stock"; + $selectFields .= ", pcat.fk_categorie as categorie_product_id"; $sql = "SELECT "; $sql.= $selectFields . $selectFieldsGrouped; @@ -2063,6 +2064,8 @@ class Form if (!empty($conf->global->PRODUIT_ATTRIBUTES_HIDECHILD)) { $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."product_attribute_combination pac ON pac.fk_product_child = p.rowid"; } + //Product category + $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."categorie_product as pcat ON pcat.fk_product=p.rowid"; $sql.= ' WHERE p.entity IN ('.getEntity('product').')'; if (count($warehouseStatusArray)) @@ -2113,9 +2116,10 @@ class Form { $sql.= ' GROUP BY'.$selectFields; } - $sql.= $db->order("p.ref"); - $sql.= $db->plimit($limit, 0); - + + (! empty($conf->global->PRODUIT_SORT_BY_CATEGORY)) ? $sql.= $db->order("pcat.fk_categorie") : $sql.= $db->order("p.ref"); + $sql.= $db->plimit($limit, 0) + // Build output string dol_syslog(get_class($this)."::select_produits_list search product", LOG_DEBUG); $result=$this->db->query($sql); From 064816242a9599d83e84c822822ca4908d232255 Mon Sep 17 00:00:00 2001 From: wdammak <26695620+wdammak@users.noreply.github.com> Date: Fri, 23 Nov 2018 21:26:10 +0100 Subject: [PATCH 2/5] Order by category --- htdocs/core/class/html.form.class.php | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index dce2192d10d..5279caeda98 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -2017,6 +2017,14 @@ class Form $sql = "SELECT "; $sql.= $selectFields . $selectFieldsGrouped; + + //Product category + $sql.= ", (SELECT ".MAIN_DB_PREFIX."categorie_product.fk_categorie + FROM ".MAIN_DB_PREFIX."categorie_product + WHERE ".MAIN_DB_PREFIX."categorie_product.fk_product=p.rowid + LIMIT 1 + ) AS categorie_product_id "; + //Price by customer if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES) && !empty($socid)) { @@ -2064,8 +2072,6 @@ class Form if (!empty($conf->global->PRODUIT_ATTRIBUTES_HIDECHILD)) { $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."product_attribute_combination pac ON pac.fk_product_child = p.rowid"; } - //Product category - $sql .= " LEFT JOIN ".MAIN_DB_PREFIX."categorie_product as pcat ON pcat.fk_product=p.rowid"; $sql.= ' WHERE p.entity IN ('.getEntity('product').')'; if (count($warehouseStatusArray)) @@ -2117,8 +2123,19 @@ class Form $sql.= ' GROUP BY'.$selectFields; } - (! empty($conf->global->PRODUIT_SORT_BY_CATEGORY)) ? $sql.= $db->order("pcat.fk_categorie") : $sql.= $db->order("p.ref"); - $sql.= $db->plimit($limit, 0) + //Sort by category + if(! empty($conf->global->PRODUCT_SORT_BY_CATEGORY)) + { + $sql .= " ORDER BY categorie_product_id "; + //ASC OR DESC order + ($conf->global->PRODUCT_SORT_BY_CATEGORY == 1) ? $sql .="ASC" : $sql .="DESC"; + } + else + { + $sql.= $db->order("p.ref"); + } + + $sql.= $db->plimit($limit, 0); // Build output string dol_syslog(get_class($this)."::select_produits_list search product", LOG_DEBUG); From 5c3daf4a6a475f6916b66c110026a1cf2c1f0713 Mon Sep 17 00:00:00 2001 From: wdammak <26695620+wdammak@users.noreply.github.com> Date: Fri, 23 Nov 2018 21:27:22 +0100 Subject: [PATCH 3/5] order by category --- htdocs/core/class/html.form.class.php | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index 5279caeda98..40a7a47a94f 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -2013,10 +2013,6 @@ class Form $selectFields = " p.rowid, p.label, p.ref, p.description, p.barcode, p.fk_product_type, p.price, p.price_ttc, p.price_base_type, p.tva_tx, p.duration, p.fk_price_expression"; (count($warehouseStatusArray)) ? $selectFieldsGrouped = ", sum(ps.reel) as stock" : $selectFieldsGrouped = ", p.stock"; - $selectFields .= ", pcat.fk_categorie as categorie_product_id"; - - $sql = "SELECT "; - $sql.= $selectFields . $selectFieldsGrouped; //Product category $sql.= ", (SELECT ".MAIN_DB_PREFIX."categorie_product.fk_categorie @@ -2025,6 +2021,9 @@ class Form LIMIT 1 ) AS categorie_product_id "; + $sql = "SELECT "; + $sql.= $selectFields . $selectFieldsGrouped; + //Price by customer if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES) && !empty($socid)) { From 5c9d5bb6ad53c825e42532afeecb6c0b0c735c07 Mon Sep 17 00:00:00 2001 From: wdammak <26695620+wdammak@users.noreply.github.com> Date: Fri, 23 Nov 2018 21:30:34 +0100 Subject: [PATCH 4/5] order by category --- htdocs/core/class/html.form.class.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index 40a7a47a94f..721c1997086 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -2014,6 +2014,9 @@ class Form $selectFields = " p.rowid, p.label, p.ref, p.description, p.barcode, p.fk_product_type, p.price, p.price_ttc, p.price_base_type, p.tva_tx, p.duration, p.fk_price_expression"; (count($warehouseStatusArray)) ? $selectFieldsGrouped = ", sum(ps.reel) as stock" : $selectFieldsGrouped = ", p.stock"; + $sql = "SELECT "; + $sql.= $selectFields . $selectFieldsGrouped; + //Product category $sql.= ", (SELECT ".MAIN_DB_PREFIX."categorie_product.fk_categorie FROM ".MAIN_DB_PREFIX."categorie_product @@ -2021,9 +2024,6 @@ class Form LIMIT 1 ) AS categorie_product_id "; - $sql = "SELECT "; - $sql.= $selectFields . $selectFieldsGrouped; - //Price by customer if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES) && !empty($socid)) { From e1baf3ab2be05ec7667a3f356d6d8bfa7329cee3 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 14 Dec 2018 10:01:12 +0100 Subject: [PATCH 5/5] Update html.form.class.php --- htdocs/core/class/html.form.class.php | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index 721c1997086..77b36354f15 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -2017,12 +2017,15 @@ class Form $sql = "SELECT "; $sql.= $selectFields . $selectFieldsGrouped; - //Product category - $sql.= ", (SELECT ".MAIN_DB_PREFIX."categorie_product.fk_categorie - FROM ".MAIN_DB_PREFIX."categorie_product - WHERE ".MAIN_DB_PREFIX."categorie_product.fk_product=p.rowid - LIMIT 1 + if (! empty($conf->global->PRODUCT_SORT_BY_CATEGORY)) + { + //Product category + $sql.= ", (SELECT ".MAIN_DB_PREFIX."categorie_product.fk_categorie + FROM ".MAIN_DB_PREFIX."categorie_product + WHERE ".MAIN_DB_PREFIX."categorie_product.fk_product=p.rowid + LIMIT 1 ) AS categorie_product_id "; + } //Price by customer if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES) && !empty($socid))