diff --git a/htdocs/admin/societe.php b/htdocs/admin/societe.php index f6efbb62de8..7be38bfe744 100644 --- a/htdocs/admin/societe.php +++ b/htdocs/admin/societe.php @@ -125,6 +125,9 @@ if ($handle) require_once(DOL_DOCUMENT_ROOT ."/includes/modules/societe/".$file.".php"); $modCodeTiers = new $file; + + if ($modCodeTiers->version == 'development' && ! $conf->global->MAIN_ENABLE_DEVELOPMENT) continue; + $var = !$var; print "\n ".$modCodeTiers->nom."\n "; print $modCodeTiers->info($langs); diff --git a/htdocs/includes/modules/societe/mod_codeclient_leopard.php b/htdocs/includes/modules/societe/mod_codeclient_leopard.php index af939209e85..e0139852c71 100644 --- a/htdocs/includes/modules/societe/mod_codeclient_leopard.php +++ b/htdocs/includes/modules/societe/mod_codeclient_leopard.php @@ -49,7 +49,8 @@ class mod_codeclient_leopard extends ModeleThirdPartyCode 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 $code_null; // Code facultatif + var $version='dolibarr'; // 'development', 'experimental', 'dolibarr' /** \brief Constructeur classe diff --git a/htdocs/includes/modules/societe/mod_codeclient_lion.php b/htdocs/includes/modules/societe/mod_codeclient_lion.php index 5a3f677e59d..7ac4963eb1a 100644 --- a/htdocs/includes/modules/societe/mod_codeclient_lion.php +++ b/htdocs/includes/modules/societe/mod_codeclient_lion.php @@ -41,7 +41,8 @@ class mod_codeclient_lion extends ModeleThirdPartyCode 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 $code_null; // Code facultatif + var $version='dolibarr'; // 'development', 'experimental', 'dolibarr' /** \brief Constructeur classe diff --git a/htdocs/includes/modules/societe/mod_codeclient_tigre.php b/htdocs/includes/modules/societe/mod_codeclient_tigre.php new file mode 100644 index 00000000000..282f7afa507 --- /dev/null +++ b/htdocs/includes/modules/societe/mod_codeclient_tigre.php @@ -0,0 +1,264 @@ + + * Copyright (C) 2006-2007 Laurent Destailleur + * Copyright (C) 2007 Regis Houssin + * + * 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 + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * or see http://www.gnu.org/ + * + * $Id$ + * $Source$ + */ + +/** + \file htdocs/includes/modules/societe/mod_codeclient_tigre.class.php + \ingroup societe + \brief Fichier de la classe des gestion tigre des codes clients + \version $Revision$ +*/ + +require_once(DOL_DOCUMENT_ROOT."/includes/modules/societe/modules_societe.class.php"); + + +/** + \class mod_codeclient_tigre + \brief Classe permettant la gestion tigre des codes tiers +*/ +class mod_codeclient_tigre extends ModeleThirdPartyCode +{ + var $nom; // 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'; // 'development', 'experimental', 'dolibarr' + + + /** \brief Constructeur classe + */ + function mod_codeclient_tigre() + { + $this->nom = "Tigre"; + $this->code_modifiable = 0; + $this->code_modifiable_invalide = 1; + $this->code_modifiable_null = 1; + $this->code_null = 0; + } + + + /** \brief Renvoi la description du module + * \return string Texte descripif + */ + function info($langs) + { + global $conf,$langs; + + $langs->load("companies"); + + $form = new Form($db); + + $texte = $langs->trans('TigreNumRefModelDesc1')."
\n"; + $texte.= '
'; + $texte.= ''; + $texte.= ''; + + // Paramétrage du masque + $texte.= ''; + $texte.= ''; + $texte.= ''; + + $texte.= ''; + $texte.= ''; + $texte.= ''; + + $texte.= ''; + + $texte.= '
Modele code client'.$form->textwithhelp('',$langs->trans("TigreMaskCodes"),1,1).'
Modele code fournisseur'.$form->textwithhelp('',$langs->trans("TigreMaskCodes"),1,1).'
 
'; + $texte.= '
'; + + return $texte; + } + + + /** \brief Renvoi la description du module + * \return string Texte descripif + */ + function getExample($langs) + { + return "CC0001
CF0001"; + } + + + /** + * \brief Vérifie la validité du code + * \param $db Handler acces base + * \param $code Code a vérifier/corriger + * \param $soc Objet societe + * \return int <0 si KO, 0 si OK + */ + function verif($db, &$code, $soc) + { + $result=0; + $code = strtoupper(trim($code)); + + if (! $code && $this->code_null) + { + $result=0; + } + else + { + if ($this->verif_syntax($code) >= 0) + { + $is_dispo = $this->verif_dispo($db, $code, $soc); + if ($is_dispo <> 0) + { + $result=-3; + } + else + { + $result=0; + } + } + else + { + if (strlen($code) == 0) + { + $result=-2; + } + else + { + $result=-1; + } + } + } + dolibarr_syslog("mod_codeclient_tigre::verif result=".$result); + return $result; + } + + + /** + * \brief Renvoi une valeur correcte + * \param $db Handler acces base + * \param $code Code reference eventuel + * \return string Code correct, <0 si KO + */ + function get_correct($db, $code) + { + $return='001'; + + $sql = "SELECT MAX(code_client) as maxval FROM ".MAIN_DB_PREFIX."societe"; + $resql=$db->query($sql); + if ($resql) + { + $obj=$db->fetch_object($resql); + if ($obj) + { + $newval=$obj->maxval+1; + $return=sprintf('%03d',$newval); + return $return; + } + } + else + { + return -1; + } + } + + + /** + * \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 + */ + function verif_dispo($db, $code, $soc) + { + $sql = "SELECT code_client FROM ".MAIN_DB_PREFIX."societe"; + $sql.= " WHERE code_client = '".$code."'"; + $sql.= " AND rowid != '".$soc->id."'"; + + $resql=$db->query($sql); + if ($resql) + { + if ($db->num_rows($resql) == 0) + { + return 0; + } + else + { + return -1; + } + } + else + { + return -2; + } + + } + + + /** + * \brief Renvoi si un code respecte la syntaxe + * \param $code Code a verifier + * \return int 0 si OK, <0 si KO + */ + function verif_syntax($code) + { + $res = 0; + + if (strlen($code) < 3) + { + $res = -1; + } + else + { + if (eregi('[0-9][0-9][0-9]+',$code)) + { + $res = 0; + } + else + { + $res = -2; + } + + } + return $res; + } + + + /** + * Renvoi 0 si numerique, sinon renvoi nb de car non numerique + */ + function is_num($str) + { + $ok = 0; + + $alpha = '0123456789'; + + for ($i = 0 ; $i < length($str) ; $i++) + { + if (strpos($alpha, substr($str,$i, 1)) === false) + { + $ok++; + } + } + + return $ok; + } + +} + +?> diff --git a/htdocs/includes/modules/societe/mod_codeclient_zebre.php b/htdocs/includes/modules/societe/mod_codeclient_zebre.php index a32fceda551..f035f9f530a 100644 --- a/htdocs/includes/modules/societe/mod_codeclient_zebre.php +++ b/htdocs/includes/modules/societe/mod_codeclient_zebre.php @@ -41,7 +41,8 @@ class mod_codeclient_zebre extends ModeleThirdPartyCode 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 $code_null; // Code facultatif + var $version='dolibarr'; // 'development', 'experimental', 'dolibarr' /** \brief Constructeur classe