diff --git a/htdocs/fourn/class/fournisseur.commande.class.php b/htdocs/fourn/class/fournisseur.commande.class.php
index cde1cf23bf89e34eb7da4deaef0ae231fa0d1bc6..5f1b9165200a7ad0065ecbd2b054cf0a0ff2d152 100644
--- a/htdocs/fourn/class/fournisseur.commande.class.php
+++ b/htdocs/fourn/class/fournisseur.commande.class.php
@@ -31,8 +31,7 @@ require_once(DOL_DOCUMENT_ROOT."/commande/class/commande.class.php");
 
 
 /**
- *	\class      CommandeFournisseur
- *	\brief      Class to manage predefined suppliers products
+ *	Class to manage predefined suppliers products
  */
 class CommandeFournisseur extends Commande
 {
@@ -47,9 +46,9 @@ class CommandeFournisseur extends Commande
     var $ref_supplier;
     var $brouillon;
     var $statut;			// 0=Draft -> 1=Validated -> 2=Approved -> 3=Process runing -> 4=Received partially -> 5=Received totally -> (reopen) 4=Received partially
-    //                                                          -> 7=Canceled/Never received -> (reopen) 3=Process runing
-    //										-> 6=Canceled -> (reopen) 2=Approved
-    //  		              -> 9=Refused  -> (reopen) 1=Validated
+    //                                                              -> 7=Canceled/Never received -> (reopen) 3=Process runing
+    //									              -> 6=Canceled -> (reopen) 2=Approved
+    //  		                                      -> 9=Refused  -> (reopen) 1=Validated
     var $socid;
     var $fourn_id;
     var $date;
@@ -298,17 +297,18 @@ class CommandeFournisseur extends Commande
     /**
      *	Validate an order
      *
-     *	@param	User	$user		Validator User
-     *	@return	int					<0 if KO, >0 if OK
+     *	@param	User	$user			Validator User
+     *	@param	int		$idwarehouse	Id of warehouse to use for stock decrease
+     *	@return	int						<0 if KO, >0 if OK
      */
-    function valid($user)
+    function valid($user,$idwarehouse=0)
     {
         global $langs,$conf;
         require_once(DOL_DOCUMENT_ROOT."/core/lib/files.lib.php");
 
         $error=0;
 
-        dol_syslog("CommandeFournisseur::Valid");
+        dol_syslog(get_class($this)."::valid");
         $result = 0;
         if ($user->rights->fournisseur->commande->valider)
         {
@@ -339,7 +339,7 @@ class CommandeFournisseur extends Commande
             $resql=$this->db->query($sql);
             if (! $resql)
             {
-                dol_syslog("CommandeFournisseur::valid() Echec update - 10 - sql=".$sql, LOG_ERR);
+                dol_syslog(get_class($this)."::valid Echec update - 10 - sql=".$sql, LOG_ERR);
                 dol_print_error($this->db);
                 $error++;
             }
@@ -357,7 +357,7 @@ class CommandeFournisseur extends Commande
                     $dirdest = $conf->fournisseur->dir_output.'/commande/'.$newref;
                     if (file_exists($dirsource))
                     {
-                        dol_syslog("CommandeFournisseur::valid() rename dir ".$dirsource." into ".$dirdest);
+                        dol_syslog(get_class($this)."::valid rename dir ".$dirsource." into ".$dirdest);
 
                         if (@rename($dirsource, $dirdest))
                         {
@@ -393,7 +393,7 @@ class CommandeFournisseur extends Commande
             }
             else
             {
-                dol_syslog("CommandeFournisseur::valid ".$this->error, LOG_ERR);
+                dol_syslog(get_class($this)."::valid ".$this->error, LOG_ERR);
                 $this->db->rollback();
                 $this->error=$this->db->lasterror();
                 return -1;
@@ -402,7 +402,7 @@ class CommandeFournisseur extends Commande
         else
         {
             $this->error='Not Authorized';
-            dol_syslog("CommandeFournisseur::valid ".$this->error, LOG_ERR);
+            dol_syslog(get_class($this)."::valid ".$this->error, LOG_ERR);
             return -1;
         }
     }
@@ -424,7 +424,7 @@ class CommandeFournisseur extends Commande
         // Protection
         if ($this->statut == 0)
         {
-            dol_syslog("CommandeFournisseur::set_draft already draft status", LOG_WARNING);
+            dol_syslog(get_class($this)."::set_draft already draft status", LOG_WARNING);
             return 0;
         }
 
@@ -440,7 +440,7 @@ class CommandeFournisseur extends Commande
         $sql.= " SET fk_statut = 0";
         $sql.= " WHERE rowid = ".$this->id;
 
-        dol_syslog("CommandeFournisseur::set_draft sql=".$sql, LOG_DEBUG);
+        dol_syslog(get_class($this)."::set_draft sql=".$sql, LOG_DEBUG);
         if ($this->db->query($sql))
         {
             // If stock is incremented on validate order, we must redecrement it
@@ -631,7 +631,7 @@ class CommandeFournisseur extends Commande
                 }
                 else
                 {
-                    dol_print_error($db,"CommandeFournisseur::getNextNumRef ".$obj->error);
+                    dol_print_error($db, get_class($this)."::getNextNumRef ".$obj->error);
                     return -1;
                 }
             }
@@ -661,7 +661,7 @@ class CommandeFournisseur extends Commande
 
         $error=0;
 
-        dol_syslog(get_class($this)."::Approve");
+        dol_syslog(get_class($this)."::approve");
 
         if ($user->rights->fournisseur->commande->approuver)
         {
@@ -720,13 +720,13 @@ class CommandeFournisseur extends Commande
             {
                 $this->db->rollback();
                 $this->error=$this->db->lasterror();
-                dol_syslog("CommandeFournisseur::Approve Error ",$this->error, LOG_ERR);
+                dol_syslog(get_class($this)."::approve Error ",$this->error, LOG_ERR);
                 return -1;
             }
         }
         else
         {
-            dol_syslog("CommandeFournisseur::Approve Not Authorized", LOG_ERR);
+            dol_syslog(get_class($this)."::approve Not Authorized", LOG_ERR);
         }
         return -1;
     }
@@ -743,7 +743,7 @@ class CommandeFournisseur extends Commande
 
 		$error=0;
 
-        dol_syslog("CommandeFournisseur::Refuse");
+        dol_syslog(get_class($this)."::refuse");
         $result = 0;
         if ($user->rights->fournisseur->commande->approuver)
         {
@@ -767,13 +767,13 @@ class CommandeFournisseur extends Commande
             }
             else
             {
-                dol_syslog("CommandeFournisseur::Refuse Error -1");
+                dol_syslog(get_class($this)."::refuse Error -1");
                 $result = -1;
             }
         }
         else
         {
-            dol_syslog("CommandeFournisseur::Refuse Not Authorized");
+            dol_syslog(get_class($this)."::refuse Not Authorized");
         }
         return $result ;
     }
@@ -801,7 +801,7 @@ class CommandeFournisseur extends Commande
 
             $sql = "UPDATE ".MAIN_DB_PREFIX."commande_fournisseur SET fk_statut = ".$statut;
             $sql .= " WHERE rowid = ".$this->id;
-            dol_syslog("CommandeFournisseur::Cancel sql=".$sql);
+            dol_syslog(get_class($this)."::cancel sql=".$sql);
             if ($this->db->query($sql))
             {
                 $result = 0;
@@ -830,13 +830,13 @@ class CommandeFournisseur extends Commande
             {
                 $this->db->rollback();
                 $this->error=$this->db->lasterror();
-                dol_syslog("CommandeFournisseur::Cancel ".$this->error);
+                dol_syslog(get_class($this)."::cancel ".$this->error);
                 return -1;
             }
         }
         else
         {
-            dol_syslog("CommandeFournisseur::Cancel Not Authorized");
+            dol_syslog(get_class($this)."::cancel Not Authorized");
             return -1;
         }
     }
@@ -853,14 +853,14 @@ class CommandeFournisseur extends Commande
      */
     function commande($user, $date, $methode, $comment='')
     {
-        dol_syslog("CommandeFournisseur::Commande");
+        dol_syslog(get_class($this)."::commande");
         $result = 0;
         if ($user->rights->fournisseur->commande->commander)
         {
             $sql = "UPDATE ".MAIN_DB_PREFIX."commande_fournisseur SET fk_statut = 3, fk_methode_commande=".$methode.",date_commande=".$this->db->idate("$date");
             $sql .= " WHERE rowid = ".$this->id;
 
-            dol_syslog("CommandeFournisseur::Commande sql=".$sql, LOG_DEBUG);
+            dol_syslog(get_class($this)."::commande sql=".$sql, LOG_DEBUG);
             if ($this->db->query($sql))
             {
                 $result = 0;
@@ -868,13 +868,13 @@ class CommandeFournisseur extends Commande
             }
             else
             {
-                dol_syslog("CommandeFournisseur::Commande Error -1", LOG_ERR);
+                dol_syslog(get_class($this)."::cCommande Error -1", LOG_ERR);
                 $result = -1;
             }
         }
         else
         {
-            dol_syslog("CommandeFournisseur::Commande User not Authorized", LOG_ERR);
+            dol_syslog(get_class($this)."::commande User not Authorized", LOG_ERR);
         }
         return $result ;
     }
@@ -986,7 +986,7 @@ class CommandeFournisseur extends Commande
     {
         global $langs,$mysoc;
 
-        dol_syslog("FournisseurCommande::addline $desc, $pu_ht, $qty, $txtva, $txlocaltax1, $txlocaltax2. $fk_product, $fk_prod_fourn_price, $fourn_ref, $remise_percent, $price_base_type, $pu_ttc, $type");
+        dol_syslog(get_class($this)."::addline $desc, $pu_ht, $qty, $txtva, $txlocaltax1, $txlocaltax2. $fk_product, $fk_prod_fourn_price, $fourn_ref, $remise_percent, $price_base_type, $pu_ttc, $type");
         include_once(DOL_DOCUMENT_ROOT.'/core/lib/price.lib.php');
 
         // Clean parameters
@@ -1044,14 +1044,14 @@ class CommandeFournisseur extends Commande
                     {
                         $this->error="No price found for this quantity. Quantity may be too low ?";
                         $this->db->rollback();
-                        dol_syslog("FournisseurCommande::addline result=".$result." - ".$this->error, LOG_DEBUG);
+                        dol_syslog(get_class($this)."::addline result=".$result." - ".$this->error, LOG_DEBUG);
                         return -1;
                     }
                     if ($result < -1)
                     {
                         $this->error=$prod->error;
                         $this->db->rollback();
-                        dol_syslog("Fournisseur.commande::addline result=".$result." - ".$this->error, LOG_ERR);
+                        dol_syslog(get_class($this)."::addline result=".$result." - ".$this->error, LOG_ERR);
                         return -1;
                     }
                 }
@@ -1105,7 +1105,7 @@ class CommandeFournisseur extends Commande
             $sql.= "'".price2num($total_ttc)."'";
             $sql.= ")";
 
-            dol_syslog('FournisseurCommande::addline sql='.$sql);
+            dol_syslog(get_class($this)."::addline sql=".$sql);
             $resql=$this->db->query($sql);
             //print $sql;
             if ($resql)
@@ -1119,7 +1119,7 @@ class CommandeFournisseur extends Commande
             {
                 $this->error=$this->db->error();
                 $this->db->rollback();
-                dol_syslog('FournisseurCommande::addline '.$this->error, LOG_ERR);
+                dol_syslog(get_class($this)."::addline ".$this->error, LOG_ERR);
                 return -1;
             }
         }
@@ -1160,7 +1160,7 @@ class CommandeFournisseur extends Commande
             $sql.= " (fk_commande,fk_product, qty, fk_entrepot, fk_user, datec) VALUES ";
             $sql.= " ('".$this->id."','".$product."','".$qty."',".($entrepot>0?"'".$entrepot."'":"null").",'".$user->id."','".$this->db->idate($now)."')";
 
-            dol_syslog("CommandeFournisseur::DispatchProduct sql=".$sql);
+            dol_syslog(get_class($this)."::DispatchProduct sql=".$sql);
             $resql = $this->db->query($sql);
             if (! $resql)
             {
@@ -1178,7 +1178,7 @@ class CommandeFournisseur extends Commande
                     if ($result < 0)
                     {
                         $this->error=$mouv->error;
-                        dol_syslog("CommandeFournisseur::DispatchProduct ".$this->error, LOG_ERR);
+                        dol_syslog(get_class($this)."::DispatchProduct ".$this->error, LOG_ERR);
                         $error++;
                     }
                 }
@@ -1248,14 +1248,14 @@ class CommandeFournisseur extends Commande
         $this->db->begin();
 
         $sql = "DELETE FROM ".MAIN_DB_PREFIX."commande_fournisseurdet WHERE fk_commande =". $this->id ;
-        dol_syslog("FournisseurCommande::delete sql=".$sql, LOG_DEBUG);
+        dol_syslog(get_class($this)."::delete sql=".$sql, LOG_DEBUG);
         if (! $this->db->query($sql) )
         {
             $error++;
         }
 
         $sql = "DELETE FROM ".MAIN_DB_PREFIX."commande_fournisseur WHERE rowid =".$this->id;
-        dol_syslog("FournisseurCommande::delete sql=".$sql, LOG_DEBUG);
+        dol_syslog(get_class($this)."::delete sql=".$sql, LOG_DEBUG);
         if ($resql = $this->db->query($sql) )
         {
             if ($this->db->affected_rows($resql) < 1)
@@ -1277,7 +1277,7 @@ class CommandeFournisseur extends Commande
             if ($result < 0) { $error++; $this->errors=$interface->errors; }
             // Fin appel triggers
 
-            dol_syslog("CommandeFournisseur::delete : Success");
+            dol_syslog(get_class($this)."::delete : Success");
             $this->db->commit();
             return 1;
         }
@@ -1334,7 +1334,7 @@ class CommandeFournisseur extends Commande
     {
         $result = 0;
 
-        dol_syslog("CommandeFournisseur::Livraison");
+        dol_syslog(get_class($this)."::Livraison");
 
         if ($user->rights->fournisseur->commande->receptionner)
         {
@@ -1352,7 +1352,7 @@ class CommandeFournisseur extends Commande
                 $sql.= " WHERE rowid = ".$this->id;
                 $sql.= " AND fk_statut IN (3,4)";	// Process running or Partially received
 
-                dol_syslog("CommandeFournisseur::Livraison sql=".$sql);
+                dol_syslog(get_class($this)."::Livraison sql=".$sql);
                 $resql=$this->db->query($sql);
                 if ($resql)
                 {
@@ -1365,19 +1365,19 @@ class CommandeFournisseur extends Commande
                 {
                     $this->db->rollback();
                     $this->error=$this->db->lasterror();
-                    dol_syslog("CommandeFournisseur::Livraison Error ".$this->error, LOG_ERR);
+                    dol_syslog(get_class($this)."::Livraison Error ".$this->error, LOG_ERR);
                     $result = -1;
                 }
             }
             else
             {
-                dol_syslog("CommandeFournisseur::Livraison Error -2", LOG_ERR);
+                dol_syslog(get_class($this)."::Livraison Error -2", LOG_ERR);
                 $result = -2;
             }
         }
         else
         {
-            dol_syslog("CommandeFournisseur::Livraison Not Authorized");
+            dol_syslog(get_class($this)."::Livraison Not Authorized");
             $result = -3;
         }
         return $result ;
@@ -1398,7 +1398,7 @@ class CommandeFournisseur extends Commande
             $sql.= " SET date_livraison = ".($date_livraison ? "'".$this->db->idate($date_livraison)."'" : 'null');
             $sql.= " WHERE rowid = ".$this->id;
 
-            dol_syslog("CommandeFournisseur::set_date_livraison sql=".$sql,LOG_DEBUG);
+            dol_syslog(get_class($this)."::set_date_livraison sql=".$sql,LOG_DEBUG);
             $resql=$this->db->query($sql);
             if ($resql)
             {
@@ -1408,7 +1408,7 @@ class CommandeFournisseur extends Commande
             else
             {
                 $this->error=$this->db->error();
-                dol_syslog("CommandeFournisseur::set_date_livraison ".$this->error,LOG_ERR);
+                dol_syslog(get_class($this)."::set_date_livraison ".$this->error,LOG_ERR);
                 return -1;
             }
         }
@@ -1591,7 +1591,7 @@ class CommandeFournisseur extends Commande
             $sql.= ",product_type='".$type."'";
             $sql.= " WHERE rowid = ".$rowid;
 
-            dol_syslog("CommandeFournisseur::updateline sql=".$sql);
+            dol_syslog(get_class($this)."::updateline sql=".$sql);
             $result = $this->db->query($sql);
             if ($result > 0)
             {
@@ -1604,7 +1604,7 @@ class CommandeFournisseur extends Commande
             else
             {
                 $this->error=$this->db->error();
-                dol_syslog("CommandeFournisseur::updateline ".$this->error, LOG_ERR);
+                dol_syslog(get_class($this)."::updateline ".$this->error, LOG_ERR);
                 $this->db->rollback();
                 return -1;
             }
@@ -1612,7 +1612,7 @@ class CommandeFournisseur extends Commande
         else
         {
             $this->error="Order status makes operation forbidden";
-            dol_syslog("CommandeFournisseur::updateline ".$this->error, LOG_ERR);
+            dol_syslog(get_class($this)."::updateline ".$this->error, LOG_ERR);
             return -2;
         }
     }
@@ -1629,7 +1629,7 @@ class CommandeFournisseur extends Commande
     {
         global $user,$langs,$conf;
 
-        dol_syslog("CommandeFournisseur::initAsSpecimen");
+        dol_syslog(get_class($this)."::initAsSpecimen");
 
         $now=dol_now();
 
@@ -1754,8 +1754,7 @@ class CommandeFournisseur extends Commande
 
 
 /**
- *  \class      CommandeFournisseurLigne
- *  \brief      Classe de gestion des lignes de commande
+ *  Classe de gestion des lignes de commande
  */
 class CommandeFournisseurLigne extends OrderLine
 {