';
print $html->textwithhelp('',$htmltooltip,1,0);
diff --git a/htdocs/admin/dons.php b/htdocs/admin/dons.php
index a99857284a5..2d192e5e6f9 100644
--- a/htdocs/admin/dons.php
+++ b/htdocs/admin/dons.php
@@ -1,5 +1,5 @@
+/* Copyright (C) 2005-2009 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
@@ -16,7 +16,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-/**
+/**
* \file htdocs/admin/dons.php
* \ingroup dons
* \brief Page d'administration/configuration du module Dons
@@ -71,12 +71,12 @@ if ($_GET["action"] == 'specimen')
$mesg='
";
}
else
diff --git a/htdocs/includes/modules/commande/mod_commande_saphir.php b/htdocs/includes/modules/commande/mod_commande_saphir.php
index 220d5e309f7..85bd41b7a32 100644
--- a/htdocs/includes/modules/commande/mod_commande_saphir.php
+++ b/htdocs/includes/modules/commande/mod_commande_saphir.php
@@ -40,7 +40,7 @@ class mod_commande_saphir extends ModeleNumRefCommandes
var $error = '';
var $nom = 'Saphir';
-
+
/** \brief Renvoi la description du modele de num�rotation
* \return string Texte descripif
*/
@@ -49,23 +49,29 @@ class mod_commande_saphir extends ModeleNumRefCommandes
global $conf,$langs;
$langs->load("bills");
-
+
$form = new Form($db);
-
+
$texte = $langs->trans('GenericNumRefModelDesc')." \n";
$texte.= '';
@@ -78,12 +84,12 @@ class mod_commande_saphir extends ModeleNumRefCommandes
function getExample()
{
global $conf,$langs,$mysoc;
-
+
$old_code_client=$mysoc->code_client;
$mysoc->code_client='CCCCCCCCCC';
$numExample = $this->getNextValue($mysoc,'');
$mysoc->code_client=$old_code_client;
-
+
if (! $numExample)
{
$numExample = $langs->trans('NotConfigured');
@@ -101,22 +107,22 @@ class mod_commande_saphir extends ModeleNumRefCommandes
global $db,$conf;
require_once(DOL_DOCUMENT_ROOT ."/lib/functions2.lib.php");
-
+
// We get cursor rule
$mask=$conf->global->COMMANDE_SAPHIR_MASK;
-
- if (! $mask)
+
+ if (! $mask)
{
$this->error='NotConfigured';
return 0;
}
$numFinal=get_next_value($db,$mask,'commande','ref','',$objsoc->code_client,$commande->date);
-
+
return $numFinal;
}
-
-
+
+
/** \brief Return next free value
* \param objsoc Object third party
* \param objforref Object for number to search
@@ -126,7 +132,7 @@ class mod_commande_saphir extends ModeleNumRefCommandes
{
return $this->getNextValue($objsoc,$objforref);
}
-
-}
+
+}
?>
\ No newline at end of file
diff --git a/htdocs/includes/modules/facture/mercure/mercure.modules.php b/htdocs/includes/modules/facture/mercure/mercure.modules.php
index d102a459d59..d3adb1e43bd 100644
--- a/htdocs/includes/modules/facture/mercure/mercure.modules.php
+++ b/htdocs/includes/modules/facture/mercure/mercure.modules.php
@@ -39,7 +39,7 @@ class mod_facture_mercure extends ModeleNumRefFactures
var $version='dolibarr'; // 'development', 'experimental', 'dolibarr'
var $error = '';
-
+
/** \brief Renvoi la description du modele de numerotation
* \return string Texte descripif
*/
@@ -48,47 +48,53 @@ class mod_facture_mercure extends ModeleNumRefFactures
global $conf,$langs;
$langs->load("bills");
-
+
$form = new Form($db);
-
+
$texte = $langs->trans('GenericNumRefModelDesc')." \n";
$texte.= '';
return $texte;
}
- /** \brief Renvoi un exemple de numerotation
+ /** \brief Return an example of number value
* \return string Example
*/
function getExample()
{
global $conf,$langs,$mysoc;
-
+
$old_code_client=$mysoc->code_client;
$mysoc->code_client='CCCCCCCCCC';
$numExample = $this->getNextValue($mysoc,'');
$mysoc->code_client=$old_code_client;
-
+
if (! $numExample)
{
$numExample = $langs->trans('NotConfigured');
@@ -106,12 +112,12 @@ class mod_facture_mercure extends ModeleNumRefFactures
global $db,$conf;
require_once(DOL_DOCUMENT_ROOT ."/lib/functions2.lib.php");
-
- // On defini critere recherche compteur
+
+ // Get Mask value
+ $mask = '';
if (is_object($facture) && $facture->type == 2) $mask=$conf->global->FACTURE_MERCURE_MASK_CREDIT;
else $mask=$conf->global->FACTURE_MERCURE_MASK_INVOICE;
-
- if (! $mask)
+ if (! $mask)
{
$this->error='NotConfigured';
return 0;
@@ -120,13 +126,13 @@ class mod_facture_mercure extends ModeleNumRefFactures
$where='';
if ($facture->type == 2) $where.= " AND type = 2";
else $where.=" AND type != 2";
-
+
$numFinal=get_next_value($db,$mask,'facture','facnumber',$where,$objsoc->code_client,$facture->date);
-
+
return $numFinal;
}
-
-
+
+
/** \brief Return next free value
* \param objsoc Object third party
* \param objforref Object for number to search
@@ -136,6 +142,6 @@ class mod_facture_mercure extends ModeleNumRefFactures
{
return $this->getNextValue($objsoc,$objforref);
}
-
-}
+
+}
?>
\ No newline at end of file
diff --git a/htdocs/includes/modules/fichinter/mod_arctic.php b/htdocs/includes/modules/fichinter/mod_arctic.php
index 09530ed51ca..f15d067e1a6 100644
--- a/htdocs/includes/modules/fichinter/mod_arctic.php
+++ b/htdocs/includes/modules/fichinter/mod_arctic.php
@@ -38,7 +38,7 @@ class mod_arctic extends ModeleNumRefFicheinter
var $version='dolibarr'; // 'development', 'experimental', 'dolibarr'
var $error = '';
var $nom = 'Artic';
-
+
/** \brief Constructeur
*/
function mod_arctic()
@@ -54,23 +54,29 @@ class mod_arctic extends ModeleNumRefFicheinter
global $conf,$langs;
$langs->load("bills");
-
+
$form = new Form($db);
-
+
$texte = $langs->trans('GenericNumRefModelDesc')." \n";
$texte.= '';
@@ -83,12 +89,12 @@ class mod_arctic extends ModeleNumRefFicheinter
function getExample()
{
global $conf,$langs,$mysoc;
-
+
$old_code_client=$mysoc->code_client;
$mysoc->code_client='CCCCCCCCCC';
$numExample = $this->getNextValue($mysoc,'');
$mysoc->code_client=$old_code_client;
-
+
if (! $numExample)
{
$numExample = $langs->trans('NotConfigured');
@@ -106,22 +112,22 @@ class mod_arctic extends ModeleNumRefFicheinter
global $db,$conf;
require_once(DOL_DOCUMENT_ROOT ."/lib/functions2.lib.php");
-
+
// On dfini critere recherche compteur
$mask=$conf->global->FICHINTER_ARTIC_MASK;
-
- if (! $mask)
+
+ if (! $mask)
{
$this->error='NotConfigured';
return 0;
}
$numFinal=get_next_value($db,$mask,'fichinter','ref','',$objsoc->code_client,$ficheinter->date);
-
+
return $numFinal;
}
-
-
+
+
/** \brief Return next free value
* \param objsoc Object third party
* \param objforref Object for number to search
@@ -132,6 +138,6 @@ class mod_arctic extends ModeleNumRefFicheinter
return $this->getNextValue($objsoc,$objforref);
}
-}
+}
?>
\ No newline at end of file
diff --git a/htdocs/includes/modules/livraison/mod_livraison_saphir.php b/htdocs/includes/modules/livraison/mod_livraison_saphir.php
index 4a4a6de9a39..575e328dd8e 100644
--- a/htdocs/includes/modules/livraison/mod_livraison_saphir.php
+++ b/htdocs/includes/modules/livraison/mod_livraison_saphir.php
@@ -37,8 +37,8 @@ class mod_livraison_saphir extends ModeleNumRefDeliveryOrder
var $version='dolibarr'; // 'development', 'experimental', 'dolibarr'
var $error = '';
var $nom = 'Saphir';
-
-
+
+
/** \brief Renvoi la description du modele de numerotation
* \return string Texte descripif
*/
@@ -47,23 +47,29 @@ class mod_livraison_saphir extends ModeleNumRefDeliveryOrder
global $conf,$langs;
$langs->load("bills");
-
+
$form = new Form($db);
-
+
$texte = $langs->trans('GenericNumRefModelDesc')." \n";
$texte.= '';
@@ -76,12 +82,12 @@ class mod_livraison_saphir extends ModeleNumRefDeliveryOrder
function getExample()
{
global $conf,$langs,$mysoc;
-
+
$old_code_client=$mysoc->code_client;
$mysoc->code_client='CCCCCCCCCC';
$numExample = $this->getNextValue($mysoc,'');
$mysoc->code_client=$old_code_client;
-
+
if (! $numExample)
{
$numExample = $langs->trans('NotConfigured');
@@ -100,22 +106,22 @@ class mod_livraison_saphir extends ModeleNumRefDeliveryOrder
global $db,$conf;
require_once(DOL_DOCUMENT_ROOT ."/lib/functions2.lib.php");
-
+
// On d�fini critere recherche compteur
$mask=$conf->global->LIVRAISON_SAPHIR_MASK;
-
- if (! $mask)
+
+ if (! $mask)
{
$this->error='NotConfigured';
return 0;
}
$numFinal=get_next_value($db,$mask,'livraison','ref','',$objsoc->code_client,$livraison->date_livraison);
-
+
return $numFinal;
}
-
+
/** \brief Return next free value
* \param objsoc Object third party
* \param objforref Object for number to search
@@ -125,7 +131,7 @@ class mod_livraison_saphir extends ModeleNumRefDeliveryOrder
{
return $this->getNextValue($objsoc,$objforref);
}
-
+
/** \brief Renvoie la r�f�rence de commande suivante non utilis�e
* \param objsoc Objet soci�t�
@@ -136,7 +142,7 @@ class mod_livraison_saphir extends ModeleNumRefDeliveryOrder
{
return $this->getNextValue($objsoc,$livraison);
}
-
-}
+
+}
?>
\ No newline at end of file
diff --git a/htdocs/includes/modules/propale/mod_propale_saphir.php b/htdocs/includes/modules/propale/mod_propale_saphir.php
index 177786ce7c0..3dd3bc731c5 100644
--- a/htdocs/includes/modules/propale/mod_propale_saphir.php
+++ b/htdocs/includes/modules/propale/mod_propale_saphir.php
@@ -39,7 +39,7 @@ class mod_propale_saphir extends ModeleNumRefPropales
var $version='dolibarr'; // 'development', 'experimental', 'dolibarr'
var $error = '';
var $nom = 'Saphir';
-
+
/** \brief Renvoi la description du modele de numrotation
* \return string Texte descripif
@@ -49,23 +49,29 @@ class mod_propale_saphir extends ModeleNumRefPropales
global $conf,$langs;
$langs->load("bills");
-
+
$form = new Form($db);
-
+
$texte = $langs->trans('GenericNumRefModelDesc')." \n";
$texte.= '';
@@ -78,12 +84,12 @@ class mod_propale_saphir extends ModeleNumRefPropales
function getExample()
{
global $conf,$langs,$mysoc;
-
+
$old_code_client=$mysoc->code_client;
$mysoc->code_client='CCCCCCCCCC';
$numExample = $this->getNextValue($mysoc,'');
$mysoc->code_client=$old_code_client;
-
+
if (! $numExample)
{
$numExample = $langs->trans('NotConfigured');
@@ -101,20 +107,20 @@ class mod_propale_saphir extends ModeleNumRefPropales
global $db,$conf;
require_once(DOL_DOCUMENT_ROOT ."/lib/functions2.lib.php");
-
+
// On dfini critere recherche compteur
$mask=$conf->global->PROPALE_SAPHIR_MASK;
-
- if (! $mask)
+
+ if (! $mask)
{
$this->error='NotConfigured';
return 0;
}
$numFinal=get_next_value($db,$mask,'propal','ref','',$objsoc->code_client,$propal->date);
-
+
return $numFinal;
}
-}
+}
?>
\ No newline at end of file
diff --git a/htdocs/includes/modules/societe/mod_codeclient_elephant.php b/htdocs/includes/modules/societe/mod_codeclient_elephant.php
new file mode 100644
index 00000000000..63a2c6f9845
--- /dev/null
+++ b/htdocs/includes/modules/societe/mod_codeclient_elephant.php
@@ -0,0 +1,285 @@
+
+ * Copyright (C) 2006-2009 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/
+ */
+
+/**
+ * \file htdocs/includes/modules/societe/mod_codeclient_elephant.class.php
+ * \ingroup societe
+ * \brief File of class to manage third party code with elephant rule
+ * \version $Id$
+ */
+
+require_once(DOL_DOCUMENT_ROOT."/includes/modules/societe/modules_societe.class.php");
+
+
+/**
+ * \class mod_codeclient_elephant
+ * \brief Class to manage third party code with elephant rule
+ */
+class mod_codeclient_elephant 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', '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 renseign� quand on utilise {pre}
+
+
+ /** \brief Constructeur classe
+ */
+ function mod_codeclient_elephant()
+ {
+ $this->nom = "Elephant";
+ $this->version = "dolibarr";
+ $this->code_modifiable = 0;
+ $this->code_modifiable_invalide = 1;
+ $this->code_modifiable_null = 1;
+ $this->code_null = 0;
+ $this->code_auto = 1;
+ $this->prefixIsRequired = 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('GenericNumRefModelDesc')." \n";
+ $texte.= '';
+
+ return $texte;
+ }
+
+
+ /** \brief Return an example of number value
+ * \param $type Client ou fournisseur (1:client, 2:fournisseur)
+ * \return string Texte descripif
+ */
+ function getExample($langs,$objsoc=0,$type=-1)
+ {
+ if ($type == 0 || $type == -1)
+ {
+ $examplecust = $this->getNextValue($objsoc,0);
+ if (! $examplecust)
+ {
+ $examplecust = $langs->trans('NotConfigured');
+ }
+ }
+ if ($type == 1 || $type == -1)
+ {
+ $examplesup = $this->getNextValue($objsoc,1);
+ if (! $examplesup)
+ {
+ $examplesup = $langs->trans('NotConfigured');
+ }
+ }
+
+ if ($type == 0) return $examplecust;
+ if ($type == 1) return $examplesup;
+ 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
+ */
+ function getNextValue($objsoc=0,$type=-1)
+ {
+ global $db,$conf;
+
+ require_once(DOL_DOCUMENT_ROOT ."/lib/functions2.lib.php");
+
+ // Get Mask value
+ $mask = '';
+ if ($type==0) $mask = $conf->global->COMPANY_ELEPHANT_MASK_CUSTOMER;
+ if ($type==1) $mask = $conf->global->COMPANY_ELEPHANT_MASK_SUPPLIER;
+ if (! $mask)
+ {
+ $this->error='NotConfigured';
+ return '';
+ }
+
+ $field='';$where='';
+ if ($type == 0)
+ {
+ $field = 'code_client';
+ //$where = ' AND client in (1,2)';
+ }
+ else if ($type == 1)
+ {
+ $field = 'code_fournisseur';
+ //$where = ' AND fournisseur = 1';
+ }
+ else return -1;
+
+ $now=gmmktime();
+
+ $numFinal=get_next_value($db,$mask,'societe',$field,$where,'',$now);
+
+ return $numFinal;
+ }
+
+
+ /**
+ * \brief Verifie si le mask utilise le prefix
+ *
+ */
+ function verif_prefixIsUsed()
+ {
+ global $conf;
+
+ $mask = $conf->global->COMPANY_ELEPHANT_MASK_CUSTOMER;
+ if (eregi('\{pre\}',$mask)) return 1;
+
+ $mask = $conf->global->COMPANY_ELEPHANT_MASK_SUPPLIER;
+ if (eregi('\{pre\}',$mask)) return 1;
+
+ return 0;
+ }
+
+
+ /**
+ * \brief Verifie la validite du code
+ * \param $db Handler acces base
+ * \param $code Code a verifier/corriger
+ * \param $soc Objet societe
+ * \param $type 0 = client/prospect , 1 = fournisseur
+ * \return int <0 if KO, 0 if OK
+ */
+ function verif($db, &$code, $soc, $type)
+ {
+ global $conf;
+
+ require_once(DOL_DOCUMENT_ROOT ."/lib/functions2.lib.php");
+
+ $result=0;
+ $code = strtoupper(trim($code));
+
+ if (! $code && $this->code_null)
+ {
+ $result=0;
+ }
+ else
+ {
+ // Get Mask value
+ $mask = '';
+ if ($type==0) $mask = $conf->global->COMPANY_ELEPHANT_MASK_CUSTOMER;
+ if ($type==1) $mask = $conf->global->COMPANY_ELEPHANT_MASK_SUPPLIER;
+ if (! $mask)
+ {
+ $this->error='NotConfigured';
+ return '';
+ }
+
+ $result=check_value($mask,$code);
+ }
+
+ dolibarr_syslog("mod_codeclient_elephant::verif type=".$type." 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)
+ {
+
+ }
+
+
+ /**
+ * \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;
+ }
+
+ }
+
+}
+
+?>
diff --git a/htdocs/includes/modules/societe/mod_codeclient_leopard.php b/htdocs/includes/modules/societe/mod_codeclient_leopard.php
index 1658dd63e21..b0eef718a0a 100644
--- a/htdocs/includes/modules/societe/mod_codeclient_leopard.php
+++ b/htdocs/includes/modules/societe/mod_codeclient_leopard.php
@@ -17,7 +17,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* or see http://www.gnu.org/
*/
-
+
/**
* \file htdocs/includes/modules/societe/mod_codeclient_leopard.class.php
* \ingroup societe
@@ -35,7 +35,7 @@ require_once(DOL_DOCUMENT_ROOT."/includes/modules/societe/modules_societe.class.
class mod_codeclient_leopard extends ModeleThirdPartyCode
{
/*
- * Attention ce module est utilise par defaut si aucun module n'a
+ * 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
@@ -50,7 +50,7 @@ class mod_codeclient_leopard extends ModeleThirdPartyCode
var $version; // 'development', 'experimental', 'dolibarr'
var $code_auto; // Numerotation automatique
-
+
/** \brief Constructeur classe
*/
function mod_codeclient_leopard()
@@ -64,17 +64,17 @@ class mod_codeclient_leopard extends ModeleThirdPartyCode
$this->code_auto = 0;
}
-
+
/**
* \brief Renvoie la description du module
* \return string Texte descripif
*/
function info($langs)
{
- return "Renvoie toujours ok, pour ceux qui ne veulent pas faire de test. Verification mais pas de generation automatique.";
+ return $langs->trans("LeopardNumRefModelDesc");
}
-
+
/**
* \brief V�rifie la validit� du code
* \param $db Handler acces base
diff --git a/htdocs/includes/modules/societe/mod_codeclient_lion.php b/htdocs/includes/modules/societe/mod_codeclient_monkey.php
similarity index 88%
rename from htdocs/includes/modules/societe/mod_codeclient_lion.php
rename to htdocs/includes/modules/societe/mod_codeclient_monkey.php
index 89f43fada64..6e08a4219e4 100644
--- a/htdocs/includes/modules/societe/mod_codeclient_lion.php
+++ b/htdocs/includes/modules/societe/mod_codeclient_monkey.php
@@ -29,10 +29,10 @@ require_once(DOL_DOCUMENT_ROOT."/includes/modules/societe/modules_societe.class.
/**
- \class mod_codeclient_lion
- \brief Classe permettant la gestion lion des codes tiers
+ \class mod_codeclient_monkey
+ \brief Classe permettant la gestion monkey des codes tiers
*/
-class mod_codeclient_lion extends ModeleThirdPartyCode
+class mod_codeclient_monkey extends ModeleThirdPartyCode
{
var $nom; // Nom du modele
var $code_modifiable; // Code modifiable
@@ -45,10 +45,10 @@ class mod_codeclient_lion extends ModeleThirdPartyCode
/** \brief Constructeur classe
*/
- function mod_codeclient_lion()
+ function mod_codeclient_monkey()
{
- $this->nom = "Lion";
- $this->version = "dolibarr";
+ $this->nom = "Monkey";
+ $this->version = "experimental";
$this->code_modifiable = 0;
$this->code_modifiable_invalide = 1;
$this->code_modifiable_null = 1;
@@ -62,7 +62,7 @@ class mod_codeclient_lion extends ModeleThirdPartyCode
*/
function info($langs)
{
- return "Verifie si le code client/fournisseur est de la forme numerique 999 et sur au moins 3 chiffres. Verification mais pas de generation automatique.";
+ return $langs->trans("MonkeyNumRefModelDesc");
}
@@ -71,14 +71,14 @@ class mod_codeclient_lion extends ModeleThirdPartyCode
*/
function getExample($langs)
{
- return "001";
+ return "000001";
}
/**
- * \brief V�rifie la validit� du code
+ * \brief Verifie la validite du code
* \param $db Handler acces base
- * \param $code Code a v�rifier/corriger
+ * \param $code Code a verifier/corriger
* \param $soc Objet societe
* \return int <0 si KO, 0 si OK
*/
@@ -117,7 +117,7 @@ class mod_codeclient_lion extends ModeleThirdPartyCode
}
}
}
- dolibarr_syslog("mod_codeclient_lion::verif result=".$result);
+ dolibarr_syslog("mod_codeclient_monkey::verif result=".$result);
return $result;
}
diff --git a/htdocs/includes/modules/societe/mod_codeclient_tigre.php b/htdocs/includes/modules/societe/mod_codeclient_tigre.php
deleted file mode 100644
index e9d0356f895..00000000000
--- a/htdocs/includes/modules/societe/mod_codeclient_tigre.php
+++ /dev/null
@@ -1,452 +0,0 @@
-
- * 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/
- */
-
-/**
- * \file htdocs/includes/modules/societe/mod_codeclient_tigre.class.php
- * \ingroup societe
- * \brief Fichier de la classe des gestion tigre des codes clients
- * \version $Id$
- */
-
-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', '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 renseign� quand on utilise {pre}
-
-
- /** \brief Constructeur classe
- */
- function mod_codeclient_tigre()
- {
- $this->nom = "Tigre";
- $this->version = "experimental";
- $this->code_modifiable = 0;
- $this->code_modifiable_invalide = 1;
- $this->code_modifiable_null = 1;
- $this->code_null = 0;
- $this->code_auto = 1;
- $this->prefixIsRequired = 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.= '';
-
- return $texte;
- }
-
-
- /** \brief Renvoi la description du module
- * \param $type Client ou fournisseur (1:client, 2:fournisseur)
- * \return string Texte descripif
- */
- function getExample($langs,$objsoc=0,$type=-1)
- {
- if ($type == 0)
- {
- $example = $this->getNextValue($objsoc,0);
- }
- else if ($type == 1)
- {
- $example = $this->getNextValue($objsoc,1);
- }
- else
- {
- $example = $this->getNextValue($objsoc,0)." ".$this->getNextValue($objsoc,1);
- }
- return $example;
- }
-
- /** \brief Renvoi prochaine valeur attribu�e
- * \param $type Client ou fournisseur (1:client, 2:fournisseur)
- * \return string Valeur
- */
- function getNextValue($objsoc=0,$type=-1)
- {
- global $db,$conf;
-
- $mask = $this->buildMask($objsoc,$type);
-
- if ($type == 0)
- {
- $field = 'code_client';
- }
- else if ($type == 1)
- {
- $field = 'code_fournisseur';
- }
-
- // On r�cup�re la valeur max (r�ponse imm�diate car champ ind�x�)
- $posindice = $this->numbitcounter;
-
- $sql = "SELECT MAX(0+SUBSTRING(".$field.",-".$posindice."))";
- $sql.= " FROM ".MAIN_DB_PREFIX."societe";
- $sql.= " WHERE ".$field." REGEXP '^".$this->searchcode."$'";
-
- $resql=$db->query($sql);
-
- if ($resql)
- {
- $row = $db->fetch_row($resql);
- $max = $row[0];
- }
-
- // On applique le nombre de chiffres du compteur
- $arg = '%0'.$this->numbitcounter.'s';
-
- $num = sprintf($arg,$max+1);
- $mask = eregi_replace('\{0+\}',$num,$mask);
-
- dolibarr_syslog("mod_codeclient_tigre::getNextValue return ".$mask);
-
- return $mask;
- }
-
- /** \brief Construction du masque de num�rotation
- * \param objsoc Objet soci�t�
- * \param $type Client ou fournisseur (1:client, 2:fournisseur)
- * \return string Valeur
- */
- function buildMask($objsoc=0,$type=-1)
- {
- global $conf;
-
- if ($type==0)
- {
- $mask = $conf->global->CODE_TIGRE_MASK_CUSTOMER;
- }
- else if ($type==1)
- {
- $mask = $conf->global->CODE_TIGRE_MASK_SUPPLIER;
- }
-
- $maskElement = preg_split('/[|]{1}/', $mask);
-
- $foundCounter = 0;
- $substrBegin = 0;
- $substrEnd = 0;
- $maskRebuild = '';
- $error = 0;
- $this->searchcode = '';
-
- for ($i = 0; $i < count($maskElement); $i++)
- {
- // Ajout du jour en cours
- if ($maskElement[$i] == '{dd}')
- {
- $maskRebuild .= strftime("%d",time());
- $this->searchcode .= '([0-9]{2})';
- }
- else if (eregi('\{d+\}',$maskElement[$i]) && (eregi('\{d+\}',$$maskElement[$i]) != '{dd}'))
- {
- $error++;
- }
-
- // Ajout du mois en cours
- if ($maskElement[$i] == '{mm}')
- {
- $maskRebuild .= strftime("%m",time());
- $this->searchcode .= '([0-9]{2})';
- }
- else if (eregi('\{m+\}',$maskElement[$i]) && (eregi('\{m+\}',$maskElement[$i]) != '{mm}'))
- {
- $error++;
- }
-
- // Ajout de l'ann�e en cours
- if ($maskElement[$i] == '{aa}')
- {
- $maskRebuild .= substr(strftime("%Y",time()),2);
- $this->searchcode .= '([0-9]{2})';
- }
- else if ($maskElement[$i] == '{aaaa}')
- {
- $maskRebuild .= strftime("%Y",time());
- $this->searchcode .= '([0-9]{4})';
- }
- else if (eregi('\{a+\}',$maskElement[$i]) && ((eregi('\{a+\}',$maskElement[$i]) != '{aa}') || (eregi('\{a+\}',$maskElement[$i]) != '{aaa}')))
- {
- $error++;
- }
-
- // Ajout du pr�fix de la soci�t�
- if (is_object($objsoc) && $objsoc->prefix_comm && $maskElement[$i] == '{pre}')
- {
- if ((!$objsoc->fournisseur && !$objsoc->code_fournisseur) || (!$objsoc->client && !$objsoc->code_client))
- {
- $maskRebuild .= strtoupper($objsoc->prefix_comm);
- $this->searchcode .= '([0-9A-Z]{1,})';
- }
- else
- {
- $maskRebuild .= 'ABC';
- $this->searchcode .= '([0-9A-Z]{1,})';
- }
- }
- else if (is_object($objsoc) && !$objsoc->prefix_comm && $maskElement[$i] == '{pre}')
- {
- $maskRebuild .= 'ABC';
- $error++;
- $this->prefixIsRequired = 1;
- }
- else if (!is_object($objsoc) && $maskElement[$i] == '{pre}')
- {
- if (is_string($objsoc) && $objsoc)
- {
- $maskRebuild .= $objsoc;
- $this->searchcode .= '([0-9A-Z]{1,})';
- }
- else if ($objsoc === 0)
- {
- $maskRebuild .= 'ABC';
- $this->searchcode .= '([0-9A-Z]{1,})';
- }
- else
- {
- $error++;
- $this->prefixIsRequired = 1;
- }
- }
-
- // Ajout des s�parateurs �ventuels : \ / -
- if (eregi('[\/-]{1}',$maskElement[$i]))
- {
- $maskRebuild .= $maskElement[$i];
- $this->searchcode .= '([\/-]{1})';
- }
- else if (eregi('[\/-]{2,}',$maskElement[$i]))
- {
- $error++;
- }
-
- // Ajout des champs libres �ventuels
- if (eregi('^[0-9A-Z]+$',$maskElement[$i]))
- {
- $maskRebuild .= strtoupper($maskElement[$i]);
- $this->searchcode .= '([0-9A-Z]+)';
- }
-
- // D�finition du compteur
- if (eregi('\{0+\}',$maskElement[$i]))
- {
- // D�fini le nombre de chiffres du compteur
- $this->numbitcounter = strlen(substr($maskElement[$i],1,-1));
- // Permettra d'effectuer une recherche dans la table
- $this->searchcode .= '([0-9]{'.$this->numbitcounter.'})';
-
- $maskRebuild .= $maskElement[$i];
- $foundCounter = 1;
- }
- else if ($i == count($maskElement) && !eregi('\{0+\}',$maskElement[$i]) && $foundCounter == 0)
- {
- $error++;
- }
- }
-
- return $maskRebuild;
- }
-
- /**
- * \brief V�rifie si le mask utilise le pr�fix
- *
- */
- function verif_prefixIsUsed()
- {
- global $conf;
-
- $mask = $conf->global->CODE_TIGRE_MASK_CUSTOMER;
- if (eregi('\{pre\}',$mask)) return 1;
-
- $mask = $conf->global->CODE_TIGRE_MASK_SUPPLIER;
- if (eregi('\{pre\}',$mask)) return 1;
-
- return 0;
- }
-
-
- /**
- * \brief V�rifie la validit� du code
- * \param $db Handler acces base
- * \param $code Code a v�rifier/corriger
- * \param $soc Objet societe
- * \param $type 0 = client/prospect , 1 = fournisseur
- * \return int <0 si KO, 0 si OK
- */
- function verif($db, &$code, $soc, $type)
- {
- $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 if ($type == 0 && $soc->prefixCustomerIsRequired && !$soc->prefix_comm)
- {
- $result=-4;
- }
- else if ($type == 1 && $soc->prefixSupplierIsRequired && !$soc->prefix_comm)
- {
- $result=-5;
- }
- 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)
- {
-
- }
-
-
- /**
- * \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;
- return $res;
- }
-
-
- /**
- * Renvoi 0 si numerique, sinon renvoi nb de car non numerique
- */
- function is_num($str)
- {
- $ok = 0;
- return $ok;
- }
-
-}
-
-?>
diff --git a/htdocs/includes/modules/societe/mod_codeclient_zebre.php b/htdocs/includes/modules/societe/mod_codeclient_zebre.php
deleted file mode 100644
index f9df52052b3..00000000000
--- a/htdocs/includes/modules/societe/mod_codeclient_zebre.php
+++ /dev/null
@@ -1,270 +0,0 @@
-
- * Copyright (C) 2006-2007 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
- * 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/
- */
-
-/**
- * \file htdocs/includes/modules/societe/mod_codeclient_zebre.class.php
- * \ingroup societe
- * \brief Fichier de la classe des gestion zebre des codes clients
- * \version $Id$
- */
-
-require_once(DOL_DOCUMENT_ROOT."/includes/modules/societe/modules_societe.class.php");
-
-
-/**
- \class mod_codeclient_zebre
- \brief Classe permettant la gestion zebre des codes tiers
-*/
-class mod_codeclient_zebre extends ModeleThirdPartyCode
-{
- var $nom; // Nom du modele
- var $code_modifiable; // Can be changed if valid
- var $code_modifiable_invalide; // Can be changed if not valid
- var $code_modifiable_null; // Can be changed if not defined
- var $code_null; // Can be undefined
- var $version; // 'development', 'experimental', 'dolibarr'
- var $code_auto; // Numerotation automatique
-
-
- /** \brief Constructeur classe
- */
- function mod_codeclient_zebre()
- {
- $this->nom = "Zebre";
- $this->version = "dolibarr";
- $this->code_modifiable = 0; // Can be changed if valid
- $this->code_modifiable_invalide = 1; // Can be changed if not valid
- $this->code_modifiable_null = 1; // Can be changed if not defined
- $this->code_null = 0; // Can be undefined
- $this->code_auto = 0;
- }
-
-
- /**
- * \brief Renvoie la description du module
- * \return string Texte descripif
- */
- function info($langs)
- {
- return "Verifie si le code client/fournisseur est de la forme CCCC9999. Les quatres premieres lettres etant une representation mnemotechnique, suivi du code postal en 2 chiffres et un numero d'ordre pour la prise en compte des doublons. Verification mais pas de generation automatique.";
- }
-
-
- /** \brief Renvoi la description du module
- * \return string Texte descripif
- */
- function getExample($langs)
- {
- return "ABCD7501";
- }
-
-
- /**
- * \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)
- {
- $i = 1;
-
- $is_dispo = $this->verif_dispo($db, $code, $soc);
- while ($is_dispo <> 0 && $i < 99)
- {
- $arr = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
-
- $code = substr($code,0,6) . substr("00".$i, -2);
-
- $is_dispo = $this->verif_dispo($db, $code, $soc);
-
- $i++;
- }
-
- if ($is_dispo <> 0)
- {
- $result=-3;
- }
- }
- else
- {
- if (strlen(trim($code)) == 0)
- {
- $result=-2;
- }
- else
- {
- $result=-1;
- }
- }
- }
- dolibarr_syslog("mod_codeclient_zebre::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)
- {
- if ($this->verif_syntax($code) == 0)
- {
- $i = 1;
-
- $is_dispo = $this->verif_dispo($db, $code, $soc);
-
- while ( $is_dispo <> 0 && $i < 99)
- {
- $arr = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
-
- $code = substr($code,0,6) . substr("00".$i, -2);
-
- $is_dispo = $this->verif_dispo($db, $code, $soc);
-
- $i++;
- }
-
- return $is_dispo;
-
- }
- 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) <> 8)
- {
- $res = -1;
- }
- else
- {
- if ($this->is_alpha(substr($code,0,4)) == 0 && $this->is_num(substr($code,4,4)) == 0 )
- {
- $res = 0;
- }
- else
- {
- $res = -2;
- }
-
- }
- return $res;
- }
-
-
- function is_alpha($str)
- {
- $ok = 0;
- // Je n'ai pas trouv� de fonction pour tester une chaine alpha sans les caract�re accentu�s
- // dommage
- $alpha = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
-
- for ($i = 0 ; $i < 4 ; $i++)
- {
- if (strpos($alpha, substr($str,$i, 1)) === false)
- {
- $ok++;
- }
- }
-
- return $ok;
- }
-
-
- function is_num($str)
- {
- $ok = 0;
-
- $alpha = '0123456789';
-
- for ($i = 0 ; $i < 4 ; $i++)
- {
- if (strpos($alpha, substr($str,$i, 1)) === false)
- {
- $ok++;
- }
- }
-
- return $ok;
- }
-
-}
-
-?>
diff --git a/htdocs/includes/modules/societe/modules_societe.class.php b/htdocs/includes/modules/societe/modules_societe.class.php
index bb64f2334fc..3ee966e6bc0 100644
--- a/htdocs/includes/modules/societe/modules_societe.class.php
+++ b/htdocs/includes/modules/societe/modules_societe.class.php
@@ -1,6 +1,6 @@
- * Copyright (C) 2004-2007 Laurent Destailleur
+ * Copyright (C) 2004-2009 Laurent Destailleur
* Copyright (C) 2004 Eric Seigne
* Copyright (C) 2005-2007 Regis Houssin
*
@@ -81,7 +81,7 @@ class ModeleThirdPartyCode
return $langs->trans("NotAvailable");
}
-
+
/** \brief Renvoi version du module numerotation
* \return string Valeur
*/
@@ -94,9 +94,9 @@ class ModeleThirdPartyCode
if ($this->version == 'experimental') return $langs->trans("VersionExperimental");
if ($this->version == 'dolibarr') return DOL_VERSION;
return $langs->trans("NotAvailable");
- }
+ }
- /**
+ /**
* \brief Renvoi la liste des modles actifs
* \param db Handler de base
*/
@@ -104,7 +104,7 @@ class ModeleThirdPartyCode
{
$liste=array();
$sql ="";
-
+
$resql = $db->query($sql);
if ($resql)
{
@@ -124,7 +124,7 @@ class ModeleThirdPartyCode
return $liste;
}
- /**
+ /**
* \brief Return description of module parameters
* \param langs Output language
* \param soc Third party object
@@ -134,20 +134,22 @@ class ModeleThirdPartyCode
function getToolTip($langs,$soc,$type)
{
$s='';
+ $s.=$langs->trans("Name").': '.$this->nom.' ';
$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").': '.yn(!$this->code_null).' ';
- if ($type == 1) $s.=$langs->trans("RequiredIfSupplier").': '.yn(!$this->code_null).' ';
- if ($type == -1) $s.=$langs->trans("Required").': '.yn(!$this->code_null).' ';
- $s.=$langs->trans("CanBeModifiedIfOk").': '.yn($this->code_modifiable).' ';
- $s.=$langs->trans("CanBeModifiedIfKo").': '.yn($this->code_modifiable_invalide).' ';
- $s.=$langs->trans("AutomaticCode").': '.yn($this->code_auto).' ';
- if ($type == 0) $s.=$langs->trans("Example").': '.$this->getExample($langs,$soc,0).'';
- if ($type == 1) $s.=$langs->trans("Example").': '.$this->getExample($langs,$soc,1).'';
+ $s.=''.$langs->trans("ThisIsModuleRules").': ';
+ if ($type == 0) $s.=$langs->trans("RequiredIfCustomer").': '.yn(!$this->code_null,1,1).' ';
+ if ($type == 1) $s.=$langs->trans("RequiredIfSupplier").': '.yn(!$this->code_null,1,1).' ';
+ if ($type == -1) $s.=$langs->trans("Required").': '.yn(!$this->code_null,1,1).' ';
+ $s.=$langs->trans("CanBeModifiedIfOk").': '.yn($this->code_modifiable,1,1).' ';
+ $s.=$langs->trans("CanBeModifiedIfKo").': '.yn($this->code_modifiable_invalide,1,1).' ';
+ $s.=$langs->trans("AutomaticCode").': '.yn($this->code_auto,1,1).' ';
+ $s.=' ';
+ if ($type == 0 || $type == -1) $s.=$langs->trans("NextValue").': '.$this->getExample($langs,$soc,0).' ';
+ if ($type == 1 || $type == -1) $s.=$langs->trans("NextValue").': '.$this->getExample($langs,$soc,1).'';
return $s;
}
}
diff --git a/htdocs/includes/modules/supplier_order/mod_commande_fournisseur_orchidee.php b/htdocs/includes/modules/supplier_order/mod_commande_fournisseur_orchidee.php
index c6440f85825..6dd0fc51a38 100644
--- a/htdocs/includes/modules/supplier_order/mod_commande_fournisseur_orchidee.php
+++ b/htdocs/includes/modules/supplier_order/mod_commande_fournisseur_orchidee.php
@@ -38,7 +38,7 @@ class mod_commande_fournisseur_orchidee extends ModeleNumRefSuppliersOrders
var $version='dolibarr'; // 'development', 'experimental', 'dolibarr'
var $error = '';
var $nom = 'Orchidee';
-
+
/** \brief Renvoi la description du modele de numrotation
* \return string Texte descripif
@@ -49,23 +49,29 @@ class mod_commande_fournisseur_orchidee extends ModeleNumRefSuppliersOrders
$langs->load("bills");
$langs->load("admin");
-
+
$form = new Form($db);
-
+
$texte = $langs->trans('GenericNumRefModelDesc')." \n";
$texte.= '';
@@ -78,12 +84,12 @@ class mod_commande_fournisseur_orchidee extends ModeleNumRefSuppliersOrders
function getExample()
{
global $conf,$langs,$mysoc;
-
+
$old_code_client=$mysoc->code_client;
$mysoc->code_client='CCCCCCCCCC';
$numExample = $this->getNextValue($mysoc,'');
$mysoc->code_client=$old_code_client;
-
+
if (! $numExample)
{
$numExample = $langs->trans('NotConfigured');
@@ -101,22 +107,22 @@ class mod_commande_fournisseur_orchidee extends ModeleNumRefSuppliersOrders
global $db,$conf;
require_once(DOL_DOCUMENT_ROOT ."/lib/functions2.lib.php");
-
+
// On dfini critere recherche compteur
$mask=$conf->global->COMMANDE_FOURNISSEUR_ORCHIDEE_MASK;
-
- if (! $mask)
+
+ if (! $mask)
{
$this->error='NotConfigured';
return 0;
}
$numFinal=get_next_value($db,$mask,'commande_fournisseur','ref','',$objsoc->code_client,$commande->date_commande);
-
+
return $numFinal;
}
-
-
+
+
/** \brief Renvoie la rfrence de commande suivante non utilise
* \param objsoc Objet socit
* \param commande Objet commande
@@ -126,6 +132,6 @@ class mod_commande_fournisseur_orchidee extends ModeleNumRefSuppliersOrders
{
return $this->getNextValue($objsoc,$commande);
}
-}
+}
?>
\ No newline at end of file
diff --git a/htdocs/langs/ca_ES/admin.lang b/htdocs/langs/ca_ES/admin.lang
index f3efc5dacbc..8b164fdd62e 100644
--- a/htdocs/langs/ca_ES/admin.lang
+++ b/htdocs/langs/ca_ES/admin.lang
@@ -205,7 +205,7 @@ SetupIsReadyForUse = La instal·lació ha finalitzat i Dolibarr està disponible
CurrentVersion = Versió actual de Dolibarr
CallUpdatePage = Trucar a la pàgina d'actualització de l'estructura i dades de la base de dades %s.
LastStableVersion = Última versió estable
-GenericMaskCodes = Podeu introduir qualsevol màscara numèrica. En aquesta màscara, pot utilitzar les següents etiquetes: (000000) correspon a un nombre que s'incrementa en cadascun %s. Introduïu tants zeros com longuitud desitgi mostrar. El comptador es completarà a partir de zeros per l'esquerra per tal de tenir tants zeros com la màscara. 000.000 (000) Igual que l'anterior, amb una compensació corresponent al número a la dreta del signe + s'aplica a partir del primer %s. (000000) @ x igual que l'anterior, però el comptador es restableix a zero quan s'arriba a x mesos (x entre 1 i 12). Si aquesta opció s'utilitza i x és de 2 o superior, llavors la seqüència () (aa mm) (o) (aaaa) mm també és necessària. dd () dies (01 a 31). mm () b> mes (01 a 12). yy () b>, (aaaa) b> o (i) b> de més de 2 anys, 4 o l'1 de números. cccc000 () el codi de client en n caràcters seguits d'una ref. client sense offset i 0 al comptador global. Tots els altres caràcters de la màscara es mantindran intactes. No es permeten espais. exemple, en la 99 % s del tercer de l'empresa dóna 31.01.2007: ABC yy () (mm) - (000000) < /b> donarà ABC0701-000099 0000 (100)-ZZZ/() dd / XXX donarà 0199-ZZZ/31/XXX
+GenericMaskCodes =
GenericNumRefModelDesc = Retorna un nombre creat d'acord amb una màscara definida.
ServerAvailableOnIPOrPort = Servidor disponible a l'adreça %s al port %s
ServerNotAvailableOnIPOrPort = Servidor no disponible en l'adreça %s al port %s
diff --git a/htdocs/langs/da_DA/admin.lang b/htdocs/langs/da_DA/admin.lang
index 40579c9fb56..14f1633c57f 100644
--- a/htdocs/langs/da_DA/admin.lang
+++ b/htdocs/langs/da_DA/admin.lang
@@ -217,7 +217,7 @@ SetupIsReadyForUse=Installer er færdig og Dolibarr er klar til brug med denne n
CurrentVersion=Dolibarr aktuelle version
CallUpdatePage=Gå til den side, der opdaterer database struktur og oplysningerne% s.
LastStableVersion=Seneste stabile version
-GenericMaskCodes=Du kan indtaste et hvilket som helst nummerressourcer maske. I denne maske, Følgende tags kan bruges: (000000) svarer til et nummer, der skal øges for hver% s. Angiv så mange nuller som den ønskede længde på tælleren. Tælleren vil blive suppleret af nuller fra venstre for at få så mange nuller som maske. (000000 +000) samme som tidligere, men en offset svarende til antallet til højre for tegnet + anvendes starter den første% s. (000000 @ x) samme som tidligere, men tælleren er nulstillet når måned x er nået (x mellem 1 og 12). Hvis denne indstilling er anvendt, og x er 2 eller højere, så SEQUENCE (yy) (mm) eller (ÅÅÅÅ) (mm) er også påkrævet. (dd) dag (01 til 31). (mm) måned (01 til 12). (yy), (ÅÅÅÅ) eller (y) år over 2, 4 eller 1 numre. (cccc000) kunden kode på n tegn efterfulgt af en klients ref counter uden kompensation og zeroized whith den globale counter.
Alle andre tegn i maske vil forblive intakt. Mellemrum er ikke tilladt.
Eksempel på 99.% s af den tredje part TheCompany gjort 31/01/2007: ABC (yy) (mm) - (000000) vil give ABC0701-000099 (0000 +100)-ZZZ / (dd) / XXX vil give 0199-ZZZ/31/XXX
+GenericMaskCodes=
GenericNumRefModelDesc=Retur en tilpasselig antal henhold til en bestemt maske.
ServerAvailableOnIPOrPort=Server findes på adressen% s port% s
ServerNotAvailableOnIPOrPort=Serveren er ikke tilgængelig på adressen% s port% s
diff --git a/htdocs/langs/de_DE/admin.lang b/htdocs/langs/de_DE/admin.lang
index b745c36a9c4..56b4a26bf55 100644
--- a/htdocs/langs/de_DE/admin.lang
+++ b/htdocs/langs/de_DE/admin.lang
@@ -215,7 +215,7 @@ SetupIsReadyForUse=Installation abgeschlossen ist und Dolibarr ist bereit für d
CurrentVersion=Dolibarr aktuelle Version
CallUpdatePage=Gehen Sie zu der Seite, dass Updates der Datenbankstruktur und der Daten% s.
LastStableVersion=Letzte stabile Version
-GenericMaskCodes=Sie können alle Nummern Maske. In dieser Maske, die folgende Tags verwendet werden können: (000000) entspricht einer Zahl, die erhöht auf jedem% s. Geben Sie so viele Nullen, wie die gewünschte Länge des Zählers. Der Zähler wird durch Nullen ergänzt werden, von der linken Seite, um so viele Nullen, wie die Maske. (000000 +000) wie oben, sondern ein Ausgleich entsprechend der Zahl auf der rechten Seite das +-Zeichen wird ab dem ersten% s. @ X (000000) wie oben, aber der Zähler auf Null zurückgesetzt, wenn Monat x erreicht ist (x zwischen 1 und 12). Wenn diese Option verwendet wird, und x ist 2 oder höher, dann SEQUENCE (yy) (mm) oder (JJJJ) (mm) ist ebenfalls erforderlich. tt () Tag (01 bis 31). () mm Monat (01 bis 12). yy (), (JJJJ) oder (y) Jahr über 2, 4 oder 1-Nummern. () cccc000 den Client-Code auf n-Zeichen, gefolgt von einem Client-ref Zähler ohne Offset-und zeroized whith der globalen Zähler.
Alle anderen Zeichen in der Maske bleiben. Leerzeichen sind nicht zulässig.
Beispiel auf der 99.% s des Dritten TheCompany getan 31/01/2007: ABC (yy) (mm) - (000000) wird ABC0701-000099 (0000 +100)-ZZZ / tt () / XXX wird 0199-ZZZ/31/XXX
+GenericMaskCodes=
GenericNumRefModelDesc=Zurück eine anpassbare Zahl nach einem definierten Maske.
ServerAvailableOnIPOrPort=Server ist verfügbar unter der Adresse% s auf Port% s
ServerNotAvailableOnIPOrPort=Server nicht verfügbar ist unter der Adresse% s auf Port% s
diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang
index 18ccb9f7eb9..74cc51fba9d 100644
--- a/htdocs/langs/en_US/admin.lang
+++ b/htdocs/langs/en_US/admin.lang
@@ -206,7 +206,12 @@ SetupIsReadyForUse=Install is finished and Dolibarr is ready to use with this ne
CurrentVersion=Dolibarr current version
CallUpdatePage=Go to the page that updates database structure and datas %s.
LastStableVersion=Last stable version
-GenericMaskCodes=You may enter any numbering mask. In this mask, the following tags could be used: {000000} corresponds to a number which will be incremented on each %s. Enter as many zeros as the desired length of the counter. The counter will be completed by zeros from the left in order to have as many zeros as the mask. {000000+000} same as previous but an offset corresponding to the number to the right of the + sign is applied starting on first %s. {000000@x} same as previous but the counter is reset to zero when month x is reached (x between 1 and 12). If this option is used and x is 2 or higher, then sequence {yy}{mm} or {yyyy}{mm} is also required. {dd} day (01 to 31). {mm} month (01 to 12). {yy}, {yyyy} or {y} year over 2, 4 or 1 numbers. {cccc000} the client code on n characters followed by a client's ref counter without offset and zeroized whith the global counter.
All other characters in the mask will remain intact. Spaces are not allowed.
Example on the 99th %s of the third party TheCompany done 31/01/2007: ABC{yy}{mm}-{000000} will give ABC0701-000099 {0000+100}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX
+GenericMaskCodes=You may enter any numbering mask. In this mask, the following tags could be used: {000000} corresponds to a number which will be incremented on each %s. Enter as many zeros as the desired length of the counter. The counter will be completed by zeros from the left in order to have as many zeros as the mask. {000000+000} same as previous but an offset corresponding to the number to the right of the + sign is applied starting on first %s. {000000@x} same as previous but the counter is reset to zero when month x is reached (x between 1 and 12). If this option is used and x is 2 or higher, then sequence {yy}{mm} or {yyyy}{mm} is also required. {dd} day (01 to 31). {mm} month (01 to 12). {yy}, {yyyy} or {y} year over 2, 4 or 1 numbers.
+GenericMaskCodes2={cccc} the client code {cccc000} the client code on n characters is followed by a client's ref counter without offset and zeroized whith the global counter.
+GenericMaskCodes3=All other characters in the mask will remain intact. Spaces are not allowed.
+GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany done 2007-01-31:
+GenericMaskCodes4b=Example on third party created on 2007-03-01:
+GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099 {0000+100}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX
GenericNumRefModelDesc=Return a customizable number according to a defined mask.
ServerAvailableOnIPOrPort=Server is available at address %s on port %s
ServerNotAvailableOnIPOrPort=Server is not available at address %s on port %s
diff --git a/htdocs/langs/en_US/companies.lang b/htdocs/langs/en_US/companies.lang
index 97c81c2b8f2..1d9acb0d5e8 100644
--- a/htdocs/langs/en_US/companies.lang
+++ b/htdocs/langs/en_US/companies.lang
@@ -258,5 +258,7 @@ AutomaticallyGenerated=Automatically generated
FiscalYearInformation=Information on the fiscal year
FiscalMonthStart=Starting month of the fiscal year
-# Tigre
-TigreNumRefModelDesc1=Return a customizable customer/supplier number according to a defined mask.
+# Monkey
+MonkeyNumRefModelDesc=Check that customer/supplier code contains 6 numbers.
+# Leopard
+LeopardNumRefModelDesc=Customer/supplier code is free. This code can be modified at any time.
diff --git a/htdocs/langs/es_ES/admin.lang b/htdocs/langs/es_ES/admin.lang
index 2070d12f667..f5322910c4b 100644
--- a/htdocs/langs/es_ES/admin.lang
+++ b/htdocs/langs/es_ES/admin.lang
@@ -205,7 +205,7 @@ SetupIsReadyForUse = La instalación ha finalizado y Dolibarr está disponible c
CurrentVersion = Versión actual de Dolibarr
CallUpdatePage = Llamar a la página de actualización de la estructura y datos de la base de datos %s.
LastStableVersion = Última versión estable
-GenericMaskCodes = Puede introducir cualquier máscara numérica. En esta máscara, puede utilizar las siguientes etiquetas: {000000} corresponde a un número que se incrementa en cada uno de %s. Introduzca tantos ceros como longuitud desee mostrar. El contador se completará a partir de ceros por la izquierda con el fin de tener tantos ceros como la máscara. 000.000 (000) b> Igual que el anterior, con una compensación correspondiente al número a la derecha del signo + se aplica a partir del primer %s. (000000) @ x igual que el anterior, pero el contador se restablece a cero cuando se llega a x meses (x entre 1 y 12). Si esta opción se utiliza y x es de 2 o superior, entonces la secuencia () (aa mm) (o) (aaaa) mm también es necesaria. dd () b> días (01 a 31). mm () b> mes (01 a 12). yy () < / b>, (aaaa) b> o (y) b> de más de 2 años, 4 o el 1 de números. cccc000 () b> el código de cliente en n caracteres seguidos de una ref. cliente sin offset y a 0 en el contador global.
Todos los demás caracteres de la máscara se mantendrán intactos. No se permiten espacios.
ejemplo, en la 99 %s del tercero de la empresa da 31/01/2007: u> ABC yy () ( mm) - (000000) b> dará ABC0701-000099 b> 0000 (100)-ZZZ / () dd / XXX b> dará 0199-ZZZ/31/XXX b>
+GenericMaskCodes =
GenericNumRefModelDesc = Devuelve un número creado acorde a una máscara definida.
ServerAvailableOnIPOrPort = Servidor disponible en la dirección %s en el puerto %s
ServerNotAvailableOnIPOrPort = Servidor no disponible en la dirección %s en el puerto %s
diff --git a/htdocs/langs/fi_FI/admin.lang b/htdocs/langs/fi_FI/admin.lang
index 5d891545412..db5304ab22a 100644
--- a/htdocs/langs/fi_FI/admin.lang
+++ b/htdocs/langs/fi_FI/admin.lang
@@ -215,7 +215,7 @@ SetupIsReadyForUse=Asenna on päättynyt ja Dolibarr on valmis käyttämään t
CurrentVersion=Dolibarr nykyinen versio
CallUpdatePage=Siirry sivun päivitykset tietokannan rakennetta ja datas% s.
LastStableVersion=Viimeisin vakaa versio
-GenericMaskCodes=Voit kirjoittaa minkä tahansa numerointiin mask. Tässä mask, seuraavia koodeja voidaan käyttää: (000000) vastaa numero, jonka on kasvatettu kunkin% s. Kirjoita niin monta nollaa kuin toivottu pituus vastatakaus. Laskuri on täydennettävä nollilla vasemmalta, jotta on niin monta nollaa kuin peittää. (000000 +000) sama kuin edellinen, mutta offset vastaa numeron oikealla puolella olevaa plusmerkkiä sovelletaan alkaa ensimmäiset% s. (000000 @ x) sama kuin edellinen, mutta nollautuu nollaan, kun kuukausi x on saavutettu (x välillä 1 ja 12). Jos tämä vaihtoehto on käytössä, ja x on 2 tai enemmän, sitten järjestyksessä (yy) (mm) tai (vvvv) (mm) on myös tarpeen. (dd) vrk (01-31). (mm) kk (01-12). (yy), (vvvv) tai (y) vuodessa yli 2, 4 tai 1-numerot. (cccc000) asiakkaan koodi n merkkiä seuraa asiakkaan ref counter ilman tasoitusta ja zeroized whith maailmanlaajuisen laskuri.
Kaikki muut merkit ja maski pysyy ennallaan. Välilyönnit eivät ole sallittuja.
Esimerkki on 99% s on kolmannen osapuolen TheCompany tehnyt 31/01/2007: ABC (yy) (mm) - (000000) antaa ABC0701-000099 (0000 +100)-ZZZ / (dd) / XXX antaa 0199-ZZZ/31/XXX
+GenericMaskCodes=
GenericNumRefModelDesc=Paluu mukautettavan numeron mukaan määritelty mask.
ServerAvailableOnIPOrPort=Server on saatavilla osoitteessa% s satama% s
ServerNotAvailableOnIPOrPort=Palvelin ei ole käytettävissä osoitteessa% s satama% s
diff --git a/htdocs/langs/fr_FR/admin.lang b/htdocs/langs/fr_FR/admin.lang
index 5f3713b7f3f..74b351773b2 100644
--- a/htdocs/langs/fr_FR/admin.lang
+++ b/htdocs/langs/fr_FR/admin.lang
@@ -205,7 +205,12 @@ SetupIsReadyForUse=L'installation est terminée et Dolibarr est prêt à être u
CurrentVersion=Version en cours de Dolibarr
CallUpdatePage=Appeler la page de mise a jour de la structure et données de la base %s.
LastStableVersion=Dernière version stable
-GenericMaskCodes=Vous pouvez saisir tout masque de numérotation. Dans ce masque, les balises suivantes peuvent etre utilisées: {000000} correspond a un numéro qui sera incrémenté à chaque %s. Mettre autant de zéro que la longueur désirée du compteur. Le compteur sera complété par des 0 à gauche afin d'avoir autant de zéro que dans le masque. {000000+000} idem précédemment mais un offset correpondant au nombre à droite du + est appliqué dès la premiere %s. {000000@x} idem précédemment mais le compteur est remis à zero le xeme mois de l'année (x entre 1 et 12). Si cette option est utilisée et x vaut 2 ou plus, alors la sequence {yy}{mm} ou {yyyy}{mm} est obligatoire. {dd} jour (01 à 31). {mm} mois (01 à 12). {yy}, {yyyy} ou {y} annee sur 2, 4 ou 1 chiffres. {cccc000} le code client sur n lettres et suivi d'un compteur propre au client sans offset, complété par des zéros pour en avoir autant que dans le masque, et remis à zéro en même temps que le compteur global.
Tout autre caractère dans le masque sera laissé inchangé. Les espaces ne sont pas permis.
Exemple sur la 99eme %s du tiers LaCompanie faite le 31/03/2007: ABC{yy}{mm}-{000000} donnera ABC0703-000099 {0000+100}-XXX/{dd}/YYY donnera 0199-XXX/31/YYY
+GenericMaskCodes=Vous pouvez saisir tout masque de numérotation. Dans ce masque, les balises suivantes peuvent etre utilisées: {000000} correspond a un numéro qui sera incrémenté à chaque %s. Mettre autant de zéro que la longueur désirée du compteur. Le compteur sera complété par des 0 à gauche afin d'avoir autant de zéro que dans le masque. {000000+000} idem précédemment mais un offset correpondant au nombre à droite du + est appliqué dès la premiere %s. {000000@x} idem précédemment mais le compteur est remis à zero le xeme mois de l'année (x entre 1 et 12). Si cette option est utilisée et x vaut 2 ou plus, alors la sequence {yy}{mm} ou {yyyy}{mm} est obligatoire. {dd} jour (01 à 31). {mm} mois (01 à 12). {yy}, {yyyy} ou {y} annee sur 2, 4 ou 1 chiffres.
+GenericMaskCodes2={cccc} le code client sur n lettres {cccc000} le code client sur n lettres est suivi d'un compteur propre au client sans offset, complété par des zéros pour en avoir autant que dans le masque, et remis à zéro en même temps que le compteur global.
+GenericMaskCodes3=Tout autre caractère dans le masque sera laissé inchangé. Les espaces ne sont pas permis.
+GenericMaskCodes4a=Exemple sur la 99eme %s du tiers LaCompanie faite le 31/03/2007:
+GenericMaskCodes4b=Exemple sur un tiers crée le 31/03/2007:
+GenericMaskCodes5=ABC{yy}{mm}-{000000} donnera ABC0703-000099 {0000+100}-XXX/{dd}/YYY donnera 0199-XXX/31/YYY
GenericNumRefModelDesc=Renvoie un numéro personalisable selon un masque à définir.
ServerAvailableOnIPOrPort=Serveur disponible a l'adresse %s sur le port %s
ServerNotAvailableOnIPOrPort=Serveur non disponible à l'adresse %s sur le port %s
diff --git a/htdocs/langs/fr_FR/companies.lang b/htdocs/langs/fr_FR/companies.lang
index 227c6b6267b..9dc45c86b64 100644
--- a/htdocs/langs/fr_FR/companies.lang
+++ b/htdocs/langs/fr_FR/companies.lang
@@ -261,6 +261,7 @@ AutomaticallyGenerated=Généré automatiquement
FiscalYearInformation=Information sur l'année fiscale
FiscalMonthStart=Mois de début d'exercice
-# Tigre
-TigreNumRefModelDesc1=Renvoie un code client/fournisseur personnalisable selon un masque à définir.
-TigreMaskCodes=Vous pouvez saisir tout masque de numérotation. Dans ce masque, les balises suivantes peuvent etre utilisées: {000000} correspond a un numéro qui sera incrémenté à chaque code client/fournisseur. Mettre autant de zéro que la longueur désirée du compteur. Le compteur sera complété par des 0 à gauche afin d'avoir autant de zéro que dans le masque. {dd} jour de la création du code client/fournisseur (01 à 31). {mm} mois de la création du code client/fournisseur (01 à 12). {yy} et/ou {yyyy} annee, sur 2 ou 4 chiffres, de la création du code client/fournisseur. {pre} prefix du tiers. Tout autre caractère dans le masque sera laissé inchangé. Vous pouvez utiliser les caractères suivant comme séparateur : slash, anti-slash et tiret Différencier les éléments utilisés avec un pipe | (altgr+6). Les espaces ne sont pas permis.
Exemple de code client/fournisseur simple CC|{00000} donnera CC00001 CF|-|{00000} donnera CF-00001
Exemple sur le 99eme code client/fournisseur fait le 31/01/2007: ABC|-|{yy}|{mm}|-|{000000} donnera ABC-0701-000099 {0000}|-|{pre}|/|{dd}|/|INV donnera 0099-SFR/31/INV
+# Monkey
+MonkeyNumRefModelDesc=Vérifie que le code client/fournisseur est un nombre sur 6 chiffres, sans ruptures.
+# Leopard
+LeopardNumRefModelDesc=Code client/fournisseur libre sans vérification. Peut-etre modifié à tout moment.
diff --git a/htdocs/langs/it_IT/admin.lang b/htdocs/langs/it_IT/admin.lang
index a5fe4e4d430..fb50997929a 100644
--- a/htdocs/langs/it_IT/admin.lang
+++ b/htdocs/langs/it_IT/admin.lang
@@ -192,7 +192,11 @@ SetupIsReadyForUse =Installare
CurrentVersion =Dolibarr versione corrente
CallUpdatePage =Vai alla pagina che aggiorna la struttura del database e dati su %s.
LastStableVersion =Ultima versione stabile
-GenericMaskCodes =Puoi inserire uno schema di numerazione. In questo schema, possono essere utilizzati i seguenti tag :
{000000} Corrisponde a un numero che sar incrementato in ogni %s. Inserisci il numero di zeri euivalente alla lunghezza desiderata del contatore. Il contatore sar completato da zeri a sinistra al fine di avere tanti zeri come lo schema definito. {000000+000} Come il precedente, ma un offset corrispondente al numero a destra del segno + viene applicato a partire dalla prima %s. {000000@x} Lo stesso come il precedente, ma il contatore non viene reimpostato a zero quando il mese x raggiunto (x tra 1 e 12). Se viene utilizzata questa opzione e x 2 o superiore, allora la sequenza {yy}{mm} o {yyyy}{mm} anche necessaria. {dd} giorno (da 01 a 31). {mm} mese (da 01 a 12). {yy} , {yyyy} o {y} anno pi di 2, 4 o 1 numeri.
{cccc000} Il codice cliente su n caratteri seguiti dal contatore rif. cliente senza offset e azzerato con il contatore globale.
Tutti gli altri caratteri nello schema rimarranno intatti. Spazi non sono ammessi.
Esempio sulla 99a %s del terzo TheCompany fatta il 31/01/2007: ABC{yy}{mm}-{000000} dar ABC0701-000099 {0000+100}-ZZZ/{dd}/XXX dar 0199-ZZZ/31/XXX
+GenericMaskCodes =Puoi inserire uno schema di numerazione. In questo schema, possono essere utilizzati i seguenti tag : {000000} Corrisponde a un numero che sar incrementato in ogni %s. Inserisci il numero di zeri euivalente alla lunghezza desiderata del contatore. Il contatore sar completato da zeri a sinistra al fine di avere tanti zeri come lo schema definito. {000000+000} Come il precedente, ma un offset corrispondente al numero a destra del segno + viene applicato a partire dalla prima %s. {000000@x} Lo stesso come il precedente, ma il contatore non viene reimpostato a zero quando il mese x raggiunto (x tra 1 e 12). Se viene utilizzata questa opzione e x 2 o superiore, allora la sequenza {yy}{mm} o {yyyy}{mm} anche necessaria. {dd} giorno (da 01 a 31). {mm} mese (da 01 a 12). {yy} , {yyyy} o {y} anno pi di 2, 4 o 1 numeri.
+GenericMaskCodes2= {cccc000} Il codice cliente su n caratteri seguiti dal contatore rif. cliente senza offset e azzerato con il contatore globale.
+GenericMaskCodes3=Tutti gli altri caratteri nello schema rimarranno intatti. Spazi non sono ammessi.
+GenericMaskCodes4a= Esempio sulla 99a %s del terzo TheCompany fatta il 31/01/2007:
+GenericMaskCodes5= ABC{yy}{mm}-{000000} dar ABC0701-000099 {0000+100}-ZZZ/{dd}/XXX dar 0199-ZZZ/31/XXX
GenericNumRefModelDesc =Ritorna un numero personalizzabile in base allo schema definito.
ServerAvailableOnIPOrPort =Server disponibile presso l'indirizzo %s sulla porta %s
ServerNotAvailableOnIPOrPort =Server non disponibile presso l'indirizzo %s sulla porta %s
diff --git a/htdocs/langs/nl_BE/admin.lang b/htdocs/langs/nl_BE/admin.lang
index 4b2c419921f..2c10c61ec99 100644
--- a/htdocs/langs/nl_BE/admin.lang
+++ b/htdocs/langs/nl_BE/admin.lang
@@ -218,7 +218,7 @@ SetupIsReadyForUse=Installatie is voltooid en Dolibarr is gereed voor gebruik me
CurrentVersion=Dolibarr huidige versie
CallUpdatePage=Ga naar de pagina die updates database structuur en data% s.
LastStableVersion=Laatste stabiele versie
-GenericMaskCodes=U kunt elke nummering masker. In dit masker, de volgende tags kunnen worden gebruikt: (000000) komt overeen met een aantal dat zal worden verhoogd voor elk% s. Voer zoveel nullen als de gewenste lengte van de teller. De teller zal worden aangevuld met nullen van links om zoveel nullen als het masker. (000000 +000) hetzelfde als de vorige, maar een compensatie overeenkomt met het aantal aan het recht van het + teken is toegepast, beginnend op eerste% s. (000000 @ x) hetzelfde als de vorige, maar de teller op nul wanneer maand x is bereikt (x tussen 1 en 12). Als deze optie wordt gebruikt en x 2 of hoger, dan sequentie yy () () of (mm jjjj) () mm is ook nodig. dd () dag (01 tot 31). () mm maand (01 tot 12). yy (), (jjjj) of (y) jaar gedurende 2, 4 of 1 nummers. () cccc000 de client code op n tekens gevolgd door een klant ref teller zonder offset en zeroized breken de wereldwijde teller.
Alle andere tekens in het masker blijft intact. Spaties zijn niet toegestaan.
Voorbeeld op de 99e% s van de derde partij TheCompany gedaan 31/01/2007: ABC yy () (MM) - (000.000) geeft ABC0701-000099 0000 +100 ()-ZZZ / dd () / XXX zal 0199-ZZZ/31/XXX
+GenericMaskCodes=
GenericNumRefModelDesc=Terugkeer een aanpasbare aantal volgens een omschreven masker.
ServerAvailableOnIPOrPort=Server is beschikbaar op het adres% s op poort% s
ServerNotAvailableOnIPOrPort=Server is niet beschikbaar op het adres% s op poort% s
diff --git a/htdocs/langs/nl_BE/bills.lang b/htdocs/langs/nl_BE/bills.lang
index 7c6dfc0af1c..98df9e22ac6 100644
--- a/htdocs/langs/nl_BE/bills.lang
+++ b/htdocs/langs/nl_BE/bills.lang
@@ -286,9 +286,6 @@ MarsNumRefModelDesc1=Numéro de facture sous la forme, PREF-10-2004-005, qui cor
MarsNumRefModelDesc2=Le nombre final est formaté sur 3 chiffres ou plus.
MarsNumRefModelDesc3=Si la constante FACTURE_MARS_DELTA est définie, un offset est appliqué sur le compteur
-# mercure
-MercureNumRefModelDesc1=Renvoie le numéro de facture sous une forme numérique simple, la première facture porte le numéro 1, la quinzième facture ayant le numéro 15, le numéro est préfixé par la lettre F, ce module peut être utilisé avec dans le cas d'une numérotaion double.
-
# neptune
NeptuneNumRefModelDesc1=Renvoie le numéro de facture sous une forme du préfix FA suivi de l'année sur 2 chiffres et d'un compteur simple sur 4 chiffres.
NeptuneNumRefModelDesc2=Si la constante FACTURE_NEPTUNE_DELTA est définie, un offset est appliqué sur le compteur
diff --git a/htdocs/langs/nl_NL/admin.lang b/htdocs/langs/nl_NL/admin.lang
index 2bc3aef58de..c58a5f46be5 100644
--- a/htdocs/langs/nl_NL/admin.lang
+++ b/htdocs/langs/nl_NL/admin.lang
@@ -217,7 +217,7 @@ SetupIsReadyForUse=Installatie is voltooid en Dolibarr is gereed voor gebruik me
CurrentVersion=Dolibarr huidige versie
CallUpdatePage=Ga naar de pagina die updates database structuur en data% s.
LastStableVersion=Laatste stabiele versie
-GenericMaskCodes=U kunt elke nummering masker. In dit masker, de volgende tags kunnen worden gebruikt: (000000) komt overeen met een aantal dat zal worden verhoogd voor elk% s. Voer zoveel nullen als de gewenste lengte van de teller. De teller zal worden aangevuld met nullen van links om zoveel nullen als het masker. (000000 +000) hetzelfde als de vorige, maar een compensatie overeenkomt met het aantal aan het recht van het + teken is toegepast, beginnend op eerste% s. (000000 @ x) hetzelfde als de vorige, maar de teller op nul wanneer maand x is bereikt (x tussen 1 en 12). Als deze optie wordt gebruikt en x 2 of hoger, dan sequentie yy () () of (mm jjjj) () mm is ook nodig. dd () dag (01 tot 31). () mm maand (01 tot 12). yy (), (jjjj) of (y) jaar gedurende 2, 4 of 1 nummers. () cccc000 de client code op n tekens gevolgd door een klant ref teller zonder offset en zeroized breken de wereldwijde teller.
Alle andere tekens in het masker blijft intact. Spaties zijn niet toegestaan.
Voorbeeld op de 99e% s van de derde partij TheCompany gedaan 31/01/2007: ABC yy () (MM) - (000.000) geeft ABC0701-000099 0000 +100 ()-ZZZ / dd () / XXX zal 0199-ZZZ/31/XXX
+GenericMaskCodes=
GenericNumRefModelDesc=Terugkeer een aanpasbare aantal volgens een omschreven masker.
ServerAvailableOnIPOrPort=Server is beschikbaar op het adres% s op poort% s
ServerNotAvailableOnIPOrPort=Server is niet beschikbaar op het adres% s op poort% s
diff --git a/htdocs/langs/pl_PL/admin.lang b/htdocs/langs/pl_PL/admin.lang
index b0f97a69087..5297cc801e8 100644
--- a/htdocs/langs/pl_PL/admin.lang
+++ b/htdocs/langs/pl_PL/admin.lang
@@ -217,7 +217,7 @@ SetupIsReadyForUse=Instalacja jest zakończona i Dolibarr jest gotowy do użycia
CurrentVersion=Dolibarr aktualnej wersji
CallUpdatePage=Wejdź na stronę aktualizacji struktury bazy danych i danych% s.
LastStableVersion=Ostatnia wersja stabilna
-GenericMaskCodes=Można wprowadzić wszelkie maski numeracji. W tym maskę, następujących tagów może być wykorzystana: (000000) odpowiada szereg które będą zwiększane w każdym% s. Wpisz tyle zer w żądanej długości licznik. Licznik zostanie uzupełniona zerami od lewej w celu uzyskania jak wiele zer jak maska. (000000 +000) samo jak poprzednie, ale offset odpowiadającą liczbie z prawej znak + jest stosowana począwszy od pierwszego% s. (X) @ 000000 samo jak poprzednie, ale zostanie wyzerowany do zera, kiedy zostanie osiągnięte miesięcy x (x pomiędzy 1 i 12). Jeśli opcja ta jest używana i x 2 lub wyższej, a następnie sekwencję rr () () lub (mm rrrr mm) () jest wymagana. dd () dni (od 01 do 31). (mm) miesiące (od 01 do 12). rr (), (RRRR) lub (y) roku ponad 2, 4 lub 1 numerów. () cccc000 klient kod na n znaków, a następnie klienta ref licznik bez wyrównania i zeroized whith globalnej licznik.
Wszystkie inne znaki w masce pozostaną nienaruszone. Spacje są niedozwolone.
Przykład na 99-cie% s strony trzeciej TheCompany zrobić 31/01/2007: ABC rr) ((MM) - () 000000 dadzą ABC0701-000099 (0000 +100) ZZZ / dd () / XXX będzie 0199-ZZZ/31/XXX
+GenericMaskCodes=
GenericNumRefModelDesc=Zwrotu dostosowywalne numer zgodnie z definicją maska.
ServerAvailableOnIPOrPort=Serwer dostępny jest pod adresem% s na porcie% s
ServerNotAvailableOnIPOrPort=Serwer nie jest dostępna pod adresem% s na porcie% s
diff --git a/htdocs/langs/pt_PT/admin.lang b/htdocs/langs/pt_PT/admin.lang
index e86fa65b052..45539a4182f 100644
--- a/htdocs/langs/pt_PT/admin.lang
+++ b/htdocs/langs/pt_PT/admin.lang
@@ -342,7 +342,7 @@ SetupIsReadyForUse=Instale Dolibarr está acabada e está pronto para uso com es
CurrentVersion=Dolibarr versão atual
CallUpdatePage=Ir para a página que atualiza estrutura de dados e dados% s.
LastStableVersion=Última versão estável
-GenericMaskCodes=Você pode entrar em qualquer numeração máscara. Nesta máscara, as seguintes tags poderiam ser utilizados: (000000) corresponde a um número que será incrementado a cada% s. Digite tantos zeros como o comprimento desejado do balcão. O contador será completado por zeros a partir da esquerda, a fim de ter tantos zeros como a máscara. 000.000 (000) mesmo que anterior mas uma compensação correspondente ao número à direita do sinal é aplicado a partir de primeiro% s. 000000) (@ x mesmo como os anteriores, mas o contador é reposto a zero, quando é atingido mês x (x entre 1 e 12). Se esta opção for utilizada e x é 2 ou superior, então seqüência (yy)) ou ((MM AAAA)) (milímetros é também necessária. (dd) dia (01 a 31). (MM) mês (01 a 12). yy (), (yyyy) (y) anos ou mais de 2, 4 ou 1 números. () cccc000 código do cliente sobre n caracteres seguido por um cliente do contador ref sem compensação e zeroized Com o contador global.
Todos os outros caracteres na máscara permanecerá intacta. Espaços não são permitidos.
Exemplo, sobre o 99.% S do terceiro TheCompany feito 31/01/2007: ABC (yy) (MM) - (000000) dará ABC0701-000099 0000 (100)-ZZZ / dd) (/ XXX dará 0199-ZZZ/31/XXX
+GenericMaskCodes=
GenericNumRefModelDesc=Retornar customizable um número definido de acordo com uma máscara.
ServerAvailableOnIPOrPort=Server está disponível no endereço% s na porta% s
ServerNotAvailableOnIPOrPort=Servidor não está disponível no endereço% s na porta% s
diff --git a/htdocs/langs/ro_RO/admin.lang b/htdocs/langs/ro_RO/admin.lang
index 81c082055ed..b6bb4c882f3 100644
--- a/htdocs/langs/ro_RO/admin.lang
+++ b/htdocs/langs/ro_RO/admin.lang
@@ -215,7 +215,7 @@ SetupIsReadyForUse=Instalarea este terminat şi Dolibarr este gata pentru a fi u
CurrentVersion=Dolibarr versiunea curentă
CallUpdatePage=Du-te la pagina care se actualizează datele şi structura bazei de date% s.
LastStableVersion=Ultima versiune stabilă
-GenericMaskCodes=Puteţi introduce orice numerotare masca. În acest masca, următoarele tag-uri ar putea fi folosite: (000000) corespunde un număr care va fi pe fiecare incremented% s. Introduceţi oricât de multe zerouri ca lungimea dorită din contra. În contra va fi completat de zero-uri de la stânga pentru a avea cât mai multe zero-uri ca masca. 000000 (000) fel ca precedenta, dar un offset corespunzător numărului de la dreptul de a semnul +, se aplică, începând cu prima% s. (000000 @ x) aceeaşi ca şi precedent, dar contra este readus la zero, atunci când se ajunge la luna x (x intre 1 si 12). Dacă această opţiune este folosită şi x este de 2 sau mai mare, apoi secventa (aa) (mm) sau (AAAA) (mm) este, de asemenea, necesară. () zz zi (01 - 31). (mm) luni (01 la 12). (aa), (AAAA) sau (Y) ani mai mult de 2, 4 sau 1 numere. () cccc000 cod de client pe n caractere urmat de un client, fără a compensa ref contra şi zeroized whith global contra.
Toate celelalte caractere în masca va rămâne intactă. Spaţiile nu sunt permise.
Exemplu pe 99th% s de-a treia parte TheCompany făcut 31/01/2007: ABC (aa) (mm) - (000000) va da ABC0701-000099 (0000) 100-zzz / () zz / XXX va da 0199-ZZZ/31/XXX
+GenericMaskCodes=
GenericNumRefModelDesc=Întoarceţi-vă un număr de personalizabil definite în conformitate cu o masca.
ServerAvailableOnIPOrPort=Server este disponibil la adresa% s pe portul% s
ServerNotAvailableOnIPOrPort=Serverul nu este disponibil la adresa% s pe portul% s
diff --git a/htdocs/langs/ru_RU/admin.lang b/htdocs/langs/ru_RU/admin.lang
index 0a85ad5e6c6..f0ce12b443f 100644
--- a/htdocs/langs/ru_RU/admin.lang
+++ b/htdocs/langs/ru_RU/admin.lang
@@ -215,7 +215,7 @@ SetupIsReadyForUse=Установка закончена, и Dolibarr готов
CurrentVersion=Dolibarr текущей версии
CallUpdatePage=Зайдите на страницу, которая обновления структуры базы данных и данных% s.
LastStableVersion=Последняя стабильная версия
-GenericMaskCodes=Вы можете войти в любой нумерации маска. В этой маске, следующие теги можно использовать: (000000) соответствует число, которое будет увеличивается на каждом% s. Введите столько нулей в качестве желаемой длины счетчика. Счетчик будет завершена к нулями слева, с тем чтобы иметь столько нулей, как маска. 000000 (000) же, как и предыдущий, но компенсировать соответствующий номер Право + знак применяется начиная с первого% s. (000000 @ X) же, как и предыдущий, но счетчик сбрасывается до нуля, когда в месяц х достигнуто (X в период с 1 по 12). Если эта опция используется и Х 2 или выше, то последовательность (ГГ) () или мм гггг () () мм Также требуется. () дд сутки (от 01 до 31). () мм в месяц (от 01 до 12). YY (), () или гггг (Y) в год в течение 2, 4 или 1 числа. () cccc000 код клиента по N символов, после чего клиент исх борьбы без смещения и zeroized whith Глобальной контртеррористической стратегии.
Все другие символы в маске останутся нетронутыми. Пространства, не допускается.
Пример на 99-й% х сторонних TheCompany сделали 31/01/2007: ABC YY () (мм) - () 000000 даст ABC0701-000099 (100) 0000-ZZZ / (ДД) / XXX даст 0199-ZZZ/31/XXX
+GenericMaskCodes=
GenericNumRefModelDesc=Возврат количества настраиваемых в соответствии с определенной маской.
ServerAvailableOnIPOrPort=Сервер доступен по адресу% S порт% S
ServerNotAvailableOnIPOrPort=Сервер не доступен по адресу% S порт% S
diff --git a/htdocs/lib/functions2.lib.php b/htdocs/lib/functions2.lib.php
index 73a896d9577..a35ea9a6086 100644
--- a/htdocs/lib/functions2.lib.php
+++ b/htdocs/lib/functions2.lib.php
@@ -63,13 +63,13 @@ function array2table($data,$tableMarkup=1,$tableoptions='',$troptions='',$tdopti
/**
* Return next value for a mask
*
- * @param unknown_type $db
- * @param $mask
- * @param unknown_type $table
- * @param unknown_type $field
- * @param unknown_type $where To add a filter on selection (for exemple to filter for invoice types)
- * @param unknown_type $valueforccc
- * @param unknown_type $date
+ * @param unknown_type $db Database handler
+ * @param $mask Mask to use
+ * @param unknown_type $table Table containing field with counter
+ * @param unknown_type $field Field containing already used values of counter
+ * @param unknown_type $where To add a filter on selection (for exemple to filter on invoice types)
+ * @param unknown_type $valueforccc
+ * @param unknown_type $date
* @return string New value
*/
function get_next_value($db,$mask,$table,$field,$where='',$valueforccc='',$date='')
@@ -268,6 +268,102 @@ function get_next_value($db,$mask,$table,$field,$where='',$valueforccc='',$date=
}
+/**
+ * Check value
+ *
+ * @param unknown_type $db Database handler
+ * @param $mask Mask to use
+ * @param unknown_type $table Table containing field with counter
+ * @param unknown_type $field Field containing already used values of counter
+ * @param unknown_type $where To add a filter on selection (for exemple to filter on invoice types)
+ * @param unknown_type $valueforccc
+ * @param unknown_type $date
+ * @return int <0 if KO, 0 if OK
+ */
+function check_value($mask,$value)
+{
+ $result=0;
+
+ // Extract value for mask counter, mask raz and mask offset
+ if (! eregi('\{(0+)([@\+][0-9]+)?([@\+][0-9]+)?\}',$mask,$reg)) return 'ErrorBadMask';
+ $masktri=$reg[1].$reg[2].$reg[3];
+ $maskcounter=$reg[1];
+ $maskraz=-1;
+ $maskoffset=0;
+ if (strlen($maskcounter) < 3) return 'CounterMustHaveMoreThan3Digits';
+
+ // Extract value for third party mask counter
+ if (eregi('\{(c+)(0*)\}',$mask,$regClientRef))
+ {
+ $maskrefclient=$regClientRef[1].$regClientRef[2];
+ $maskrefclient_maskclientcode=$regClientRef[1];
+ $maskrefclient_maskcounter=$regClientRef[2];
+ $maskrefclient_maskoffset=0; //default value of maskrefclient_counter offset
+ $maskrefclient_clientcode=substr($valueforccc,0,strlen($maskrefclient_maskclientcode));//get n first characters of client code to form maskrefclient_clientcode
+ $maskrefclient_clientcode=str_pad($maskrefclient_clientcode,strlen($maskrefclient_maskclientcode),"#",STR_PAD_RIGHT);//padding maskrefclient_clientcode for having exactly n characters in maskrefclient_clientcode
+ $maskrefclient_clientcode=dol_string_nospecial($maskrefclient_clientcode);//sanitize maskrefclient_clientcode for sql insert and sql select like
+ if (strlen($maskrefclient_maskcounter) > 0 && strlen($maskrefclient_maskcounter) < 3) return 'CounterMustHaveMoreThan3Digits';
+ }
+ else $maskrefclient='';
+
+ $maskwithonlyymcode=$mask;
+ $maskwithonlyymcode=eregi_replace('\{(0+)([@\+][0-9]+)?([@\+][0-9]+)?\}',$maskcounter,$maskwithonlyymcode);
+ $maskwithonlyymcode=eregi_replace('\{dd\}','dd',$maskwithonlyymcode);
+ $maskwithonlyymcode=eregi_replace('\{(c+)(0*)\}',$maskrefclient,$maskwithonlyymcode);
+ $maskwithnocode=$maskwithonlyymcode;
+ $maskwithnocode=eregi_replace('\{yyyy\}','yyyy',$maskwithnocode);
+ $maskwithnocode=eregi_replace('\{yy\}','yy',$maskwithnocode);
+ $maskwithnocode=eregi_replace('\{y\}','y',$maskwithnocode);
+ $maskwithnocode=eregi_replace('\{mm\}','mm',$maskwithnocode);
+ // Now maskwithnocode = 0000ddmmyyyyccc for example
+ // and maskcounter = 0000 for example
+ //print "maskwithonlyymcode=".$maskwithonlyymcode." maskwithnocode=".$maskwithnocode."\n ";
+
+ // If an offset is asked
+ if (! empty($reg[2]) && eregi('^\+',$reg[2])) $maskoffset=eregi_replace('^\+','',$reg[2]);
+ if (! empty($reg[3]) && eregi('^\+',$reg[3])) $maskoffset=eregi_replace('^\+','',$reg[3]);
+
+ // Define $sqlwhere
+
+ // If a restore to zero after a month is asked we check if there is already a value for this year.
+ if (! empty($reg[2]) && eregi('^@',$reg[2])) $maskraz=eregi_replace('^@','',$reg[2]);
+ if (! empty($reg[3]) && eregi('^@',$reg[3])) $maskraz=eregi_replace('^@','',$reg[3]);
+ if ($maskraz >= 0)
+ {
+ if ($maskraz > 12) return 'ErrorBadMaskBadRazMonth';
+
+ // Define reg
+ if ($maskraz > 1 && ! eregi('^(.*)\{(y+)\}\{(m+)\}',$maskwithonlyymcode,$reg)) return 'ErrorCantUseRazInStartedYearIfNoYearMonthInMask';
+ if ($maskraz <= 1 && ! eregi('^(.*)\{(y+)\}',$maskwithonlyymcode,$reg)) return 'ErrorCantUseRazIfNoYearInMask';
+ //print "x".$maskwithonlyymcode." ".$maskraz;
+ }
+ //print "masktri=".$masktri." maskcounter=".$maskcounter." maskraz=".$maskraz." maskoffset=".$maskoffset." \n";
+
+ // Check we have a number in ($posnumstart+1).', '.strlen($maskcounter)
+ //
+
+ // Check length
+ $len=strlen($maskwithnocode);
+ if (strlen($value) != $len) $result=-1;
+
+ // Define $maskLike
+ $maskLike = dol_string_nospecial($mask);
+ $maskLike = str_replace("%","_",$maskLike);
+ // Replace protected special codes with matching number of _ as wild card caracter
+ $maskLike = str_replace(dol_string_nospecial('{yyyy}'),'____',$maskLike);
+ $maskLike = str_replace(dol_string_nospecial('{yy}'),'__',$maskLike);
+ $maskLike = str_replace(dol_string_nospecial('{y}'),'_',$maskLike);
+ $maskLike = str_replace(dol_string_nospecial('{mm}'),'__',$maskLike);
+ $maskLike = str_replace(dol_string_nospecial('{dd}'),'__',$maskLike);
+ $maskLike = str_replace(dol_string_nospecial('{'.$masktri.'}'),str_pad("",strlen($maskcounter),"_"),$maskLike);
+ if ($maskrefclient) $maskLike = str_replace(dol_string_nospecial('{'.$maskrefclient.'}'),str_pad("",strlen($maskrefclient),"_"),$maskLike);
+
+
+ dolibarr_syslog("functions2::check_value result=".$result,LOG_DEBUG);
+ return $result;
+}
+
+
/**
* \brief Convert a binary data to string that represent hexadecimal value
* \param bin Value to convert
diff --git a/htdocs/lib/lib_foot.js b/htdocs/lib/lib_foot.js
index 5ce21a2c051..2e5a07588ee 100644
--- a/htdocs/lib/lib_foot.js
+++ b/htdocs/lib/lib_foot.js
@@ -14,7 +14,7 @@
***********************************************/
var offsetxpoint=-60 //Customize x offset of tooltip
-var offsetypoint=20 //Customize y offset of tooltip
+var offsetypoint=18 //Customize y offset of tooltip
var ie=document.all
var ns6=document.getElementById && !document.all
var enabletip=false
@@ -47,7 +47,8 @@ function positiontip(e)
var bottomedge=ie&&!window.opera? ietruebody().clientHeight-event.clientY-offsetypoint : window.innerHeight-e.clientY-offsetypoint-20
var leftedge=(offsetxpoint<0)? offsetxpoint*(-1) : -1000
-
+ //alert('curX='+curX+' curY='+curY+' rightedge='+rightedge+' bottomedge='+bottomedge+' leftedge='+leftedge+' tipobj.offsetHeight='+tipobj.offsetHeight);
+
//if the horizontal distance isn't enough to accomodate the width of the context menu
if (rightedgeclient && $soc->code_client == -1)
- {
- $soc->code_client = -1;
- }
- else if ($_POST['code_auto'])
- {
- $soc->code_client = '';
- }
-
- if ($soc->fournisseur && $soc->code_fournisseur == -1)
- {
- $soc->code_fournisseur = -1;
- }
- else if ($_POST['code_auto'])
- {
- $soc->code_fournisseur = '';
- }
-
if ($_POST["action"] == 'add')
{
$db->begin();
+ if (empty($soc->client)) $soc->code_client='';
+ if (empty($soc->fournisseur)) $soc->code_fournisseur='';
+
$result = $soc->create($user);
if ($result >= 0)
{
@@ -223,6 +207,10 @@ if ((! $_POST["getcustomercode"] && ! $_POST["getsuppliercode"])
$oldsoc=new Societe($db);
$result=$oldsoc->fetch($socid);
+ // To not set code if third party is not concerned. But if it had values, we keep them.
+ if (empty($soc->client) && empty($oldsoc->code_client)) $soc->code_client='';
+ if (empty($soc->fournisseur)&& empty($oldsoc->code_fournisseur)) $soc->code_fournisseur='';
+
$result = $soc->update($socid,$user,1,$oldsoc->codeclient_modifiable(),$oldsoc->codefournisseur_modifiable());
if ($result >= 0)
{
@@ -408,15 +396,9 @@ $_GET["action"] == 'create' || $_POST["action"] == 'create')
print '