From 43e4f139d577903a4a86bf77796581a104f5fad4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcos=20Garci=CC=81a?= Date: Thu, 23 Aug 2012 08:21:32 +0200 Subject: [PATCH] Fixed bug #511 A pagination problem was causing duplicated records https://doliforge.org/tracker/?func=detail&aid=511&group_id=144 --- htdocs/compta/bank/account.php | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/htdocs/compta/bank/account.php b/htdocs/compta/bank/account.php index fc293e38130..fe85bad9818 100644 --- a/htdocs/compta/bank/account.php +++ b/htdocs/compta/bank/account.php @@ -5,6 +5,7 @@ * Copyright (C) 2004 Christophe Combelles * Copyright (C) 2005-2012 Regis Houssin * Copyright (C) 2010-2011 Juanjo Menent + * Copyright (C) 2012 Marcos GarcĂ­a * * 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.='&account='.$object->id; // Define transaction list navigation string - $navig=''; - $navig.='
'; - $nbpage=floor($total_lines/$viewline)+($total_lines % $viewline > 0?1:0); // Nombre de page total - //print 'nbpage='.$nbpage.' viewline='.$viewline.' limitsql='.$limitsql; + $navig = ''; + //print 'nbpage='.$totalPages.' viewline='.$viewline.' limitsql='.$limitsql; if ($limitsql > $viewline) $navig.=''.img_previous().''; $navig.= $langs->trans("Page")." "; // ' Page '; - $navig.=''; + $navig.=''; $navig.=''; $navig.=''; $navig.=''; $navig.=''; $navig.=''; - $navig.=''; + $navig.=''; $navig.=''; - $navig.='/'.$nbpage.' '; + $navig.='/'.$totalPages.' '; if ($total_lines > $limitsql ) { $navig.= ''.img_next().''; @@ -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;