2
0
forked from Wavyzz/dolibarr

task #11240: Show parent products when product is a sub product

This commit is contained in:
Juanjo Menent
2011-08-18 16:16:04 +00:00
parent 31bb9d02d6
commit 8442baa6f0
6 changed files with 72 additions and 6 deletions

View File

@@ -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?

View File

@@ -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?

View File

@@ -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?

View File

@@ -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 ?

View File

@@ -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

View File

@@ -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 '</tr>';
// Number of subproducts
$product->get_sousproduits_arbo ();
$prodsfather = $product->getFather(); //Parent Products
$product->get_sousproduits_arbo ();
print '<tr><td>'.$langs->trans("AssociatedProductsNumber").'</td><td>'.sizeof($product->get_arbo_each_prod()).'</td>';
dol_fiche_end();
@@ -232,6 +233,29 @@ if ($id || $ref)
print '</table>';
print '</td></tr>';
}
// Number of parent products
print '<tr><td>'.$langs->trans("ParentProductsNumber").'</td><td>'.sizeof($prodsfather).'</td>';
if(sizeof($prodsfather) > 0)
{
print '<tr><td colspan="2">';
print '<b>'.$langs->trans("ProductParentList").'</b><br>';
print '<table class="nobordernopadding">';
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 '<tr>';
print '<td>'.$productstatic->getNomUrl(1).'</td>';;
print '</tr>';
}
print '</table>';
print '</td></tr>';
}
print "</table>\n";
@@ -451,5 +475,5 @@ print "\n</div>\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 $');
?>