config_numero_gdd($Vls_url_chemin); } public function __destruct() { } ################################################################# ################################################################# ################################################################# ### configuration du numero GDD ################################################################# ################################################################# ################################################################# public function config_numero_gdd($Vls_url_chemin='') { $Vlt_liste_priorite = array(); $xmlfeatures = simplexml_load_file($Vls_url_chemin."modules/gdd/xml/config.xml"); if ($xmlfeatures) { foreach($xmlfeatures->PARAM_NUM_GDD as $PARAM_NUM_GDD) { $this->nbre_chiffre = utf8_decode((int)$PARAM_NUM_GDD->NBRE_CHIFFRE); $this->premier_element = utf8_decode((string)$PARAM_NUM_GDD->PREMIER_ELEMENT); $this->deuxieme_element = utf8_decode((string)$PARAM_NUM_GDD->DEUXIEME_ELEMENT); $this->troisieme_element = utf8_decode((string)$PARAM_NUM_GDD->TROISIEME_ELEMENT); foreach($PARAM_NUM_GDD->SEPARATEUR as $SEPARATEUR) { $this->separateur[utf8_decode((int)$SEPARATEUR->POSITION)] = utf8_decode((string)$SEPARATEUR->CARACTERE); } } } } ################################################################# ################################################################# ################################################################# ### Affichage du numero de GDD ################################################################# ################################################################# ################################################################# public function afficher_numero_gdd() { ########################################## ### recherche du premier element ########################################## switch($this->premier_element) { case "NUMERO": $Vls_premier_element = $this->format_chiffre(); break; case "ANNEE": $Vls_premier_element = $this->annee; break; case "TYPE": $Vls_premier_element = $this->type_label; break; } ########################################## ### recherche du deuxième element ########################################## switch($this->deuxieme_element) { case "NUMERO": $Vls_deuxieme_element = $this->format_chiffre(); break; case "ANNEE": $Vls_deuxieme_element = $this->annee; break; case "TYPE": $Vls_deuxieme_element = $this->type_label; break; } ########################################## ### recherche du troisième element ########################################## switch($this->troisieme_element) { case "NUMERO": $Vls_troisieme_element = $this->format_chiffre(); break; case "ANNEE": $Vls_troisieme_element = $this->annee; break; case "TYPE": $Vls_troisieme_element = $this->type_label; break; } ########################################## ### mise en forme du numéro de gdd ########################################## $Vls_numero_gdd = $this->separateur[1]; $Vls_numero_gdd .= $Vls_premier_element; $Vls_numero_gdd .= $this->separateur[2]; $Vls_numero_gdd .= $Vls_deuxieme_element; $Vls_numero_gdd .= $this->separateur[3]; $Vls_numero_gdd .= $Vls_troisieme_element; $Vls_numero_gdd .= $this->separateur[4]; ########################################## return $Vls_numero_gdd; } ################################################################# ################################################################# ################################################################# ### Décompose du numero de GDD ################################################################# ################################################################# ################################################################# public function decomposer_numero_gdd($Vls_numero_gdd) { $Vlt_numero_gdd_decomposer = array(); ############################################ $Vls_separateur_1 = $this->separateur[1]; $Vls_separateur_2 = $this->separateur[2]; $Vls_separateur_3 = $this->separateur[3]; $Vls_separateur_4 = $this->separateur[4]; ############################################ $Vls_type_premier_elem = $this->premier_element; $Vls_type_deuxieme_elem = $this->deuxieme_element; $Vls_type_troisieme_elem = $this->troisieme_element; ############################################ ### on regarde s'il y a un séparteur 1 ############################################ if($Vls_separateur_1!="") { $Vli_longeur_seprateur_1 = strlen($Vls_separateur_1); $Vls_numero_gdd = substr($Vls_numero_gdd, $Vli_longeur_seprateur_1); } ############################################ ### recherche du premier element ############################################ switch($Vls_type_premier_elem) { case "NUMERO": $Vls_premier_elem = $this->retrouver_format_chiffre($Vls_numero_gdd); $Vli_longeur_elem_1 = strlen($Vls_premier_elem); $Vls_numero_gdd = substr($Vls_numero_gdd, $Vli_longeur_elem_1); break; case "ANNEE": $Vls_premier_elem = substr($Vls_numero_gdd, 0, 4); $Vls_numero_gdd = substr($Vls_numero_gdd, 4); break; case "TYPE": $Vls_premier_elem = ""; break; } ########################################################### ### On regarde si le premier element est vide ### Si oui on part de la fin du numéro ### sinon on continu normalement ########################################################### if($Vls_premier_elem=="") { ############################################ ### on regarde s'il y a un séparteur 4 ############################################ if($Vls_separateur_4!="") { $Vli_longeur_seprateur_4 = strlen($Vls_separateur_4); $Vls_numero_gdd = substr($Vls_numero_gdd, 0, -($Vli_longeur_seprateur_4)); } ############################################ ### recherche du troisième element ############################################ switch($Vls_type_troisieme_elem) { case "NUMERO": $Vls_troisieme_elem = $this->retrouver_format_chiffre_fin($Vls_numero_gdd); $Vli_longeur_troisieme_elem = strlen($Vls_troisieme_elem); $Vls_numero_gdd = substr($Vls_numero_gdd, 0, -($Vli_longeur_troisieme_elem)); break; case "ANNEE": $Vls_troisieme_elem = substr($Vls_numero_gdd, -4); $Vls_numero_gdd = substr($Vls_numero_gdd, 0, -4); break; } ############################################ ### on regarde s'il y a un séparteur 3 ############################################ if($Vls_separateur_3!="") { $Vli_longeur_seprateur_3= strlen($Vls_separateur_3); $Vls_numero_gdd = substr($Vls_numero_gdd, 0, -($Vli_longeur_seprateur_3)); } ############################################ ### recherche du deuxieme element ############################################ switch($Vls_type_deuxieme_elem) { case "NUMERO": $Vls_deuxieme_elem = $this->retrouver_format_chiffre_fin($Vls_numero_gdd); $Vli_longeur_deuxieme_elem = strlen($Vls_deuxieme_elem); $Vls_numero_gdd = substr($Vls_numero_gdd, 0, -($Vli_longeur_deuxieme_elem)); break; case "ANNEE": $Vls_deuxieme_elem = substr($Vls_numero_gdd, -4); $Vls_numero_gdd = substr($Vls_numero_gdd, 0, -4); break; } ############################################ ### on regarde s'il y a un séparteur 2 ############################################ if($Vls_separateur_2!="") { $Vli_longeur_seprateur_2= strlen($Vls_separateur_2); $Vls_numero_gdd = substr($Vls_numero_gdd, 0, -($Vli_longeur_seprateur_2)); } ######################################################################### ### le reste de Vls_numero_gdd est ogligatoirement le premier element ######################################################################### $Vls_premier_elem = $Vls_numero_gdd; } else { ############################################ ### on regarde s'il y a un séparteur 2 ############################################ if($Vls_separateur_2!="") { $Vli_longeur_seprateur_2 = strlen($Vls_separateur_2); $Vls_numero_gdd = substr($Vls_numero_gdd, $Vli_longeur_seprateur_2); } ############################################ ### recherche du deuxième element ############################################ switch($Vls_type_deuxieme_elem) { case "NUMERO": $Vls_deuxieme_elem = $this->retrouver_format_chiffre($Vls_numero_gdd); $Vli_longeur_elem_1 = strlen($Vls_premier_elem); $Vls_numero_gdd = substr($Vls_numero_gdd, $Vli_longeur_elem_1); break; case "ANNEE": $Vls_deuxieme_elem = substr($Vls_numero_gdd, 0, 4); $Vls_numero_gdd = substr($Vls_numero_gdd, 4); break; case "TYPE": $Vls_deuxieme_elem = ""; break; } ########################################################### ### On regarde si le deuxieme element est vide ### Si oui on part de la fin du numéro ### sinon on continu normalement ########################################################### if($Vls_deuxieme_elem=="") { ############################################ ### on regarde s'il y a un séparteur 4 ############################################ if($Vls_separateur_4!="") { $Vli_longeur_seprateur_4 = strlen($Vls_separateur_4); $Vls_numero_gdd = substr($Vls_numero_gdd, 0, -($Vli_longeur_seprateur_4)); } ############################################ ### recherche du troisième element ############################################ switch($Vls_type_troisieme_elem) { case "NUMERO": $Vls_troisieme_elem = $this->retrouver_format_chiffre_fin($Vls_numero_gdd); $Vli_longeur_troisieme_elem = strlen($Vls_troisieme_elem); $Vls_numero_gdd = substr($Vls_numero_gdd, 0, -($Vli_longeur_troisieme_elem)); break; case "ANNEE": $Vls_troisieme_elem = substr($Vls_numero_gdd, -4); $Vls_numero_gdd = substr($Vls_numero_gdd, 0, -4); break; } ############################################ ### on regarde s'il y a un séparteur 3 ############################################ if($Vls_separateur_3!="") { $Vli_longeur_seprateur_3= strlen($Vls_separateur_3); $Vls_numero_gdd = substr($Vls_numero_gdd, 0, -($Vli_longeur_seprateur_3)); } ######################################################################### ### le reste de Vls_numero_gdd est ogligatoirement le premier element ######################################################################### $Vls_deuxieme_elem = $Vls_numero_gdd; } else { ############################################ ### on regarde s'il y a un séparteur 3 ############################################ if($Vls_separateur_3!="") { $Vli_longeur_seprateur_3 = strlen($Vls_separateur_3); $Vls_numero_gdd = substr($Vls_numero_gdd, $Vli_longeur_seprateur_3); } ############################################ ### on regarde s'il y a un séparteur 4 ############################################ if($Vls_separateur_4!="") { $Vli_longeur_seprateur_4 = strlen($Vls_separateur_4); $Vls_numero_gdd = substr($Vls_numero_gdd, 0, -($Vli_longeur_seprateur_4)); } ######################################################################### ### le reste de Vls_numero_gdd est ogligatoirement le premier element ######################################################################### $Vls_troisieme_elem = $Vls_numero_gdd; } } #################################################### ### on met dans un tableau la liste des elements #################################################### $Vlt_numero_gdd_decomposer["$Vls_type_premier_elem"] = $Vls_premier_elem; $Vlt_numero_gdd_decomposer["$Vls_type_deuxieme_elem"] = $Vls_deuxieme_elem; $Vlt_numero_gdd_decomposer["$Vls_type_troisieme_elem"] = $Vls_troisieme_elem; $Vlt_numero_gdd_decomposer[3] = "séparteur 1 : ".$Vls_separateur_1; $Vlt_numero_gdd_decomposer[4] = "séparteur 2 : ".$Vls_separateur_2; $Vlt_numero_gdd_decomposer[5] = "séparteur 3 : ".$Vls_separateur_3; $Vlt_numero_gdd_decomposer[6] = "séparteur 4 : ".$Vls_separateur_4; $Vlt_numero_gdd_decomposer[7] = "type elem 1 : ".$Vls_type_premier_elem; $Vlt_numero_gdd_decomposer[8] = "type elem 2 : ".$Vls_type_deuxieme_elem; $Vlt_numero_gdd_decomposer[9] = "type elem 3 : ".$Vls_type_troisieme_elem; ########################################## return $Vlt_numero_gdd_decomposer; } ################################################################# ################################################################# ################################################################# ### création du format du chiffre ################################################################# ################################################################# ################################################################# public function format_chiffre() { $Vli_chiffre_gdd = $this->chiffre; $Vli_difference = $this->nbre_chiffre - strlen($Vli_chiffre_gdd); $Vls_chiffre_gdd = $Vli_chiffre_gdd; for($i=1;$i<=$Vli_difference;$i++) { $Vls_chiffre_gdd = "0".$Vls_chiffre_gdd; } return $Vls_chiffre_gdd; } ################################################################# ################################################################# ################################################################# ### retrouver le chiffre dans un numero de dossier ################################################################# ################################################################# ################################################################# public function retrouver_format_chiffre($Vls_numero_gdd) { $Vli_longeur_chiffre = $this->nbre_chiffre; $Vls_chiffre_gdd = substr($Vls_numero_gdd, 0, $Vli_longeur_chiffre); return $Vls_chiffre_gdd; } ################################################################# ################################################################# ################################################################# ### retrouver le chiffre en partant de la fin dans un numero de dossier ################################################################# ################################################################# ################################################################# public function retrouver_format_chiffre_fin($Vls_numero_gdd) { $Vli_longeur_chiffre = $this->nbre_chiffre; $Vls_chiffre_gdd = substr($Vls_numero_gdd, -($Vli_longeur_chiffre)); return $Vls_chiffre_gdd; } ################################################################# ################################################################# ################################################################# ### Initialiser le chiffre ################################################################# ################################################################# ################################################################# public function set_chiffre($chiffre) { $this->chiffre = $chiffre; } ################################################################# ################################################################# ################################################################# ### Initialiser le annee ################################################################# ################################################################# ################################################################# public function set_annee($annee) { $this->annee = $annee; } ################################################################# ################################################################# ################################################################# ### Initialiser le type_label ################################################################# ################################################################# ################################################################# public function set_type_label($type_label) { $this->type_label = $type_label; } ################################################################# ################################################################# ################################################################# ### Initialiser le type_nom ################################################################# ################################################################# ################################################################# public function set_type_nom($type_nom) { $this->type_nom = $type_nom; } ################################################################# } ?>