From 5e609efffeaf153a1deb702e5fdfdf3b497e6e6e Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Wed, 24 Mar 2010 16:18:04 +0000 Subject: [PATCH] Works on canvas capability Works on custom list --- .../canvas/default/product.default.class.php | 56 +++++++++---------- htdocs/product/liste.php | 11 +--- 2 files changed, 29 insertions(+), 38 deletions(-) diff --git a/htdocs/product/canvas/default/product.default.class.php b/htdocs/product/canvas/default/product.default.class.php index 5bea8e1a616..12179f78646 100644 --- a/htdocs/product/canvas/default/product.default.class.php +++ b/htdocs/product/canvas/default/product.default.class.php @@ -111,27 +111,42 @@ class ProductDefault extends Product { global $conf, $langs; + $this->list_datas = array(); + + //$_GET["sref"] = 'LL'; + // Clean parameters + $sall=trim(isset($_GET["sall"])?$_GET["sall"]:$_POST["sall"]); + + foreach($this->field_list as $field) + { + if ($field['enabled']) + { + $fieldname = "s".$field['name']; + $$fieldname = trim(isset($_GET[$fieldname])?$_GET[$fieldname]:$_POST[$fieldname]); + } + } + $sql = 'SELECT DISTINCT p.rowid, p.ref, p.label, p.barcode, p.price, p.price_ttc, p.price_base_type,'; $sql.= ' p.fk_product_type, p.tms as datem,'; $sql.= ' p.envente as statut, p.seuil_stock_alerte'; $sql.= ' FROM '.MAIN_DB_PREFIX.'product as p'; - // We'll need this table joined to the select in order to filter by categ - if ($search_categ) $sql.= ", ".MAIN_DB_PREFIX."categorie_product as cp"; - if ($_GET["fourn_id"] > 0) - { - $fourn_id = $_GET["fourn_id"]; - $sql.= ", ".MAIN_DB_PREFIX."product_fournisseur as pf"; - } $sql.= " WHERE p.entity = ".$conf->entity; - if ($search_categ) $sql.= " AND p.rowid = cp.fk_product"; // Join for the needed table to filter by categ if (!$user->rights->produit->hidden) $sql.=' AND (p.hidden=0 OR p.fk_product_type != 0)'; if ($sall) { - $sql.= " AND (p.ref like '%".addslashes($sall)."%' OR p.label like '%".addslashes($sall)."%' OR p.description like '%".addslashes($sall)."%' OR p.note like '%".addslashes($sall)."%')"; + $sql.= " AND (p.ref LIKE '%".addslashes($sall)."%'"; + $sql.= " OR p.label LIKE '%".addslashes($sall)."%'"; + $sql.= " OR p.description LIKE '%".addslashes($sall)."%'"; + $sql.= " OR p.note LIKE '%".addslashes($sall)."%')"; + } + foreach($this->field_list as $field) + { + if ($field['enabled']) + { + $fieldname = "s".$field['name']; + if (${$fieldname}) $sql.= " AND p.".$field['name']." LIKE '%".addslashes(${$fieldname})."%'"; + } } - if ($sref) $sql.= " AND p.ref like '%".$sref."%'"; - if ($sbarcode) $sql.= " AND p.barcode like '%".$sbarcode."%'"; - if ($snom) $sql.= " AND p.label like '%".addslashes($snom)."%'"; if (isset($_GET["envente"]) && strlen($_GET["envente"]) > 0) { $sql.= " AND p.envente = ".addslashes($_GET["envente"]); @@ -140,24 +155,9 @@ class ProductDefault extends Product { $sql.= " AND p.canvas = '".addslashes($_GET["canvas"])."'"; } - if($catid) - { - $sql.= " AND cp.fk_categorie = ".$catid; - } - if ($fourn_id > 0) - { - $sql.= " AND p.rowid = pf.fk_product AND pf.fk_soc = ".$fourn_id; - } - // Insert categ filter - if ($search_categ) - { - $sql .= " AND cp.fk_categorie = ".addslashes($search_categ); - } $sql.= $this->db->order($sortfield,$sortorder); $sql.= $this->db->plimit($limit + 1 ,$offset); - - $this->list_datas = array(); - +//print $sql; $resql = $this->db->query($sql); if ($resql) { diff --git a/htdocs/product/liste.php b/htdocs/product/liste.php index 8b57ccb3821..bbe56a07b7a 100644 --- a/htdocs/product/liste.php +++ b/htdocs/product/liste.php @@ -32,16 +32,7 @@ if ($conf->categorie->enabled) require_once(DOL_DOCUMENT_ROOT."/categories/categ $langs->load("products"); -$sref=isset($_GET["sref"])?$_GET["sref"]:$_POST["sref"]; -$sbarcode=isset($_GET["sbarcode"])?$_GET["sbarcode"]:$_POST["sbarcode"]; -$snom=isset($_GET["snom"])?$_GET["snom"]:$_POST["snom"]; -$sall=isset($_GET["sall"])?$_GET["sall"]:$_POST["sall"]; -$type=isset($_GET["type"])?$_GET["type"]:$_POST["type"]; -$sref=trim($sref); -$sbarcode=trim($sbarcode); -$snom=trim($snom); -$sall=trim($sall); -$type=trim($type); +$type=trim(isset($_GET["type"])?$_GET["type"]:$_POST["type"]); $sortfield = isset($_GET["sortfield"])?$_GET["sortfield"]:$_POST["sortfield"]; $sortorder = isset($_GET["sortorder"])?$_GET["sortorder"]:$_POST["sortorder"];