diff --git a/htdocs/adherents/stats/index.php b/htdocs/adherents/stats/index.php index dc5bf732103..83ceea04698 100644 --- a/htdocs/adherents/stats/index.php +++ b/htdocs/adherents/stats/index.php @@ -170,9 +170,9 @@ $data = $stats->getAllByYear(); print ''; print ''; print ''; -print ''; -print ''; -print ''; +print ''; +print ''; +print ''; print ''; $oldyear=0; diff --git a/htdocs/langs/en_US/products.lang b/htdocs/langs/en_US/products.lang index 8c850fdabd3..da9367f2e7b 100644 --- a/htdocs/langs/en_US/products.lang +++ b/htdocs/langs/en_US/products.lang @@ -312,3 +312,4 @@ IncludingProductWithTag=Including product/service with tag DefaultPriceRealPriceMayDependOnCustomer=Default price, real price may depend on customer WarningSelectOneDocument=Please select at least one document DefaultUnitToShow=Units +NbOfQtyInProposals=Qty in proposals \ No newline at end of file diff --git a/htdocs/product/popuprop.php b/htdocs/product/popuprop.php index aad606627cb..ee04299cd4c 100644 --- a/htdocs/product/popuprop.php +++ b/htdocs/product/popuprop.php @@ -110,9 +110,12 @@ $h++; dol_fiche_head($head,'popularityprop',$langs->trans("Statistics")); +// Array of liens to show +$infoprod=array(); -$sql = "SELECT p.rowid, p.label, p.ref, p.fk_product_type as type, count(*) as c"; +// Add lines for proposals +$sql = "SELECT p.rowid, p.label, p.ref, p.fk_product_type as type, SUM(pd.qty) as c"; $sql.= " FROM ".MAIN_DB_PREFIX."propaldet as pd"; $sql.= ", ".MAIN_DB_PREFIX."product as p"; $sql.= ' WHERE p.entity IN ('.getEntity('product', 1).')'; @@ -120,7 +123,7 @@ $sql.= " AND p.rowid = pd.fk_product"; if ($type !== '') { $sql.= " AND fk_product_type = ".$type; } -$sql.= " GROUP BY (p.rowid)"; +$sql.= " GROUP BY p.rowid, p.label, p.ref, p.fk_product_type"; $result=$db->query($sql); if ($result) @@ -131,68 +134,82 @@ if ($result) $sql.= $db->order($sortfield,$sortorder); $sql.= $db->plimit($limit+1, $offset); -$result=$db->query($sql); -if ($result) +$resql=$db->query($sql); +if ($resql) { - $num = $db->num_rows($result); - $i = 0; + $num = $db->num_rows($resql); + $i = 0; - print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, "", $num, $totalnboflines, ''); - - print '
'.$langs->trans("Year").''.$langs->trans("NbOfSubscriptions").''.$langs->trans("AmountTotal").''.$langs->trans("AmountAverage").''.$langs->trans("NbOfSubscriptions").''.$langs->trans("AmountTotal").''.$langs->trans("AmountAverage").'
'; - - print ""; - print_liste_field_titre($langs->trans('Ref'), $_SERVER["PHP_SELF"], 'p.ref', '', $param, '', $sortfield, $sortorder); - print_liste_field_titre($langs->trans('Type'), $_SERVER["PHP_SELF"], 'p.fk_product_type', '', $param, '', $sortfield, $sortorder); - print_liste_field_titre($langs->trans('Label'), $_SERVER["PHP_SELF"], 'p.label', '', $param, '', $sortfield, $sortorder); - print_liste_field_titre($langs->trans('NbOfProposals'), $_SERVER["PHP_SELF"], 'c', '', $param, 'align="right"', $sortfield, $sortorder); - print "\n"; + $var=True; + while ($i < $num) + { + $objp = $db->fetch_object($resql); + + $infoprod[$objp->rowid]=array('type'=>$objp->type, 'ref'=>$objp->ref, 'label'=>$objp->label); + $infoprod[$objp->rowid]['nblineproposal']=$objp->c; + + $i++; + } + $db->free($resql); +} +else +{ + dol_print_error($db); +} +//var_dump($infoprod); - $var=True; - while ($i < $num) +print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, "", $num, $totalnboflines, ''); + +print '
'; + +print ""; +print_liste_field_titre($langs->trans('Ref'), $_SERVER["PHP_SELF"], 'p.ref', '', $param, '', $sortfield, $sortorder); +print_liste_field_titre($langs->trans('Type'), $_SERVER["PHP_SELF"], 'p.fk_product_type', '', $param, '', $sortfield, $sortorder); +print_liste_field_titre($langs->trans('Label'), $_SERVER["PHP_SELF"], 'p.label', '', $param, '', $sortfield, $sortorder); +print_liste_field_titre($langs->trans('NbOfQtyInProposals'), $_SERVER["PHP_SELF"], 'c', '', $param, 'align="right"', $sortfield, $sortorder); +print "\n"; + +$var=True; +foreach($infoprod as $prodid => $vals) +{ + // Multilangs + if (! empty($conf->global->MAIN_MULTILANGS)) // si l'option est active { - $objp = $db->fetch_object($result); + $sql = "SELECT label"; + $sql.= " FROM ".MAIN_DB_PREFIX."product_lang"; + $sql.= " WHERE fk_product=".$prodid; + $sql.= " AND lang='". $langs->getDefaultLang() ."'"; + $sql.= " LIMIT 1"; - // Multilangs - if (! empty($conf->global->MAIN_MULTILANGS)) // si l'option est active + $resultp = $db->query($sql); + if ($resultp) { - $sql = "SELECT label"; - $sql.= " FROM ".MAIN_DB_PREFIX."product_lang"; - $sql.= " WHERE fk_product=".$objp->rowid; - $sql.= " AND lang='". $langs->getDefaultLang() ."'"; - $sql.= " LIMIT 1"; - - $resultp = $db->query($sql); - if ($resultp) - { - $objtp = $db->fetch_object($resultp); - if (! empty($objtp->label)) $objp->label = $objtp->label; - } + $objtp = $db->fetch_object($resultp); + if (! empty($objtp->label)) $vals['label'] = $objtp->label; } - - $var=!$var; - print ""; - print ''; - print ''; - print ''; - print ''; - print "\n"; - $i++; } - $db->free(); - - print "
'; - if ($objp->type==1) print img_object($langs->trans("ShowService"),"service"); - else print img_object($langs->trans("ShowProduct"),"product"); - print " "; - print $objp->ref.''; - if ($objp->type==1) print $langs->trans("Service"); - else print $langs->trans("Product"); - print ''.$objp->label.''.$objp->c.'
"; + $var=!$var; + print ""; + print ''; + if ($vals['type'] == 1) print img_object($langs->trans("ShowService"),"service"); + else print img_object($langs->trans("ShowProduct"),"product"); + print " "; + print $vals['ref'].''; + print ''; + if ($vals['type'] == 1) print $langs->trans("Service"); + else print $langs->trans("Product"); + print ''; + print ''.$vals['label'].''; + print ''.$vals['nblineproposal'].''; + print "\n"; + $i++; } +print ""; + + dol_fiche_end();