diff --git a/htdocs/langs/fr_FR/categories.lang b/htdocs/langs/fr_FR/categories.lang index 10ab0fd65e4..99d1375b28c 100644 --- a/htdocs/langs/fr_FR/categories.lang +++ b/htdocs/langs/fr_FR/categories.lang @@ -85,3 +85,4 @@ CategorieRecursivHelp=Si activé : quand un élément est ajouté dans une cat AddProductServiceIntoCategory=Ajouter le produit/service suivant ShowCategory=Afficher tag/catégorie ByDefaultInList=Par défaut dans la liste +ChooseCategory=Choisissez les catégories diff --git a/htdocs/margin/productMargins.php b/htdocs/margin/productMargins.php index 9d52b25de36..ef99e593b82 100644 --- a/htdocs/margin/productMargins.php +++ b/htdocs/margin/productMargins.php @@ -37,6 +37,7 @@ $id = GETPOST('id', 'int'); $ref = GETPOST('ref', 'alpha'); $action=GETPOST('action','alpha'); $confirm=GETPOST('confirm','alpha'); +$TSelectedCats=GETPOST('categories', 'array'); // Security check $fieldvalue = (! empty($id) ? $id : (! empty($ref) ? $ref : '')); @@ -121,6 +122,16 @@ else { } +// Categories +$TCats = $form->select_all_categories(0, array(), '', 64, 0, 1); + +print ''; +print ''.$langs->trans('ChooseCategory').''; +print ''; +print $form->multiselectarray('categories', $TCats, $TSelectedCats, 0, 0, 'minwidth500'); +print ''; +print ''; + // Start date print ''; print ''.$langs->trans('DateStart').' ('.$langs->trans("DateValidation").')'; @@ -177,12 +188,18 @@ $sql.= " FROM ".MAIN_DB_PREFIX."societe as s"; $sql.= ", ".MAIN_DB_PREFIX."facture as f"; $sql.= ", ".MAIN_DB_PREFIX."facturedet as d"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."product as p ON p.rowid = d.fk_product"; +if (! empty($TSelectedCats)) { + $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'categorie_product as cp ON cp.fk_product=p.rowid'; +} $sql.= " WHERE f.fk_soc = s.rowid"; $sql.= ' AND f.entity IN ('.getEntity('facture').')'; $sql.= " AND f.fk_statut > 0"; $sql.= " AND d.fk_facture = f.rowid"; if ($id > 0) $sql.= " AND d.fk_product =".$id; +if (! empty($TSelectedCats)) { + $sql .= ' AND cp.fk_categorie IN ('.implode(',', $TSelectedCats) . ')'; +} if (!empty($startdate)) $sql.= " AND f.datef >= '".$db->idate($startdate)."'"; if (!empty($enddate))