forked from Wavyzz/dolibarr
task #11240: Show parent products when product is a sub product
This commit is contained in:
@@ -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?
|
||||
|
||||
@@ -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?
|
||||
|
||||
@@ -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?
|
||||
|
||||
@@ -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 ?
|
||||
|
||||
@@ -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");
|
||||
|
||||
@@ -2081,6 +2081,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
|
||||
* @return array prod
|
||||
|
||||
@@ -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,6 +201,7 @@ if ($id || $ref)
|
||||
print '</tr>';
|
||||
|
||||
// Number of subproducts
|
||||
$prodsfather = $product->getFather(); //Parent Products
|
||||
$product->get_sousproduits_arbo ();
|
||||
print '<tr><td>'.$langs->trans("AssociatedProductsNumber").'</td><td>'.sizeof($product->get_arbo_each_prod()).'</td>';
|
||||
|
||||
@@ -233,6 +234,29 @@ if ($id || $ref)
|
||||
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";
|
||||
|
||||
dol_fiche_end();
|
||||
@@ -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 $');
|
||||
?>
|
||||
|
||||
Reference in New Issue
Block a user