Merge pull request #14965 from atm-lena/10.0_FIX_cabyprodserv_categoryfilter
FIX CA report by product/service : subcategory filter
This commit is contained in:
commit
d40dea8084
@ -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;
|
||||
@ -237,10 +239,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)";
|
||||
@ -261,10 +259,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";
|
||||
|
||||
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').")";
|
||||
|
||||
Loading…
Reference in New Issue
Block a user