null, * "om_validite_debut" => null, * "om_validite_fin" => null, * "delete" => false, * ) * @return string Le résultat du traitement */ public function update_or_create($request_data) { // Check DATA if ( isset($request_data["code"]) === false || isset($request_data["chef"]) === false || isset($request_data["libelle"]) === false || isset($request_data["direction"]) === false ) { return $this->BAD_DATA; } $delete = false; if (isset($request_data["delete"]) === true) { $delete = $this->f->get_boolean_from_string($request_data["delete"]); } // Check If Exists division $division = $this->get_division($request_data); // Check If Exists direction $request_data["direction"] = $this->get_direction($request_data["direction"]); if ($request_data["direction"] === false) { return $this->BAD_DATA; } // If Exists Update or delete division if ($division == true ){ if ($delete){ $sql = "DELETE FROM ".DB_PREFIXE."division"; $sql .= " WHERE division=".$division.";"; }else{ $sql = "UPDATE ".DB_PREFIXE."division SET "; foreach( $request_data as $colonne => $valeur) { // 'description' => null, $sql .= sprintf(", %s = '%s'", $colonne, $valeur); } $sql .= " WHERE division=".$division.";"; } }else{ if (!$delete){ $sucess = $this->creation_division($request_data); if (!$sucess) return $this->BAD_DATA; return $this->OK; }else{ return $this->BAD_DATA; } } $qres = $this->f->db->query($sql); $this->f->isDatabaseError($qres); return $this->OK; } /** * Cette methode prend les valeurs d'un om_parametre pour le créer * et renvoit l'identifiant du om_parametre créer ou false * * @param array $om_parametre_valeur Les champs renseignés du om_parametre. * @return int L'identifiant de om_parametre. */ private function creation_division($division_valeur) { $division = $this->f->get_inst__om_dbform(array( "obj" => "division", "idx" => "]", )); $valAuto = array(); foreach($division->champs as $value) { $valAuto[$value] = null; } foreach ($division_valeur as $colonne => $valeur) { $valAuto[$colonne] = $valeur; } if ($division->ajouter($valAuto) === false) { $this->setMessage(__("La division n'a pas été créée.")); return false; } $this->setMessage(__("La division a été créée avec succès.")); return $division->valF['division']; } /** * Cette méthode prend le libellé et le code d'une division et le transforme en * son identifiant en le trouvant dans la base de données et en le * sauvegardant pour réutilisation * * @param array $parametres Les paramètres de la division. * @return int L'identifiant de la division. */ private function get_division($parametres) { if (array_key_exists($parametres['code'], $this->division) === false) { $qres = $this->f->get_one_result_from_db_query( sprintf( 'SELECT division FROM %1$sdivision WHERE division.code = \'%2$s\' AND division.libelle = \'%3$s\'', DB_PREFIXE, $this->f->db->escapeSimple($parametres['code']), $this->f->db->escapeSimple($parametres['libelle']) ), array( "origin" => __METHOD__, ) ); if ($qres["result"] === null) { $this->setMessage(__("La division dont le code et le libelle sont passés en paramètre n'existe pas.")); return false; } $this->division[$parametres['code']] = $qres["result"]; } return $this->division[$parametres['code']]; } /** * */ private function get_direction($direction_libelle) { if (array_key_exists($direction_libelle, $this->direction) === false) { $qres = $this->f->get_one_result_from_db_query( sprintf( 'SELECT direction FROM %1$sdirection WHERE direction.libelle = \'%2$s\'', DB_PREFIXE, $this->f->db->escapeSimple($direction_libelle) ), array( "origin" => __METHOD__, ) ); if ($qres["result"] === null) { $this->setMessage(__("La direction dont le libelle est passé en paramètre n'existe pas.")); return false; } $this->direction[$direction_libelle] = $qres["result"]; } return $this->direction[$direction_libelle]; } } ?>