diff --git a/htdocs/includes/modules/societe/mod_codeclient_leopard.php b/htdocs/includes/modules/societe/mod_codeclient_leopard.php index eadc18eb775..af939209e85 100644 --- a/htdocs/includes/modules/societe/mod_codeclient_leopard.php +++ b/htdocs/includes/modules/societe/mod_codeclient_leopard.php @@ -30,11 +30,11 @@ 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 extends ModeleThirdPartyCode { /* diff --git a/htdocs/includes/modules/societe/mod_codeclient_lion.php b/htdocs/includes/modules/societe/mod_codeclient_lion.php index 8b6d7a4242b..7c1da554945 100644 --- a/htdocs/includes/modules/societe/mod_codeclient_lion.php +++ b/htdocs/includes/modules/societe/mod_codeclient_lion.php @@ -35,7 +35,6 @@ 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_lion extends ModeleThirdPartyCode { var $nom; // Nom du modele @@ -51,7 +50,7 @@ class mod_codeclient_lion extends ModeleThirdPartyCode { $this->nom = "Lion"; $this->code_modifiable = 0; - $this->code_modifiable_invalide = 0; + $this->code_modifiable_invalide = 1; $this->code_modifiable_null = 1; $this->code_null = 0; } @@ -80,31 +79,45 @@ class mod_codeclient_lion extends ModeleThirdPartyCode * \param $db Handler acces base * \param $code Code a vérifier/corriger * \param $soc Objet societe - * \return int <0 si ko + * \return int <0 si KO, 0 si OK */ function verif($db, &$code, $soc) { + $result=0; $code = strtoupper(trim($code)); - if ($this->verif_syntax($code) == 0) - { - $is_dispo = $this->verif_dispo($db, $code); - if ($is_dispo <> 0) - { - return -3; - } + if (! $code && $this->code_null) + { + $result=0; } else { - if (strlen($code) == 0) - { - return -2; + if ($this->verif_syntax($code) >= 0) + { + $is_dispo = $this->verif_dispo($db, $code, $soc); + if ($is_dispo <> 0) + { + $result=-3; + } + else + { + $result=0; + } } else { - return -1; + if (strlen($code) == 0) + { + $result=-2; + } + else + { + $result=-1; + } } } + dolibarr_syslog("mod_codeclient_lion::verif result=".$result); + return $result; } @@ -112,9 +125,9 @@ class mod_codeclient_lion extends ModeleThirdPartyCode * \brief Renvoi une valeur correcte * \param $db Handler acces base * \param $code Code reference eventuel - * \return string Code correct + * \return string Code correct, <0 si KO */ - function get_correct($db,$code) + function get_correct($db, $code) { $return='001'; @@ -138,20 +151,22 @@ class mod_codeclient_lion extends ModeleThirdPartyCode /** - * \brief Renvoi si un code est pris ou non - * \param $db Handler acces base - * \param $code Code a verifier - * \return int 0 si dispo, <0 si erreur + * \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) + function verif_dispo($db, $code, $soc) { $sql = "SELECT code_client FROM ".MAIN_DB_PREFIX."societe"; - $sql .= " WHERE code_client = '".$code."'"; + $sql.= " WHERE code_client = '".$code."'"; + $sql.= " AND idp != '".$soc->id."'"; $resql=$db->query($sql); if ($resql) { - if ($db->num_rows() == 0) + if ($db->num_rows($resql) == 0) { return 0; } @@ -170,7 +185,8 @@ class mod_codeclient_lion extends ModeleThirdPartyCode /** * \brief Renvoi si un code respecte la syntaxe - * \return int 0 si dispo, <0 si erreur + * \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_codeclient_zebre.php b/htdocs/includes/modules/societe/mod_codeclient_zebre.php index 42e562ee2f3..5bb2e73087a 100644 --- a/htdocs/includes/modules/societe/mod_codeclient_zebre.php +++ b/htdocs/includes/modules/societe/mod_codeclient_zebre.php @@ -80,52 +80,62 @@ class mod_codeclient_zebre extends ModeleThirdPartyCode * \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 ($this->verif_syntax($code) == 0) - { - $i = 1; - - $is_dispo = $this->verif_dispo($db, $code); - - while ($is_dispo <> 0 && $i < 99) - { - $arr = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; - - $code = substr($code,0,6) . substr("00".$i, -2); - - $is_dispo = $this->verif_dispo($db, $code); - - $i++; - } - - if ($is_dispo <> 0) - { - return -3; - } + if (! $code && $this->code_null) + { + $result=0; } else { - if (strlen(trim($code)) == 0) - { - return -2; + 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 { - return -1; + 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 correcte + * \param $db Handler acces base + * \param $code Code reference eventuel + * \return string Code correct, <0 si KO */ function get_correct($db, $code) { @@ -133,7 +143,7 @@ class mod_codeclient_zebre extends ModeleThirdPartyCode { $i = 1; - $is_dispo = $this->verif_dispo($db, $code); + $is_dispo = $this->verif_dispo($db, $code, $soc); while ( $is_dispo <> 0 && $i < 99) { @@ -141,7 +151,7 @@ class mod_codeclient_zebre extends ModeleThirdPartyCode $code = substr($code,0,6) . substr("00".$i, -2); - $is_dispo = $this->verif_dispo($db, $code); + $is_dispo = $this->verif_dispo($db, $code, $soc); $i++; } @@ -158,19 +168,22 @@ class mod_codeclient_zebre extends ModeleThirdPartyCode /** - * \brief Renvoi si un code est pris ou non - * \param $db Handler acces base - * \param $code Code a verifier - * \return int 0 si dispo, <0 si erreur + * \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) + function verif_dispo($db, $code, $soc) { $sql = "SELECT code_client FROM ".MAIN_DB_PREFIX."societe"; - $sql .= " WHERE code_client = '".$code."'"; + $sql.= " WHERE code_client = '".$code."'"; + $sql.= " AND idp != '".$soc->id."'"; - if ($db->query($sql)) + $resql=$db->query($sql); + if ($resql) { - if ($db->num_rows() == 0) + if ($db->num_rows($resql) == 0) { return 0; } @@ -181,18 +194,16 @@ class mod_codeclient_zebre extends ModeleThirdPartyCode } else { - if (strlen($code) == 0) - { - return -2; - } - else - { - return -1; - } + 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; diff --git a/htdocs/langs/en_US/companies.lang b/htdocs/langs/en_US/companies.lang index e80cd31dc58..ca4b034cd94 100644 --- a/htdocs/langs/en_US/companies.lang +++ b/htdocs/langs/en_US/companies.lang @@ -52,6 +52,8 @@ Web=Web Birthday=Birthday VATIsUsed=Using VAT ThirdPartyEMail=%s +WrongCustomerCode=Customer code invalid +WrongSupplierCode=Supplier code invalid ##### Professionnal ID ##### ProfId1=Professional ID 1 ProfId2=Professional ID 2 diff --git a/htdocs/langs/en_US/main.lang b/htdocs/langs/en_US/main.lang index a7ac423d720..b2143debe15 100644 --- a/htdocs/langs/en_US/main.lang +++ b/htdocs/langs/en_US/main.lang @@ -27,6 +27,7 @@ ErrorWrongValue=Wrong value ErrorWrongValueForParameterX=Wrong value for parameter %s ErrorNoRequestInError=No request in error ErrorServiceUnavailableTryLater=Service not available or busy for the moment. Try again later. +ErrorDuplicateField=Duplicate value in a unique field SeeAbove=See above HomeArea=Home area LastConnexion=Last connection diff --git a/htdocs/langs/fr_FR/companies.lang b/htdocs/langs/fr_FR/companies.lang index 21c8582be05..0f269570bcb 100644 --- a/htdocs/langs/fr_FR/companies.lang +++ b/htdocs/langs/fr_FR/companies.lang @@ -52,6 +52,8 @@ Web=Web Birthday=Date de naissance VATIsUsed=Assujéti à TVA ThirdPartyEMail=%s +WrongCustomerCode=Code client incorrect +WrongSupplierCode=Code fournisseur incorrect ##### Professionnal ID ##### ProfId1=ID professionnel 1 ProfId2=ID professionnel 2 diff --git a/htdocs/langs/fr_FR/main.lang b/htdocs/langs/fr_FR/main.lang index bdf9bff332a..ceba065c34c 100644 --- a/htdocs/langs/fr_FR/main.lang +++ b/htdocs/langs/fr_FR/main.lang @@ -18,7 +18,7 @@ ErrorGoToModuleSetup=Allez dans la Configuration du module pour corriger ErrorFailedToSendMail=Échec de l'envoi du mail (emetteur=%s, destinataire=%s) ErrorAttachedFilesDisabled=La gestion des fichiers associés est désactivée sur ce serveur ErrorFileNotUploaded=Le fichier n'a pas été transféré -ErrorInternalErrorDetected=Erreur detectee +ErrorInternalErrorDetected=Erreur détectée ErrorNoRequestRan=Aucune requête exécutée ErrorWrongHostParameter=Mauvais paramètre Serveur ErrorYourCountryIsNotDefined=Votre pays n'est pas défini. Corriger en allant dans Configuration-Général-Editer. @@ -27,6 +27,7 @@ ErrorWrongValue=Valeur incorrecte ErrorWrongValueForParameterX=Valeur incorrecte pour le paramètre %s ErrorNoRequestInError=Aucune requete en erreur ErrorServiceUnavailableTryLater=Service non disponible ou saturé actuellement. Réessayer plus tard. +ErrorDuplicateField=Doublon dans un champ unique SeeAbove=Voir ci-dessus HomeArea=Espace accueil LastConnexion=Dernière connexion diff --git a/htdocs/soc.php b/htdocs/soc.php index 3b6f63b1bbe..ff8e8c5e253 100644 --- a/htdocs/soc.php +++ b/htdocs/soc.php @@ -110,8 +110,6 @@ if ((! $_POST["getcustomercode"] && ! $_POST["getsuppliercode"]) $soc->prefix_comm = $_POST["prefix_comm"]; $soc->code_client = $_POST["code_client"]; $soc->code_fournisseur = $_POST["code_fournisseur"]; - $soc->codeclient_modifiable = $_POST["codeclient_modifiable"]; - $soc->codefournisseur_modifiable = $_POST["codefournisseur_modifiable"]; $soc->capital = $_POST["capital"]; $soc->tva_assuj = $_POST["assujtva_value"]; @@ -306,8 +304,6 @@ if ($_POST["getcustomercode"] || $_POST["getsuppliercode"] || print '