From 1522a5b22d5a89f37015dd0af293e96afbe4371f Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Sat, 7 Jul 2018 08:43:59 +0200 Subject: [PATCH] Fix: differentiate customer prices from supplier prices sharing --- htdocs/core/class/html.form.class.php | 2 +- htdocs/fourn/class/fournisseur.product.class.php | 2 +- htdocs/product/class/product.class.php | 4 ++-- htdocs/product/class/productcustomerprice.class.php | 4 ++++ htdocs/product/stock/productlot_list.php | 2 +- 5 files changed, 9 insertions(+), 5 deletions(-) diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index 8e28e77d185..e89801563c3 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -2654,7 +2654,7 @@ class Form $sql.= " FROM ".MAIN_DB_PREFIX."product as p"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product_fournisseur_price as pfp ON p.rowid = pfp.fk_product"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON pfp.fk_soc = s.rowid"; - $sql.= " WHERE pfp.entity IN (".getEntity('productprice').")"; + $sql.= " WHERE pfp.entity IN (".getEntity('productresellerprice').")"; $sql.= " AND p.tobuy = 1"; $sql.= " AND s.fournisseur = 1"; $sql.= " AND p.rowid = ".$productid; diff --git a/htdocs/fourn/class/fournisseur.product.class.php b/htdocs/fourn/class/fournisseur.product.class.php index 050d2867cf4..8ff31609b54 100644 --- a/htdocs/fourn/class/fournisseur.product.class.php +++ b/htdocs/fourn/class/fournisseur.product.class.php @@ -530,7 +530,7 @@ class ProductFournisseur extends Product $sql.= " ,pfp.multicurrency_price, pfp.multicurrency_unitprice, pfp.multicurrency_tx, pfp.fk_multicurrency, pfp.multicurrency_code"; $sql.= " FROM ".MAIN_DB_PREFIX."product_fournisseur_price as pfp"; $sql.= ", ".MAIN_DB_PREFIX."societe as s"; - $sql.= " WHERE pfp.entity IN (".getEntity('productprice').")"; + $sql.= " WHERE pfp.entity IN (".getEntity('productresellerprice').")"; $sql.= " AND pfp.fk_soc = s.rowid"; $sql.= " AND s.status=1"; // only enabled company selected $sql.= " AND pfp.fk_product = ".$prodid; diff --git a/htdocs/product/class/product.class.php b/htdocs/product/class/product.class.php index 7d7cbf7c282..eb959b06493 100644 --- a/htdocs/product/class/product.class.php +++ b/htdocs/product/class/product.class.php @@ -3081,7 +3081,7 @@ class Product extends CommonObject $sql.= " WHERE fk_soc = ".$id_fourn; $sql.= " AND ref_fourn = '".$this->db->escape($ref_fourn)."'"; $sql.= " AND fk_product != ".$this->id; - $sql.= " AND entity IN (".getEntity('productprice').")"; + $sql.= " AND entity IN (".getEntity('productresellerprice').")"; $resql=$this->db->query($sql); if ($resql) @@ -3104,7 +3104,7 @@ class Product extends CommonObject else $sql.= " AND (ref_fourn = '' OR ref_fourn IS NULL)"; $sql.= " AND quantity = '".$quantity."'"; $sql.= " AND fk_product = ".$this->id; - $sql.= " AND entity IN (".getEntity('productprice').")"; + $sql.= " AND entity IN (".getEntity('productresellerprice').")"; $resql=$this->db->query($sql); if ($resql) diff --git a/htdocs/product/class/productcustomerprice.class.php b/htdocs/product/class/productcustomerprice.class.php index 5b41cb0f02b..096b4725531 100644 --- a/htdocs/product/class/productcustomerprice.class.php +++ b/htdocs/product/class/productcustomerprice.class.php @@ -341,6 +341,8 @@ class Productcustomerprice extends CommonObject $sql .= " WHERE soc.rowid=t.fk_soc "; $sql .= " AND prod.rowid=t.fk_product "; $sql .= " AND prod.entity IN (" . getEntity('product') . ")"; + $sql .= " AND t.entity IN (" . getEntity('productprice') . ")"; + $sql .= " AND soc.entity IN (" . getEntity('societe') . ")"; // Manage filter if (count($filter) > 0) { @@ -450,6 +452,8 @@ class Productcustomerprice extends CommonObject $sql .= " WHERE soc.rowid=t.fk_soc "; $sql .= " AND prod.rowid=t.fk_product "; $sql .= " AND prod.entity IN (" . getEntity('product') . ")"; + $sql .= " AND t.entity IN (" . getEntity('productprice') . ")"; + $sql .= " AND soc.entity IN (" . getEntity('societe') . ")"; // Manage filter if (count($filter) > 0) { diff --git a/htdocs/product/stock/productlot_list.php b/htdocs/product/stock/productlot_list.php index 7c15b3fa7c5..874d5676e1f 100644 --- a/htdocs/product/stock/productlot_list.php +++ b/htdocs/product/stock/productlot_list.php @@ -218,7 +218,7 @@ $sql.= " FROM ".MAIN_DB_PREFIX."product_lot as t"; if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product_lot_extrafields as ef on (t.rowid = ef.fk_object)"; $sql.= ", ".MAIN_DB_PREFIX."product as p"; $sql.= " WHERE p.rowid = t.fk_product"; -//$sql.= " WHERE u.entity IN (".getEntity('productlot').")"; +$sql.= " WHERE p.entity IN (".getEntity('product').")"; if ($search_entity) $sql.= natural_search("entity",$search_entity); if ($search_product) $sql.= natural_search("p.ref",$search_product);