Browse Source

Fix pagination/navigation on general ledger page

Laurent Destailleur 8 years ago
parent
commit
ca46ff8eb5

+ 135 - 114
htdocs/accountancy/bookkeeping/list.php

@@ -2,6 +2,7 @@
 /* Copyright (C) 2013-2016	Olivier Geffroy		<jeff@jeffinfo.com>
  * Copyright (C) 2013-2016	Florian Henry		<florian.henry@open-concept.pro>
  * Copyright (C) 2013-2016	Alexandre Spangaro	<aspangaro.dolibarr@gmail.com>
+ * Copyright (C) 2016	  	Laurent Destailleur <eldy@users.sourceforge.net>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -77,9 +78,18 @@ $search_mvt_label = GETPOST('search_mvt_label', 'alpha');
 $search_direction = GETPOST('search_direction', 'alpha');
 $search_ledger_code = GETPOST('search_ledger_code', 'alpha');
 
-$limit = GETPOST('limit') ? GETPOST('limit', 'int') : $conf->liste_limit;
-
+// Load variable for pagination
+$limit = GETPOST('limit') ? GETPOST('limit', 'int') : (empty($conf->global->ACCOUNTING_LIMIT_LIST_VENTILATION)?$conf->liste_limit:$conf->global->ACCOUNTING_LIMIT_LIST_VENTILATION);
+$sortfield = GETPOST('sortfield', 'alpha');
+$sortorder = GETPOST('sortorder', 'alpha');
+$page = GETPOST('page','int');
+if ($page < 0) { $page = 0; }
 $offset = $limit * $page;
+$pageprev = $page - 1;
+$pagenext = $page + 1;
+if ($sortorder == "") $sortorder = "ASC";
+if ($sortfield == "") $sortfield = "t.rowid";
+
 
 $object = new BookKeeping($db);
 
@@ -88,85 +98,21 @@ $formother = new FormOther($db);
 $form = new Form($db);
 
 
-
-
-if (empty($search_date_start)) {
-	$search_date_start = dol_mktime(0, 0, 0, 1, 1, dol_print_date(dol_now(), '%Y'));
-	$search_date_end = dol_mktime(0, 0, 0, 12, 31, dol_print_date(dol_now(), '%Y'));
+if (! isset($_POST['begin']) && ! isset($_GET['begin']) && ! isset($_POST['formfilteraction'])) {
+    $search_date_start = dol_mktime(0, 0, 0, 1, 1, dol_print_date(dol_now(), '%Y'));
+    $search_date_end = dol_mktime(0, 0, 0, 12, 31, dol_print_date(dol_now(), '%Y'));
 }
-if ($sortorder == "")
-	$sortorder = "ASC";
-if ($sortfield == "")
-	$sortfield = "t.rowid";
 
-$options = '';
-$filter = array ();
-if (! empty($search_date_start)) {
-	$filter['t.doc_date>='] = $search_date_start;
-	$options .= '&amp;date_startmonth=' . GETPOST('date_startmonth', 'int') . '&amp;date_startday=' . GETPOST('date_startday', 'int') . '&amp;date_startyear=' . GETPOST('date_startyear', 'int');
-}
-if (! empty($search_date_end)) {
-	$filter['t.doc_date<='] = $search_date_end;
-	$options .= '&amp;date_endmonth=' . GETPOST('date_endmonth', 'int') . '&amp;date_endday=' . GETPOST('date_endday', 'int') . '&amp;date_endyear=' . GETPOST('date_endyear', 'int');
-}
-if (! empty($search_doc_type)) {
-	$filter['t.doc_type'] = $search_doc_type;
-	$options .= '&amp;search_doc_type=' . $search_doc_type;
-}
-if (! empty($search_doc_date)) {
-	$filter['t.doc_date'] = $search_doc_date;
-	$options .= '&amp;doc_datemonth=' . GETPOST('doc_datemonth', 'int') . '&amp;doc_dateday=' . GETPOST('doc_dateday', 'int') . '&amp;doc_dateyear=' . GETPOST('doc_dateyear', 'int');
-}
-if (! empty($search_doc_ref)) {
-	$filter['t.doc_ref'] = $search_doc_ref;
-	$options .= '&amp;search_doc_ref=' . $search_doc_ref;
-}
-if (! empty($search_accountancy_code)) {
-	$filter['t.numero_compte'] = $search_accountancy_code;
-	$options .= '&amp;search_accountancy_code=' . $search_accountancy_code;
-}
-if (! empty($search_accountancy_code_start)) {
-	$filter['t.numero_compte>='] = $search_accountancy_code_start;
-	$options .= '&amp;search_accountancy_code_start=' . $search_accountancy_code_start;
-}
-if (! empty($search_accountancy_code_end)) {
-	$filter['t.numero_compte<='] = $search_accountancy_code_end;
-	$options .= '&amp;search_accountancy_code_end=' . $search_accountancy_code_end;
-}
-if (! empty($search_accountancy_aux_code)) {
-	$filter['t.code_tiers'] = $search_accountancy_aux_code;
-	$options .= '&amp;search_accountancy_aux_code=' . $search_accountancy_aux_code;
-}
-if (! empty($search_accountancy_aux_code_start)) {
-	$filter['t.code_tiers>='] = $search_accountancy_aux_code_start;
-	$options .= '&amp;search_accountancy_aux_code_start=' . $search_accountancy_aux_code_start;
-}
-if (! empty($search_accountancy_aux_code_end)) {
-	$filter['t.code_tiers<='] = $search_accountancy_aux_code_end;
-	$options .= '&amp;search_accountancy_aux_code_end=' . $search_accountancy_aux_code_end;
-}
-if (! empty($search_mvt_label)) {
-	$filter['t.label_compte'] = $search_mvt_label;
-	$options .= '&amp;search_mvt_label=' . $search_mvt_label;
-}
-if (! empty($search_direction)) {
-	$filter['t.sens'] = $search_direction;
-	$options .= '&amp;search_direction=' . $search_direction;
-}
-if (! empty($search_ledger_code)) {
-	$filter['t.code_journal'] = $search_ledger_code;
-	$options .= '&amp;search_ledger_code=' . $search_ledger_code;
-}
-if (! empty($search_mvt_num)) {
-	$filter['t.piece_num'] = $search_mvt_num;
-	$options .= '&amp;search_mvt_num=' . $search_mvt_num;
-}
+
 
 
 /*
  * Action
  */
 
+if (GETPOST('cancel')) { $action='list'; $massaction=''; }
+if (! GETPOST('confirmmassaction') && $massaction != 'presend' && $massaction != 'confirm_presend') { $massaction=''; }
+
 if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter.x") || GETPOST("button_removefilter")) // All tests are required to be compatible with all browsers
 {
 	$search_mvt_num = '';
@@ -247,30 +193,96 @@ if ($action == 'delmouvconfirm') {
 		exit;
 	}
 }
-if ($action == 'export_csv') {
 
-	include DOL_DOCUMENT_ROOT . '/accountancy/class/accountancyexport.class.php';
 
-	$result = $object->fetchAll($sortorder, $sortfield, 0, 0, $filter);
-	if ($result < 0)
-	{
-		setEventMessages($object->error, $object->errors, 'errors');
-	}
-	else
-	{
-		$accountancyexport = new AccountancyExport($db);
-		$accountancyexport->export($object->lines);
-		if (!empty($accountancyexport->errors)) {
-			setEventMessages('', $accountancyexport->errors, 'errors');
-		}
-		exit;
-	}
-}
 
 /*
  * View
  */
 
+$param = '';
+$filter = array ();
+if (! empty($search_date_start)) {
+    $filter['t.doc_date>='] = $search_date_start;
+    $param .= '&date_startmonth=' . GETPOST('date_startmonth', 'int') . '&date_startday=' . GETPOST('date_startday', 'int') . '&date_startyear=' . GETPOST('date_startyear', 'int');
+}
+if (! empty($search_date_end)) {
+    $filter['t.doc_date<='] = $search_date_end;
+    $param .= '&date_endmonth=' . GETPOST('date_endmonth', 'int') . '&date_endday=' . GETPOST('date_endday', 'int') . '&date_endyear=' . GETPOST('date_endyear', 'int');
+}
+if (! empty($search_doc_type)) {
+    $filter['t.doc_type'] = $search_doc_type;
+    $param .= '&search_doc_type=' . $search_doc_type;
+}
+if (! empty($search_doc_date)) {
+    $filter['t.doc_date'] = $search_doc_date;
+    $param .= '&doc_datemonth=' . GETPOST('doc_datemonth', 'int') . '&doc_dateday=' . GETPOST('doc_dateday', 'int') . '&doc_dateyear=' . GETPOST('doc_dateyear', 'int');
+}
+if (! empty($search_doc_ref)) {
+    $filter['t.doc_ref'] = $search_doc_ref;
+    $param .= '&search_doc_ref=' . $search_doc_ref;
+}
+if (! empty($search_accountancy_code)) {
+    $filter['t.numero_compte'] = $search_accountancy_code;
+    $param .= '&search_accountancy_code=' . $search_accountancy_code;
+}
+if (! empty($search_accountancy_code_start)) {
+    $filter['t.numero_compte>='] = $search_accountancy_code_start;
+    $param .= '&search_accountancy_code_start=' . $search_accountancy_code_start;
+}
+if (! empty($search_accountancy_code_end)) {
+    $filter['t.numero_compte<='] = $search_accountancy_code_end;
+    $param .= '&search_accountancy_code_end=' . $search_accountancy_code_end;
+}
+if (! empty($search_accountancy_aux_code)) {
+    $filter['t.code_tiers'] = $search_accountancy_aux_code;
+    $param .= '&search_accountancy_aux_code=' . $search_accountancy_aux_code;
+}
+if (! empty($search_accountancy_aux_code_start)) {
+    $filter['t.code_tiers>='] = $search_accountancy_aux_code_start;
+    $param .= '&search_accountancy_aux_code_start=' . $search_accountancy_aux_code_start;
+}
+if (! empty($search_accountancy_aux_code_end)) {
+    $filter['t.code_tiers<='] = $search_accountancy_aux_code_end;
+    $param .= '&search_accountancy_aux_code_end=' . $search_accountancy_aux_code_end;
+}
+if (! empty($search_mvt_label)) {
+    $filter['t.label_compte'] = $search_mvt_label;
+    $param .= '&search_mvt_label=' . $search_mvt_label;
+}
+if (! empty($search_direction)) {
+    $filter['t.sens'] = $search_direction;
+    $param .= '&search_direction=' . $search_direction;
+}
+if (! empty($search_ledger_code)) {
+    $filter['t.code_journal'] = $search_ledger_code;
+    $param .= '&search_ledger_code=' . $search_ledger_code;
+}
+if (! empty($search_mvt_num)) {
+    $filter['t.piece_num'] = $search_mvt_num;
+    $param .= '&search_mvt_num=' . $search_mvt_num;
+}
+
+if ($action == 'export_csv') {
+
+    include DOL_DOCUMENT_ROOT . '/accountancy/class/accountancyexport.class.php';
+
+    $result = $object->fetchAll($sortorder, $sortfield, 0, 0, $filter);
+    if ($result < 0)
+    {
+        setEventMessages($object->error, $object->errors, 'errors');
+    }
+    else
+    {
+        $accountancyexport = new AccountancyExport($db);
+        $accountancyexport->export($object->lines);
+        if (!empty($accountancyexport->errors)) {
+            setEventMessages('', $accountancyexport->errors, 'errors');
+        }
+        exit;
+    }
+}
+
 $title_page = $langs->trans("Bookkeeping");
 if ($search_date_start || $search_date_end) $title_page .= ' ' . dol_print_date($search_date_start, 'day') . ' - ' . dol_print_date($search_date_end, 'day');
 llxHeader('', $title_page);
@@ -285,6 +297,7 @@ if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) {
 	}
 }
 
+// TODO Do not use this
 $result = $object->fetchAll($sortorder, $sortfield, $limit, $offset, $filter);
 if ($result < 0) {
 	setEventMessages($object->error, $object->errors, 'errors');
@@ -325,33 +338,43 @@ if ($action == 'delbookkeepingyear') {
 	print $formconfirm;
 }
 
-print_barre_liste($title_page, $page, $_SERVER["PHP_SELF"], $options, $sortfield, $sortorder, '', $result, $nbtotalofrecords, 'title_accountancy');
+//$param='';    param started before
+if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.$contextpage;
+if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.$limit;
+
+print '<form method="POST" id="searchFormList" action="' . $_SERVER["PHP_SELF"] . '">';
+print '<input type="hidden" name="action" value="list">';
+if ($optioncss != '') print '<input type="hidden" name="optioncss" value="'.$optioncss.'">';
+print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
+print '<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
+print '<input type="hidden" name="sortfield" value="'.$sortfield.'">';
+print '<input type="hidden" name="sortorder" value="'.$sortorder.'">';
+
+print_barre_liste($title_page, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $result, $nbtotalofrecords, 'title_accountancy', 0, '', '', $limit);
 
-print '<form method="GET" id="searchFormList" action="' . $_SERVER["PHP_SELF"] . '">';
 print '<div class="tabsAction">' . "\n";
 print '<div class="inline-block divButAction"><a class="butAction" href="./listbyaccount.php">' . $langs->trans("Bookkeeping") . ' ' . strtolower($langs->trans("By")) . ' ' . strtolower($langs->trans("AccountAccounting")) . '</a></div>';
 print '<div class="inline-block divButAction"><a class="butAction" href="./card.php?action=create">' . $langs->trans("NewAccountingMvt") . '</a></div>';
-print '<div class="inline-block divButAction"><input type="submit" name="button_export_csv" class="butAction" value="' . $langs->trans("Export") . '" /></div>';
-print '<div class="inline-block divButAction"><input type="submit" name="button_delmvt" class="butActionDelete" value="' . $langs->trans("DelBookKeeping") . '" /></div>';
+print '<div class="inline-block divButAction"><a class="butAction" name="button_export_csv" href="'.$_SERVER["PHP_SELF"].'?action=export_csv'.($param?'&'.$param:'').'">' . $langs->trans("Export") . '</a></div>';
+print '<div class="inline-block divButAction"><a class="butActionDelete" name="button_delmvt" href="'.$_SERVER["PHP_SELF"].'?action=delbookkeepingyear'.($param?'&'.$param:'').'">' . $langs->trans("DelBookKeeping") . '</a></div>';
 
 print '</div>';
 
 print '<table class="noborder" width="100%">';
 print '<tr class="liste_titre">';
-print_liste_field_titre($langs->trans("NumPiece"), $_SERVER['PHP_SELF'], "t.piece_num", "", $options, "", $sortfield, $sortorder);
-print_liste_field_titre($langs->trans("Docdate"), $_SERVER['PHP_SELF'], "t.doc_date", "", $options, 'align="center"', $sortfield, $sortorder);
-print_liste_field_titre($langs->trans("Docref"), $_SERVER['PHP_SELF'], "t.doc_ref", "", $options, "", $sortfield, $sortorder);
-print_liste_field_titre($langs->trans("AccountAccountingShort"), $_SERVER['PHP_SELF'], "t.numero_compte", "", $options, "", $sortfield, $sortorder);
-print_liste_field_titre($langs->trans("Code_tiers"), $_SERVER['PHP_SELF'], "t.code_tiers", "", $options, "", $sortfield, $sortorder);
-print_liste_field_titre($langs->trans("Labelcompte"), $_SERVER['PHP_SELF'], "t.label_compte", "", $options, "", $sortfield, $sortorder);
-print_liste_field_titre($langs->trans("Debit"), $_SERVER['PHP_SELF'], "t.debit", "", $options, 'align="right"', $sortfield, $sortorder);
-print_liste_field_titre($langs->trans("Credit"), $_SERVER['PHP_SELF'], "t.credit", "", $options, 'align="right"', $sortfield, $sortorder);
-print_liste_field_titre($langs->trans("Codejournal"), $_SERVER['PHP_SELF'], "t.code_journal", "", $options, 'align="right"', $sortfield, $sortorder);
-print_liste_field_titre('', $_SERVER["PHP_SELF"], "", $options, "", 'width="60" align="center"', $sortfield, $sortorder);
+print_liste_field_titre($langs->trans("NumPiece"), $_SERVER['PHP_SELF'], "t.piece_num", "", $param, "", $sortfield, $sortorder);
+print_liste_field_titre($langs->trans("Docdate"), $_SERVER['PHP_SELF'], "t.doc_date", "", $param, 'align="center"', $sortfield, $sortorder);
+print_liste_field_titre($langs->trans("Docref"), $_SERVER['PHP_SELF'], "t.doc_ref", "", $param, "", $sortfield, $sortorder);
+print_liste_field_titre($langs->trans("AccountAccountingShort"), $_SERVER['PHP_SELF'], "t.numero_compte", "", $param, "", $sortfield, $sortorder);
+print_liste_field_titre($langs->trans("Code_tiers"), $_SERVER['PHP_SELF'], "t.code_tiers", "", $param, "", $sortfield, $sortorder);
+print_liste_field_titre($langs->trans("Labelcompte"), $_SERVER['PHP_SELF'], "t.label_compte", "", $param, "", $sortfield, $sortorder);
+print_liste_field_titre($langs->trans("Debit"), $_SERVER['PHP_SELF'], "t.debit", "", $param, 'align="right"', $sortfield, $sortorder);
+print_liste_field_titre($langs->trans("Credit"), $_SERVER['PHP_SELF'], "t.credit", "", $param, 'align="right"', $sortfield, $sortorder);
+print_liste_field_titre($langs->trans("Codejournal"), $_SERVER['PHP_SELF'], "t.code_journal", "", $param, 'align="right"', $sortfield, $sortorder);
+print_liste_field_titre('', $_SERVER["PHP_SELF"], "", $param, "", 'width="60" align="center"', $sortfield, $sortorder);
 print "</tr>\n";
 
 print '<tr class="liste_titre">';
-print '<form action="' . $_SERVER["PHP_SELF"] . '" method="GET">';
 print '<td><input type="text" name="search_mvt_num" size="6" value="' . $search_mvt_num . '"></td>';
 print '<td class="liste_titre center">';
 print $langs->trans('From') . ': ';
@@ -375,18 +398,16 @@ print '<br>';
 print $langs->trans('to');
 print $formventilation->select_auxaccount($search_accountancy_aux_code_end, 'search_accountancy_aux_code_end', 1);
 print '</td>';
-
 print '<td class="liste_titre">';
 print '<input type="text" size="7" class="flat" name="search_mvt_label" value="' . $search_mvt_label . '"/>';
 print '</td>';
 print '<td>&nbsp;</td>';
 print '<td>&nbsp;</td>';
 print '<td  align="right"><input type="text" name="search_ledger_code" size="3" value="' . $search_ledger_code . '"></td>';
-print '<td align="right" colspan="2" class="liste_titre">';
+print '<td align="right" class="liste_titre">';
 $searchpitco=$form->showFilterAndCheckAddButtons(0);
 print $searchpitco;
 print '</td>';
-
 print '</tr>';
 
 $var = True;
@@ -394,13 +415,13 @@ $var = True;
 $total_debit = 0;
 $total_credit = 0;
 
-foreach ( $object->lines as $line ) {
+foreach ($object->lines as $line ) {
 	$var = ! $var;
 
 	$total_debit += $line->debit;
 	$total_credit += $line->credit;
 
-	print '<tr'. $bc[$var].'>';
+	print '<tr '. $bc[$var].'>';
 
 	print '<td><a href="./card.php?piece_num=' . $line->piece_num . '">' . $line->piece_num . '</a></td>';
 	print '<td align="center">' . dol_print_date($line->doc_date, 'day') . '</td>';
@@ -413,7 +434,7 @@ foreach ( $object->lines as $line ) {
 	print '<td align="center">' . $line->code_journal . '</td>';
 	print '<td align="center">';
 	print '<a href="./card.php?piece_num=' . $line->piece_num . '">' . img_edit() . '</a>&nbsp;';
-	print '<a href="' . $_SERVER['PHP_SELF'] . '?action=delmouv&mvt_num=' . $line->piece_num . $options . '&page=' . $page . '">' . img_delete() . '</a>';
+	print '<a href="' . $_SERVER['PHP_SELF'] . '?action=delmouv&mvt_num=' . $line->piece_num . $param . '&page=' . $page . '">' . img_delete() . '</a>';
 	print '</td>';
 	print "</tr>\n";
 }
@@ -426,13 +447,13 @@ print '</td>';
 print '<td  align="right">';
 print price($total_credit);
 print '</td>';
-print '<td colspan="2"></td>';
+print '<td></td>';
 print '</tr>';
 
 print "</table>";
+
 print '</form>';
 
 llxFooter();
 
-
-$db->close();
+$db->close();

+ 1 - 0
htdocs/accountancy/customer/list.php

@@ -4,6 +4,7 @@
  * Copyright (C) 2014-2015	Ari Elbaz (elarifr)	<github@accedinfo.com>
  * Copyright (C) 2013-2014	Florian Henry		<florian.henry@open-concept.pro>
  * Copyright (C) 2014	  	Juanjo Menent		<jmenent@2byte.es>
+ * Copyright (C) 2016	  	Laurent Destailleur <eldy@users.sourceforge.net>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by

+ 1 - 0
htdocs/accountancy/supplier/list.php

@@ -4,6 +4,7 @@
  * Copyright (C) 2014-2015	Ari Elbaz (elarifr)		<github@accedinfo.com>
  * Copyright (C) 2013-2014	Florian Henry			<florian.henry@open-concept.pro>
  * Copyright (C) 2014		Juanjo Menent			<jmenent@2byte.es>s
+ * Copyright (C) 2016	  	Laurent Destailleur     <eldy@users.sourceforge.net>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by