Browse Source

Merge branch '11.0' of git@github.com:Dolibarr/dolibarr.git into 12.0

Conflicts:
	htdocs/compta/stats/cabyprodserv.php
Laurent Destailleur 4 years ago
parent
commit
d3b6ada4eb
3 changed files with 24 additions and 15 deletions
  1. 20 9
      htdocs/compta/stats/cabyprodserv.php
  2. 2 4
      htdocs/core/class/html.form.class.php
  3. 2 2
      htdocs/loan/card.php

+ 20 - 9
htdocs/compta/stats/cabyprodserv.php

@@ -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').")";

+ 2 - 4
htdocs/core/class/html.form.class.php

@@ -1245,17 +1245,15 @@ class Form
 
 		// On recherche les societes
 		$sql = "SELECT s.rowid, s.nom as name, s.name_alias, s.client, s.fournisseur, s.code_client, s.code_fournisseur";
-
 		if ($conf->global->COMPANY_SHOW_ADDRESS_SELECTLIST) {
 			$sql .= ", s.address, s.zip, s.town";
 			$sql .= ", dictp.code as country_code";
 		}
-
 		$sql .= " FROM ".MAIN_DB_PREFIX."societe as s";
-		if (!$user->rights->societe->client->voir && !$user->socid) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
 		if ($conf->global->COMPANY_SHOW_ADDRESS_SELECTLIST) {
-			$sql .= " LEFT OUTER JOIN ".MAIN_DB_PREFIX."c_country as dictp ON dictp.rowid=s.fk_pays";
+			$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."c_country as dictp ON dictp.rowid = s.fk_pays";
 		}
+		if (!$user->rights->societe->client->voir && !$user->socid) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
 		$sql .= " WHERE s.entity IN (".getEntity('societe').")";
 		if (!empty($user->socid)) $sql .= " AND s.rowid = ".$user->socid;
 		if ($filter) $sql .= " AND (".$filter.")";

+ 2 - 2
htdocs/loan/card.php

@@ -83,7 +83,7 @@ if (empty($reshook))
 		if ($result > 0)
 		{
 			setEventMessages($langs->trans('LoanDeleted'), null, 'mesgs');
-			header("Location: index.php");
+			header("Location: list.php");
 			exit;
 		}
 		else
@@ -156,7 +156,7 @@ if (empty($reshook))
 		}
 		else
 		{
-			header("Location: index.php");
+			header("Location: list.php");
 			exit();
 		}
 	}