[ 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/telephonie/script/ -> facturation-impression.php (source)

   1  <?PHP
   2  /* Copyright (C) 2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
   3   *
   4   * This program is free software; you can redistribute it and/or modify
   5   * it under the terms of the GNU General Public License as published by
   6   * the Free Software Foundation; either version 2 of the License, or
   7   * (at your option) any later version.
   8   *
   9   * This program is distributed in the hope that it will be useful,
  10   * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12   * GNU General Public License for more details.
  13   *
  14   * You should have received a copy of the GNU General Public License
  15   * along with this program; if not, write to the Free Software
  16   * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  17   *
  18   * $Id: facturation-impression.php,v 1.8 2005/12/06 13:08:42 rodolphe Exp $
  19   * $Source: /cvsroot/dolibarr/dolibarr/htdocs/telephonie/script/facturation-impression.php,v $
  20   *
  21   * Prépare les factures à imprimer
  22   */
  23  
  24  /**
  25     \file       htdocs/telephonie/script/facturation-emission.php
  26     \ingroup    telephonie
  27     \brief      Emission des factures
  28     \version    $Revision: 1.8 $
  29  */
  30  
  31  require  ("../../master.inc.php");
  32  require_once  (DOL_DOCUMENT_ROOT."/facture.class.php");
  33  require_once  (DOL_DOCUMENT_ROOT."/societe.class.php");
  34  require_once  (DOL_DOCUMENT_ROOT."/paiement.class.php");
  35  require_once (DOL_DOCUMENT_ROOT."/lib/dolibarrmail.class.php");
  36  require_once (DOL_DOCUMENT_ROOT."/telephonie/lignetel.class.php");
  37  require_once (DOL_DOCUMENT_ROOT."/telephonie/facturetel.class.php");
  38  require_once (DOL_DOCUMENT_ROOT."/telephonie/telephonie.contrat.class.php");
  39  require_once (DOL_DOCUMENT_ROOT."/telephonie/pdf/pdfdetail_papier.modules.php");
  40  require_once (DOL_DOCUMENT_ROOT."/includes/modules/facture/modules_facture.php");
  41  require_once (DOL_DOCUMENT_ROOT."/includes/modules/facture/pdf_ibreizh.modules.php");
  42  
  43  $error = 0;
  44  
  45  $opt = getopt("m:");
  46  
  47  if ($opt['m'] > 0)
  48  {
  49    $datetime = mktime(10,10,10,$opt['m'],10,2005);
  50  }
  51  else
  52  {
  53    $datetime = time();
  54  }
  55  $date = strftime("%d%h%Y%Hh%Mm%S",$datetime);
  56  
  57  $user = new User($db, 1);
  58  
  59  $month = strftime("%m", $datetime);
  60  $year = strftime("%Y", $datetime);
  61  
  62  if ($month == 1)
  63  {
  64    $month = "12";
  65    $year = $year - 1;
  66  }
  67  else
  68  {
  69    $month = substr("00".($month - 1), -2) ;
  70  }
  71  
  72  $sql = "SELECT distinct(f.fk_facture), ff.facnumber ";
  73  $sql .= " FROM ".MAIN_DB_PREFIX."telephonie_contrat_service as cs";
  74  $sql .= " , ".MAIN_DB_PREFIX."telephonie_facture as f";
  75  $sql .= " , ".MAIN_DB_PREFIX."facture as ff";
  76  $sql .= " , ".MAIN_DB_PREFIX."telephonie_societe_ligne as l";
  77  $sql .= " WHERE l.fk_contrat = cs.fk_contrat";
  78  $sql .= " AND f.fk_ligne = l.rowid";
  79  $sql .= " AND f.fk_facture = ff.rowid";
  80  $sql .= " AND date_format(f.date,'%m%Y') = '".$month.$year."'";
  81  
  82  $resql = $db->query($sql);
  83    
  84  dolibarr_syslog("Impression des factures de ".$month.$year);
  85  
  86  if ( $resql )
  87  {
  88    $num = $db->num_rows($resql);
  89    $i = 0;
  90  
  91    dolibarr_syslog("$num factures a imprimer");
  92  
  93    $pdf = new FPDF('P','mm','A4');
  94    $pdf->Open();
  95  
  96    $pdf->SetMargins(10, 10, 10);
  97    $pdf->SetAutoPageBreak(1,0);
  98    $file = "/tmp/$year-$month-fac.pdf";
  99  
 100    while ($i < $num)
 101      {
 102        $row = $db->fetch_row($resql);
 103  
 104        //print "$i/$num ".$row[1]." ".$row[0]."\n";
 105  
 106        $xx = new pdf_ibreizh($db);
 107        $xx->_write_pdf_file($row[0], &$pdf, 1);
 108  
 109        $fql = "SELECT rowid, ligne";
 110        $fql .= " FROM ".MAIN_DB_PREFIX."telephonie_facture as f";
 111        $fql .= " WHERE f.fk_facture = ".$row[0];
 112        
 113        $refql = $db->query($fql);
 114  
 115        if ( $refql )
 116      {
 117        while ($fow = $db->fetch_row($refql))
 118          {
 119            $obj_factel = new FactureTel($db);
 120            $obj_factel->fetch($fow[0]);
 121            $ligne_id = $fow[1];
 122            $yy = new pdfdetail_papier ($db, $ligne_id, $year, $month, $obj_factel);
 123            $yy->_write_pdf_file($obj_factel, $ligne_id, $pdf, 1);
 124          }
 125      }
 126  
 127        $i++;
 128      }
 129  
 130    $pdf->Close();          
 131    $pdf->Output($file);
 132    dolibarr_syslog("Ecriture de : ".$file);
 133    $db->free($resql);
 134  }
 135  else
 136  {
 137    $error = 1;
 138    dolibarr_syslog("Erreur ".$error);
 139    dolibarr_syslog($db->error());
 140  }
 141  
 142  $db->close();
 143  
 144  /*
 145   * Ancienne méthode
 146   *
 147   */
 148  
 149  exit;
 150  
 151  $sql = "SELECT distinct(f.fk_facture), ff.facnumber ";
 152  $sql .= " FROM ".MAIN_DB_PREFIX."telephonie_contrat_service as cs";
 153  $sql .= " , ".MAIN_DB_PREFIX."telephonie_facture as f";
 154  $sql .= " , ".MAIN_DB_PREFIX."facture as ff";
 155  $sql .= " , ".MAIN_DB_PREFIX."telephonie_societe_ligne as l";
 156  $sql .= " WHERE l.fk_contrat = cs.fk_contrat";
 157  $sql .= " AND f.fk_ligne = l.rowid";
 158  $sql .= " AND f.fk_facture = ff.rowid";
 159  $sql .= " AND date_format(f.date,'%m%Y') = '".$month.$year."'";
 160  
 161  $resql = $db->query($sql);
 162    
 163  dolibarr_syslog("Impression des factures de ".$month.$year);
 164  
 165  if ( $resql )
 166  {
 167    $num = $db->num_rows($resql);
 168    $i = 0;
 169  
 170    dolibarr_syslog("$num factures a imprimer");
 171  
 172    while ($i < $num)
 173      {
 174        $row = $db->fetch_row($resql);
 175  
 176        $file = DOL_DATA_ROOT."/facture/".$row[1]."/".$row[1].".pdf";
 177  
 178        if (! copy($file,"/tmp/facture/".$row[1].".pdf"))
 179      {
 180        dolibarr_syslog("Error copy $file");
 181      }
 182  
 183        $i++;
 184      }
 185  
 186    $db->free($resql);
 187  }
 188  else
 189  {
 190    $error = 1;
 191    dolibarr_syslog("Erreur ".$error);
 192    dolibarr_syslog($db->error());
 193  }
 194  
 195  $db->close();
 196  
 197  ?>


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