'...', * 'division' => '...', * 'qualite' => '...', * 'om_utilisateur' => '...', * 'telephone' => null * 'debut' => null * 'fin' => null * 'delete' => false, * ) * @return string Le résultat du traitement */ public function cud_instructeur($request_data) { // Check DATA if (isset($request_data["nom"]) === false) { $this->setMessage(__("Les données de l'instructeur 'nom' est obligatoire.")); return $this->BAD_DATA; } if (isset($request_data["division"]) === false) { $this->setMessage(__("Les données de l'instructeur 'division' est obligatoire.")); return $this->BAD_DATA; } if (isset($request_data["qualite"]) === false) { $this->setMessage(__("Les données de l'instructeur 'qualite' est obligatoire.")); return $this->BAD_DATA; } $delete = false; if (isset($request_data["delete"]) === true) { $delete = $this->f->get_boolean_from_string($request_data["delete"]); } if (isset($request_data["om_utilisateur"])) { $request_data['om_utilisateur'] = $this->get_utilisateur($request_data["om_utilisateur"]); } else { $request_data['om_utilisateur'] = null; } $request_data['division'] = $this->get_division($request_data["division"]); $request_data['instructeur_qualite'] = $this->get_instructeur_qualite($request_data["qualite"]); unset($request_data["qualite"]); // Check If Exists instructeur $instructeur = $this->get_instructeur($request_data["nom"], $request_data["division"], $request_data["om_utilisateur"]); // If Exists Update or delete instructeur if ($instructeur == true ){ if ($delete){ $sql = "DELETE FROM ".DB_PREFIXE."instructeur"; $sql .= " WHERE instructeur=".$instructeur.";"; $qres = $this->f->db->query($sql); $this->f->isDatabaseError($qres); }else{ $this->update_instructeur($instructeur, $request_data); } }else{ if (!$delete){ $success = $this->creation_instructeur($request_data); if (!$success) return $this->BAD_DATA; return $this->OK; }else{ return $this->BAD_DATA; } } return $this->OK; } /** * Cette methode prend les valeurs d'un instructeur pour le créer * et renvoit l'identifiant du instructeur créer ou false * * @param array $data Les champs renseignés du instructeur. * @return int L'identifiant de instructeur. */ private function creation_instructeur($data) { $instructeur = $this->f->get_inst__om_dbform(array( "obj" => "instructeur", "idx" => "]", )); $valAuto = array(); foreach($instructeur->champs as $value) { $valAuto[$value] = null; } foreach ($data as $colonne => $valeur) { if ($valeur !== null) $valAuto[$colonne] = $this->f->db->escapeSimple($valeur); } if ($instructeur->ajouter($valAuto) === false) { $this->setMessage(__("L'instructeur n'a pas été créé.")); return false; } $this->setMessage(__("L'instructeur a été créé avec succès.")); $this->instructeur[$data['nom']] = $instructeur->valF['instructeur']; return $instructeur->valF['instructeur']; } /** * Cette methode prend les valeurs d'un instructeur pour le modifier * et renvoit l'identifiant du instructeur modifié ou false * * @param int $instructeur L'identifiant de l'instructeur. * @param array $data Les champs renseignés de l'instructeur à modifier. * @return int L'identifiant de instructeur. */ private function update_instructeur($instructeur, $data) { $sql = "UPDATE ".DB_PREFIXE."instructeur SET "; foreach ($data as $colonne => $valeur) { $sql .= $this->f->db->escapeSimple($colonne)." = '".$this->f->db->escapeSimple($valeur)."', "; } $sql .= " WHERE instructeur = ".$this->f->db->escapeSimple($instructeur)." AND division = ".$this->f->db->escapeSimple($data['division']).";"; $qres = $this->f->db->query($sql); if ($this->f->isDatabaseError($qres, true)) { $this->setMessage(__("L'instructeur n'a pas été modifié. Erreur : ".$qres->getMessage())); return $this->KO; } $this->setMessage(__("L'instructeur a été modifié avec succès.")); return $this->OK; } /** * Cette méthode prend le nom, la division et l'utilisateur d'un instructeur et le transforme en * son identifiant en le trouvant dans la base de données et en le * sauvegardant pour réutilisation * * @param string $nom Nom de l'instructeur. * @param string $division Division de l'instructeur. * @param string $om_utilisateur Identifiant de l'utilisateur de l'instructeur. * @return int L'identifiant de l'instructeur. */ private function get_instructeur($nom, $division, $om_utilisateur = null) { if (array_key_exists($nom, $this->instructeur) === false) { $qres = $this->f->get_one_result_from_db_query( sprintf( 'SELECT instructeur FROM %1$sinstructeur WHERE instructeur.nom = \'%2$s\' AND instructeur.division = \'%3$s\' %4$s', DB_PREFIXE, $this->f->db->escapeSimple($nom), $this->f->db->escapeSimple($division), $om_utilisateur !== null ? 'AND instructeur.om_utilisateur = \''.$this->f->db->escapeSimple($om_utilisateur).'\'' : '' ), array( "origin" => __METHOD__, ) ); if ($qres["result"] === null) { $this->setMessage(__("L'instructeur passé en paramètre n'existe pas.")); return false; } $this->instructeur[$nom] = $qres["result"]; } return $this->instructeur[$nom]; } /** * Cette méthode prend le libellé de la collectivité et la transforme en * son identifiant en la trouvant dans la base de données et en la * sauvegardant pour réutilisation. * * @param string $collectivite_libelle Libellé de la collectivité. * @return int L'identifiant de la collectivité. */ private function get_division($division_libelle) { if (array_key_exists($division_libelle, $this->division) === false) { $qres = $this->f->get_one_result_from_db_query( sprintf( 'SELECT division FROM %1$sdivision WHERE division.libelle = \'%2$s\'', DB_PREFIXE, $this->f->db->escapeSimple($division_libelle) ), array( "origin" => __METHOD__, ) ); if ($qres["result"] === null) { $this->setMessage(__("La division passée en paramètre n'existe pas.")); return false; } $this->division[$division_libelle] = $qres["result"]; } return $this->division[$division_libelle]; } /** * Cette méthode prend le libellé de la collectivité et la transforme en * son identifiant en la trouvant dans la base de données et en la * sauvegardant pour réutilisation. * * @param string $profil_libelle Libelle du profil. * @return int L'identifiant du profil. */ private function get_utilisateur($utilisateur_libelle) { if (array_key_exists($utilisateur_libelle, $this->utilisateur) === false) { $qres = $this->f->get_one_result_from_db_query( sprintf( 'SELECT om_utilisateur FROM %1$som_utilisateur WHERE om_utilisateur.nom = \'%2$s\'', DB_PREFIXE, $this->f->db->escapeSimple($utilisateur_libelle) ), array( "origin" => __METHOD__, ) ); if ($qres["result"] === null) { $this->setMessage(__("L'utilisateur passé en paramètre n'existe pas.")); return false; } $this->utilisateur[$utilisateur_libelle] = $qres["result"]; } return $this->utilisateur[$utilisateur_libelle]; } /** * Cette méthode prend le libellé de la qualité d'instructeur et la transforme en * son identifiant en la trouvant dans la base de données et en la * sauvegardant pour réutilisation. * * @param string $instructeur_qualite_libelle Libelle de la qualité d'instructeur. * @return int L'identifiant de la qualité d'instructeur. */ private function get_instructeur_qualite($instructeur_qualite_libelle) { if (array_key_exists($instructeur_qualite_libelle, $this->instructeur_qualite) === false) { $qres = $this->f->get_one_result_from_db_query( sprintf( 'SELECT instructeur_qualite FROM %1$sinstructeur_qualite WHERE instructeur_qualite.libelle = \'%2$s\'', DB_PREFIXE, $this->f->db->escapeSimple($instructeur_qualite_libelle) ), array( "origin" => __METHOD__, ) ); if ($qres["result"] === null) { $this->setMessage(__("La qualité d'instructeur passée en paramètre n'existe pas.")); return false; } $this->instructeur_qualite[$instructeur_qualite_libelle] = $qres["result"]; } return $this->instructeur_qualite[$instructeur_qualite_libelle]; } } ?>