'...', * 'om_collectivite' '...' * 'valeur' => '...', * 'delete' => '...', * ) * @return string Le résultat du traitement */ public function update_or_create($request_data) { $_POST = array(); // Check DATA if (isset($request_data["libelle"]) === false) { return $this->BAD_DATA; } $delete = false; if (isset($request_data["delete"]) === true) { $delete = $request_data["delete"]; } if (isset($request_data["valeur"]) === false && !$delete) { return $this->BAD_DATA; } // Check and Get collectivité if (isset($request_data["om_collectivite"]) === false) { $request_data["om_collectivite"] = "agglo"; } $valAuto['om_collectivite'] = $this->get_collectivite($request_data["om_collectivite"]); // Check If Exists om_parametre $om_parametre = $this->get_om_parametre($request_data["libelle"], $valAuto['om_collectivite']); // If Exists Update or delete om_parametre if ($om_parametre == true ){ if ($delete){ $sql = "DELETE FROM ".DB_PREFIXE."om_parametre"; $sql .= " WHERE om_parametre=".$om_parametre." AND om_collectivite=".$valAuto['om_collectivite'].";"; }else{ $sql = "UPDATE ".DB_PREFIXE."om_parametre SET valeur = '".$request_data["valeur"]."'"; $sql .= " WHERE om_parametre=".$om_parametre." AND om_collectivite=".$valAuto['om_collectivite'].";"; } }else{ if (!$delete){ $sucess = $this->creation_om_parametre( array('libelle' => $request_data["libelle"], 'valeur' => $request_data["valeur"], 'om_collectivite' => $valAuto['om_collectivite'] )); 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_om_parametre($om_parametre_valeur) { $om_parametre = $this->f->get_inst__om_dbform(array( "obj" => "om_parametre", "idx" => "]", )); $valAuto = array(); foreach($om_parametre->champs as $value) { $valAuto[$value] = null; } foreach ($om_parametre_valeur as $colonne => $valeur) { $valAuto[$colonne] = $valeur; } if (array_key_exists("om_collectivite", $om_parametre_valeur) === false) { $this->setMessage(_("Le paramètre om_collectivite est obligatoire.")); return false; } if ($om_parametre->ajouter($valAuto) === false) { return false; } return $om_parametre->valF['om_parametre']; } /** * 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 update_om_parametre($om_parametre_valeur) { $om_parametre = $this->f->get_inst__om_dbform(array( "obj" => "om_parametre", "idx" => $om_parametre_valeur['om_collectivite'], )); $valAuto = array(); foreach($om_parametre->champs as $value) { $valAuto[$value] = null; } foreach ($om_parametre_valeur as $colonne => $valeur) { $valAuto[$colonne] = $valeur; } if (array_key_exists("om_collectivite", $om_parametre_valeur) === false) { $this->setMessage(_("Le paramètre om_collectivite est obligatoire.")); return false; } if ($om_parametre->ajouter($valAuto) === false) { return false; } return $om_parametre->valF['om_parametre']; } /** * Cette méthode prend le libellé d'un om_parametre et le transforme en * son identifiant en le trouvant dans la base de données et en le * sauvegardant pour réutilisation * * @param string $parametre_libelle Libellé de l'om_parametre. * @param int $collectivite_id Id de la collectivité auquel le parametre doit être liée. * @return int L'identifiant du parametre. */ private function get_om_parametre($parametre_libelle, $collectivite_id) { if (array_key_exists($parametre_libelle, $this->om_parametre) === false) { $qres = $this->f->get_one_result_from_db_query( sprintf( 'SELECT om_parametre FROM %1$som_parametre WHERE om_parametre.libelle = \'%2$s\' AND om_parametre.om_collectivite = %3$s', DB_PREFIXE, $this->f->db->escapeSimple($parametre_libelle), $collectivite_id ), array( "origin" => __METHOD__, ) ); if ($qres["result"] === null) { $this->setMessage(_("L'om_parametre passée en paramètre n'existe pas.")); return false; } $this->om_parametre[$parametre_libelle] = $qres["result"]; } return $this->om_parametre[$parametre_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 (ex: la même collectivité pour * le pétitionnaire que la demande) * * @param string $collectivite_libelle Libellé de la collectivité. * @return int L'identifiant de la collectivité. */ private function get_collectivite($collectivite_libelle) { if (array_key_exists($collectivite_libelle, $this->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->collectivite[$collectivite_libelle] = $qres["result"]; } return $this->collectivite[$collectivite_libelle]; } } ?>