diff --git a/htdocs/langs/ca_ES/products.lang b/htdocs/langs/ca_ES/products.lang index cc66020c9a4..33c0473b2aa 100644 --- a/htdocs/langs/ca_ES/products.lang +++ b/htdocs/langs/ca_ES/products.lang @@ -113,7 +113,8 @@ MultiPricesNumPrices=Nº de preus MultiPriceLevelsName=Categoria de preus AssociatedProductsAbility=Activar productes compostos AssociatedProducts=Productes compostos -AssociatedProductsNumber=Nº de productes compostos +AssociatedProductsNumber=Nº de productes que composen aquest producte +ParentProductsNumber=Nº de productes que aquest producte compon EditAssociate=Compondre Translation=Traducció KeywordFilter=Filtre per clau @@ -123,6 +124,7 @@ AddDel=Adjuntar/Retirar Quantity=Quantitat NoMatchFound=No s'han trobat resultats ProductAssociationList=Llistat de productes/serveis components d'aquest producte: el nombre entre parèntesis és la quantitat afectada en aquesta composició +ProductParentList=Llistat de productes/serveis amb aquest producte com a component ErrorAssociationIsFatherOfThis=Un dels productes seleccionats és pare del producte en curs DeleteProduct=Eliminar un producte/servei ConfirmDeleteProduct=Esteu segur de voler eliminar aquest producte/servei? diff --git a/htdocs/langs/en_US/products.lang b/htdocs/langs/en_US/products.lang index ff37475b31f..96b520d95f4 100644 --- a/htdocs/langs/en_US/products.lang +++ b/htdocs/langs/en_US/products.lang @@ -114,6 +114,7 @@ MultiPriceLevelsName=Price categories AssociatedProductsAbility=Activate the sub-products AssociatedProducts=Sub-products AssociatedProductsNumber=Number of products composing this product +ParentProductsNumber=Number of parent product EditAssociate=Associate Translation=Translation KeywordFilter=Keyword filter @@ -123,6 +124,7 @@ AddDel=Add/Delete Quantity=Quantity NoMatchFound=No match found ProductAssociationList=List of related products/services: name of product/service (quantity affected) +ProductParentList=List of products/services with this product as a component ErrorAssociationIsFatherOfThis=One of selected product is parent with current product DeleteProduct=Delete a product/service ConfirmDeleteProduct=Are you sure you want to delete this product/service? diff --git a/htdocs/langs/es_ES/products.lang b/htdocs/langs/es_ES/products.lang index 01e061a9790..12dce1cd5fd 100644 --- a/htdocs/langs/es_ES/products.lang +++ b/htdocs/langs/es_ES/products.lang @@ -113,7 +113,8 @@ MultiPricesNumPrices=Nº de precios MultiPriceLevelsName=Categoría de precios AssociatedProductsAbility=Activar productos compuestos AssociatedProducts=Productos compuestos -AssociatedProductsNumber=Nº de productos compuestos +AssociatedProductsNumber=Nº de productos que componen este producto +ParentProductsNumber=Nº de productos que este producto compone EditAssociate=Componer Translation=Traducción KeywordFilter=Filtro por clave @@ -123,6 +124,7 @@ AddDel=Adjuntar/Retirar Quantity=Cantidad NoMatchFound=No se han encontrado resultados ProductAssociationList=Listado de productos/servicios componentes de este producto : el número entre paréntesis es la cantidad afectada en esta composición +ProductParentList=Listado de productos/servicios con este producto como componente ErrorAssociationIsFatherOfThis=Uno de los productos seleccionados es padre del producto en curso DeleteProduct=Eliminar un producto/servicio ConfirmDeleteProduct=¿Está seguro de querer eliminar este producto/servicio? diff --git a/htdocs/langs/fr_FR/products.lang b/htdocs/langs/fr_FR/products.lang index c9853fb6ad3..d925df6505a 100644 --- a/htdocs/langs/fr_FR/products.lang +++ b/htdocs/langs/fr_FR/products.lang @@ -114,6 +114,7 @@ MultiPriceLevelsName=Catégorie de prix AssociatedProductsAbility=Prise en charge des produits composés AssociatedProducts=Composition AssociatedProductsNumber=Nbre de sous-produits composant ce produit +ParentProductsNumber=Nbre de produits parent EditAssociate=Composer Translation=Traduction KeywordFilter=Filtre par mot-clé @@ -123,6 +124,7 @@ AddDel=Ajouter/Retirer Quantity=Quantité NoMatchFound=Aucun résultat n'a été trouvé ProductAssociationList=Liste des produits/services composant ce produit: Le nombre entre parenthèse est la quantité affectée dans cette composition. +ProductParentList=Liste des produits/services avec ce produit comme composante ErrorAssociationIsFatherOfThis=L'un des produits sélectionnés est parent du produit en cours DeleteProduct=Supprimer un produit/service ConfirmDeleteProduct=Êtes-vous sûr de vouloir supprimer ce produit/service ? diff --git a/htdocs/product/class/product.class.php b/htdocs/product/class/product.class.php index df033c92146..95d7f9410e9 100644 --- a/htdocs/product/class/product.class.php +++ b/htdocs/product/class/product.class.php @@ -24,7 +24,7 @@ * \file htdocs/product/class/product.class.php * \ingroup produit * \brief Fichier de la classe des produits predefinis - * \version $Id: product.class.php,v 1.50 2011/08/17 15:56:26 eldy Exp $ + * \version $Id: product.class.php,v 1.51 2011/08/18 16:16:04 simnandez Exp $ */ require_once(DOL_DOCUMENT_ROOT ."/core/class/commonobject.class.php"); @@ -2080,6 +2080,40 @@ class Product extends CommonObject } return $this->res; } + + + /** + * Return all Father products fo current product + * @return array prod + */ + function getFather() + { + + $sql = "SELECT p.label as label,p.rowid,pa.fk_product_pere as id,p.fk_product_type"; + $sql.= " FROM ".MAIN_DB_PREFIX."product_association as pa,"; + $sql.= " ".MAIN_DB_PREFIX."product as p"; + $sql.= " WHERE p.rowid = pa.fk_product_pere"; + $sql.= " AND pa.fk_product_fils=".$this->id; + + $res = $this->db->query($sql); + if ($res) + { + $prods = array (); + while ($record = $this->db->fetch_array ($res)) + { + $prods[$record['id']]['id'] = $record['rowid']; + $prods[$record['id']]['label'] = $this->db->escape($record['label']); + $prods[$record['id']]['fk_product_type'] = $record['fk_product_type']; + } + return $prods; + } + else + { + dol_print_error ($this->db); + return -1; + } + } + /** * Return all parent products fo current product diff --git a/htdocs/product/composition/fiche.php b/htdocs/product/composition/fiche.php index 41b0c32445b..71807eecb43 100644 --- a/htdocs/product/composition/fiche.php +++ b/htdocs/product/composition/fiche.php @@ -24,7 +24,7 @@ * \file htdocs/product/composition/fiche.php * \ingroup product * \brief Page de la fiche produit - * \version $Id: fiche.php,v 1.11 2011/08/10 11:53:25 eldy Exp $ + * \version $Id: fiche.php,v 1.12 2011/08/18 16:16:05 simnandez Exp $ */ require("../../main.inc.php"); @@ -201,7 +201,8 @@ if ($id || $ref) print ''; // Number of subproducts - $product->get_sousproduits_arbo (); + $prodsfather = $product->getFather(); //Parent Products + $product->get_sousproduits_arbo (); print ''.$langs->trans("AssociatedProductsNumber").''.sizeof($product->get_arbo_each_prod()).''; dol_fiche_end(); @@ -232,6 +233,29 @@ if ($id || $ref) print ''; print ''; } + + // Number of parent products + print ''.$langs->trans("ParentProductsNumber").''.sizeof($prodsfather).''; + + if(sizeof($prodsfather) > 0) + { + print ''; + print ''.$langs->trans("ProductParentList").'
'; + print ''; + foreach($prodsfather as $value) + { + $idprod= $value["id"]; + $productstatic->id=$idprod;// $value["id"]; + $productstatic->type=$value["fk_product_type"]; + $productstatic->ref=$value['label']; + if ($conf->stock->enabled) $productstatic->load_stock(); + print ''; + print '';; + print ''; + } + print '
'.$productstatic->getNomUrl(1).'
'; + print ''; + } print "\n"; @@ -451,5 +475,5 @@ print "\n\n"; $db->close(); -llxFooter('$Date: 2011/08/10 11:53:25 $ - $Revision: 1.11 $'); +llxFooter('$Date: 2011/08/18 16:16:05 $ - $Revision: 1.12 $'); ?>