diff --git a/htdocs/includes/modules/societe/mod_codeclient_elephant.php b/htdocs/includes/modules/societe/mod_codeclient_elephant.php
index a000c4f4cb8..2a4f13c863b 100644
--- a/htdocs/includes/modules/societe/mod_codeclient_elephant.php
+++ b/htdocs/includes/modules/societe/mod_codeclient_elephant.php
@@ -22,7 +22,7 @@
* \file htdocs/includes/modules/societe/mod_codeclient_elephant.php
* \ingroup societe
* \brief File of class to manage third party code with elephant rule
- * \version $Id: mod_codeclient_elephant.php,v 1.15 2011/07/31 23:28:14 eldy Exp $
+ * \version $Id: mod_codeclient_elephant.php,v 1.16 2011/08/27 13:15:38 eldy Exp $
*/
require_once(DOL_DOCUMENT_ROOT."/includes/modules/societe/modules_societe.class.php");
@@ -34,25 +34,23 @@ require_once(DOL_DOCUMENT_ROOT."/includes/modules/societe/modules_societe.class.
*/
class mod_codeclient_elephant extends ModeleThirdPartyCode
{
- var $nom; // Nom du modele
+ var $nom='Elephant'; // Nom du modele
var $code_modifiable; // Code modifiable
var $code_modifiable_invalide; // Code modifiable si il est invalide
var $code_modifiable_null; // Code modifiables si il est null
var $code_null; // Code facultatif
- var $version; // 'development', 'experimental', 'dolibarr'
- var $code_auto; // Numerotation automatique
+ var $version='dolibarr'; // 'development', 'experimental', 'dolibarr'
+ var $code_auto; // Numerotation automatique
var $searchcode; // String de recherche
var $numbitcounter; // Nombre de chiffres du compteur
var $prefixIsRequired; // Le champ prefix du tiers doit etre renseigne quand on utilise {pre}
- /** \brief Constructeur classe
+ /** Constructor
*/
function mod_codeclient_elephant()
{
- $this->nom = "Elephant";
- $this->version = "dolibarr";
$this->code_null = 0;
$this->code_modifiable = 1;
$this->code_modifiable_invalide = 1;
@@ -62,8 +60,10 @@ class mod_codeclient_elephant extends ModeleThirdPartyCode
}
- /** \brief Renvoi la description du module
- * \return string Texte descripif
+ /** Return description of module
+ *
+ * @param $langs Object langs
+ * @return string Description of module
*/
function info($langs)
{
@@ -107,9 +107,11 @@ class mod_codeclient_elephant extends ModeleThirdPartyCode
}
- /** \brief Return an example of number value
- * \param $type Client ou fournisseur (1:client, 2:fournisseur)
- * \return string Texte descripif
+ /** 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,$objsoc=0,$type=-1)
{
@@ -135,10 +137,11 @@ class mod_codeclient_elephant extends ModeleThirdPartyCode
return $examplecust.'
'.$examplesup;
}
- /** \brief Return next value
- * \param objsoc Object third party
- * \param $type Client ou fournisseur (1:client, 2:fournisseur)
- * \return string Value if OK, '' if module not configured, <0 if KO
+ /** Return next value
+ *
+ * @param objsoc Object third party
+ * @param $type Client ou fournisseur (1:client, 2:fournisseur)
+ * @return string Value if OK, '' if module not configured, <0 if KO
*/
function getNextValue($objsoc=0,$type=-1)
{
@@ -178,8 +181,7 @@ class mod_codeclient_elephant extends ModeleThirdPartyCode
/**
- * \brief Verifie si le mask utilise le prefix
- *
+ * Verifie si le mask utilise le prefix
*/
function verif_prefixIsUsed()
{
@@ -196,12 +198,13 @@ class mod_codeclient_elephant extends ModeleThirdPartyCode
/**
- * \brief Check validity of code according to its rules
- * \param $db Database handler
- * \param $code Code to check/correct
- * \param $soc Object third party
- * \param $type 0 = customer/prospect , 1 = supplier
- * \return int 0 if OK
+ * Check validity of code according to its rules
+ *
+ * @param $db Database handler
+ * @param $code Code to check/correct
+ * @param $soc Object third party
+ * @param $type 0 = customer/prospect , 1 = supplier
+ * @return int 0 if OK
* -1 ErrorBadCustomerCodeSyntax
* -2 ErrorCustomerCodeRequired
* -3 ErrorCustomerCodeAlreadyUsed
@@ -245,11 +248,12 @@ class mod_codeclient_elephant extends ModeleThirdPartyCode
/**
- * \brief Renvoi si un code est pris ou non (par autre tiers)
- * \param $db Handler acces base
- * \param $code Code a verifier
- * \param $soc Objet societe
- * \return int 0 si dispo, <0 si erreur
+ * Renvoi si un code est pris ou non (par autre tiers)
+ *
+ * @param $db Handler acces base
+ * @param $code Code a verifier
+ * @param $soc Objet societe
+ * @return int 0 si dispo, <0 si erreur
*/
function verif_dispo($db, $code, $soc)
{
diff --git a/htdocs/includes/modules/societe/mod_codeclient_leopard.php b/htdocs/includes/modules/societe/mod_codeclient_leopard.php
index b0a22623423..79c9ed0f85c 100644
--- a/htdocs/includes/modules/societe/mod_codeclient_leopard.php
+++ b/htdocs/includes/modules/societe/mod_codeclient_leopard.php
@@ -21,15 +21,15 @@
* \file htdocs/includes/modules/societe/mod_codeclient_leopard.php
* \ingroup societe
* \brief Fichier de la classe des gestion leopard des codes clients
- * \version $Id: mod_codeclient_leopard.php,v 1.17 2011/07/31 23:28:14 eldy Exp $
+ * \version $Id: mod_codeclient_leopard.php,v 1.18 2011/08/27 13:15:37 eldy Exp $
*/
require_once(DOL_DOCUMENT_ROOT."/includes/modules/societe/modules_societe.class.php");
/**
- \class mod_codeclient_leopard
- \brief Classe permettant la gestion leopard des codes tiers
+ * \class mod_codeclient_leopard
+ * \brief Classe permettant la gestion leopard des codes tiers
*/
class mod_codeclient_leopard extends ModeleThirdPartyCode
{
@@ -37,24 +37,22 @@ class mod_codeclient_leopard extends ModeleThirdPartyCode
* Attention ce module est utilise par defaut si aucun module n'a
* ete definit dans la configuration
*
- * Le fonctionnement de celui-ci doit dont rester le plus ouvert possible
+ * Le fonctionnement de celui-ci doit donc rester le plus ouvert possible
*/
- var $nom; // Nom du modele
+ var $nom='Leopard'; // Nom du modele
var $code_modifiable; // Code modifiable
var $code_modifiable_invalide; // Code modifiable si il est invalide
var $code_modifiable_null; // Code modifiables si il est null
var $code_null; // Code facultatif
- var $version; // 'development', 'experimental', 'dolibarr'
- var $code_auto; // Numerotation automatique
+ var $version='dolibarr'; // 'development', 'experimental', 'dolibarr'
+ var $code_auto; // Numerotation automatique
- /** \brief Constructeur classe
+ /** Constructor
*/
function mod_codeclient_leopard()
{
- $this->nom = "Leopard";
- $this->version = "dolibarr";
$this->code_null = 1;
$this->code_modifiable = 1;
$this->code_modifiable_invalide = 1;
@@ -63,9 +61,10 @@ class mod_codeclient_leopard extends ModeleThirdPartyCode
}
- /**
- * \brief Renvoie la description du module
- * \return string Texte descripif
+ /** Return description of module
+ *
+ * @param $langs Object langs
+ * @return string Description of module
*/
function info($langs)
{
@@ -73,8 +72,11 @@ class mod_codeclient_leopard extends ModeleThirdPartyCode
}
- /** \brief Return next value available
- * \return string Value
+ /** 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 getNextValue($objsoc=0,$type=-1)
{
@@ -84,12 +86,13 @@ class mod_codeclient_leopard extends ModeleThirdPartyCode
/**
- * \brief Check validity of code according to its rules
- * \param $db Database handler
- * \param $code Code to check/correct
- * \param $soc Object third party
- * \param $type 0 = customer/prospect , 1 = supplier
- * \return int 0 if OK
+ * Check validity of code according to its rules
+ *
+ * @param $db Database handler
+ * @param $code Code to check/correct
+ * @param $soc Object third party
+ * @param $type 0 = customer/prospect , 1 = supplier
+ * @return int 0 if OK
* -1 ErrorBadCustomerCodeSyntax
* -2 ErrorCustomerCodeRequired
* -3 ErrorCustomerCodeAlreadyUsed
diff --git a/htdocs/includes/modules/societe/mod_codeclient_monkey.php b/htdocs/includes/modules/societe/mod_codeclient_monkey.php
index c5735dd63e0..8ada7e0d5ad 100644
--- a/htdocs/includes/modules/societe/mod_codeclient_monkey.php
+++ b/htdocs/includes/modules/societe/mod_codeclient_monkey.php
@@ -21,30 +21,31 @@
* \file htdocs/includes/modules/societe/mod_codeclient_monkey.php
* \ingroup societe
* \brief Fichier de la classe des gestion lion des codes clients
- * \version $Id: mod_codeclient_monkey.php,v 1.11 2011/07/31 23:28:14 eldy Exp $
+ * \version $Id: mod_codeclient_monkey.php,v 1.12 2011/08/27 13:15:38 eldy Exp $
*/
require_once(DOL_DOCUMENT_ROOT."/includes/modules/societe/modules_societe.class.php");
/**
- \class mod_codeclient_monkey
- \brief Classe permettant la gestion monkey des codes tiers
+ * \class mod_codeclient_monkey
+ * \brief Classe permettant la gestion monkey des codes tiers
*/
class mod_codeclient_monkey extends ModeleThirdPartyCode
{
- var $nom; // Nom du modele
+ var $nom='Monkey'; // Nom du modele
var $code_modifiable; // Code modifiable
var $code_modifiable_invalide; // Code modifiable si il est invalide
var $code_modifiable_null; // Code modifiables si il est null
var $code_null; // Code facultatif
- var $version; // 'development', 'experimental', 'dolibarr'
- var $code_auto; // Numerotation automatique
+ var $version='dolibarr'; // 'development', 'experimental', 'dolibarr'
+ var $code_auto; // Numerotation automatique
var $prefixcustomer='CU';
var $prefixsupplier='SU';
- /** \brief Constructeur classe
+
+ /** Constructor classe
*/
function mod_codeclient_monkey()
{
@@ -58,8 +59,10 @@ class mod_codeclient_monkey extends ModeleThirdPartyCode
}
- /** \brief Renvoi la description du module
- * \return string Texte descripif
+ /** Return description of module
+ *
+ * @param $langs Object langs
+ * @return string Description of module
*/
function info($langs)
{
@@ -67,8 +70,11 @@ class mod_codeclient_monkey extends ModeleThirdPartyCode
}
- /** \brief Renvoi la description du module
- * \return string Texte descripif
+ /** 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,$objsoc=0,$type=-1)
{
@@ -76,10 +82,11 @@ class mod_codeclient_monkey extends ModeleThirdPartyCode
}
- /** \brief Return next value
- * \param objsoc Object third party
- * \param $type Client ou fournisseur (1:client, 2:fournisseur)
- * \return string Value if OK, '' if module not configured, <0 if KO
+ /** Return next value
+ *
+ * @param objsoc Object third party
+ * @param type Client ou fournisseur (1:client, 2:fournisseur)
+ * @return string Value if OK, '' if module not configured, <0 if KO
*/
function getNextValue($objsoc=0,$type=-1)
{
@@ -134,12 +141,13 @@ class mod_codeclient_monkey extends ModeleThirdPartyCode
/**
- * \brief Check validity of code according to its rules
- * \param $db Database handler
- * \param $code Code to check/correct
- * \param $soc Object third party
- * \param $type 0 = customer/prospect , 1 = supplier
- * \return int 0 if OK
+ * Check validity of code according to its rules
+ *
+ * @param $db Database handler
+ * @param $code Code to check/correct
+ * @param $soc Object third party
+ * @param $type 0 = customer/prospect , 1 = supplier
+ * @return int 0 if OK
* -1 ErrorBadCustomerCodeSyntax
* -2 ErrorCustomerCodeRequired
* -3 ErrorCustomerCodeAlreadyUsed
@@ -193,11 +201,12 @@ class mod_codeclient_monkey extends ModeleThirdPartyCode
/**
- * \brief Renvoi si un code est pris ou non (par autre tiers)
- * \param $db Handler acces base
- * \param $code Code a verifier
- * \param $soc Objet societe
- * \return int 0 si dispo, <0 si erreur
+ * Renvoi si un code est pris ou non (par autre tiers)
+ *
+ * @param $db Handler acces base
+ * @param $code Code a verifier
+ * @param $soc Objet societe
+ * @return int 0 si dispo, <0 si erreur
*/
function verif_dispo($db, $code, $soc)
{
@@ -226,9 +235,10 @@ class mod_codeclient_monkey extends ModeleThirdPartyCode
/**
- * \brief Renvoi si un code respecte la syntaxe
- * \param $code Code a verifier
- * \return int 0 si OK, <0 si KO
+ * Renvoi si un code respecte la syntaxe
+ *
+ * @param $code Code a verifier
+* * @return int 0 si OK, <0 si KO
*/
function verif_syntax($code)
{
diff --git a/htdocs/includes/modules/societe/mod_codecompta_aquarium.php b/htdocs/includes/modules/societe/mod_codecompta_aquarium.php
index 983a6835752..95cbd8c4861 100644
--- a/htdocs/includes/modules/societe/mod_codecompta_aquarium.php
+++ b/htdocs/includes/modules/societe/mod_codecompta_aquarium.php
@@ -1,7 +1,7 @@
- * Copyright (C) 2005 Eric Seigne
- * Copyright (C) 2006 Laurent Destailleur
+ * Copyright (C) 2005 Eric Seigne
+ * Copyright (C) 2006-2011 Laurent Destailleur
*
* 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
@@ -19,85 +19,83 @@
*/
/**
- \file htdocs/includes/modules/societe/mod_codecompta_aquarium.php
- \ingroup societe
- \brief Fichier de la classe des gestion aquarium des codes compta des societes clientes
- \version $Id: mod_codecompta_aquarium.php,v 1.17 2011/07/31 23:28:14 eldy Exp $
+ * \file htdocs/includes/modules/societe/mod_codecompta_aquarium.php
+ * \ingroup societe
+ * \brief File of class to manage accountancy code of thirdparties with Panicum rules
+ * \version $Id: mod_codecompta_aquarium.php,v 1.18 2011/08/27 13:15:38 eldy Exp $
*/
-
require_once(DOL_DOCUMENT_ROOT."/includes/modules/societe/modules_societe.class.php");
+
/**
- \class mod_codecompta_aquarium
- \brief Classe permettant la gestion aquarium des codes compta des societes clients
+ * \class mod_codecompta_aquarium
+ * \brief Class to manage accountancy code of thirdparties with Aquarium rules
*/
class mod_codecompta_aquarium extends ModeleAccountancyCode
{
- var $nom;
+ var $nom='Aquarium';
+ var $version='dolibarr'; // 'development', 'experimental', 'dolibarr'
+
+ var $prefixcodecomptacustomer='411';
+ var $prefixcodecomptasupplier='401';
/**
- * \brief Constructor
+ * Constructor
*/
function mod_codecompta_aquarium()
{
- $this->nom = "Aquarium";
}
- /**
- * \brief Return description of module
- * \param $langs Object langs
- * \return string Description
+ /** Return description of module
+ *
+ * @param $langs Object langs
+ * @return string Description of module
*/
function info($langs)
{
return $langs->trans("ModuleCompanyCode".$this->nom);
}
+ /** 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,$objsoc=0,$type=-1)
+ {
+ return $this->prefixcodecomptacustomer.'MYTHIRDPARTY';
+ }
+
/**
- * \brief Return accountancy account code for a third party
- * \param DB Database handler
- * \param societe Third party object
- * \param type 'customer' or 'supplier'
- * \return int >=0 if OK, <0 if KO
+ * 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 get_code($DB, $societe, $type)
+ function get_code($db, $societe, $type)
{
- $prefixcodecomptacustomer='411';
- $prefixcodecomptasupplier='401';
-
$i = 0;
- $this->db = $DB;
+ $this->db = $db;
dol_syslog("mod_codecompta_aquarium::get_code search code for type=".$type." company=".$societe->nom);
// Regle gestion compte compta
$codetouse='';
- if ($type == 'customer') $codetouse = $prefixcodecomptacustomer;
- if ($type == 'supplier') $codetouse = $prefixcodecomptasupplier;
- if ($type == 'customer') $codetouse.=$societe->code_client;
- if ($type == 'supplier') $codetouse.=$societe->code_fournisseur;
+ if ($type == 'customer') $codetouse = $this->prefixcodecomptacustomer;
+ if ($type == 'supplier') $codetouse = $this->prefixcodecomptasupplier;
+ if ($type == 'customer') $codetouse.= ($societe->code_client?$societe->code_client:'CustomerCode');
+ if ($type == 'supplier') $codetouse.= ($societe->code_fournisseur?$societe->code_fournisseur:'SupplierCode');
$codetouse=strtoupper(preg_replace('/([^a-z0-9])/i','',$codetouse));
- $is_dispo = $this->verif($DB, $codetouse, $societe, $type);
+ $is_dispo = $this->verif($db, $codetouse, $societe, $type);
if (! $is_dispo)
{
- /*
- // On tente ajout suffix
- while ($is_dispo == 0 && $i < 37)
- {
- $arr = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
- $altcodetouse = $codetouse . substr($arr, $i, 1);
-
- $is_dispo = $this->verif($DB, $altcodetouse, $societe, $type);
-
- $i++;
- }
- */
- // Pour retour
- // $this->code=$altcodetouse;
$this->code=$codetouse;
}
else
@@ -111,12 +109,13 @@ class mod_codecompta_aquarium extends ModeleAccountancyCode
/**
- * \brief Return if a code is available
- * \param db Database handler
- * \param code Code of third party
- * \param societe Object third party
- * \param type 'supplier' or 'customer'
- * \return int 0 if OK but not available, >0 if OK and available, <0 if KO
+ * Return if a code is available
+ *
+ * @param db Database handler
+ * @param code Code of third party
+ * @param societe Object third party
+ * @param type 'supplier' or 'customer'
+ * @return int 0 if OK but not available, >0 if OK and available, <0 if KO
*/
function verif($db, $code, $societe, $type)
{
diff --git a/htdocs/includes/modules/societe/mod_codecompta_panicum.php b/htdocs/includes/modules/societe/mod_codecompta_panicum.php
index ea8a5ff5092..532a61d667c 100644
--- a/htdocs/includes/modules/societe/mod_codecompta_panicum.php
+++ b/htdocs/includes/modules/societe/mod_codecompta_panicum.php
@@ -20,46 +20,60 @@
/**
* \file htdocs/includes/modules/societe/mod_codecompta_panicum.php
* \ingroup societe
- * \brief Fichier de la classe des gestion panicum des codes compta des societes clientes
- * \version $Id: mod_codecompta_panicum.php,v 1.8 2011/07/31 23:28:14 eldy Exp $
+ * \brief File of class to manage accountancy code of thirdparties with Panicum rules
+ * \version $Id: mod_codecompta_panicum.php,v 1.9 2011/08/27 13:15:38 eldy Exp $
*/
require_once(DOL_DOCUMENT_ROOT."/includes/modules/societe/modules_societe.class.php");
/**
* \class mod_codecompta_panicum
- * \brief Classe permettant la gestion panicum des codes compta des societes clients
+ * \brief Class to manage accountancy code of thirdparties with Panicum rules
*/
class mod_codecompta_panicum extends ModeleAccountancyCode
{
- var $nom;
+ var $nom='Panicum';
+ var $version='dolibarr'; // 'development', 'experimental', 'dolibarr'
+ /**
+ * Constructor
+ */
function mod_codecompta_panicum()
{
- $this->nom = "Panicum";
}
+ /** Return description of module
+ *
+ * @param $langs Object langs
+ * @return string Description of module
+ */
function info($langs)
{
return $langs->trans("ModuleCompanyCode".$this->nom);
}
- /**
- * \brief Return 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()
+ function getExample($langs,$objsoc=0,$type=-1)
{
return '';
}
/**
- * \brief Renvoi code
- * \param DB Handler d'acc�s base
- * \param societe Objet societe
+ * 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 get_code($DB, $societe)
+ function get_code($db, $societe, $type='')
{
// Renvoie toujours ok
$this->code = $societe->code_compta;
diff --git a/htdocs/includes/modules/societe/modules_societe.class.php b/htdocs/includes/modules/societe/modules_societe.class.php
index 4986daba8d2..541c5ea49e1 100644
--- a/htdocs/includes/modules/societe/modules_societe.class.php
+++ b/htdocs/includes/modules/societe/modules_societe.class.php
@@ -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;
+ global $conf;
- $langs->load("admin");
+ $langs->load("admin");
- $s='';
- if ($type == -1) $s.=$langs->trans("Name").': '.$this->nom.'
';
- if ($type == -1) $s.=$langs->trans("Version").': '.$this->getVersion().'
';
- if ($type == 0) $s.=$langs->trans("CustomerCodeDesc").'
';
- if ($type == 1) $s.=$langs->trans("SupplierCodeDesc").'
';
- if ($type != -1) $s.=$langs->trans("ValidityControledByModule").': '.$this->getNom($langs).'
';
- $s.='
';
- $s.=''.$langs->trans("ThisIsModuleRules").':
';
- if ($type == 0)
- {
- $s.=$langs->trans("RequiredIfCustomer").': ';
- if ($conf->global->MAIN_COMPANY_CODE_ALWAYS_REQUIRED && !empty($this->code_null)) $s.='';
- $s.=yn(!$this->code_null,1,2);
- if ($conf->global->MAIN_COMPANY_CODE_ALWAYS_REQUIRED && !empty($this->code_null)) $s.=' '.yn(1,1,2).' ('.$langs->trans("ForcedToByAModule",$langs->transnoentities("yes")).')';
- $s.='
';
- }
- if ($type == 1)
- {
- $s.=$langs->trans("RequiredIfSupplier").': ';
- if ($conf->global->MAIN_COMPANY_CODE_ALWAYS_REQUIRED && !empty($this->code_null)) $s.='';
- $s.=yn(!$this->code_null,1,2);
- if ($conf->global->MAIN_COMPANY_CODE_ALWAYS_REQUIRED && !empty($this->code_null)) $s.=' '.yn(1,1,2).' ('.$langs->trans("ForcedToByAModule",$langs->transnoentities("yes")).')';
- $s.='
';
- }
- if ($type == -1)
- {
- $s.=$langs->trans("Required").': ';
- if ($conf->global->MAIN_COMPANY_CODE_ALWAYS_REQUIRED && !empty($this->code_null)) $s.='';
- $s.=yn(!$this->code_null,1,2);
- if ($conf->global->MAIN_COMPANY_CODE_ALWAYS_REQUIRED && !empty($this->code_null)) $s.=' '.yn(1,1,2).' ('.$langs->trans("ForcedToByAModule",$langs->transnoentities("yes")).')';
- $s.='
';
- }
- $s.=$langs->trans("CanBeModifiedIfOk").': ';
- $s.=yn($this->code_modifiable,1,2);
- $s.='
';
- $s.=$langs->trans("CanBeModifiedIfKo").': '.yn($this->code_modifiable_invalide,1,2).'
';
- $s.=$langs->trans("AutomaticCode").': '.yn($this->code_auto,1,2).'
';
- $s.='
';
- 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").')':'').': '.$nextval.'
';
- }
- 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").')':'').': '.$nextval.'';
- }
- return $s;
- }
+ $s='';
+ if ($type == -1) $s.=$langs->trans("Name").': '.$this->nom.'
';
+ if ($type == -1) $s.=$langs->trans("Version").': '.$this->getVersion().'
';
+ if ($type == 0) $s.=$langs->trans("CustomerCodeDesc").'
';
+ if ($type == 1) $s.=$langs->trans("SupplierCodeDesc").'
';
+ if ($type != -1) $s.=$langs->trans("ValidityControledByModule").': '.$this->getNom($langs).'
';
+ $s.='
';
+ $s.=''.$langs->trans("ThisIsModuleRules").':
';
+ if ($type == 0)
+ {
+ $s.=$langs->trans("RequiredIfCustomer").': ';
+ if ($conf->global->MAIN_COMPANY_CODE_ALWAYS_REQUIRED && !empty($this->code_null)) $s.='';
+ $s.=yn(!$this->code_null,1,2);
+ if ($conf->global->MAIN_COMPANY_CODE_ALWAYS_REQUIRED && !empty($this->code_null)) $s.=' '.yn(1,1,2).' ('.$langs->trans("ForcedToByAModule",$langs->transnoentities("yes")).')';
+ $s.='
';
+ }
+ if ($type == 1)
+ {
+ $s.=$langs->trans("RequiredIfSupplier").': ';
+ if ($conf->global->MAIN_COMPANY_CODE_ALWAYS_REQUIRED && !empty($this->code_null)) $s.='';
+ $s.=yn(!$this->code_null,1,2);
+ if ($conf->global->MAIN_COMPANY_CODE_ALWAYS_REQUIRED && !empty($this->code_null)) $s.=' '.yn(1,1,2).' ('.$langs->trans("ForcedToByAModule",$langs->transnoentities("yes")).')';
+ $s.='
';
+ }
+ if ($type == -1)
+ {
+ $s.=$langs->trans("Required").': ';
+ if ($conf->global->MAIN_COMPANY_CODE_ALWAYS_REQUIRED && !empty($this->code_null)) $s.='';
+ $s.=yn(!$this->code_null,1,2);
+ if ($conf->global->MAIN_COMPANY_CODE_ALWAYS_REQUIRED && !empty($this->code_null)) $s.=' '.yn(1,1,2).' ('.$langs->trans("ForcedToByAModule",$langs->transnoentities("yes")).')';
+ $s.='
';
+ }
+ $s.=$langs->trans("CanBeModifiedIfOk").': ';
+ $s.=yn($this->code_modifiable,1,2);
+ $s.='
';
+ $s.=$langs->trans("CanBeModifiedIfKo").': '.yn($this->code_modifiable_invalide,1,2).'
';
+ $s.=$langs->trans("AutomaticCode").': '.yn($this->code_auto,1,2).'
';
+ $s.='
';
+ 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").')':'').': '.$nextval.'
';
+ }
+ 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").')':'').': '.$nextval.'';
+ }
+ return $s;
+ }
- function verif_prefixIsUsed()
- {
- return false;
- }
+ 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 getNextValue($langs)
+ 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").': '.$this->nom.'
';
+ if ($type == -1) $s.=$langs->trans("Version").': '.$this->getVersion().'
';
+ //$s.='
';
+ //$s.=''.$langs->trans("ThisIsModuleRules").':
';
+ $s.='
';
+ 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").')':'').': '.$nextval.'
';
+ }
+ 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").')':'').': '.$nextval.'';
+ }
+ 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 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");
+ global $conf,$langs;
+ $langs->load("bills");
- $dir = DOL_DOCUMENT_ROOT . "/includes/modules/societe/doc";
- $srctemplatepath='';
+ $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;
- }
- }
+ // 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];
- }
+ // 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);
+ // 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;
+ $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;
- }
+ // 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;
- }
+ }
+ else
+ {
+ dol_print_error('',$langs->trans("Error")." ".$langs->trans("ErrorFileDoesNotExists",$dir.'/'.$file));
+ return -1;
+ }
}