* Copyright (C) 2004-2005 Laurent Destailleur * * 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 * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * * $Id$ * $Source$ */ /** \file htdocs/compta/bank/releve.php \ingroup banque \brief Page d'affichage d'un relevé \version $Revision$ */ require("./pre.inc.php"); $langs->load("companies"); if (!$user->rights->banque->lire) accessforbidden(); if ($_GET["action"] == 'dvnext') { $ac = new Account($db); $ac->datev_next($_GET["dvid"]); } if ($_GET["action"] == 'dvprev') { $ac = new Account($db); $ac->datev_previous($_GET["dvid"]); } llxHeader(); // Récupère info du compte $acct = new Account($db); $acct->fetch($_GET["account"]); if (! isset($_GET["num"])) { /* * Vue liste tous relevés confondus * */ if ($page == -1) { $page = 0 ; } $limit = $conf->liste_limit; $offset = $limit * $page ; $pageprev = $page - 1; $pagenext = $page + 1; $sql = "SELECT distinct(b.num_releve) as numr"; $sql .= " FROM ".MAIN_DB_PREFIX."bank as b"; $sql .= " WHERE fk_account = ".$_GET["account"]; $sql .= " ORDER BY numr DESC"; $sql .= $db->plimit($limit,$offset); $result = $db->query($sql); if ($result) { $var=True; $numrows = $db->num_rows($result); $i = 0; print_barre_liste($langs->trans("AccountStatements").", ".$langs->trans("BankAccount")." : id."\">".$acct->label."", $page, "releve.php","&account=".$_GET["account"],$sortfield,$sortorder,'',$numrows); print '
'; print ''; print ""; print ''; while ($i < min($numrows,$limit)) { $objp = $db->fetch_object($result); $var=!$var; if (! isset($objp->numr)) { // } else { print "\n"; } $i++; } print "
'.$langs->trans("AccountStatement").'
numr&account=".$_GET["account"]."\">$objp->numr
\n"; } } else { /** * Vue d'un releve * */ if ($_GET["rel"] == 'prev') { // Recherche valeur pour num = numéro relevé précédent $sql = "SELECT distinct(num_releve) as num"; $sql.= " FROM ".MAIN_DB_PREFIX."bank"; $sql.= " WHERE num_releve < ".$_GET["num"]." AND fk_account = ".$_GET["account"]; $sql.= " ORDER BY num_releve DESC"; $result = $db->query($sql); if ($result) { $var=True; $numrows = $db->num_rows($result); $i = 0; if ($numrows > 0) { $obj = $db->fetch_object($result); $num = $obj->num; } } } elseif ($_GET["rel"] == 'next') { // Recherche valeur pour num = numéro relevé précédent $sql = "SELECT distinct(num_releve) as num"; $sql.= " FROM ".MAIN_DB_PREFIX."bank"; $sql.= " WHERE num_releve > ".$_GET["num"]." AND fk_account = ".$_GET["account"]; $sql.= " ORDER BY num_releve ASC"; $result = $db->query($sql); if ($result) { $var=True; $numrows = $db->num_rows($result); $i = 0; if ($numrows > 0) { $obj = $db->fetch_object($result); $num = $obj->num; } } } else { // On veut le relevé num $num=$_GET["num"]; } $ve=$_GET["ve"]; $mesprevnext ="id\">".img_previous()."  "; $mesprevnext.= $langs->trans("AccountStatement")." $num"; $mesprevnext.="   id\">".img_next().""; print_fiche_titre($langs->trans("AccountStatement").' '.$num.', '.$langs->trans("BankAccount").' : '.$acct->label.'',$mesprevnext); print '
'; print "
"; print ""; print ''; print ""; print ''; print ''; print ''; print ''; print ''; print "\n"; $sql = "SELECT sum(amount) FROM ".MAIN_DB_PREFIX."bank WHERE num_releve < $num AND fk_account = ".$acct->id; $resql=$db->query($sql); if ($resql) { $total = $db->result(0, 0); $db->free($resql); } $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"; $sql .= " FROM ".MAIN_DB_PREFIX."bank as b"; $sql .= " WHERE num_releve='".$num."'"; if (! $num) { $sql .= " or num_releve is null"; } $sql .= " AND fk_account = ".$acct->id; $sql .= " ORDER BY datev ASC"; $result = $db->query($sql); if ($result) { $var=True; $numrows = $db->num_rows($result); $i = 0; // Ligne Solde début releve print ""; print "\n"; while ($i < $numrows) { $objp = $db->fetch_object($result); $total = $total + $objp->amount; $var=!$var; print ""; print '\n"; print ''; print ""; if ($objp->amount < 0) { $totald = $totald + abs($objp->amount); print '\n"; } else { $totalc = $totalc + abs($objp->amount); print "\n"; } print "\n"; if ($user->rights->banque->modifier) { print ""; } else { print ""; } print ""; $i++; } $db->free($result); } // Ligne Total print ""; // Ligne Solde print "\n"; print "
'.$langs->trans("Date").''.$langs->trans("DateValue").''.$langs->trans("Type").''.$langs->trans("Description").''.$langs->trans("Debit").''.$langs->trans("Credit").''.$langs->trans("Balance").' 
id."\">Vue etendue".$langs->trans("Solde initial")." :".price($total)." 
'.dolibarr_print_date($objp->do).''; /* Mise à jour de la date de valeur */ print ''; print img_previous() . " "; print strftime("%d/%m/%Y",$objp->dv) ." "; print ''; print img_next(); print "'.$objp->fk_type.' '.($objp->num_chq?$objp->num_chq:'').'$objp->label"; if ($ve) { $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"; $resc = $db->query($sql); if ($resc) { $numc = $db->num_rows($resc); $ii = 0; while ($ii < $numc) { $objc = $db->fetch_object($resc); print "
$objc->label"; $ii++; } } else { dolibarr_print_error($db); } } print "
'.price($objp->amount * -1)."  ".price($objp->amount)."".price($total)."rowid&account=".$acct->id."\">"; print img_edit(); print " 
".$langs->trans("Total")." :".price($totald)."".price($totalc)."  
 ".$langs->trans("Solde final")." :".price($total)." 
\n"; } $db->close(); llxFooter('$Date$ - $Revision$'); ?>