| [ Index ] |
|
Code source de Dolibarr 2.0.1 |
1 <?php 2 /* Copyright (C) 2001-2003 Rodolphe Quiedeville <rodolphe@quiedeville.org> 3 * Copyright (C) 2004-2005 Laurent Destailleur <eldy@users.sourceforge.net> 4 * 5 * This program is free software; you can redistribute it and/or modify 6 * it under the terms of the GNU General Public License as published by 7 * the Free Software Foundation; either version 2 of the License, or 8 * (at your option) any later version. 9 * 10 * This program is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU General Public License for more details. 14 * 15 * You should have received a copy of the GNU General Public License 16 * along with this program; if not, write to the Free Software 17 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 * 19 * $Id: releve.php,v 1.27 2005/11/10 21:04:46 eldy Exp $ 20 * $Source: /cvsroot/dolibarr/dolibarr/htdocs/compta/bank/releve.php,v $ 21 */ 22 23 /** 24 \file htdocs/compta/bank/releve.php 25 \ingroup banque 26 \brief Page d'affichage d'un relevé 27 \version $Revision: 1.27 $ 28 */ 29 30 require ("./pre.inc.php"); 31 32 $langs->load("companies"); 33 34 35 if (!$user->rights->banque->lire) 36 accessforbidden(); 37 38 39 if ($_GET["action"] == 'dvnext') 40 { 41 $ac = new Account($db); 42 $ac->datev_next($_GET["dvid"]); 43 } 44 45 if ($_GET["action"] == 'dvprev') 46 { 47 $ac = new Account($db); 48 $ac->datev_previous($_GET["dvid"]); 49 } 50 51 52 llxHeader(); 53 54 55 // Récupère info du compte 56 $acct = new Account($db); 57 $acct->fetch($_GET["account"]); 58 59 if (! isset($_GET["num"])) 60 { 61 /* 62 * Vue liste tous relevés confondus 63 * 64 */ 65 if ($page == -1) { $page = 0 ; } 66 67 $limit = $conf->liste_limit; 68 $offset = $limit * $page ; 69 $pageprev = $page - 1; 70 $pagenext = $page + 1; 71 72 $sql = "SELECT distinct(b.num_releve) as numr"; 73 $sql .= " FROM ".MAIN_DB_PREFIX."bank as b"; 74 $sql .= " WHERE fk_account = ".$_GET["account"]; 75 $sql .= " ORDER BY numr DESC"; 76 // $sql .= $db->plimit($limit,$offset); // retrait de la limite tant qu'il n'y a pas de pagination 77 78 $result = $db->query($sql); 79 if ($result) 80 { 81 $var=True; 82 $numrows = $db->num_rows($result); 83 $i = 0; 84 85 print_barre_liste($langs->trans("AccountStatements").", ".$langs->trans("BankAccount")." : <a href=\"account.php?account=".$acct->id."\">".$acct->label."</a>", $page, "releve.php","&account=".$_GET["account"],$sortfield,$sortorder,'',$numrows); 86 print '<br>'; 87 88 print '<table class="noborder" width="100%">'; 89 print "<tr class=\"liste_titre\">"; 90 print '<td>'.$langs->trans("AccountStatement").'</td></tr>'; 91 92 //while ($i < min($numrows,$limit)) // retrait de la limite tant qu'il n'y a pas de pagination 93 while ($i < min($numrows,$limit)) 94 { 95 $objp = $db->fetch_object($result); 96 $var=!$var; 97 if (! isset($objp->numr)) 98 { 99 // 100 } 101 else 102 { 103 print "<tr $bc[$var]><td><a href=\"releve.php?num=$objp->numr&account=".$_GET["account"]."\">$objp->numr</a></td></tr>\n"; 104 } 105 $i++; 106 } 107 print "</table>\n"; 108 } 109 110 111 } 112 else 113 { 114 /** 115 * Affiche liste ecritures d'un releve 116 */ 117 if ($_GET["rel"] == 'prev') 118 { 119 // Recherche valeur pour num = numéro relevé précédent 120 $sql = "SELECT distinct(num_releve) as num"; 121 $sql.= " FROM ".MAIN_DB_PREFIX."bank"; 122 $sql.= " WHERE num_releve < ".$_GET["num"]." AND fk_account = ".$_GET["account"]; 123 $sql.= " ORDER BY num_releve DESC"; 124 $result = $db->query($sql); 125 if ($result) 126 { 127 $var=True; 128 $numrows = $db->num_rows($result); 129 $i = 0; 130 if ($numrows > 0) 131 { 132 $obj = $db->fetch_object($result); 133 $num = $obj->num; 134 } 135 } 136 } 137 elseif ($_GET["rel"] == 'next') 138 { 139 // Recherche valeur pour num = numéro relevé précédent 140 $sql = "SELECT distinct(num_releve) as num"; 141 $sql.= " FROM ".MAIN_DB_PREFIX."bank"; 142 $sql.= " WHERE num_releve > ".$_GET["num"]." AND fk_account = ".$_GET["account"]; 143 $sql.= " ORDER BY num_releve ASC"; 144 $result = $db->query($sql); 145 if ($result) 146 { 147 $var=True; 148 $numrows = $db->num_rows($result); 149 $i = 0; 150 if ($numrows > 0) 151 { 152 $obj = $db->fetch_object($result); 153 $num = $obj->num; 154 } 155 } 156 } 157 else { 158 // On veut le relevé num 159 $num=$_GET["num"]; 160 } 161 $ve=$_GET["ve"]; 162 163 $mesprevnext ="<a href=\"releve.php?rel=prev&num=$num&ve=$ve&account=$acct->id\">".img_previous()."</a> "; 164 $mesprevnext.= $langs->trans("AccountStatement")." $num"; 165 $mesprevnext.=" <a href=\"releve.php?rel=next&num=$num&ve=$ve&account=$acct->id\">".img_next()."</a>"; 166 print_fiche_titre($langs->trans("AccountStatement").' '.$num.', '.$langs->trans("BankAccount").' : <a href="account.php?account='.$acct->id.'">'.$acct->label.'</a>',$mesprevnext); 167 print '<br>'; 168 169 print "<form method=\"post\" action=\"releve.php\">"; 170 print "<input type=\"hidden\" name=\"action\" value=\"add\">"; 171 172 print '<table class="border" width="100%">'; 173 print '<tr class="liste_titre">'; 174 print '<td align="center">'.$langs->trans("DateOperationShort").'</td>'; 175 print '<td align="center">'.$langs->trans("DateValueShort").'</td>'; 176 print '<td>'.$langs->trans("Type").'</td>'; 177 print '<td>'.$langs->trans("Description").'</td>'; 178 print '<td align="right" width="60">'.$langs->trans("Debit").'</td>'; 179 print '<td align="right" width="60">'.$langs->trans("Credit").'</td>'; 180 print '<td align="right">'.$langs->trans("Balance").'</td>'; 181 print '<td> </td>'; 182 print "</tr>\n"; 183 184 185 $sql = "SELECT sum(amount) FROM ".MAIN_DB_PREFIX."bank WHERE num_releve < $num AND fk_account = ".$acct->id; 186 $resql=$db->query($sql); 187 if ($resql) 188 { 189 $total = $db->result(0, 0); 190 $db->free($resql); 191 } 192 193 $sql = "SELECT b.rowid,".$db->pdate("b.dateo")." as do,".$db->pdate("b.datev")." as dv, b.amount, b.label, b.rappro, b.num_releve, b.num_chq, b.fk_type"; 194 $sql .= " FROM ".MAIN_DB_PREFIX."bank as b"; 195 $sql .= " WHERE num_releve='".$num."'"; 196 if (!isset($num)) 197 { 198 $sql .= " or num_releve is null"; 199 } 200 $sql .= " AND fk_account = ".$acct->id; 201 $sql .= " ORDER BY datev ASC"; 202 $result = $db->query($sql); 203 204 if ($result) 205 { 206 $var=True; 207 $numrows = $db->num_rows($result); 208 $i = 0; 209 210 // Ligne Solde début releve 211 print "<tr><td colspan=\"4\"><a href=\"releve.php?num=$num&ve=1&rel=$rel&account=".$acct->id."\"> </a></td>"; 212 print "<td align=\"right\" colspan=\"2\"><b>".$langs->trans("InitialBankBalance")." :</b></td><td align=\"right\"><b>".price($total)."</b></td><td> </td></tr>\n"; 213 214 while ($i < $numrows) 215 { 216 $objp = $db->fetch_object($result); 217 $total = $total + $objp->amount; 218 219 $var=!$var; 220 print "<tr $bc[$var]>"; 221 222 // Date operation 223 print '<td nowrap="nowrap" align="center">'.dolibarr_print_date($objp->do,"%d/%m/%Y").'</td>'; 224 225 // Date de valeur 226 print '<td align="center" valign="center" nowrap="nowrap">'; 227 print '<a href="releve.php?action=dvprev&num='.$num.'&account='.$_GET["account"].'&dvid='.$objp->rowid.'">'; 228 print img_previous().'</a> '; 229 print dolibarr_print_date($objp->dv,"%d/%m/%Y") .' '; 230 print '<a href="releve.php?action=dvnext&num='.$num.'&account='.$_GET["account"].'&dvid='.$objp->rowid.'">'; 231 print img_next().'</a>'; 232 print "</td>\n"; 233 234 // Num chq 235 print '<td nowrap="nowrap">'.$objp->fk_type.' '.($objp->num_chq?$objp->num_chq:'').'</td>'; 236 237 // Libelle 238 print '<td valign="center"><a href="'.DOL_URL_ROOT.'/compta/bank/ligne.php?rowid='.$objp->rowid.'&account='.$acct->id.'">'.$objp->label.'</a>'; 239 240 /* 241 * Ajout les liens (societe, company...) 242 */ 243 $newline=1; 244 $links = $acct->get_url($objp->rowid); 245 foreach($links as $key=>$val) 246 { 247 if (! $newline) print ' - '; 248 else print '<br>'; 249 if ($links[$key]['type']=='payment') { 250 print '<a href="'.$links[$key]['url'].$links[$key]['url_id'].'">'; 251 print img_object($langs->trans('ShowPayment'),'payment').' '; 252 print $langs->trans("Payment"); 253 print '</a>'; 254 $newline=0; 255 } 256 elseif ($links[$key]['type']=='company') { 257 print '<a href="'.$links[$key]['url'].$links[$key]['url_id'].'">'; 258 print img_object($langs->trans('ShowCustomer'),'company').' '; 259 print dolibarr_trunc($links[$key]['label'],24); 260 print '</a>'; 261 $newline=0; 262 } 263 else { 264 print '<a href="'.$links[$key]['url'].$links[$key]['url_id'].'">'; 265 print $links[$key]['label']; 266 print '</a>'; 267 $newline=0; 268 } 269 } 270 271 // Catégories 272 if ($ve) 273 { 274 $sql = "SELECT label FROM ".MAIN_DB_PREFIX."bank_categ as ct, ".MAIN_DB_PREFIX."bank_class as cl WHERE ct.rowid=cl.fk_categ AND cl.lineid=$objp->rowid"; 275 $resc = $db->query($sql); 276 if ($resc) 277 { 278 $numc = $db->num_rows($resc); 279 $ii = 0; 280 if ($numc && ! $newline) print '<br>'; 281 while ($ii < $numc) 282 { 283 $objc = $db->fetch_object($resc); 284 print "<br>- <i>$objc->label</i>"; 285 $ii++; 286 } 287 } 288 else 289 { 290 dolibarr_print_error($db); 291 } 292 } 293 294 print "</td>"; 295 296 if ($objp->amount < 0) 297 { 298 $totald = $totald + abs($objp->amount); 299 print '<td align="right" nowrap=\"nowrap\">'.price($objp->amount * -1)."</td><td> </td>\n"; 300 } 301 else 302 { 303 $totalc = $totalc + abs($objp->amount); 304 print "<td> </td><td align=\"right\" nowrap=\"nowrap\">".price($objp->amount)."</td>\n"; 305 } 306 307 print "<td align=\"right\" nowrap=\"nowrap\">".price($total)."</td>\n"; 308 309 if ($user->rights->banque->modifier) 310 { 311 print "<td align=\"center\"><a href=\"ligne.php?rowid=$objp->rowid&account=".$acct->id."\">"; 312 print img_edit(); 313 print "</a></td>"; 314 } 315 else 316 { 317 print "<td align=\"center\"> </td>"; 318 } 319 print "</tr>"; 320 $i++; 321 } 322 $db->free($result); 323 } 324 325 // Ligne Total 326 print "<tr><td align=\"right\" colspan=\"4\">".$langs->trans("Total")." :</td><td align=\"right\">".price($totald)."</td><td align=\"right\">".price($totalc)."</td><td> </td><td> </td></tr>"; 327 328 // Ligne Solde 329 print "<tr><td align=\"right\" colspan=\"4\"> </td><td align=\"right\" colspan=\"2\"><b>".$langs->trans("EndBankBalance")." :</b></td><td align=\"right\"><b>".price($total)."</b></td><td> </td></tr>\n"; 330 print "</table></form>\n"; 331 } 332 $db->close(); 333 334 llxFooter('$Date: 2005/11/10 21:04:46 $ - $Revision: 1.27 $'); 335 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
| Généré le : Mon Nov 26 12:29:37 2007 | par Balluche grâce à PHPXref 0.7 |
|