[ Index ]
 

Code source de Dolibarr 2.0.1

Accédez au Source d'autres logiciels libres

Classes | Fonctions | Variables | Constantes | Tables

title

Body

[fermer]

/htdocs/compta/bank/ -> releve.php (source)

   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","&amp;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&amp;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&amp;num=$num&amp;ve=$ve&amp;account=$acct->id\">".img_previous()."</a> &nbsp;";
 164      $mesprevnext.= $langs->trans("AccountStatement")." $num";
 165      $mesprevnext.=" &nbsp; <a href=\"releve.php?rel=next&amp;num=$num&amp;ve=$ve&amp;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>&nbsp;</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&amp;ve=1&amp;rel=$rel&amp;account=".$acct->id."\">&nbsp;</a></td>";
 212          print "<td align=\"right\" colspan=\"2\"><b>".$langs->trans("InitialBankBalance")." :</b></td><td align=\"right\"><b>".price($total)."</b></td><td>&nbsp;</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&amp;num='.$num.'&amp;account='.$_GET["account"].'&amp;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&amp;num='.$num.'&amp;account='.$_GET["account"].'&amp;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.'&amp;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>-&nbsp;<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>&nbsp;</td>\n";
 300              }
 301              else
 302              {
 303                  $totalc = $totalc + abs($objp->amount);
 304                  print "<td>&nbsp;</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&amp;account=".$acct->id."\">";
 312                  print img_edit();
 313                  print "</a></td>";
 314              }
 315              else
 316              {
 317                  print "<td align=\"center\">&nbsp;</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>&nbsp;</td><td>&nbsp;</td></tr>";
 327  
 328      // Ligne Solde
 329      print "<tr><td align=\"right\" colspan=\"4\">&nbsp;</td><td align=\"right\" colspan=\"2\"><b>".$langs->trans("EndBankBalance")." :</b></td><td align=\"right\"><b>".price($total)."</b></td><td>&nbsp;</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  ?>


Généré le : Mon Nov 26 12:29:37 2007 par Balluche grâce à PHPXref 0.7
  Clicky Web Analytics