|
@@ -56,6 +56,8 @@ $subcat = false;
|
|
|
if (GETPOST('subcat', 'alpha') === 'yes') {
|
|
|
$subcat = true;
|
|
|
}
|
|
|
+$categorie = new Categorie($db);
|
|
|
+
|
|
|
// product/service
|
|
|
$selected_type = GETPOST('search_type', 'int');
|
|
|
if ($selected_type == '') $selected_type = -1;
|
|
@@ -233,10 +235,6 @@ if ($modecompta == 'CREANCES-DETTES')
|
|
|
{
|
|
|
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."categorie_product as cp ON p.rowid = cp.fk_product";
|
|
|
}
|
|
|
- elseif ($selected_cat) // Into a specific category
|
|
|
- {
|
|
|
- $sql .= ", ".MAIN_DB_PREFIX."categorie as c, ".MAIN_DB_PREFIX."categorie_product as cp";
|
|
|
- }
|
|
|
$sql .= " WHERE l.fk_facture = f.rowid";
|
|
|
$sql .= " AND f.fk_statut in (1,2)";
|
|
|
$sql .= " AND l.product_type in (0,1)";
|
|
@@ -256,11 +254,24 @@ if ($modecompta == 'CREANCES-DETTES')
|
|
|
{
|
|
|
$sql .= " AND cp.fk_product is null";
|
|
|
}
|
|
|
- elseif ($selected_cat) { // Into a specific category
|
|
|
- $sql .= " AND (c.rowid = ".$selected_cat;
|
|
|
- if ($subcat) $sql .= " OR c.fk_parent = ".$selected_cat;
|
|
|
- $sql .= ")";
|
|
|
- $sql .= " AND cp.fk_categorie = c.rowid AND cp.fk_product = p.rowid";
|
|
|
+ elseif ($selected_cat && $selected_cat != -2) { // Into a specific category
|
|
|
+ if ($subcat)
|
|
|
+ {
|
|
|
+ $TListOfCats = $categorie->get_full_arbo('product', $selected_cat, 1);
|
|
|
+
|
|
|
+ $listofcatsql = "";
|
|
|
+ foreach ($TListOfCats as $key => $cat)
|
|
|
+ {
|
|
|
+ if ($key !== 0) $listofcatsql .= ",";
|
|
|
+ $listofcatsql .= $cat['rowid'];
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ $sql.= " AND (p.rowid IN ";
|
|
|
+ $sql .= " (SELECT fk_product FROM ".MAIN_DB_PREFIX."categorie_product cp WHERE ";
|
|
|
+ if ($subcat) $sql .= "cp.fk_categorie IN (". $listofcatsql.")";
|
|
|
+ else $sql.="cp.fk_categorie = ".$selected_cat;
|
|
|
+ $sql.= "))";
|
|
|
}
|
|
|
if ($selected_soc > 0) $sql .= " AND soc.rowid=".$selected_soc;
|
|
|
$sql .= " AND f.entity IN (".getEntity('invoice').")";
|