diff --git a/htdocs/product/class/product.class.php b/htdocs/product/class/product.class.php index 789945d1d964b28695a12ce146fb967daabb9741..72c82c34348823155e52b9452a24c25e80715caa 100644 --- a/htdocs/product/class/product.class.php +++ b/htdocs/product/class/product.class.php @@ -138,7 +138,7 @@ class Product extends CommonObject //! Contains detail of stock of product into each warehouse var $stock_warehouse=array(); - + var $oldcopy; @@ -405,7 +405,7 @@ class Product extends CommonObject global $langs, $conf; $error=0; - + $this->db->begin(); // Verification parametres @@ -508,7 +508,7 @@ class Product extends CommonObject if ($result < 0) { $error++; $this->errors=$interface->errors; } // Fin appel triggers } - + if (! $error && (is_object($this->oldcopy) && $this->oldcopy->ref != $this->ref)) { // We remove directory @@ -527,7 +527,7 @@ class Product extends CommonObject } } } - + if (! $error) { $this->db->commit(); @@ -618,7 +618,7 @@ class Product extends CommonObject dol_syslog(get_class($this).'::delete error '.$this->error, LOG_ERR); } } - + if (! $error) { // We remove directory @@ -2405,9 +2405,12 @@ class Product extends CommonObject { $this->stock_reel = 0; - $sql = "SELECT reel, fk_entrepot, pmp"; - $sql.= " FROM ".MAIN_DB_PREFIX."product_stock"; - $sql.= " WHERE fk_product = '".$this->id."'"; + $sql = "SELECT ps.reel, ps.fk_entrepot, ps.pmp"; + $sql.= " FROM ".MAIN_DB_PREFIX."product_stock as ps"; + $sql.= ", ".MAIN_DB_PREFIX."entrepot as w"; + $sql.= " WHERE w.entity = (".getEntity('warehouse', 1).")"; + $sql.= " AND w.rowid = ps.fk_entrepot"; + $sql.= " AND ps.fk_product = ".$this->id; dol_syslog(get_class($this)."::load_stock sql=".$sql); $result = $this->db->query($sql); diff --git a/htdocs/product/stock/class/entrepot.class.php b/htdocs/product/stock/class/entrepot.class.php index ca670fcba2a038cd2fbe967f5413e13ef2db2abb..c15d484aba8df89d5f5ea78a6e32036263929bef 100644 --- a/htdocs/product/stock/class/entrepot.class.php +++ b/htdocs/product/stock/class/entrepot.class.php @@ -76,6 +76,8 @@ class Entrepot extends CommonObject */ function create($user) { + global $conf; + // Si libelle non defini, erreur if ($this->libelle == '') { @@ -87,8 +89,8 @@ class Entrepot extends CommonObject $this->db->begin(); - $sql = "INSERT INTO ".MAIN_DB_PREFIX."entrepot (datec, fk_user_author, label)"; - $sql .= " VALUES ('".$this->db->idate($now)."',".$user->id.",'".$this->db->escape($this->libelle)."')"; + $sql = "INSERT INTO ".MAIN_DB_PREFIX."entrepot (entity, datec, fk_user_author, label)"; + $sql .= " VALUES (".$conf->entity.",'".$this->db->idate($now)."',".$user->id.",'".$this->db->escape($this->libelle)."')"; dol_syslog(get_class($this)."::create sql=".$sql); $result=$this->db->query($sql); @@ -99,7 +101,7 @@ class Entrepot extends CommonObject { $this->id = $id; - if ( $this->update($id, $user) > 0) + if ($this->update($id, $user) > 0) { $this->db->commit(); return $id; @@ -184,7 +186,6 @@ class Entrepot extends CommonObject */ function delete($user) { - $this->db->begin(); $sql = "DELETE FROM ".MAIN_DB_PREFIX."stock_mouvement"; @@ -338,7 +339,8 @@ class Entrepot extends CommonObject $sql = "SELECT rowid, label"; $sql.= " FROM ".MAIN_DB_PREFIX."entrepot"; - $sql.= " WHERE statut = ".$status; + $sql.= " WHERE entity IN (".getEntity('warehouse', 1).")"; + $sql.= " AND statut = ".$status; $result = $this->db->query($sql); $i = 0; @@ -363,13 +365,13 @@ class Entrepot extends CommonObject */ function nb_products() { - global $conf,$user; - $ret=array(); $sql = "SELECT sum(ps.reel) as nb, sum(ps.reel * ps.pmp) as value"; - $sql .= " FROM ".MAIN_DB_PREFIX."product_stock as ps, ".MAIN_DB_PREFIX."product as p"; - $sql .= " WHERE ps.fk_entrepot = ".$this->id." AND ps.fk_product=p.rowid"; + $sql.= " FROM ".MAIN_DB_PREFIX."product_stock as ps"; + $sql.= ", ".MAIN_DB_PREFIX."product as p"; + $sql.= " WHERE ps.fk_entrepot = ".$this->id; + $sql.= " AND ps.fk_product = p.rowid"; //print $sql; $result = $this->db->query($sql); diff --git a/htdocs/product/stock/product.php b/htdocs/product/stock/product.php index 3410eec67c33ff0caa5c5a8b5906953f1598ab6c..a3cdf0f7dc9a5f49dda3d742d060c5b540497152 100644 --- a/htdocs/product/stock/product.php +++ b/htdocs/product/stock/product.php @@ -44,7 +44,7 @@ $id = GETPOST('id')?GETPOST('id'):GETPOST('ref'); $ref = GETPOST('ref'); $fieldid = isset($_GET["ref"])?'ref':'rowid'; if ($user->societe_id) $socid=$user->societe_id; -$result=restrictedArea($user,'produit&stock',$id,'product','','',$fieldid); +$result=restrictedArea($user,'produit&stock',$id,'product&product','','',$fieldid); $mesg = ''; @@ -217,6 +217,7 @@ if ($_GET["id"] || $_GET["ref"]) print '</tr>'; // Real stock + $product->load_stock(); print '<tr><td>'.$langs->trans("PhysicalStock").'</td>'; print '<td>'.$product->stock_reel; if ($product->seuil_stock_alerte && ($product->stock_reel < $product->seuil_stock_alerte)) print ' '.img_warning($langs->trans("StockTooLow"));