From 6bcf2be91b3dc0152bbbef3e8db9a379ab6f1a06 Mon Sep 17 00:00:00 2001 From: Regis Houssin <regis@dolibarr.fr> Date: Thu, 26 Jul 2012 20:48:35 +0200 Subject: [PATCH] Fix: Bug #460 - Wrong entity assignment when creating a warehouse --- htdocs/product/class/product.class.php | 11 ++++++++--- htdocs/product/stock/class/entrepot.class.php | 6 ++++-- htdocs/product/stock/product.php | 1 + 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/htdocs/product/class/product.class.php b/htdocs/product/class/product.class.php index c44cbc65f1b..729a30b678a 100644 --- a/htdocs/product/class/product.class.php +++ b/htdocs/product/class/product.class.php @@ -2330,11 +2330,16 @@ class Product extends CommonObject */ function load_stock() { + global $conf; + $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 = ".$conf->entity; + $sql.= " AND w.rowid = ps.fk_entrepot"; + $sql.= " AND ps.fk_product = ".$this->id; dol_syslog("Product::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 aca3b3db5ba..396fe0a9779 100644 --- a/htdocs/product/stock/class/entrepot.class.php +++ b/htdocs/product/stock/class/entrepot.class.php @@ -70,6 +70,8 @@ class Entrepot extends CommonObject */ function create($user) { + global $conf; + // Si libelle non defini, erreur if ($this->libelle == '') { @@ -79,8 +81,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(mktime()).",".$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(mktime())."',".$user->id.",'".$this->db->escape($this->libelle)."')"; dol_syslog("Entrepot::create sql=".$sql); $result=$this->db->query($sql); diff --git a/htdocs/product/stock/product.php b/htdocs/product/stock/product.php index f4e6eea03ad..e0409f0f624 100644 --- a/htdocs/product/stock/product.php +++ b/htdocs/product/stock/product.php @@ -209,6 +209,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")); -- GitLab