|
@@ -22,8 +22,7 @@
|
|
|
/**
|
|
|
* \file htdocs/includes/modules/societe/modules_societe.class.php
|
|
|
* \ingroup societe
|
|
|
- * \brief Fichier contenant la classe mere de module de generation societes
|
|
|
- * \version $Id: modules_societe.class.php,v 1.28 2011/07/31 23:28:14 eldy Exp $
|
|
|
+ * \brief File with parent class of submodules to manage numbering and document generation
|
|
|
*/
|
|
|
require_once(DOL_DOCUMENT_ROOT."/core/class/commondocgenerator.class.php");
|
|
|
|
|
@@ -32,40 +31,41 @@ require_once(DOL_DOCUMENT_ROOT."/core/class/commondocgenerator.class.php");
|
|
|
* \class ModeleThirdPartyDoc
|
|
|
* \brief Parent class for third parties models of doc generators
|
|
|
*/
|
|
|
-class ModeleThirdPartyDoc extends CommonDocGenerator
|
|
|
+abstract class ModeleThirdPartyDoc extends CommonDocGenerator
|
|
|
{
|
|
|
- var $error='';
|
|
|
+ var $error='';
|
|
|
|
|
|
- /**
|
|
|
- * Return list of active generation modules
|
|
|
- * @param $db Database handler
|
|
|
- * @param $maxfilenamelength Max length of value to show
|
|
|
- */
|
|
|
- function liste_modeles($db,$maxfilenamelength=0)
|
|
|
- {
|
|
|
- global $conf;
|
|
|
+ /**
|
|
|
+ * Return list of active generation modules
|
|
|
+ * @param $db Database handler
|
|
|
+ * @param $maxfilenamelength Max length of value to show
|
|
|
+ */
|
|
|
+ function liste_modeles($db,$maxfilenamelength=0)
|
|
|
+ {
|
|
|
+ global $conf;
|
|
|
|
|
|
- $type='company';
|
|
|
- $liste=array();
|
|
|
+ $type='company';
|
|
|
+ $liste=array();
|
|
|
|
|
|
- include_once(DOL_DOCUMENT_ROOT.'/lib/functions2.lib.php');
|
|
|
- $liste=getListOfModels($db,$type,$maxfilenamelength);
|
|
|
+ include_once(DOL_DOCUMENT_ROOT.'/lib/functions2.lib.php');
|
|
|
+ $liste=getListOfModels($db,$type,$maxfilenamelength);
|
|
|
|
|
|
- return $liste;
|
|
|
- }
|
|
|
+ return $liste;
|
|
|
+ }
|
|
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* \class ModeleThirdPartyCode
|
|
|
- * \brief Classe mere des modeles de numerotation des codes tiers
|
|
|
+ * \brief Parent class for third parties code generators
|
|
|
*/
|
|
|
-class ModeleThirdPartyCode
|
|
|
+abstract class ModeleThirdPartyCode
|
|
|
{
|
|
|
var $error='';
|
|
|
|
|
|
- /** \brief Renvoi la description par defaut du modele de numerotation
|
|
|
- * \return string Texte descripif
|
|
|
+ /** Renvoi la description par defaut du modele de numerotation
|
|
|
+ *
|
|
|
+ * @return string Texte descripif
|
|
|
*/
|
|
|
function info($langs)
|
|
|
{
|
|
@@ -73,8 +73,9 @@ class ModeleThirdPartyCode
|
|
|
return $langs->trans("NoDescription");
|
|
|
}
|
|
|
|
|
|
- /** \brief Renvoi nom module
|
|
|
- * \return string Nom du module
|
|
|
+ /** Renvoi nom module
|
|
|
+ *
|
|
|
+ * @return string Nom du module
|
|
|
*/
|
|
|
function getNom($langs)
|
|
|
{
|
|
@@ -82,8 +83,9 @@ class ModeleThirdPartyCode
|
|
|
}
|
|
|
|
|
|
|
|
|
- /** \brief Renvoi un exemple de numerotation
|
|
|
- * \return string Example
|
|
|
+ /** Renvoi un exemple de numerotation
|
|
|
+ *
|
|
|
+ * @return string Example
|
|
|
*/
|
|
|
function getExample($langs)
|
|
|
{
|
|
@@ -91,42 +93,46 @@ class ModeleThirdPartyCode
|
|
|
return $langs->trans("NoExample");
|
|
|
}
|
|
|
|
|
|
- /** \brief Test si les numeros deja en vigueur dans la base ne provoquent pas de
|
|
|
- * de conflits qui empechera cette numerotation de fonctionner.
|
|
|
- * \return boolean false si conflit, true si ok
|
|
|
+ /** Test si les numeros deja en vigueur dans la base ne provoquent pas de
|
|
|
+ * de conflits qui empechera cette numerotation de fonctionner.
|
|
|
+ *
|
|
|
+ * @return boolean false si conflit, true si ok
|
|
|
*/
|
|
|
function canBeActivated()
|
|
|
{
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
- /** \brief Return next value available
|
|
|
- * \return string Value
|
|
|
+ /** Return next value available
|
|
|
+ *
|
|
|
+ * @return string Value
|
|
|
*/
|
|
|
function getNextValue($objsoc=0,$type=-1)
|
|
|
{
|
|
|
- global $langs;
|
|
|
+ global $langs;
|
|
|
return $langs->trans("Function_getNextValue_InModuleNotWorking");
|
|
|
}
|
|
|
|
|
|
|
|
|
- /** \brief Renvoi version du module numerotation
|
|
|
- * \return string Valeur
|
|
|
- */
|
|
|
- function getVersion()
|
|
|
- {
|
|
|
- global $langs;
|
|
|
- $langs->load("admin");
|
|
|
+ /** Return version of module
|
|
|
+ *
|
|
|
+ * @return string Version
|
|
|
+ */
|
|
|
+ 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");
|
|
|
- }
|
|
|
+ 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");
|
|
|
+ }
|
|
|
|
|
|
- /**
|
|
|
- * \brief Renvoi la liste des modeles de numéroation
|
|
|
- * \param db Handler de base
|
|
|
+ /**
|
|
|
+ * Renvoi la liste des modeles de numéroation
|
|
|
+ *
|
|
|
+ * @param db Handler de base
|
|
|
*/
|
|
|
function liste_modeles($db)
|
|
|
{
|
|
@@ -153,89 +159,93 @@ class ModeleThirdPartyCode
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * \brief Return description of module parameters
|
|
|
- * \param langs Output language
|
|
|
- * \param soc Third party object
|
|
|
- * \param type -1=Nothing, 0=Customer, 1=Supplier
|
|
|
- * \return string HTML translated description
|
|
|
+ * Return description of module parameters
|
|
|
+ *
|
|
|
+ * @param langs Output language
|
|
|
+ * @param soc Third party object
|
|
|
+ * @param type -1=Nothing, 0=Customer, 1=Supplier
|
|
|
+ * @return string HTML translated description
|
|
|
*/
|
|
|
function getToolTip($langs,$soc,$type)
|
|
|
{
|
|
|
- global $conf;
|
|
|
-
|
|
|
- $langs->load("admin");
|
|
|
-
|
|
|
- $s='';
|
|
|
- if ($type == -1) $s.=$langs->trans("Name").': <b>'.$this->nom.'</b><br>';
|
|
|
- if ($type == -1) $s.=$langs->trans("Version").': <b>'.$this->getVersion().'</b><br>';
|
|
|
- if ($type == 0) $s.=$langs->trans("CustomerCodeDesc").'<br>';
|
|
|
- if ($type == 1) $s.=$langs->trans("SupplierCodeDesc").'<br>';
|
|
|
- if ($type != -1) $s.=$langs->trans("ValidityControledByModule").': <b>'.$this->getNom($langs).'</b><br>';
|
|
|
- $s.='<br>';
|
|
|
- $s.='<u>'.$langs->trans("ThisIsModuleRules").':</u><br>';
|
|
|
- if ($type == 0)
|
|
|
- {
|
|
|
- $s.=$langs->trans("RequiredIfCustomer").': ';
|
|
|
- if ($conf->global->MAIN_COMPANY_CODE_ALWAYS_REQUIRED && !empty($this->code_null)) $s.='<strike>';
|
|
|
- $s.=yn(!$this->code_null,1,2);
|
|
|
- if ($conf->global->MAIN_COMPANY_CODE_ALWAYS_REQUIRED && !empty($this->code_null)) $s.='</strike> '.yn(1,1,2).' ('.$langs->trans("ForcedToByAModule",$langs->transnoentities("yes")).')';
|
|
|
- $s.='<br>';
|
|
|
- }
|
|
|
- if ($type == 1)
|
|
|
- {
|
|
|
- $s.=$langs->trans("RequiredIfSupplier").': ';
|
|
|
- if ($conf->global->MAIN_COMPANY_CODE_ALWAYS_REQUIRED && !empty($this->code_null)) $s.='<strike>';
|
|
|
- $s.=yn(!$this->code_null,1,2);
|
|
|
- if ($conf->global->MAIN_COMPANY_CODE_ALWAYS_REQUIRED && !empty($this->code_null)) $s.='</strike> '.yn(1,1,2).' ('.$langs->trans("ForcedToByAModule",$langs->transnoentities("yes")).')';
|
|
|
- $s.='<br>';
|
|
|
- }
|
|
|
- if ($type == -1)
|
|
|
- {
|
|
|
- $s.=$langs->trans("Required").': ';
|
|
|
- if ($conf->global->MAIN_COMPANY_CODE_ALWAYS_REQUIRED && !empty($this->code_null)) $s.='<strike>';
|
|
|
- $s.=yn(!$this->code_null,1,2);
|
|
|
- if ($conf->global->MAIN_COMPANY_CODE_ALWAYS_REQUIRED && !empty($this->code_null)) $s.='</strike> '.yn(1,1,2).' ('.$langs->trans("ForcedToByAModule",$langs->transnoentities("yes")).')';
|
|
|
- $s.='<br>';
|
|
|
- }
|
|
|
- $s.=$langs->trans("CanBeModifiedIfOk").': ';
|
|
|
- $s.=yn($this->code_modifiable,1,2);
|
|
|
- $s.='<br>';
|
|
|
- $s.=$langs->trans("CanBeModifiedIfKo").': '.yn($this->code_modifiable_invalide,1,2).'<br>';
|
|
|
- $s.=$langs->trans("AutomaticCode").': '.yn($this->code_auto,1,2).'<br>';
|
|
|
- $s.='<br>';
|
|
|
- if ($type == 0 || $type == -1)
|
|
|
- {
|
|
|
- $nextval=$this->getNextValue($soc,0);
|
|
|
- if (empty($nextval)) $nextval=$langs->trans("Undefined");
|
|
|
- $s.=$langs->trans("NextValue").($type == -1?' ('.$langs->trans("Customer").')':'').': <b>'.$nextval.'</b><br>';
|
|
|
- }
|
|
|
- if ($type == 1 || $type == -1)
|
|
|
- {
|
|
|
- $nextval=$this->getNextValue($soc,1);
|
|
|
- if (empty($nextval)) $nextval=$langs->trans("Undefined");
|
|
|
- $s.=$langs->trans("NextValue").($type == -1?' ('.$langs->trans("Supplier").')':'').': <b>'.$nextval.'</b>';
|
|
|
- }
|
|
|
- return $s;
|
|
|
- }
|
|
|
-
|
|
|
- function verif_prefixIsUsed()
|
|
|
- {
|
|
|
- return false;
|
|
|
- }
|
|
|
+ global $conf;
|
|
|
+
|
|
|
+ $langs->load("admin");
|
|
|
+
|
|
|
+ $s='';
|
|
|
+ if ($type == -1) $s.=$langs->trans("Name").': <b>'.$this->nom.'</b><br>';
|
|
|
+ if ($type == -1) $s.=$langs->trans("Version").': <b>'.$this->getVersion().'</b><br>';
|
|
|
+ if ($type == 0) $s.=$langs->trans("CustomerCodeDesc").'<br>';
|
|
|
+ if ($type == 1) $s.=$langs->trans("SupplierCodeDesc").'<br>';
|
|
|
+ if ($type != -1) $s.=$langs->trans("ValidityControledByModule").': <b>'.$this->getNom($langs).'</b><br>';
|
|
|
+ $s.='<br>';
|
|
|
+ $s.='<u>'.$langs->trans("ThisIsModuleRules").':</u><br>';
|
|
|
+ if ($type == 0)
|
|
|
+ {
|
|
|
+ $s.=$langs->trans("RequiredIfCustomer").': ';
|
|
|
+ if ($conf->global->MAIN_COMPANY_CODE_ALWAYS_REQUIRED && !empty($this->code_null)) $s.='<strike>';
|
|
|
+ $s.=yn(!$this->code_null,1,2);
|
|
|
+ if ($conf->global->MAIN_COMPANY_CODE_ALWAYS_REQUIRED && !empty($this->code_null)) $s.='</strike> '.yn(1,1,2).' ('.$langs->trans("ForcedToByAModule",$langs->transnoentities("yes")).')';
|
|
|
+ $s.='<br>';
|
|
|
+ }
|
|
|
+ if ($type == 1)
|
|
|
+ {
|
|
|
+ $s.=$langs->trans("RequiredIfSupplier").': ';
|
|
|
+ if ($conf->global->MAIN_COMPANY_CODE_ALWAYS_REQUIRED && !empty($this->code_null)) $s.='<strike>';
|
|
|
+ $s.=yn(!$this->code_null,1,2);
|
|
|
+ if ($conf->global->MAIN_COMPANY_CODE_ALWAYS_REQUIRED && !empty($this->code_null)) $s.='</strike> '.yn(1,1,2).' ('.$langs->trans("ForcedToByAModule",$langs->transnoentities("yes")).')';
|
|
|
+ $s.='<br>';
|
|
|
+ }
|
|
|
+ if ($type == -1)
|
|
|
+ {
|
|
|
+ $s.=$langs->trans("Required").': ';
|
|
|
+ if ($conf->global->MAIN_COMPANY_CODE_ALWAYS_REQUIRED && !empty($this->code_null)) $s.='<strike>';
|
|
|
+ $s.=yn(!$this->code_null,1,2);
|
|
|
+ if ($conf->global->MAIN_COMPANY_CODE_ALWAYS_REQUIRED && !empty($this->code_null)) $s.='</strike> '.yn(1,1,2).' ('.$langs->trans("ForcedToByAModule",$langs->transnoentities("yes")).')';
|
|
|
+ $s.='<br>';
|
|
|
+ }
|
|
|
+ $s.=$langs->trans("CanBeModifiedIfOk").': ';
|
|
|
+ $s.=yn($this->code_modifiable,1,2);
|
|
|
+ $s.='<br>';
|
|
|
+ $s.=$langs->trans("CanBeModifiedIfKo").': '.yn($this->code_modifiable_invalide,1,2).'<br>';
|
|
|
+ $s.=$langs->trans("AutomaticCode").': '.yn($this->code_auto,1,2).'<br>';
|
|
|
+ $s.='<br>';
|
|
|
+ if ($type == 0 || $type == -1)
|
|
|
+ {
|
|
|
+ $nextval=$this->getNextValue($soc,0);
|
|
|
+ if (empty($nextval)) $nextval=$langs->trans("Undefined");
|
|
|
+ $s.=$langs->trans("NextValue").($type == -1?' ('.$langs->trans("Customer").')':'').': <b>'.$nextval.'</b><br>';
|
|
|
+ }
|
|
|
+ if ($type == 1 || $type == -1)
|
|
|
+ {
|
|
|
+ $nextval=$this->getNextValue($soc,1);
|
|
|
+ if (empty($nextval)) $nextval=$langs->trans("Undefined");
|
|
|
+ $s.=$langs->trans("NextValue").($type == -1?' ('.$langs->trans("Supplier").')':'').': <b>'.$nextval.'</b>';
|
|
|
+ }
|
|
|
+ return $s;
|
|
|
+ }
|
|
|
+
|
|
|
+ function verif_prefixIsUsed()
|
|
|
+ {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* \class ModeleAccountancyCode
|
|
|
- * \brief Classe mere des modeles de numerotation des codes compta
|
|
|
+ * \brief Parent class for third parties accountancy code generators
|
|
|
*/
|
|
|
-class ModeleAccountancyCode
|
|
|
+abstract class ModeleAccountancyCode
|
|
|
{
|
|
|
var $error='';
|
|
|
|
|
|
- /** \brief Renvoi la description par defaut du modele de numerotation
|
|
|
- * \return string Texte descripif
|
|
|
+
|
|
|
+ /** Return description of module
|
|
|
+ *
|
|
|
+ * @param $langs Object langs
|
|
|
+ * @return string Description of module
|
|
|
*/
|
|
|
function info($langs)
|
|
|
{
|
|
@@ -243,28 +253,89 @@ class ModeleAccountancyCode
|
|
|
return $langs->trans("NoDescription");
|
|
|
}
|
|
|
|
|
|
- /** \brief Renvoi un exemple de numerotation
|
|
|
- * \return string Example
|
|
|
+ /** Return an example of result returned by getNextValue
|
|
|
+ *
|
|
|
+ * @param $langs Object langs
|
|
|
+ * @param $objsoc Object thirdparty
|
|
|
+ * @param $type Type of third party (1:customer, 2:supplier, -1:autodetect)
|
|
|
*/
|
|
|
- function getExample($langs)
|
|
|
+ function getExample($langs,$objsoc=0,$type=-1)
|
|
|
{
|
|
|
$langs->load("bills");
|
|
|
return $langs->trans("NoExample");
|
|
|
}
|
|
|
|
|
|
- /** \brief Test si les numeros deja en vigueur dans la base ne provoquent pas de
|
|
|
- * de conflits qui empechera cette numerotation de fonctionner.
|
|
|
- * \return boolean false si conflit, true si ok
|
|
|
+ /** Test si les numeros deja en vigueur dans la base ne provoquent pas de
|
|
|
+ * de conflits qui empechera cette numerotation de fonctionner.
|
|
|
+ *
|
|
|
+ * @return boolean false si conflit, true si ok
|
|
|
*/
|
|
|
function canBeActivated()
|
|
|
{
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
- /** \brief Renvoi prochaine valeur attribuee
|
|
|
- * \return string Valeur
|
|
|
+ /** Return version of module
|
|
|
+ *
|
|
|
+ * @return string Version
|
|
|
+ */
|
|
|
+ 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");
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Return description of module parameters
|
|
|
+ *
|
|
|
+ * @param langs Output language
|
|
|
+ * @param soc Third party object
|
|
|
+ * @param type -1=Nothing, 0=Customer, 1=Supplier
|
|
|
+ * @return string HTML translated description
|
|
|
+ */
|
|
|
+ function getToolTip($langs,$soc,$type)
|
|
|
+ {
|
|
|
+ global $conf,$db;
|
|
|
+
|
|
|
+ $langs->load("admin");
|
|
|
+
|
|
|
+ $s='';
|
|
|
+ if ($type == -1) $s.=$langs->trans("Name").': <b>'.$this->nom.'</b><br>';
|
|
|
+ if ($type == -1) $s.=$langs->trans("Version").': <b>'.$this->getVersion().'</b><br>';
|
|
|
+ //$s.='<br>';
|
|
|
+ //$s.='<u>'.$langs->trans("ThisIsModuleRules").':</u><br>';
|
|
|
+ $s.='<br>';
|
|
|
+ if ($type == 0 || $type == -1)
|
|
|
+ {
|
|
|
+ $result=$this->get_code($db,$soc,'customer');
|
|
|
+ $nextval=$this->code;
|
|
|
+ if (empty($nextval)) $nextval=$langs->trans("Undefined");
|
|
|
+ $s.=$langs->trans("NextValue").($type == -1?' ('.$langs->trans("Customer").')':'').': <b>'.$nextval.'</b><br>';
|
|
|
+ }
|
|
|
+ if ($type == 1 || $type == -1)
|
|
|
+ {
|
|
|
+ $result=$this->get_code($db,$soc,'supplier');
|
|
|
+ $nextval=$this->code;
|
|
|
+ if (empty($nextval)) $nextval=$langs->trans("Undefined");
|
|
|
+ $s.=$langs->trans("NextValue").($type == -1?' ('.$langs->trans("Supplier").')':'').': <b>'.$nextval.'</b>';
|
|
|
+ }
|
|
|
+ return $s;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Set accountancy account code for a third party into this->code
|
|
|
+ *
|
|
|
+ * @param db Database handler
|
|
|
+ * @param societe Third party object
|
|
|
+ * @param type 'customer' or 'supplier'
|
|
|
+ * @return int >=0 if OK, <0 if KO
|
|
|
*/
|
|
|
- function getNextValue($langs)
|
|
|
+ function get_code($db, $societe, $type='')
|
|
|
{
|
|
|
return $langs->trans("NotAvailable");
|
|
|
}
|
|
@@ -274,75 +345,76 @@ class ModeleAccountancyCode
|
|
|
|
|
|
|
|
|
/**
|
|
|
- * \brief Create a document for third party
|
|
|
- * \param db Database handler
|
|
|
- * \param id Id of third party to use
|
|
|
- * \param message Message
|
|
|
- * \param modele Force model to use ('' to not force). model can be a model name or a template file.
|
|
|
- * \param outputlangs Objet lang to use for translation
|
|
|
- * \return int <0 if KO, >0 if OK
|
|
|
+ * Create a document for third party
|
|
|
+ *
|
|
|
+ * @param db Database handler
|
|
|
+ * @param id Id of third party to use
|
|
|
+ * @param message Message
|
|
|
+ * @param modele Force model to use ('' to not force). model can be a model name or a template file.
|
|
|
+ * @param outputlangs Objet lang to use for translation
|
|
|
+ * @return int <0 if KO, >0 if OK
|
|
|
*/
|
|
|
function thirdparty_doc_create($db, $id, $message, $modele, $outputlangs)
|
|
|
{
|
|
|
- global $conf,$langs;
|
|
|
- $langs->load("bills");
|
|
|
-
|
|
|
- $dir = DOL_DOCUMENT_ROOT . "/includes/modules/societe/doc";
|
|
|
- $srctemplatepath='';
|
|
|
-
|
|
|
- // Positionne modele sur le nom du modele a utiliser
|
|
|
- if (! dol_strlen($modele))
|
|
|
- {
|
|
|
- if ($conf->global->COMPANY_ADDON_PDF)
|
|
|
- {
|
|
|
- $modele = $conf->global->COMPANY_ADDON_PDF;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- print $langs->trans("Error")." ".$langs->trans("Error_COMPANY_ADDON_PDF_NotDefined");
|
|
|
- return 0;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- // If selected modele is a filename template (then $modele="modelname:filename")
|
|
|
- $tmp=explode(':',$modele,2);
|
|
|
- if (! empty($tmp[1]))
|
|
|
- {
|
|
|
- $modele=$tmp[0];
|
|
|
- $srctemplatepath=$tmp[1];
|
|
|
- }
|
|
|
-
|
|
|
- // Search template
|
|
|
- $file = "doc_".$modele.".modules.php";
|
|
|
- if (file_exists($dir.'/'.$file))
|
|
|
- {
|
|
|
- $classname = "doc_".$modele;
|
|
|
- require_once($dir.'/'.$file);
|
|
|
-
|
|
|
- $obj = new $classname($db);
|
|
|
- $obj->message = $message;
|
|
|
-
|
|
|
- // 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;
|
|
|
- if ($obj->write_file($id, $outputlangs, $srctemplatepath) > 0)
|
|
|
- {
|
|
|
- $outputlangs->charset_output=$sav_charset_output;
|
|
|
- return 1;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- $outputlangs->charset_output=$sav_charset_output;
|
|
|
- dol_print_error($db,"thirdparty_doc_create Error: ".$obj->error);
|
|
|
- return -1;
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- dol_print_error('',$langs->trans("Error")." ".$langs->trans("ErrorFileDoesNotExists",$dir.'/'.$file));
|
|
|
- return -1;
|
|
|
- }
|
|
|
+ global $conf,$langs;
|
|
|
+ $langs->load("bills");
|
|
|
+
|
|
|
+ $dir = DOL_DOCUMENT_ROOT . "/includes/modules/societe/doc";
|
|
|
+ $srctemplatepath='';
|
|
|
+
|
|
|
+ // Positionne modele sur le nom du modele a utiliser
|
|
|
+ if (! dol_strlen($modele))
|
|
|
+ {
|
|
|
+ if ($conf->global->COMPANY_ADDON_PDF)
|
|
|
+ {
|
|
|
+ $modele = $conf->global->COMPANY_ADDON_PDF;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ print $langs->trans("Error")." ".$langs->trans("Error_COMPANY_ADDON_PDF_NotDefined");
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // If selected modele is a filename template (then $modele="modelname:filename")
|
|
|
+ $tmp=explode(':',$modele,2);
|
|
|
+ if (! empty($tmp[1]))
|
|
|
+ {
|
|
|
+ $modele=$tmp[0];
|
|
|
+ $srctemplatepath=$tmp[1];
|
|
|
+ }
|
|
|
+
|
|
|
+ // Search template
|
|
|
+ $file = "doc_".$modele.".modules.php";
|
|
|
+ if (file_exists($dir.'/'.$file))
|
|
|
+ {
|
|
|
+ $classname = "doc_".$modele;
|
|
|
+ require_once($dir.'/'.$file);
|
|
|
+
|
|
|
+ $obj = new $classname($db);
|
|
|
+ $obj->message = $message;
|
|
|
+
|
|
|
+ // 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;
|
|
|
+ if ($obj->write_file($id, $outputlangs, $srctemplatepath) > 0)
|
|
|
+ {
|
|
|
+ $outputlangs->charset_output=$sav_charset_output;
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ $outputlangs->charset_output=$sav_charset_output;
|
|
|
+ dol_print_error($db,"thirdparty_doc_create Error: ".$obj->error);
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ dol_print_error('',$langs->trans("Error")." ".$langs->trans("ErrorFileDoesNotExists",$dir.'/'.$file));
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
|