From 377aecf983e006ca9250035b6475d8d5f84bf651 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@users.sourceforge.net>
Date: Tue, 1 Aug 2006 23:54:39 +0000
Subject: [PATCH] =?UTF-8?q?Factorisation=20du=20code=20des=20onglets=20pro?=
 =?UTF-8?q?duits=20D=E9buggage=20fiche=20produits=20fournisseurs=20Afficha?=
 =?UTF-8?q?ge=20du=20nombre=20de=20commande=20en=20cours=20d'un=20produit?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 htdocs/commande/commande.class.php |  21 ++--
 htdocs/fourn/commande/fiche.php    |  12 +--
 htdocs/fourn/product/fiche.php     |  48 ++++-----
 htdocs/lib/product.lib.php         |  74 ++++++-------
 htdocs/product.class.php           | 160 ++++++++++++++++++-----------
 htdocs/product/fiche.php           |  58 +++++------
 htdocs/product/stock/product.php   |  60 +++++++----
 7 files changed, 243 insertions(+), 190 deletions(-)

diff --git a/htdocs/commande/commande.class.php b/htdocs/commande/commande.class.php
index 1485e48ad70..b1a50c550ee 100644
--- a/htdocs/commande/commande.class.php
+++ b/htdocs/commande/commande.class.php
@@ -1136,19 +1136,19 @@ class Commande extends CommonObject
 		// Recherche total en stock pour chaque produit
 		if (sizeof($array_of_product))
 		{
-	        $sql = "SELECT fk_product, sum(ps.reel)";
+	        $sql = "SELECT fk_product, sum(ps.reel) as total";
 	        $sql.= " FROM ".MAIN_DB_PREFIX."product_stock as ps";
 	        $sql.= " WHERE ps.fk_product in (".join(',',$array_of_product).")";
 			$sql.= ' GROUP BY fk_product ';
 			$result = $this->db->query($sql);
 			if ($result)
 			{
-				$num = $this->db->num_rows();
+				$num = $this->db->num_rows($result);
 				$i = 0;
 				while ($i < $num)
 				{
-					$row = $this->db->fetch_row( $i);
-					$this->stocks[$row[0]] = $row[1];
+					$obj = $this->db->fetch_object($result);
+					$this->stocks[$obj->fk_product] = $obj->total;
 					$i++;
 				}
 				$this->db->free();
@@ -1426,13 +1426,12 @@ class Commande extends CommonObject
         }
     }
     
-  /**
-   *    \brief      Renvoi la liste des commandes (�ventuellement filtr�e sur un user) dans un tableau
-   *    \param      brouillon       0=non brouillon, 1=brouillon
-   *    \param      user            Objet user de filtre
-   *    \return     int             -1 si erreur, tableau r�sultat si ok
-   */
-	 
+	/**
+	 *    \brief      Renvoi la liste des commandes (�ventuellement filtr�e sur un user) dans un tableau
+	 *    \param      brouillon       0=non brouillon, 1=brouillon
+	 *    \param      user            Objet user de filtre
+	 *    \return     int             -1 si erreur, tableau r�sultat si ok
+	 */
     function liste_array ($brouillon=0, $user='')
     {
         $ga = array();
diff --git a/htdocs/fourn/commande/fiche.php b/htdocs/fourn/commande/fiche.php
index 3f0b73f32f4..9ef9f3ba118 100644
--- a/htdocs/fourn/commande/fiche.php
+++ b/htdocs/fourn/commande/fiche.php
@@ -438,16 +438,8 @@ if ($_GET["id"] > 0)
 			{
 				$objp = $db->fetch_object($resql);
 				print "<tr $bc[$var]>";
-				print '<td><a href="'.DOL_URL_ROOT.'/fourn/product/fiche.php?id='.$objp->fk_product.'">'.img_object($langs->trans("ShowProduct"),'product').' '.$objp->ref.'</a></td>';
-				if ($objp->fk_product > 0)
-				{
-					print '<td>';
-					print '<a href="'.DOL_URL_ROOT.'/fourn/product/fiche.php?id='.$objp->fk_product.'">'.stripslashes(nl2br($objp->description)).'</a></td>';
-				}
-				else
-				{
-					print "<td>".stripslashes(nl2br($objp->description))."</td>\n";
-				}
+				print '<td><a href="'.DOL_URL_ROOT.'/product/fournisseurs.php?id='.$objp->fk_product.'">'.img_object($langs->trans("ShowProduct"),'product').' '.$objp->ref.'</a></td>';
+				print "<td>".nl2br($objp->description)."</td>";
 				print '<td align="center">'.$objp->tva_tx.'%</td>';
 				print '<td align="center">'.$objp->qty.'</td>';
 				if ($objp->remise_percent > 0)
diff --git a/htdocs/fourn/product/fiche.php b/htdocs/fourn/product/fiche.php
index 892138ce82e..eb05cf75281 100644
--- a/htdocs/fourn/product/fiche.php
+++ b/htdocs/fourn/product/fiche.php
@@ -49,10 +49,11 @@ $types[1] = $langs->trans("Service");
 
 if ($_GET["action"] == 'fastappro')
 {
-  $product = new Product($db);
-  $product->fetch($_GET["id"]);
-  $result = $product->fastappro($user);
-  Header("Location: fiche.php?id=".$_GET["id"]);
+	$product = new Product($db);
+	$product->fetch($_GET["id"]);
+	$result = $product->fastappro($user);
+	Header("Location: fiche.php?id=".$_GET["id"]);
+	exit;
 }
 
 
@@ -572,27 +573,28 @@ else
 	  
 	  print "\n<div class=\"tabsAction\">\n";
 	  
-	  if ($_GET["action"] == '')
-	    {
-	      
-	      print '<a class="butAction" href="fiche.php?id='.$product->id.'&amp;action=ajout_fourn">'.$langs->trans("AddSupplier").'</a>';
-	      
-	      if ($product->type == 0 && $user->rights->produit->commander && $num_fournisseur == 1)
-		{
-		  print '<a class="tabAction" href="fiche.php?action=fastappro&amp;id='.$product->id.'">';
-		  print $langs->trans("Order").'</a>';
-		}
-	      
-	      if ( $user->rights->produit->creer)
-		{
-		  print '<a class="tabAction" href="fiche.php?action=edit&amp;id='.$product->id.'">'.$langs->trans("Edit").'</a>';
-		}
-	      
-	      if ($product->type == 0 && $conf->stock->enabled)
+		if ($_GET["action"] == '')
 		{
-		  print '<a class="tabAction" href="'.DOL_URL_ROOT.'/product/stock/product.php?id='.$product->id.'&amp;action=correction">'.$langs->trans("CorrectStock").'</a>';
+			if ( $user->rights->produit->creer)
+			{
+				print '<a class="tabAction" href="fiche.php?action=edit&amp;id='.$product->id.'">'.$langs->trans("Edit").'</a>';
+			}
+		
+			if ($product->type == 0 && $conf->stock->enabled)
+			{
+				print '<a class="tabAction" href="'.DOL_URL_ROOT.'/product/stock/product.php?id='.$product->id.'&amp;action=correction">'.$langs->trans("CorrectStock").'</a>';
+			}
+
+			print '<a class="butAction" href="fiche.php?id='.$product->id.'&amp;action=ajout_fourn">'.$langs->trans("AddSupplier").'</a>';
+		
+			if ($product->type == 0 && $user->rights->commande->creer)
+			{
+				$langs->load('orders');
+				print '<a class="tabAction" href="fiche.php?action=fastappro&amp;id='.$product->id.'">';
+				print $langs->trans("CreateOrder").'</a>';
+			}
+		
 		}
-	    }
 	  
 	  print "\n</div>\n";
 	  	 	  
diff --git a/htdocs/lib/product.lib.php b/htdocs/lib/product.lib.php
index 56c56401fec..7fb269e65a8 100644
--- a/htdocs/lib/product.lib.php
+++ b/htdocs/lib/product.lib.php
@@ -1,4 +1,4 @@
-<?php
+<?php
 /* Copyright (C) 2006 Laurent Destailleur  <eldy@users.sourceforge.net>
  *
  * This program is free software; you can redistribute it and/or modify
@@ -26,22 +26,22 @@
 		\version    $Revision$
 
 		Ensemble de fonctions de base de dolibarr sous forme d'include
-*/
-
-function product_prepare_head($product)
-{
-	global $langs, $conf;
-	$h = 0;
-	$head = array();
-	
+*/
+
+function product_prepare_head($product)
+{
+	global $langs, $conf;
+	$h = 0;
+	$head = array();
+	
 	$head[$h][0] = DOL_URL_ROOT."/product/fiche.php?id=".$product->id;
 	$head[$h][1] = $langs->trans("Card");
-	$head[$h][2] = 'card';
+	$head[$h][2] = 'card';
 	$h++;
 	
 	$head[$h][0] = DOL_URL_ROOT."/product/price.php?id=".$product->id;
 	$head[$h][1] = $langs->trans("Price");
-	$head[$h][2] = 'price';
+	$head[$h][2] = 'price';
 	$h++;
 	
 	//affichage onglet cat�gorie
@@ -49,7 +49,7 @@ function product_prepare_head($product)
 	{
 		$head[$h][0] = DOL_URL_ROOT."/product/categorie.php?id=".$product->id;
 		$head[$h][1] = $langs->trans('Categories');
-		$head[$h][2] = 'category';
+		$head[$h][2] = 'category';
 		$h++;
 	}
 	
@@ -61,30 +61,19 @@ function product_prepare_head($product)
 			{
 				$head[$h][0] = DOL_URL_ROOT."/product/barcode.php?id=".$product->id;
 				$head[$h][1] = $langs->trans("BarCode");
-				$head[$h][2] = 'barcode';
+				$head[$h][2] = 'barcode';
 				$h++;
 			}
 		}
 	}
 	
-	if($product->type == 0)	// Si produit stockable
-	{
-		if ($conf->stock->enabled)
-		{
-			$head[$h][0] = DOL_URL_ROOT."/product/stock/product.php?id=".$product->id;
-			$head[$h][1] = $langs->trans("Stock");
-			$head[$h][2] = 'stock';
-			$h++;
-		}
-	}
-	
-	// Multilangs
+	// Multilangs
 	// TODO Ecran a virer et � remplacer par 
 	if($conf->global->MAIN_MULTILANGS)
 	{
 		$head[$h][0] = DOL_URL_ROOT."/product/traduction.php?id=".$product->id;
 		$head[$h][1] = $langs->trans("Translation");
-		$head[$h][2] = 'translation';
+		$head[$h][2] = 'translation';
 		$h++;
 	}
 	
@@ -92,13 +81,13 @@ function product_prepare_head($product)
 	{
 		$head[$h][0] = DOL_URL_ROOT."/product/fournisseurs.php?id=".$product->id;
 		$head[$h][1] = $langs->trans("Suppliers");
-		$head[$h][2] = 'suppliers';
+		$head[$h][2] = 'suppliers';
 		$h++;
 	}
 	
 	$head[$h][0] = DOL_URL_ROOT."/product/stats/fiche.php?id=".$product->id;
 	$head[$h][1] = $langs->trans('Statistics');
-	$head[$h][2] = 'stats';
+	$head[$h][2] = 'stats';
 	$h++;
 	
 	// sousproduits
@@ -106,27 +95,38 @@ function product_prepare_head($product)
 	{
 		$head[$h][0] = DOL_URL_ROOT."/product/sousproduits/fiche.php?id=".$product->id;
 		$head[$h][1] = $langs->trans('AssociatedProducts');
-		$head[$h][2] = 'subproduct';
+		$head[$h][2] = 'subproduct';
 		$h++;
 	}
 	
 	
 	$head[$h][0] = DOL_URL_ROOT."/product/stats/facture.php?id=".$product->id;
 	$head[$h][1] = $langs->trans('Referers');
-	$head[$h][2] = 'referers';
+	$head[$h][2] = 'referers';
 	$h++;
 	
 	$head[$h][0] = DOL_URL_ROOT."/product/photos.php?id=".$product->id;
 	$head[$h][1] = $langs->trans("Photos");
-	$head[$h][2] = 'photos';
+	$head[$h][2] = 'photos';
 	$h++;
 	
 	$head[$h][0] = DOL_URL_ROOT.'/product/document.php?id='.$product->id;
 	$head[$h][1] = $langs->trans('Documents');
-	$head[$h][2] = 'document';
-	$h++;
-
-	return $head;
-}
-
+	$head[$h][2] = 'document';
+	$h++;
+
+	if($product->type == 0)	// Si produit stockable
+	{
+		if ($conf->stock->enabled)
+		{
+			$head[$h][0] = DOL_URL_ROOT."/product/stock/product.php?id=".$product->id;
+			$head[$h][1] = $langs->trans("Stock");
+			$head[$h][2] = 'stock';
+			$h++;
+		}
+	}
+	
+	return $head;
+}
+
 ?>
\ No newline at end of file
diff --git a/htdocs/product.class.php b/htdocs/product.class.php
index 593fc9a7f78..e6876641928 100644
--- a/htdocs/product.class.php
+++ b/htdocs/product.class.php
@@ -964,14 +964,14 @@ class Product
 
 
     /**
-     *    \brief    Charge tableau des stats commande pour le produit/service
-     *    \param    socid       Id societe
-     *    \return   array       Tableau des stats
+     *    \brief    Charge tableau des stats commande client pour le produit/service
+     *    \param    socid       	Id societe pour filtrer sur une soci�t�
+     *    \param    filtrestatut    Id statut pour filtrer sur un statut
+     *    \return   array       	Tableau des stats
      */
-    function load_stats_commande($socid=0)
+    function load_stats_commande($socid=0,$filtrestatut='')
     {
-    	  global $conf;
-    	  global $user;
+		global $conf,$user;
     	
         $sql = "SELECT COUNT(DISTINCT c.fk_soc) as nb_customers, COUNT(DISTINCT c.rowid) as nb,";
         $sql.= " COUNT(cd.rowid) as nb_rows, SUM(cd.qty) as qty";
@@ -980,12 +980,15 @@ class Product
         if (!$user->rights->commercial->client->voir && !$socid) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
         $sql.= " WHERE c.rowid = cd.fk_commande AND cd.fk_product = ".$this->id;
         if (!$user->rights->commercial->client->voir && !$socid) $sql .= " AND c.fk_soc = sc.fk_soc AND sc.fk_user = " .$user->id;
-        //$sql.= " AND c.fk_statut != 0";
         if ($socid > 0)
         {
-            $sql .= " AND c.fk_soc = $socid";
+            $sql.= " AND c.fk_soc = ".$socid;
         }
-    
+    	if ($filtrestatut)
+    	{
+    		$sql.= " AND c.fk_statut = ".$filtrestatut;
+    	}
+    	
         $result = $this->db->query($sql) ;
         if ( $result )
         {
@@ -1003,6 +1006,49 @@ class Product
         }
     }
     
+    /**
+     *    \brief    Charge tableau des stats commande fournisseur pour le produit/service
+     *    \param    socid       	Id societe pour filtrer sur une soci�t�
+     *    \param    filtrestatut    Id statut pour filtrer sur un statut
+     *    \return   array       	Tableau des stats
+     */
+    function load_stats_commande_fournisseur($socid=0,$filtrestatut='')
+    {
+		global $conf,$user;
+    	
+        $sql = "SELECT COUNT(DISTINCT c.fk_soc) as nb_suppliers, COUNT(DISTINCT c.rowid) as nb,";
+        $sql.= " COUNT(cd.rowid) as nb_rows, SUM(cd.qty) as qty";
+        $sql.= " FROM ".MAIN_DB_PREFIX."commande_fournisseurdet as cd,";
+        $sql.= " ".MAIN_DB_PREFIX."commande_fournisseur as c";
+        if (!$user->rights->commercial->client->voir && !$socid) $sql .= ", ".MAIN_DB_PREFIX."societe_commerciaux as sc";
+        $sql.= " WHERE c.rowid = cd.fk_commande AND cd.fk_product = ".$this->id;
+        if (!$user->rights->commercial->client->voir && !$socid) $sql .= " AND c.fk_soc = sc.fk_soc AND sc.fk_user = " .$user->id;
+        if ($socid > 0)
+        {
+            $sql.= " AND c.fk_soc = ".$socid;
+        }
+    	if ($filtrestatut)
+    	{
+    		$sql.= " AND c.fk_statut = ".$filtrestatut;
+    	}
+    	
+        $result = $this->db->query($sql) ;
+        if ( $result )
+        {
+            $obj=$this->db->fetch_object($result);
+            $this->stats_commande_fournisseur['suppliers']=$obj->nb_suppliers;
+            $this->stats_commande_fournisseur['nb']=$obj->nb;
+            $this->stats_commande_fournisseur['rows']=$obj->nb_rows;
+            $this->stats_commande_fournisseur['qty']=$obj->qty?$obj->qty:0;
+            return 1;
+        }
+        else
+        {
+            $this->error=$this->db->error();
+            return -1;
+        }
+    }
+    
     /**
      *    \brief    Charge tableau des stats contrat pour le produit/service
      *    \param    socid       Id societe
@@ -1360,61 +1406,55 @@ class Product
         }
     }
 
-
-  /**
-   *    \brief  Renvoie le nombre de fournisseurs
-   *    \return int         nombre de fournisseur
-   */
-	 
-  function count_fournisseur()
-    {
-      $sql = "SELECT fk_soc";
-      $sql .= " FROM ".MAIN_DB_PREFIX."product_fournisseur as p";
-      $sql .= " WHERE p.fk_product = ".$this->id;
-
-      $result = $this->db->query($sql) ;
-
-      if ( $result )
+	
+	/**
+	*    \brief  	Renvoie la liste des fournisseurs du produit/service
+	*    \return 	array		Tableau des id de fournisseur
+	*/
+	function list_suppliers()
 	{
-	  $num = $this->db->num_rows();
-
-	  if ($num == 1)
-	    {
-	      $row = $this->db->fetch_row();
-	      $this->fourn_appro_open = $row[0];
-	      return 1;
-	    }
-	  else
-	    {
-	      return 0;
-	    }
+		$list = array();
+		
+		$sql = "SELECT fk_soc";
+		$sql.= " FROM ".MAIN_DB_PREFIX."product_fournisseur as p";
+		$sql.= " WHERE p.fk_product = ".$this->id;
+	
+		$result = $this->db->query($sql);
+		if ($result)
+		{
+			$num = $this->db->num_rows($result);
+			$i=0;
+			while ($i < $num)
+			{
+				$obj = $this->db->fetch_object($result);
+				$list[$i] = $obj->fk_soc;
+				$i++;
+			}
+		}
+
+		return $list;
 	}
-      else
+    
+    /**
+	 *		\brief		Saisie une commande fournisseur
+	 *		\param		user		Objet user de celui qui demande
+	 *		\param		int			<0 si ko, >0 si ok
+	 */
+	function fastappro($user)
 	{
-	  return 0;
+		include_once DOL_DOCUMENT_ROOT."/fourn/fournisseur.class.php";
+		
+		$list = $this->list_suppliers();
+		if (sizeof($list) > 0)
+		{
+			dolibarr_syslog("Product::fastappro");
+			$fournisseur = new Fournisseur($this->db);
+			$fournisseur->fetch($this->fourn_appro_open);
+		
+			$fournisseur->ProductCommande($user, $this->id);
+		}
+		return 1;		
 	}
-    }
-
-
-  /**
-   *
-   *
-   */
-  function fastappro($user)
-  {
-    include_once DOL_DOCUMENT_ROOT."/fourn/fournisseur.class.php";
-
-    $nbf = $this->count_fournisseur();
-    if ($nbf == 1)
-      {
-	dolibarr_syslog("Product::fastappro");
-	$fournisseur = new Fournisseur($this->db);
-	$fournisseur->fetch($this->fourn_appro_open);
-
-	$fournisseur->ProductCommande($user, $this->id);
-      }
-
-  }
 
 
     /**
diff --git a/htdocs/product/fiche.php b/htdocs/product/fiche.php
index 16552176291..488826e8d5d 100644
--- a/htdocs/product/fiche.php
+++ b/htdocs/product/fiche.php
@@ -353,24 +353,6 @@ if ($_POST["action"] == 'addinfacture' && $user->rights->facture->creer)
     exit;
 }
 
-if ($_POST["action"] == 'add_fourn' && $_POST["cancel"] <> $langs->trans("Cancel"))
-{
-
-    $product = new Product($db);
-    if( $product->fetch($_GET["id"]) )
-    {
-        if ($product->add_fournisseur($user, $_POST["id_fourn"], $_POST["ref_fourn"]) > 0)
-        {
-            $action = '';
-            $mesg = $langs->trans("SupplierAdded");
-        }
-        else
-        {
-            $action = '';
-        }
-    }
-}
-
 if ($_POST["cancel"] == $langs->trans("Cancel"))
 {
     $action = '';
@@ -500,7 +482,7 @@ if ($_GET["action"] == 'create' && $user->rights->produit->creer)
 }
 
 
-/*
+/**
  * Fiche produit
  */
 if ($_GET["id"] || $_GET["ref"])
@@ -509,8 +491,15 @@ if ($_GET["id"] || $_GET["ref"])
     if ($_GET["action"] <> 're-edit')
     {
         $product = new Product($db);
-        if ($_GET["ref"]) $result = $product->fetch('',$_GET["ref"]);
-        if ($_GET["id"]) $result = $product->fetch($_GET["id"]);
+        if ($_GET["ref"])
+        {
+        	$result = $product->fetch('',$_GET["ref"]);
+        	$_GET["id"] = $product->id;
+        }
+        elseif ($_GET["id"]) 
+        {
+        	$result = $product->fetch($_GET["id"]);
+        }
         llxHeader("","",$langs->trans("CardProduct".$product->type));
     }
 
@@ -600,7 +589,7 @@ if ($_GET["id"] || $_GET["ref"])
             // Stock
             if ($product->type == 0 && $conf->stock->enabled)
             {
-                print '<tr><td><a href="stock/product.php?id='.$product->id.'">'.$langs->trans("Stock").'</a></td>';
+                print '<tr><td>'.$langs->trans("Stock").'</td>';
                 if ($product->no_stock)
                 {
                     print "<td>Pas de d�finition de stock pour ce produit";
@@ -762,12 +751,6 @@ print "\n<div class=\"tabsAction\">\n";
 
 if ($_GET["action"] == '')
 {
-    if ($product->type == 0 && $user->rights->produit->commander && $num_fournisseur == 1)
-    {
-        print '<a class="tabAction" href="fiche.php?action=fastappro&amp;id='.$product->id.'">';
-        print $langs->trans("Order").'</a>';
-    }
-
     if ( $user->rights->produit->creer)
     {
         print '<a class="tabAction" href="fiche.php?action=edit&amp;id='.$product->id.'">'.$langs->trans("Edit").'</a>';
@@ -775,9 +758,24 @@ if ($_GET["action"] == '')
         print '<a class="tabAction" href="fiche.php?action=clone&amp;id='.$product->id.'">'.$langs->trans("CreateCopy").'</a>';
     }
 
-    $prod_use = $product->verif_prod_use($product->id);
+/*
+    if ($product->type == 0 && $user->rights->commande->creer)
+    {
+    	$langs->load('orders');
+        print '<a class="tabAction" href="fiche.php?action=fastappro&amp;id='.$product->id.'">';
+        print $langs->trans("CreateCustomerOrder").'</a>';
+    }
+
+    if ($product->type == 0 && $user->rights->fournisseur->commande->creer)
+    {
+    	$langs->load('orders');
+        print '<a class="tabAction" href="fiche.php?action=fastappro&amp;id='.$product->id.'">';
+        print $langs->trans("CreateSupplierOrder").'</a>';
+    }
+*/
 
-    if ($user->rights->produit->supprimer && $prod_use == 0)
+    $product_is_used = $product->verif_prod_use($product->id);
+    if ($user->rights->produit->supprimer && ! $product_is_used)
     {
 	      print '<a class="butActionDelete" href="fiche.php?action=delete&amp;id='.$product->id.'">'.$langs->trans("Delete").'</a>';
     }
diff --git a/htdocs/product/stock/product.php b/htdocs/product/stock/product.php
index 078b7369520..454cd4a1813 100644
--- a/htdocs/product/stock/product.php
+++ b/htdocs/product/stock/product.php
@@ -40,9 +40,9 @@ $langs->load("bills");
 $user->getrights('produit');
 $mesg = '';
 
-if (!$user->rights->produit->lire)
+if (! $user->rights->produit->lire || ! $product->type == 0 || ! $conf->stock->enabled)
 {
-  accessforbidden();
+	accessforbidden();
 }
 
 
@@ -142,32 +142,54 @@ if ($_GET["id"] || $_GET["ref"])
 		print $product->getLibStatut(2);
         print '</td></tr>';
 
-        // TVA
-        $langs->load("bills");
-        print '<tr><td>'.$langs->trans("VATRate").'</td><td>'.$product->tva_tx.'%</td></tr>';
-
         // Stock
-        if ($product->type == 0 && $conf->stock->enabled)
+        print '<tr><td>'.$langs->trans("TotalStock").'</td>';
+        if ($product->no_stock)
+        {
+            print "<td>Pas de d�finition de stock pour ce produit";
+        }
+        else
         {
-            print '<tr><td>'.$langs->trans("TotalStock").'</td>';
-            if ($product->no_stock)
+            if ($product->stock_reel <= $product->seuil_stock_alerte)
             {
-                print "<td>Pas de d�finition de stock pour ce produit";
+                print '<td class="alerte">'.$product->stock_reel.' Seuil : '.$product->seuil_stock_alerte;
             }
             else
             {
-                if ($product->stock_reel <= $product->seuil_stock_alerte)
-                {
-                    print '<td class="alerte">'.$product->stock_reel.' Seuil : '.$product->seuil_stock_alerte;
-                }
-                else
-                {
-                    print "<td>".$product->stock_reel;
-                }
+                print "<td>".$product->stock_reel;
             }
-            print '</td></tr>';
         }
+        print '</td></tr>';
         
+
+        // Nbre de commande clients en cours
+		if ($conf->commande->enabled)
+		{
+			$result=$product->load_stats_commande(0,'1');
+	        if ($result < 0) dolibarr_print_error($db,$product->error);
+	        print '<tr><td>'.$langs->trans("CustomersOrders").'</td>';
+			print '<td>';
+			print $product->stats_commande['qty'];
+			$result=$product->load_stats_commande(0,'0');
+	        if ($result < 0) dolibarr_print_error($db,$product->error);
+			print ' ('.$langs->trans("Draft").': '.$product->stats_commande['qty'].')';
+	        print '</td></tr>';
+		}
+		        
+        // Nbre de commande fournisseurs en cours
+		if ($conf->fournisseur->enabled)
+		{
+			$result=$product->load_stats_commande_fournisseur(0,'1');
+	        if ($result < 0) dolibarr_print_error($db,$product->error);
+	        print '<tr><td>'.$langs->trans("SuppliersOrders").'</td>';
+			print '<td>';
+			print $product->stats_commande_fournisseur['qty'];
+			$result=$product->load_stats_commande_fournisseur(0,'0');
+	        if ($result < 0) dolibarr_print_error($db,$product->error);
+			print ' ('.$langs->trans("Draft").': '.$product->stats_commande_fournisseur['qty'].')';
+	        print '</td></tr>';
+		}
+                
         print "</table>";
 
     }
-- 
GitLab