From 93ccd02a21d5044e180b72e65ac4d7c054234463 Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Wed, 3 May 2006 13:08:40 +0000 Subject: [PATCH] =?UTF-8?q?Changement=20de=20m=E9thode=20de=20num=E9rotati?= =?UTF-8?q?on=20-=20essai=20avec=20l'hexa?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/commande/mod_commande_opale.php | 62 ++++++++++++++++++- 1 file changed, 61 insertions(+), 1 deletion(-) diff --git a/htdocs/includes/modules/commande/mod_commande_opale.php b/htdocs/includes/modules/commande/mod_commande_opale.php index 2ef6307c8bc..fa19139500f 100644 --- a/htdocs/includes/modules/commande/mod_commande_opale.php +++ b/htdocs/includes/modules/commande/mod_commande_opale.php @@ -64,11 +64,70 @@ class mod_commande_opale extends ModeleNumRefCommandes } + /** \brief Renvoi prochaine valeur attribuée + * \return string Valeur + */ + function getNextValue() + { + global $db; + + // D'abord on récupère la valeur max (réponse immédiate car champ indéxé) + $com=''; + $sql = "SELECT MAX(ref)"; + $sql.= " FROM ".MAIN_DB_PREFIX."commande"; + $resql=$db->query($sql); + if ($resql) + { + $row = $db->fetch_row($resql); + if ($row) + { + $com = substr($row[0],0,3); + $max = hexdec(substr($row[0],4,3)).(substr($row[0],8,3)) + } +/* + // Si au moins un champ respectant le modèle a été trouvée + if (eregi('COM',$cyy)) + { + // Recherche rapide car restreint par un like sur champ indexé + $posindice=4; + $sql = "SELECT MAX(0+SUBSTRING(ref,$posindice))"; + $sql.= " FROM ".MAIN_DB_PREFIX."commande"; + $sql.= " WHERE ref like '${cyy}%'"; + $resql=$db->query($sql); + if ($resql) + { + $row = $db->fetch_row($resql); + $max = $row[0]; + } + */ + } + else + { + $max=0; + } + $yy = strftime("%y",time()); + $hex = strtoupper(dechex($max+1)); + $ref = substr("000000".($hex),-6); + + return 'COM-'.substr($ref,0,3)."-".substr($ref,3,3); + } + + /** \brief Renvoie la référence de commande suivante non utilisée + * \param objsoc Objet société + * \return string Texte descripif + */ + function commande_get_num($objsoc=0) + { + return $this->getNextValue(); + } + + + /** \brief Renvoie le prochaine numéro de référence de commande non utilisé \param obj_soc objet société \return string numéro de référence de commande non utilisé */ - function commande_get_num($obj_soc=0) +/* function commande_get_num($obj_soc=0) { global $db; @@ -89,5 +148,6 @@ class mod_commande_opale extends ModeleNumRefCommandes return 'COM-'.substr($ref,0,3)."-".substr($ref,3,3); } + */ } ?>