diff --git a/htdocs/societe/consumption.php b/htdocs/societe/consumption.php
index fe9725c7d19..71510ed440a 100644
--- a/htdocs/societe/consumption.php
+++ b/htdocs/societe/consumption.php
@@ -42,16 +42,16 @@ $object = new Societe($db);
if ($socid > 0) $object->fetch($socid);
// Sort & Order fields
+$limit = GETPOST('limit')?GETPOST('limit','int'):$conf->liste_limit;
$sortfield = GETPOST("sortfield",'alpha');
$sortorder = GETPOST("sortorder",'alpha');
$page = GETPOST("page",'int');
-if ($page == -1) {
- $page = 0;
-}
-$offset = $conf->liste_limit * $page;
+if ($page == -1) { $page = 0; }
+$offset = $limit * $page;
+$pageprev = $page - 1;
+$pagenext = $page + 1;
if (! $sortorder) $sortorder='DESC';
if (! $sortfield) $sortfield='dateprint';
-$limit = GETPOST('limit')?GETPOST('limit','int'):$conf->liste_limit;
// Search fields
$sref=GETPOST("sref");
@@ -305,9 +305,19 @@ if ($month > 0) {
$end = dol_time_plus_duree($start,1,'y') - 1;
$sql.= " AND ".$dateprint." BETWEEN '".$db->idate($start)."' AND '".$db->idate($end)."'";
}
-if ($sref) $sql.= " AND ".$doc_number." LIKE '%".$sref."%'";
-if ($sprod_fulldescr) $sql.= " AND (d.description LIKE '%".$db->escape($sprod_fulldescr)."%' OR p.ref LIKE '%".$db->escape($sprod_fulldescr)."%' OR p.label LIKE '%".$db->escape($sprod_fulldescr)."%')";
+if ($sref) $sql.= " AND ".$doc_number." LIKE '%".$db->escape($sref)."%'";
+if ($sprod_fulldescr)
+{
+ $sql.= " AND (d.description LIKE '%".$db->escape($sprod_fulldescr)."%'";
+ if (GETPOST('type_element') != 'fichinter') $sql.= " OR p.ref LIKE '%".$db->escape($sprod_fulldescr)."%'";
+ if (GETPOST('type_element') != 'fichinter') $sql.= " OR p.label LIKE '%".$db->escape($sprod_fulldescr)."%'";
+ $sql.=")";
+}
$sql.= $db->order($sortfield,$sortorder);
+
+$resql=$db->query($sql);
+$totalnboflines = $db->num_rows($resql);
+
$sql.= $db->plimit($limit + 1, $offset);
//print $sql;
@@ -316,49 +326,56 @@ $typeElementString = $form->selectarray("type_element", $elementTypeArray, GETPO
$button = '';
$param="&sref=".$sref."&month=".$month."&year=".$year."&sprod_fulldescr=".$sprod_fulldescr."&socid=".$socid."&type_element=".$type_element;
-print_barre_liste($langs->trans('ProductsIntoElements').' '.$typeElementString.' '.$button, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder,'',$num, '', '');
if ($sql_select)
{
$resql=$db->query($sql);
if (!$resql) dol_print_error($db);
-}
-print '
'."\n";
-// Titles with sort buttons
-print '';
-print_liste_field_titre($langs->trans('Ref'),$_SERVER['PHP_SELF'],'doc_number','',$param,'align="left"',$sortfield,$sortorder);
-print_liste_field_titre($langs->trans('Date'),$_SERVER['PHP_SELF'],'dateprint','',$param,'align="center" width="150"',$sortfield,$sortorder);
-print_liste_field_titre($langs->trans('Status'),$_SERVER['PHP_SELF'],'fk_status','',$param,'align="center"',$sortfield,$sortorder);
-print_liste_field_titre($langs->trans('Product'),$_SERVER['PHP_SELF'],'','',$param,'align="left"',$sortfield,$sortorder);
-print_liste_field_titre($langs->trans('Quantity'),$_SERVER['PHP_SELF'],'prod_qty','',$param,'align="right"',$sortfield,$sortorder);
-print "
\n";
-// Filters
-print '';
-print '| ';
-print '';
-print ' | ';
-print ''; // date
-print $formother->select_month($month?$month:-1,'month',1);
-$formother->select_year($year?$year:-1,'year',1, 20, 1);
-print ' | ';
-print '';
-print ' | ';
-print '';
-print '';
-print ' | ';
-print '';
-$searchpitco=$form->showFilterAndCheckAddButtons(0);
-print $searchpitco;
-print ' | ';
-print '
';
-
-if ($sql_select)
-{
$var=true;
$num = $db->num_rows($resql);
+
+ $param="&socid=".$socid."&type_element=".$type_element;
+ if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.$limit;
+ if ($sprod_fulldescr) $param.= "&sprod_fulldescr=".urlencode($sprod_fulldescr);
+ if ($sref) $param.= "&sref=".urlencode($sref);
+ if ($month) $param.= "&month=".$month;
+ if ($year) $param.= "&year=".$year;
+ if ($optioncss != '') $param.='&optioncss='.$optioncss;
+
+ print_barre_liste($langs->trans('ProductsIntoElements').' '.$typeElementString.' '.$button, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder,'',$num, $totalnboflines, '', 0, '', '', $limit);
+
+ print ''."\n";
+ // Titles with sort buttons
+ print '';
+ print_liste_field_titre($langs->trans('Ref'),$_SERVER['PHP_SELF'],'doc_number','',$param,'align="left"',$sortfield,$sortorder);
+ print_liste_field_titre($langs->trans('Date'),$_SERVER['PHP_SELF'],'dateprint','',$param,'align="center" width="150"',$sortfield,$sortorder);
+ print_liste_field_titre($langs->trans('Status'),$_SERVER['PHP_SELF'],'fk_status','',$param,'align="center"',$sortfield,$sortorder);
+ print_liste_field_titre($langs->trans('Product'),$_SERVER['PHP_SELF'],'','',$param,'align="left"',$sortfield,$sortorder);
+ print_liste_field_titre($langs->trans('Quantity'),$_SERVER['PHP_SELF'],'prod_qty','',$param,'align="right"',$sortfield,$sortorder);
+ print "
\n";
+ // Filters
+ print '';
+ print '| ';
+ print '';
+ print ' | ';
+ print ''; // date
+ print $formother->select_month($month?$month:-1,'month',1);
+ $formother->select_year($year?$year:-1,'year',1, 20, 1);
+ print ' | ';
+ print '';
+ print ' | ';
+ print '';
+ print '';
+ print ' | ';
+ print '';
+ $searchpitco=$form->showFilterAndCheckAddButtons(0);
+ print $searchpitco;
+ print ' | ';
+ print '
';
+
$i = 0;
- while (($objp = $db->fetch_object($resql)) && $i < $conf->liste_limit )
+ while (($objp = $db->fetch_object($resql)) && $i < min($num, $limit))
{
$documentstatic->id=$objp->doc_id;
$documentstatic->ref=$objp->doc_number;
@@ -532,20 +549,42 @@ if ($sql_select)
print "\n";
$i++;
}
- if ($num > $conf->liste_limit) {
+
+ print "
";
+
+ if ($num > $limit) {
print_barre_liste('', $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder,'',$num);
}
$db->free($resql);
}
else if (empty($type_element) || $type_element == -1)
{
+ print_barre_liste($langs->trans('ProductsIntoElements').' '.$typeElementString.' '.$button, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder,'',$num, '', '');
+
+ print ''."\n";
+ // Titles with sort buttons
+ print '';
+ print_liste_field_titre($langs->trans('Ref'),$_SERVER['PHP_SELF'],'doc_number','',$param,'align="left"',$sortfield,$sortorder);
+ print_liste_field_titre($langs->trans('Date'),$_SERVER['PHP_SELF'],'dateprint','',$param,'align="center" width="150"',$sortfield,$sortorder);
+ print_liste_field_titre($langs->trans('Status'),$_SERVER['PHP_SELF'],'fk_status','',$param,'align="center"',$sortfield,$sortorder);
+ print_liste_field_titre($langs->trans('Product'),$_SERVER['PHP_SELF'],'','',$param,'align="left"',$sortfield,$sortorder);
+ print_liste_field_titre($langs->trans('Quantity'),$_SERVER['PHP_SELF'],'prod_qty','',$param,'align="right"',$sortfield,$sortorder);
+ print "
\n";
+
print '| '.$langs->trans("SelectElementAndClickRefresh").' |
';
+
+ print "
";
}
else {
+ print_barre_liste($langs->trans('ProductsIntoElements').' '.$typeElementString.' '.$button, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder,'',$num, '', '');
+
+ print ''."\n";
+
print '| '.$langs->trans("FeatureNotYetAvailable").' |
';
+
+ print "
";
}
-print "
";
print "";
llxFooter();