Line 106... |
Line 106... |
106 |
|
106 |
|
107 |
return $retour;
|
107 |
return $retour;
|
Line 108... |
Line 108... |
108 |
}
|
108 |
}
|
- |
|
109 |
|
- |
|
110 |
/**
|
- |
|
111 |
* Modifie une observation publique dont l'id et l'utilisateur sont passé en paramètre
|
- |
|
112 |
*
|
- |
|
113 |
* @param int $utilisateur id utilisateur du proprietaire de l'observation
|
- |
|
114 |
* @param int $id identifiant de l'observation
|
- |
|
115 |
* @param array $parametres tableau indexé avec les mêmes noms de champs que la bdd
|
- |
|
116 |
*
|
- |
|
117 |
* @return true ou false suivant le succès de l'opération
|
- |
|
118 |
*/
|
- |
|
119 |
public function modifierObservationPublique($utilisateur, $id, $parametres) {
|
- |
|
120 |
|
- |
|
121 |
$retour = true;
|
- |
|
122 |
$requete_modification = "UPDATE cel_obs SET " ;
|
- |
|
123 |
|
- |
|
124 |
$sous_requete_modification = $this->traiterParametresObservationEtConstruireSousRequeteMaj($parametres);
|
- |
|
125 |
$requete_modification .= $sous_requete_modification;
|
- |
|
126 |
|
- |
|
127 |
$requete_modification .= " WHERE id_observation = ".$this->proteger($id).
|
- |
|
128 |
" AND ce_utilisateur = ".$this->proteger($utilisateur)." ".
|
- |
|
129 |
" AND transmission = 1";
|
- |
|
130 |
// important ! ne pas utiliser la fonction executerRequete qui renvoie une erreur si la requete contient des | (pipes)
|
- |
|
131 |
// ce qui peut arriver dans les commentaires
|
- |
|
132 |
// TODO: corriger la fonction ou bien continuer à utiliser executerRequeteSimple
|
- |
|
133 |
$resultat_modification = $this->executerRequeteSimple($requete_modification);
|
- |
|
134 |
|
- |
|
135 |
if ($resultat_modification === false) {
|
- |
|
136 |
$retour = false;
|
- |
|
137 |
$this->logger("CEL_bugs","Erreur de mise à jour de l\'observation : ".$id);
|
- |
|
138 |
}
|
- |
|
139 |
|
- |
|
140 |
return $retour;
|
- |
|
141 |
}
|
109 |
|
142 |
|
110 |
/**
|
143 |
/**
|
111 |
* Supprime une ou plusieurs observations grâce aux paramètres fournis
|
144 |
* Supprime une ou plusieurs observations grâce aux paramètres fournis
|
112 |
*
|
145 |
*
|
113 |
* @param int $utilisateur id utilisateur du proprietaire de l'observation
|
146 |
* @param int $utilisateur id utilisateur du proprietaire de l'observation
|
Line 245... |
Line 278... |
245 |
* @param array $parametres tableau indexé avec les mêmes noms de champs que la bdd
|
278 |
* @param array $parametres tableau indexé avec les mêmes noms de champs que la bdd
|
246 |
*
|
279 |
*
|
247 |
* @return $parametres le tableau modifié selon ce qu'il contenait
|
280 |
* @return $parametres le tableau modifié selon ce qu'il contenait
|
248 |
*/
|
281 |
*/
|
249 |
private function formaterParametresObservation($parametres) {
|
282 |
private function formaterParametresObservation($parametres) {
|
- |
|
283 |
|
- |
|
284 |
$code_referentiel = 'bdtfx';
|
- |
|
285 |
if(!isset($parametres['nom_referentiel'])) {
|
- |
|
286 |
$parametres['nom_referentiel'] = 'bdtfx:v1.01';
|
- |
|
287 |
}
|
- |
|
288 |
$code_referentiel = substr($parametres['nom_referentiel'], 0, 5);
|
Line 250... |
Line 289... |
250 |
|
289 |
|
Line 251... |
Line 290... |
251 |
if (($parametres['nom_sel_nn'] == '' || $parametres['nom_sel_nn'] == 0) && $parametres['nom_sel'] != '') {
|
290 |
if ($this->estUnNomSolitaire($parametres)) {
|
252 |
|
291 |
|
253 |
$chercheur_infos_complementaires = new RechercheInfosTaxonBeta($this->config);
|
292 |
$chercheur_infos_complementaires = new RechercheInfosTaxonBeta($this->config, $code_referentiel);
|
Line 254... |
Line 293... |
254 |
// Utilisation d'un nom sans numéro nomenclatural, recherche d'une correspondance sur le nom
|
293 |
// Utilisation d'un nom sans numéro nomenclatural, recherche d'une correspondance sur le nom
|
255 |
$complement = $chercheur_infos_complementaires->rechercherInformationsComplementairesSurNom($parametres['nom_sel']);
|
294 |
$complement = $chercheur_infos_complementaires->rechercherInformationsComplementairesSurNom($parametres['nom_sel']);
|
256 |
|
295 |
|
257 |
// Si l'on a trouvé un résultat sur la recherche, il s'agit vraisemblablement d'un copié-collé
|
296 |
// Si l'on a trouvé un résultat sur la recherche, il s'agit vraisemblablement d'un copié-collé
|
258 |
// de nom de taxon qui n'a pas été validé par la selection
|
297 |
// de nom de taxon qui n'a pas été validé par la selection
|
259 |
if(count($complement) > 0) {
|
- |
|
260 |
$parametres['nom_sel_nn'] = $complement[0][0];
|
- |
|
261 |
}
|
298 |
if(count($complement) > 0) {
|
Line 262... |
Line 299... |
262 |
|
299 |
$parametres['nom_sel_nn'] = $complement[0][0];
|
263 |
$parametres['nom_referentiel'] = 'bdtfx:v1.01';
|
300 |
}
|
264 |
}
|
301 |
}
|
265 |
|
302 |
|
266 |
if ($parametres['nom_sel_nn'] != '') {
|
303 |
if ($this->parametreNumNomEstPresent($parametres)) {
|
267 |
// Utilisation d'un nom faisant parti du referentiel : recherche du nom valide correspondant
|
304 |
// Utilisation d'un nom faisant parti du referentiel : recherche du nom valide correspondant
|
268 |
$chercheur_infos_complementaires = new RechercheInfosTaxonBeta($this->config);
|
305 |
$chercheur_infos_complementaires = new RechercheInfosTaxonBeta($this->config , $code_referentiel);
|
269 |
$complement = $chercheur_infos_complementaires->rechercherInformationsComplementairesSurNumNom($parametres['nom_sel_nn']);
|
306 |
$complement = $chercheur_infos_complementaires->rechercherInformationsComplementairesSurNumNom($parametres['nom_sel_nn']);
|
270 |
$parametres['nom_ret']=$complement['Nom_Retenu'];
|
- |
|
271 |
$parametres['nom_ret_nn']=$complement['Num_Nom_Retenu'];
|
- |
|
272 |
$parametres['nt']=$complement['Num_Taxon'];
|
307 |
$parametres['nom_ret']=$complement['Nom_Retenu'];
|
Line 273... |
Line 308... |
273 |
$parametres['famille']=$complement['Famille'];
|
308 |
$parametres['nom_ret_nn']=$complement['Num_Nom_Retenu'];
|
Line 274... |
Line 309... |
274 |
|
309 |
$parametres['nt']=$complement['Num_Taxon'];
|
Line 303... |
Line 338... |
303 |
}
|
338 |
}
|
304 |
}
|
339 |
}
|
Line 305... |
Line 340... |
305 |
|
340 |
|
306 |
// TODO : voir si l'on peut utiliser un des fonctions de la classe cel
|
341 |
// TODO : voir si l'on peut utiliser un des fonctions de la classe cel
|
- |
|
342 |
if (isset($parametres['date_observation']) && $parametres['date_observation']!="null") {
|
307 |
if (isset($parametres['date_observation']) && $parametres['date_observation']!="null") {
|
343 |
if(substr_count($parametres['date_observation'], '/') == 3) {
|
308 |
list($jour,$mois,$annee)=explode("/",$parametres['date_observation']);
|
344 |
list($jour,$mois,$annee)=explode("/",$parametres['date_observation']);
|
- |
|
345 |
$parametres['date_observation']=$annee."-".$mois."-".$jour." 0:0:0";
|
309 |
$parametres['date_observation']=$annee."-".$mois."-".$jour." 0:0:0";
|
346 |
}
|
Line 310... |
Line 347... |
310 |
}
|
347 |
}
|
311 |
|
348 |
|
Line -... |
Line 349... |
- |
|
349 |
return $parametres;
|
- |
|
350 |
}
|
- |
|
351 |
|
- |
|
352 |
private function estUnNomSolitaire($parametres) {
|
- |
|
353 |
return $this->parametreNumNomPasPresent($parametres) && $parametres['nom_sel'] != '';
|
- |
|
354 |
}
|
- |
|
355 |
|
- |
|
356 |
private function parametreNumNomEstPresent($parametres) {
|
- |
|
357 |
return !$this->parametreNumNomPasPresent($parametres);
|
- |
|
358 |
}
|
- |
|
359 |
|
- |
|
360 |
private function parametreNumNomPasPresent($parametres) {
|
- |
|
361 |
return (!isset($parametres['nom_sel_nn']) ||
|
- |
|
362 |
$parametres['nom_sel_nn'] == null ||
|
- |
|
363 |
$parametres['nom_sel_nn'] == '' ||
|
312 |
return $parametres;
|
364 |
$parametres['nom_sel_nn'] == 0);
|
313 |
}
|
365 |
}
|
314 |
|
366 |
|
315 |
/**
|
367 |
/**
|
316 |
* Assemble une sous requete pour un ajout, tout en formatant les paramètres et en recherchant
|
368 |
* Assemble une sous requete pour un ajout, tout en formatant les paramètres et en recherchant
|