2005-11-11 23:36:56 +01:00
< ? php
/* Copyright ( C ) 2003 - 2005 Rodolphe Quiedeville < rodolphe @ quiedeville . org >
2008-01-20 20:47:20 +01:00
* Copyright ( C ) 2004 - 2008 Laurent Destailleur < eldy @ users . sourceforge . net >
2005-11-11 23:36:56 +01:00
* Copyright ( C ) 2004 Eric Seigne < eric . seigne @ ryxeo . com >
2007-11-01 21:39:36 +01:00
* Copyright ( C ) 2005 Regis Houssin < regis @ dolibarr . fr >
2005-11-11 23:36:56 +01:00
*
* This program is free software ; you can redistribute it and / or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation ; either version 2 of the License , or
* ( at your option ) any later version .
*
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License for more details .
*
* You should have received a copy of the GNU General Public License
2011-08-01 01:24:38 +02:00
* along with this program . If not , see < http :// www . gnu . org / licenses />.
2005-11-11 23:36:56 +01:00
* or see http :// www . gnu . org /
*/
/**
2011-08-08 18:07:47 +02:00
* \file htdocs / includes / modules / dons / modules_don . php
* \ingroup don
* \brief File of class to manage donation document generation
*/
2011-08-27 17:40:08 +02:00
require_once ( DOL_DOCUMENT_ROOT . " /core/class/commondocgenerator.class.php " );
2010-04-25 15:03:14 +02:00
require_once ( DOL_DOCUMENT_ROOT . " /compta/dons/class/don.class.php " );
2005-11-11 23:36:56 +01:00
/**
2010-02-24 17:25:34 +01:00
* \class ModeleDon
* \brief Classe mere des modeles de dons
*/
2011-08-27 17:40:08 +02:00
abstract class ModeleDon extends CommonDocGenerator
2005-11-11 23:36:56 +01:00
{
var $error = '' ;
2011-08-08 18:07:47 +02:00
/**
* \brief Return list of active generation modules
* \param $db Database handler
*/
function liste_modeles ( $db )
{
global $conf ;
2009-01-28 16:09:37 +01:00
2011-08-08 18:07:47 +02:00
$type = 'donation' ;
$liste = array ();
2005-11-11 23:36:56 +01:00
2011-08-08 18:07:47 +02:00
include_once ( DOL_DOCUMENT_ROOT . '/lib/functions2.lib.php' );
$liste = getListOfModels ( $db , $type , '' );
2010-02-27 23:53:27 +01:00
2011-08-08 18:07:47 +02:00
return $liste ;
}
2005-11-11 23:36:56 +01:00
}
/**
2010-02-27 23:53:27 +01:00
* \class ModeleNumRefDons
* \brief Classe mere des modeles de numerotation des references des dons
*/
2005-11-11 23:36:56 +01:00
class ModeleNumRefDons
{
var $error = '' ;
2011-08-08 18:07:47 +02:00
/** \brief Return if a module can be used or not
* \return boolean true if module can be used
*/
function isEnabled ()
{
return true ;
}
2008-09-05 01:44:36 +02:00
2010-02-24 17:25:34 +01:00
/** \brief Renvoi la description par defaut du modele de num<EFBFBD> rotation
2005-11-11 23:36:56 +01:00
* \return string Texte descripif
*/
function info ()
{
global $langs ;
$langs -> load ( " bills " );
return $langs -> trans ( " NoDescription " );
}
2011-08-11 14:13:59 +02:00
/** \brief Renvoi un exemple de numerotation
2005-11-11 23:36:56 +01:00
* \return string Example
*/
function getExample ()
{
global $langs ;
$langs -> load ( " bills " );
return $langs -> trans ( " NoExample " );
}
2011-08-11 14:13:59 +02:00
/** \brief Test si les numeros deja en vigueur dans la base ne provoquent pas d
* de conflits qui empechera cette numerotation de fonctionner .
2005-11-11 23:36:56 +01:00
* \return boolean false si conflit , true si ok
*/
function canBeActivated ()
{
return true ;
}
2011-08-11 14:13:59 +02:00
/** \brief Renvoi prochaine valeur attribuee
2005-11-11 23:36:56 +01:00
* \return string Valeur
*/
function getNextValue ()
{
global $langs ;
return $langs -> trans ( " NotAvailable " );
}
2009-01-28 16:09:37 +01:00
2011-08-08 18:07:47 +02:00
/** \brief Renvoi version du module numerotation
* \return string Valeur
*/
function getVersion ()
{
global $langs ;
$langs -> load ( " admin " );
if ( $this -> version == 'development' ) return $langs -> trans ( " VersionDevelopment " );
if ( $this -> version == 'experimental' ) return $langs -> trans ( " VersionExperimental " );
if ( $this -> version == 'dolibarr' ) return DOL_VERSION ;
return $langs -> trans ( " NotAvailable " );
}
2005-11-11 23:36:56 +01:00
}
/**
2011-08-11 14:13:59 +02:00
* \brief Cree un don sur disque en fonction du modele de DON_ADDON_PDF
* \param db objet base de donnee
* \param id id du don e creer
* \param message message
* \param modele force le modele a utiliser ( '' par defaut )
* \param outputlangs objet lang a utiliser pour traduction
* \return int 0 si KO , 1 si OK
2011-08-08 18:07:47 +02:00
*/
2008-10-28 21:05:23 +01:00
function don_create ( $db , $id , $message , $modele , $outputlangs )
2005-11-11 23:36:56 +01:00
{
2006-03-22 00:47:01 +01:00
global $conf , $langs ;
2005-11-11 23:36:56 +01:00
$langs -> load ( " bills " );
2006-08-02 02:52:31 +02:00
2005-11-11 23:36:56 +01:00
$dir = DOL_DOCUMENT_ROOT . " /includes/modules/dons/ " ;
2011-08-08 18:07:47 +02:00
// Positionne modele sur le nom du modele <20> utiliser
if ( ! dol_strlen ( $modele ))
{
if ( $conf -> global -> DON_ADDON_MODEL )
{
$modele = $conf -> global -> DON_ADDON_MODEL ;
}
else
{
print $langs -> trans ( " Error " ) . " " . $langs -> trans ( " Error_DON_ADDON_MODEL_NotDefined " );
return 0 ;
}
}
// Charge le modele
$file = $modele . " .modules.php " ;
if ( file_exists ( $dir . $file ))
{
2006-03-22 00:47:01 +01:00
$classname = $modele ;
2006-08-02 02:52:31 +02:00
2005-11-11 23:36:56 +01:00
require_once ( $dir . $file );
2009-01-28 16:09:37 +01:00
2005-11-11 23:36:56 +01:00
$obj = new $classname ( $db );
2009-01-28 16:09:37 +01:00
2005-11-11 23:36:56 +01:00
$obj -> message = $message ;
2009-01-28 16:09:37 +01:00
2011-08-08 18:07:47 +02:00
// We save charset_output to restore it because write_file can change it if needed for
// output format that does not support UTF8.
$sav_charset_output = $outputlangs -> charset_output ;
2008-10-28 21:05:23 +01:00
if ( $obj -> write_file ( $id , $outputlangs ) > 0 )
2005-11-11 23:36:56 +01:00
{
2011-08-11 14:13:59 +02:00
// Success. We build meta file
2006-03-22 00:47:01 +01:00
don_meta_create ( $db , $id );
2005-11-11 23:36:56 +01:00
// et on supprime l'image correspondant au preview
2006-03-22 00:47:01 +01:00
don_delete_preview ( $db , $id );
2009-01-28 16:09:37 +01:00
2011-08-08 18:07:47 +02:00
$outputlangs -> charset_output = $sav_charset_output ;
2005-11-11 23:36:56 +01:00
return 1 ;
}
else
{
2011-08-08 18:07:47 +02:00
$outputlangs -> charset_output = $sav_charset_output ;
dol_syslog ( " Erreur dans don_create " );
2010-02-24 17:25:34 +01:00
dol_print_error ( $db , $obj -> error );
2005-11-11 23:36:56 +01:00
return 0 ;
}
}
2011-08-08 18:07:47 +02:00
else
{
print $langs -> trans ( " Error " ) . " " . $langs -> trans ( " ErrorFileDoesNotExists " , $dir . $file );
return 0 ;
}
2005-11-11 23:36:56 +01:00
}
/**
2011-08-11 14:13:59 +02:00
* \brief Cree un meta fichier a cote de la facture sur le disque pour faciliter les recherches en texte plein . Pourquoi ? tout simplement parcequ 'en fin d' exercice quand je suis avec mon comptable je n 'ai pas de connexion internet "rapide" pour retrouver en 2 secondes une facture non pay<61> e ou compliqu<71> e <20> g<> rer ... avec un rgrep c' est vite fait bien fait [ eric seigne
* \param db Objet base de donnee
* \param donid Id du don a creer
* \param message Message
2011-08-08 18:07:47 +02:00
*/
2005-11-11 23:36:56 +01:00
function don_meta_create ( $db , $donid , $message = " " )
{
global $langs , $conf ;
2009-01-28 16:09:37 +01:00
2005-11-11 23:36:56 +01:00
$don = new Don ( $db );
$don -> id = $donid ;
2009-01-28 16:09:37 +01:00
$don -> fetch ( $donid );
2005-11-11 23:36:56 +01:00
}
/**
2011-08-11 14:13:59 +02:00
* \brief Supprime l ' image de previsualitation , pour le cas de r<EFBFBD> g<EFBFBD> n<EFBFBD> ration de facture
* \param db Objet base de donnee
* \param donid Id du don
2011-08-08 18:07:47 +02:00
*/
2005-11-11 23:36:56 +01:00
function don_delete_preview ( $db , $donid )
{
2011-08-08 18:07:47 +02:00
global $langs , $conf ;
2005-11-11 23:36:56 +01:00
$don = new Don ( $db );
$don -> id = $donid ;
2009-01-28 16:09:37 +01:00
$don -> fetch ( $donid );
2005-11-11 23:36:56 +01:00
}
?>