false, (optionnel) * ) * @return string Le résultat du traitement */ public function create_delete_affectation_automatique($request_data) { // Check DATA // Check DATA if (isset($request_data["om_collectivite"]) === false) { $this->setMessage(__("Les données de l'instructeur 'om_collectivite' est obligatoire.")); return $this->BAD_DATA; } if (isset($request_data["instructeur"]) === false) { $this->setMessage(__("Les données de l'instructeur 'instructeur' est obligatoire.")); return $this->BAD_DATA; } // Check and Get collectivité if (isset($request_data["om_collectivite"]) === false) { $request_data["om_collectivite"] = "agglo"; } $request_data['om_collectivite'] = $this->get_om_collectivite($request_data["om_collectivite"]); $request_data['instructeur'] = $this->get_instructeur($request_data["instructeur"]); if (isset($request_data["dossier_autorisation_type_detaille"]) === true) { $request_data['dossier_autorisation_type_detaille'] = $this->get_dossier_autorisation_type_detaille($request_data["dossier_autorisation_type_detaille"]); } else { $request_data['dossier_autorisation_type_detaille'] = null; } if (isset($request_data["instructeur_2"]) === true) { $request_data['instructeur_2'] = $this->get_instructeur($request_data["instructeur_2"]); } if (isset($request_data["dossier_instruction_type"]) === true) { $request_data['dossier_instruction_type'] = $this->get_dossier_instruction_type($request_data["dossier_instruction_type"]); } if (isset($request_data["arrondissement"]) === true) { $request_data['arrondissement'] = $this->get_arrondissement($request_data["arrondissement"]); } if (isset($request_data["quartier"]) === true) { $request_data['quartier'] = $this->get_quartier($request_data["quartier"]); } $delete = false; if (isset($request_data["delete"]) === true) { $delete = $this->f->get_boolean_from_string($request_data["delete"]); // Check and Get affectation_automatique $affectation_automatique = $this->get_affectation_automatique($request_data["om_collectivite"], $request_data["instructeur"], $request_data['dossier_autorisation_type_detaille']); } // If delete affectation_automatique if ($delete === false){ $sucess = $this->creation_affectation_automatique($request_data); if (!$sucess) return $this->BAD_DATA; return $this->OK; }else { if ($affectation_automatique == true){ $sql = "DELETE FROM ".DB_PREFIXE."affectation_automatique"; $sql .= " WHERE affectation_automatique=".$affectation_automatique.";"; $qres = $this->f->db->query($sql); $this->f->isDatabaseError($qres); $this->setMessage(__("L'affectation automatique a été supprimée avec succès.")); return $this->OK; }else{ $this->setMessage(__("L'affectation automatique n'existe pas.")); return $this->BAD_DATA; } } return $this->OK; } /** * Cette methode prend les valeurs d'un affectation_automatique pour le créer * et renvoit l'identifiant du affectation_automatique créer ou false * * @param array $affectation_automatique Les champs renseignés du affectation_automatique. * @return int L'identifiant de affectation_automatique. */ private function creation_affectation_automatique($affectation_automatique_valeur) { $affectation_automatique = $this->f->get_inst__om_dbform(array( "obj" => "affectation_automatique", "idx" => "]", )); $valAuto = array(); foreach($affectation_automatique->champs as $value) { $valAuto[$value] = null; } foreach ($affectation_automatique_valeur as $colonne => $valeur) { $valAuto[$colonne] = $valeur; } if ($affectation_automatique->ajouter($valAuto) === false) { $this->setMessage(__("La affectation_automatique n'a pas été créée.")); return false; } $this->setMessage(__("La affectation_automatique a été créée avec succès.")); $this->affectation_automatique = $affectation_automatique->valF['affectation_automatique']; return $this->affectation_automatique; } /** * Cette méthode prend l'identifiant de la collectivité et l'identifiant de l'instructeur et renvoit l'identifiant de l'affectation automatique. * * @param int $om_collectivite_id Identifiant de la collectivité. * @param int $instructeur_id Identifiant de l'instructeur. * @return int L'identifiant de l'affectation automatique. */ private function get_affectation_automatique($om_collectivite_id, $instructeur_id, $dossier_autorisation_type_detaille_id = null) { if (array_key_exists($instructeur_id, $this->affectation_automatique) === false) { $qres = $this->f->get_one_result_from_db_query( sprintf( 'SELECT affectation_automatique FROM %1$saffectation_automatique WHERE affectation_automatique.om_collectivite = %2$s AND affectation_automatique.instructeur = %3$s %4$s', DB_PREFIXE, $om_collectivite_id, $instructeur_id, $dossier_autorisation_type_detaille_id !== null ? 'AND affectation_automatique.dossier_autorisation_type_detaille = ' . $dossier_autorisation_type_detaille_id : '' ), array( "origin" => __METHOD__, ) ); if ($qres["result"] === null) { $this->setMessage(__("L'affectation automatique n'existe pas.")); return false; } $this->affectation_automatique[$instructeur_id] = $qres["result"]; } return $this->affectation_automatique[$instructeur_id]; } /** * Cette méthode prend le libellé (code division) de l'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_libelle_code Libellé (code division) de l'instructeur. * @return int L'identifiant de l'instructeur. */ private function get_instructeur($instructeur_libelle_code) { if (array_key_exists($instructeur_libelle_code, $this->instructeur) === false) { $qres = $this->f->get_one_result_from_db_query( sprintf( 'SELECT instructeur FROM %1$sinstructeur INNER JOIN %1$sdivision ON division.division=instructeur.division WHERE CONCAT(instructeur.nom, \' (\', division.code, \')\') = \'%2$s\'', DB_PREFIXE, $this->f->db->escapeSimple($instructeur_libelle_code) ), array( "origin" => __METHOD__, ) ); if ($qres["result"] === null) { $this->setMessage(__("L'instructeur passé en paramètre n'existe pas.")); return false; } $this->instructeur[$instructeur_libelle_code] = $qres["result"]; } return $this->instructeur[$instructeur_libelle_code]; } /** * 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_om_collectivite($collectivite_libelle) { if (array_key_exists($collectivite_libelle, $this->om_collectivite) === false) { $qres = $this->f->get_one_result_from_db_query( sprintf( 'SELECT om_collectivite FROM %1$som_collectivite WHERE om_collectivite.libelle = \'%2$s\'', DB_PREFIXE, $this->f->db->escapeSimple($collectivite_libelle) ), array( "origin" => __METHOD__, ) ); if ($qres["result"] === null) { $this->setMessage(__("La collectivité passée en paramètre n'existe pas.")); return false; } $this->om_collectivite[$collectivite_libelle] = $qres["result"]; } return $this->om_collectivite[$collectivite_libelle]; } /** * Cette methode prend le nom du dossier autorisation type detaillé * et la transforme en son identifiant en la trouvant dans la base * de données * * @param string $datd_libelle_code Libellé (code) du type de dossier d'autorisation detaillé * @return int Le résultat du traitement */ private function get_dossier_autorisation_type_detaille($datd_libelle_code) { $qres = $this->f->get_one_result_from_db_query( sprintf( 'SELECT dossier_autorisation_type_detaille FROM %1$sdossier_autorisation_type_detaille WHERE CONCAT(dossier_autorisation_type_detaille.code, \' - \', dossier_autorisation_type_detaille.libelle) = \'%2$s\'', DB_PREFIXE, $this->f->db->escapeSimple($datd_libelle_code) ), array( "origin" => __METHOD__, ) ); if ($qres["result"] === null) { $this->setMessage(sprintf(__("Le type de dossier d'autorisation détaillé '%s' passé en paramètre n'existe pas."), $datd_libelle_code)); return false; } return $qres["result"]; } /** * Cette méthode prend le libellé du type de dossier instruction et la transforme en * et la transforme en son identifiant en la trouvant dans la base * de données * * @param string $dit_libelle Libellé du type de dossier instruction * @return int Le résultat du traitement */ private function get_dossier_instruction_type($dit_libelle) { $qres = $this->f->get_one_result_from_db_query( sprintf( 'SELECT dossier_instruction_type FROM %1$sdossier_instruction_type JOIN %1$sdossier_autorisation_type_detaille ON dossier_instruction_type.dossier_autorisation_type_detaille = dossier_autorisation_type_detaille.dossier_autorisation_type_detaille WHERE CONCAT ( dossier_autorisation_type_detaille.libelle, \' - \', dossier_instruction_type.libelle, \' (\', dossier_instruction_type.code, \')\' ) = \'%2$s\'', DB_PREFIXE, $this->f->db->escapeSimple($dit_libelle) ), array( "origin" => __METHOD__, ) ); if ($qres["result"] === null) { $this->setMessage(_("Le type de dossier instruction passé en paramètre n'existe pas.")); return false; } return $qres["result"]; } /** * Cette methode prend le nom de l'arrondissement * et la transforme en son identifiant en la trouvant dans la base * de données * * @param string $arrondissement_libelle Libellé de l'arrondissement * @return int Le résultat du traitement */ private function get_arrondissement($arrondissement_libelle) { $qres = $this->f->get_one_result_from_db_query( sprintf( 'SELECT arrondissement FROM %1$sarrondissement WHERE arrondissement.libelle = \'%2$s\'', DB_PREFIXE, $this->f->db->escapeSimple($arrondissement_libelle) ), array( "origin" => __METHOD__, ) ); if ($qres["result"] === null) { $this->setMessage(__("L'arrondissement passé en paramètre n'existe pas.")); return false; } return $qres["result"]; } /** * Cette methode prend le libellé du quartier et la transforme en * son identifiant en la trouvant dans la base de données * * @param string $quartier_libelle Libellé du quartier * @return int Le résultat du traitement */ private function get_quartier($quartier_libelle) { $qres = $this->f->get_one_result_from_db_query( sprintf( 'SELECT quartier FROM %1$squartier WHERE quartier.libelle = \'%2$s\'', DB_PREFIXE, $this->f->db->escapeSimple($quartier_libelle) ), array( "origin" => __METHOD__, ) ); if ($qres["result"] === null) { $this->setMessage(__("Le quartier passé en paramètre n'existe pas.")); return false; } return $qres["result"]; } } ?>