A pagination problem was causing duplicated records
https://doliforge.org/tracker/?func=detail&aid=511&group_id=144
This commit is contained in:
Marcos García 2012-08-23 08:21:32 +02:00
parent 4a5d89e6cc
commit 43e4f139d5

View File

@ -5,6 +5,7 @@
* Copyright (C) 2004 Christophe Combelles <ccomb@free.fr>
* Copyright (C) 2005-2012 Regis Houssin <regis@dolibarr.fr>
* Copyright (C) 2010-2011 Juanjo Menent <jmenent@@2byte.es>
* Copyright (C) 2012 Marcos García <marcosgdf@gmail.com>
*
* 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
@ -210,7 +211,7 @@ if ($id > 0 || ! empty($ref))
$mode_search = 1;
}
$sql = "SELECT count(*) as nb";
$sql = "SELECT count(*) as count";
$sql.= " FROM ".MAIN_DB_PREFIX."bank_account as ba";
$sql.= ", ".MAIN_DB_PREFIX."bank as b";
if ($mode_search)
@ -228,22 +229,22 @@ if ($id > 0 || ! empty($ref))
if ($result)
{
$obj = $db->fetch_object($result);
$nbline = $obj->nb;
$nbline = $obj->count;
$total_lines = $nbline;
if ($nbline > $viewline ) $limit = $nbline - $viewline ;
else $limit = $viewline;
$db->free($result);
}
else
{
dol_print_error($db);
}
//Total pages
$totalPages = ceil($total_lines/$viewline);
if ($page > 0)
{
$limitsql = $nbline - ($page * $viewline);
$limitsql = ($totalPages - $page) * $viewline;
if ($limitsql < $viewline) $limitsql = $viewline;
$nbline = $limitsql;
}
@ -284,21 +285,19 @@ if ($id > 0 || ! empty($ref))
$param.='&amp;account='.$object->id;
// Define transaction list navigation string
$navig='';
$navig.='<form action="'.$_SERVER["PHP_SELF"].'" name="newpage" method="GET">';
$nbpage=floor($total_lines/$viewline)+($total_lines % $viewline > 0?1:0); // Nombre de page total
//print 'nbpage='.$nbpage.' viewline='.$viewline.' limitsql='.$limitsql;
$navig = '<form action="'.$_SERVER["PHP_SELF"].'" name="newpage" method="GET">';
//print 'nbpage='.$totalPages.' viewline='.$viewline.' limitsql='.$limitsql;
if ($limitsql > $viewline) $navig.='<a href="account.php?'.$param.'&amp;page='.($page+1).'">'.img_previous().'</a>';
$navig.= $langs->trans("Page")." "; // ' Page ';
$navig.='<input type="text" name="negpage" size="1" class="flat" value="'.($nbpage-$page).'">';
$navig.='<input type="text" name="negpage" size="1" class="flat" value="'.($totalPages-$page).'">';
$navig.='<input type="hidden" name="req_nb" value="'.$req_nb.'">';
$navig.='<input type="hidden" name="req_desc" value="'.GETPOST("req_desc").'">';
$navig.='<input type="hidden" name="req_debit" value="'.GETPOST("req_debit").'">';
$navig.='<input type="hidden" name="req_credit" value="'.GETPOST("req_credit").'">';
$navig.='<input type="hidden" name="thirdparty" value="'.$thirdparty.'">';
$navig.='<input type="hidden" name="nbpage" value="'.$nbpage.'">';
$navig.='<input type="hidden" name="nbpage" value="'.$totalPages.'">';
$navig.='<input type="hidden" name="id" value="'.$object->id.'">';
$navig.='/'.$nbpage.' ';
$navig.='/'.$totalPages.' ';
if ($total_lines > $limitsql )
{
$navig.= '<a href="'.$_SERVER["PHP_SELF"].'?'.$param.'&amp;page='.($page-1).'">'.img_next().'</a>';
@ -481,7 +480,7 @@ if ($id > 0 || ! empty($ref))
{
$objp = $db->fetch_object($result);
$total = price2num($total + $objp->amount,'MT');
if ($i >= ($nbline - $viewline))
if ($i >= ($viewline * (($totalPages-$page)-1)))
{
$var=!$var;