[ Index ] |
|
Code source de Dolibarr 2.0.1 |
1 <?php 2 /* Copyright (C) 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 * or see http://www.gnu.org/ 19 * 20 * $Id: modules_propale.php,v 1.18 2005/11/11 20:11:58 eldy Exp $ 21 * $Source: /cvsroot/dolibarr/dolibarr/htdocs/includes/modules/propale/modules_propale.php,v $ 22 */ 23 24 /** 25 \file htdocs/includes/modules/propale/modules_propale.php 26 \ingroup propale 27 \brief Fichier contenant la classe mère de generation des propales en PDF 28 et la classe mère de numérotation des propales 29 \version $Revision: 1.18 $ 30 */ 31 32 require_once(FPDF_PATH.'fpdf.php'); 33 34 35 /** 36 \class ModelePDFPropales 37 \brief Classe mère des modèles de propale 38 */ 39 40 class ModelePDFPropales extends FPDF 41 { 42 var $error=''; 43 44 /** 45 * \brief Renvoi le dernier message d'erreur de création de propale 46 */ 47 function pdferror() 48 { 49 return $this->error; 50 } 51 52 /** 53 * \brief Renvoi la liste des modèles actifs 54 */ 55 function liste_modeles($db) 56 { 57 $liste=array(); 58 $sql ="SELECT nom as id, nom as lib"; 59 $sql.=" FROM ".MAIN_DB_PREFIX."propal_model_pdf"; 60 61 $resql = $db->query($sql); 62 if ($resql) 63 { 64 $num = $db->num_rows($resql); 65 $i = 0; 66 while ($i < $num) 67 { 68 $row = $db->fetch_row($resql); 69 $liste[$row[0]]=$row[1]; 70 $i++; 71 } 72 } 73 else 74 { 75 $this->error=$db->error(); 76 return -1; 77 } 78 return $liste; 79 } 80 } 81 82 83 /** 84 \class ModeleNumRefPropales 85 \brief Classe mère des modèles de numérotation des références de propales 86 */ 87 88 class ModeleNumRefPropales 89 { 90 var $error=''; 91 92 /** \brief Renvoi la description par defaut du modele de numérotation 93 * \return string Texte descripif 94 */ 95 function info() 96 { 97 global $langs; 98 $langs->load("propale"); 99 return $langs->trans("NoDescription"); 100 } 101 102 /** \brief Renvoi un exemple de numérotation 103 * \return string Example 104 */ 105 function getExample() 106 { 107 global $langs; 108 $langs->load("propale"); 109 return $langs->trans("NoExample"); 110 } 111 112 /** \brief Test si les numéros déjà en vigueur dans la base ne provoquent pas de 113 * de conflits qui empechera cette numérotation de fonctionner. 114 * \return boolean false si conflit, true si ok 115 */ 116 function canBeActivated() 117 { 118 return true; 119 } 120 121 /** \brief Renvoi prochaine valeur attribuée 122 * \return string Valeur 123 */ 124 function getNextValue() 125 { 126 global $langs; 127 return $langs->trans("NotAvailable"); 128 } 129 130 } 131 132 133 /** 134 \brief Crée une propale sur disque en fonction du modèle de PROPALE_ADDON_PDF 135 \param db objet base de donnée 136 \param facid id de la facture à créer 137 \param modele force le modele à utiliser ('' par defaut) 138 */ 139 function propale_pdf_create($db, $facid, $modele='') 140 { 141 global $langs; 142 $langs->load("propale"); 143 144 $dir = DOL_DOCUMENT_ROOT."/includes/modules/propale/"; 145 146 // Positionne modele sur le nom du modele de facture à utiliser 147 if (! strlen($modele)) 148 { 149 if (defined("PROPALE_ADDON_PDF") && PROPALE_ADDON_PDF) 150 { 151 $modele = PROPALE_ADDON_PDF; 152 } 153 else 154 { 155 print $langs->trans("Error")." ".$langs->trans("Error_PROPALE_ADDON_PDF_NotDefined"); 156 return 0; 157 } 158 } 159 160 // Charge le modele 161 $file = "pdf_propale_".$modele.".modules.php"; 162 if (file_exists($dir.$file)) 163 { 164 $classname = "pdf_propale_".$modele; 165 require_once($dir.$file); 166 167 $obj = new $classname($db); 168 169 if ( $obj->write_pdf_file($facid) > 0) 170 { 171 // on supprime l'image correspondant au preview 172 propale_delete_preview($db, $facid); 173 return 1; 174 } 175 else 176 { 177 dolibarr_syslog("Erreur dans propale_pdf_create"); 178 dolibarr_print_error($db,$obj->pdferror()); 179 return 0; 180 } 181 } 182 else 183 { 184 print $langs->trans("Error")." ".$langs->trans("ErrorFileDoesNotExists",$dir.$file); 185 return 0; 186 } 187 } 188 /** 189 \brief Supprime l'image de prévisualitation, pour le cas de régénération de propal 190 \param db objet base de donnée 191 \param propalid id de la propal à effacer 192 */ 193 function propale_delete_preview($db, $propalid) 194 { 195 global $langs,$conf; 196 197 $propal = new Propal($db,"",$propalid); 198 $propal->fetch($propalid); 199 $propal->fetch_client(); 200 201 if ($conf->propal->dir_output) 202 { 203 $propalref = sanitize_string($propal->ref); 204 $dir = $conf->propal->dir_output . "/" . $propalref ; 205 $file = $dir . "/" . $propalref . ".pdf.png"; 206 207 if ( file_exists( $file ) && is_writable( $file ) ) 208 { 209 if ( ! unlink($file) ) 210 { 211 $this->error=$langs->trans("ErrorFailedToOpenFile",$file); 212 return 0; 213 } 214 } 215 } 216 } 217 ?>
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 |
![]() |