| [ Index ] |
|
Code source de Dolibarr 2.0.1 |
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 ?>
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 |
|