[ 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/includes/modules/propale/ -> modules_propale.php (source)

   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  ?>


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