diff --git a/htdocs/categories/class/categorie.class.php b/htdocs/categories/class/categorie.class.php index fddbefa8d5f..b4fa020e2b3 100644 --- a/htdocs/categories/class/categorie.class.php +++ b/htdocs/categories/class/categorie.class.php @@ -5,7 +5,8 @@ * Copyright (C) 2006-2012 Regis Houssin * Copyright (C) 2006-2012 Laurent Destailleur * Copyright (C) 2007 Patrick Raguin - * Copyright (C) 2013 Juanjo Menent + * Copyright (C) 2013 Juanjo Menent + * Copyright (C) 2013 Philippe Grand * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -44,6 +45,7 @@ class Categorie var $fk_parent; var $label; var $description; + var $add_description; // For taxes like DEEE... var $socid; var $type; // 0=Product, 1=Supplier, 2=Customer/Prospect, 3=Member var $import_key; @@ -73,7 +75,7 @@ class Categorie { global $conf; - $sql = "SELECT rowid, fk_parent, entity, label, description, fk_soc, visible, type"; + $sql = "SELECT rowid, fk_parent, entity, label, description, add_description, fk_soc, visible, type"; $sql.= " FROM ".MAIN_DB_PREFIX."categorie"; if ($id) { @@ -93,14 +95,15 @@ class Categorie { $res = $this->db->fetch_array($resql); - $this->id = $res['rowid']; - $this->fk_parent = $res['fk_parent']; - $this->label = $res['label']; - $this->description = $res['description']; - $this->socid = $res['fk_soc']; - $this->visible = $res['visible']; - $this->type = $res['type']; - $this->entity = $res['entity']; + $this->id = $res['rowid']; + $this->fk_parent = $res['fk_parent']; + $this->label = $res['label']; + $this->description = $res['description']; + $this->add_description = $res['add_description']; + $this->socid = $res['fk_soc']; + $this->visible = $res['visible']; + $this->type = $res['type']; + $this->entity = $res['entity']; $this->db->free($resql); @@ -156,6 +159,7 @@ class Categorie $sql.= "fk_parent,"; $sql.= " label,"; $sql.= " description,"; + $sql.= " add_description,"; if (! empty($conf->global->CATEGORY_ASSIGNED_TO_A_CUSTOMER)) { $sql.= "fk_soc,"; @@ -168,6 +172,7 @@ class Categorie $sql.= $this->fk_parent.","; $sql.= "'".$this->db->escape($this->label)."',"; $sql.= "'".$this->db->escape($this->description)."',"; + $sql.= "'".$this->db->escape($this->add_description)."',"; if (! empty($conf->global->CATEGORY_ASSIGNED_TO_A_CUSTOMER)) { $sql.= ($this->socid != -1 ? $this->socid : 'null').","; @@ -244,7 +249,14 @@ class Categorie $sql = "UPDATE ".MAIN_DB_PREFIX."categorie"; $sql.= " SET label = '".$this->db->escape($this->label)."',"; - $sql.= " description = '".$this->db->escape($this->description)."'"; + if (! empty($this->description)) + { + $sql .= ", description = '".$this->db->escape($this->description)."'"; + } + if (! empty($this->add_description)) + { + $sql .= ", add_description = '".$this->db->escape($this->add_description)."'"; + } if (! empty($conf->global->CATEGORY_ASSIGNED_TO_A_CUSTOMER)) { $sql .= ", fk_soc = ".($this->socid != -1 ? $this->socid : 'null'); @@ -612,7 +624,7 @@ class Categorie $sql.= " FROM ".MAIN_DB_PREFIX."categorie"; $sql.= " WHERE fk_parent != 0"; $sql.= " AND entity IN (".getEntity('category',1).")"; - + dol_syslog(get_class($this)."::load_motherof sql=".$sql); $resql = $this->db->query($sql); if ($resql) diff --git a/htdocs/core/lib/pdf.lib.php b/htdocs/core/lib/pdf.lib.php index a4b091347d0..6be4eaf2a61 100644 --- a/htdocs/core/lib/pdf.lib.php +++ b/htdocs/core/lib/pdf.lib.php @@ -1031,7 +1031,23 @@ function pdf_getlinedesc($object,$i,$outputlangs,$hideref=0,$hidedesc=0,$issuppl $libelleproduitservice=$prefix_prodserv.$ref_prodserv.$libelleproduitservice; } } - + + // Add an additional description for the category products + if (! empty($conf->categorie->enabled)) + { + include_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; + $categstatic=new Categorie($db); + // recovering the list of all the categories linked to product + $tblcateg=$categstatic->containing($idprod,0); + foreach ($tblcateg as $cate) + { + // Adding the descriptions if they are filled + $desccateg=$cate->add_description; + if ($desccateg) + $libelleproduitservice.='__N__'.$desccateg; + } + } + if (! empty($object->lines[$i]->date_start) || ! empty($object->lines[$i]->date_end)) { $format='day'; diff --git a/htdocs/product/index.php b/htdocs/product/index.php index f9eb16e23de..6104702f6cd 100644 --- a/htdocs/product/index.php +++ b/htdocs/product/index.php @@ -25,6 +25,7 @@ require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php'; $type=isset($_GET["type"])?$_GET["type"]:(isset($_POST["type"])?$_POST["type"]:''); if ($type =='' && !$user->rights->produit->lire) $type='1'; // Force global page on service page only