Line 32... |
Line 32... |
32 |
*/
|
32 |
*/
|
33 |
public function ajouterObservation($utilisateur, $parametres) {
|
33 |
public function ajouterObservation($utilisateur, $parametres) {
|
Line 34... |
Line 34... |
34 |
|
34 |
|
35 |
$retour = true;
|
35 |
$retour = true;
|
36 |
$parametres['ordre'] = $this->renvoyerDernierOrdreUtilisePlusUn($utilisateur);
|
36 |
$parametres['ordre'] = $this->renvoyerDernierOrdreUtilisePlusUn($utilisateur);
|
- |
|
37 |
|
- |
|
38 |
$this->traiterEspece($parametres);
|
- |
|
39 |
$this->formaterParametresObservation($parametres);
|
37 |
|
40 |
|
38 |
$requete_insertion_observation = 'INSERT INTO cel_obs ';
|
41 |
$requete_insertion_observation = 'INSERT INTO cel_obs ';
|
Line 39... |
Line 42... |
39 |
$sous_requete_colonnes = $this->traiterParametresObservationEtConstruireSousRequeteAjout($parametres);
|
42 |
$sous_requete_colonnes = $this->traiterParametresObservationEtConstruireSousRequeteAjout($parametres);
|
Line 130... |
Line 133... |
130 |
nom_ret = IF(SUBSTR(nom_referentiel, 1, 5) != "$r", NULL, nom_ret),
|
133 |
nom_ret = IF(SUBSTR(nom_referentiel, 1, 5) != "$r", NULL, nom_ret),
|
131 |
nt = IF(SUBSTR(nom_referentiel, 1, 5) != "$r", NULL, nt),
|
134 |
nt = IF(SUBSTR(nom_referentiel, 1, 5) != "$r", NULL, nt),
|
132 |
famille = IF(SUBSTR(nom_referentiel, 1, 5) != "$r", NULL, famille),
|
135 |
famille = IF(SUBSTR(nom_referentiel, 1, 5) != "$r", NULL, famille),
|
133 |
EOF;
|
136 |
EOF;
|
134 |
}
|
137 |
}
|
- |
|
138 |
else {
|
- |
|
139 |
// uniquement en cas de nom_sel présent
|
- |
|
140 |
$this->traiterEspece($parametres);
|
- |
|
141 |
}
|
- |
|
142 |
|
- |
|
143 |
$this->formaterParametresObservation($parametres);
|
Line 135... |
Line 144... |
135 |
|
144 |
|
136 |
$sous_requete_modification = $this->traiterParametresObservationEtConstruireSousRequeteMaj($parametres);
|
145 |
$requete_modification .= $this->traiterParametresObservationEtConstruireSousRequeteMaj($parametres) .
|
Line 137... |
Line -... |
137 |
$requete_modification .= $sous_requete_modification;
|
- |
|
Line 138... |
Line 146... |
138 |
|
146 |
" WHERE ordre IN (".$ordre.") AND ce_utilisateur = ".Cel::db()->proteger($utilisateur);
|
139 |
$requete_modification .= " WHERE ordre IN (".$ordre.") AND ce_utilisateur = ".Cel::db()->proteger($utilisateur);
|
147 |
|
140 |
|
148 |
|
141 |
// important ! ne pas utiliser la fonction executerRequete qui renvoie une erreur si la requete contient des | (pipes)
|
149 |
// important ! ne pas utiliser la fonction executerRequete qui renvoie une erreur si la requete contient des | (pipes)
|
Line 165... |
Line 173... |
165 |
'nom_sel' => NULL,
|
173 |
'nom_sel' => NULL,
|
166 |
'nom_ret_nn' => NULL,
|
174 |
'nom_ret_nn' => NULL,
|
167 |
'nom_referentiel' => NULL);
|
175 |
'nom_referentiel' => NULL);
|
168 |
$parametres = array_merge($base_param, $parametres);
|
176 |
$parametres = array_merge($base_param, $parametres);
|
Line -... |
Line 177... |
- |
|
177 |
|
- |
|
178 |
$this->traiterEspece($parametres);
|
- |
|
179 |
$this->formaterParametresObservation($parametres);
|
169 |
|
180 |
|
170 |
$retour = true;
|
181 |
$retour = true;
|
171 |
$requete_modification = "UPDATE cel_obs SET " ;
|
- |
|
172 |
|
182 |
$requete_modification = "UPDATE cel_obs SET " .
|
173 |
$sous_requete_modification = $this->traiterParametresObservationEtConstruireSousRequeteMaj($parametres);
|
- |
|
174 |
$requete_modification .= $sous_requete_modification;
|
- |
|
175 |
|
183 |
$this->traiterParametresObservationEtConstruireSousRequeteMaj($parametres) .
|
176 |
$requete_modification .= " WHERE id_observation = ".Cel::db()->proteger($id).
|
184 |
" WHERE id_observation = ".Cel::db()->proteger($id).
|
177 |
" AND ce_utilisateur = ".Cel::db()->proteger($utilisateur)." ".
|
185 |
" AND ce_utilisateur = ".Cel::db()->proteger($utilisateur)." ".
|
- |
|
186 |
" AND transmission = 1";
|
178 |
" AND transmission = 1";
|
187 |
|
179 |
// important ! ne pas utiliser la fonction executerRequete qui renvoie une erreur si la requete contient des | (pipes)
|
188 |
// important ! ne pas utiliser la fonction executerRequete qui renvoie une erreur si la requete contient des | (pipes)
|
180 |
// ce qui peut arriver dans les commentaires
|
189 |
// ce qui peut arriver dans les commentaires
|
181 |
// TODO: corriger la fonction ou bien continuer à utiliser executerRequeteSimple
|
190 |
// TODO: corriger la fonction ou bien continuer à utiliser executerRequeteSimple
|
Line 319... |
Line 328... |
319 |
$migration_releve = Cel::db()->executerRequeteSimple($requete_migration_releve);
|
328 |
$migration_releve = Cel::db()->executerRequeteSimple($requete_migration_releve);
|
Line 320... |
Line 329... |
320 |
|
329 |
|
321 |
return $migration_releve;
|
330 |
return $migration_releve;
|
Line 322... |
Line -... |
322 |
}
|
- |
|
323 |
|
- |
|
324 |
/**
|
- |
|
325 |
* Formate les paramètres fournis en ajoutant des infos complementaires
|
- |
|
326 |
*
|
- |
|
327 |
* @param array $parametres tableau indexé avec les mêmes noms de champs que la bdd
|
- |
|
328 |
*
|
- |
|
329 |
* @return $parametres le tableau modifié selon ce qu'il contenait
|
331 |
}
|
330 |
*/
|
- |
|
331 |
private function formaterParametresObservation(&$parametres) {
|
332 |
|
332 |
|
333 |
private function traiterEspece(&$parametres) {
|
333 |
$code_referentiel = 'bdtfx';
|
334 |
$code_referentiel = 'bdtfx';
|
334 |
if(!$parametres['nom_referentiel']) {
|
335 |
if(!$parametres['nom_referentiel']) {
|
335 |
$parametres['nom_referentiel'] = Cel::$default_referentiel;
|
336 |
$parametres['nom_referentiel'] = Cel::$default_referentiel;
|
Line 351... |
Line 352... |
351 |
if ($parametres['nom_sel'] && !$parametres['nom_sel_nn']) {
|
352 |
if ($parametres['nom_sel'] && !$parametres['nom_sel_nn']) {
|
352 |
$chercheur_infos_complementaires = new RechercheInfosTaxonBeta($this->config, $code_referentiel);
|
353 |
$chercheur_infos_complementaires = new RechercheInfosTaxonBeta($this->config, $code_referentiel);
|
353 |
// Utilisation d'un nom sans numéro nomenclatural, recherche d'une correspondance sur le nom
|
354 |
// Utilisation d'un nom sans numéro nomenclatural, recherche d'une correspondance sur le nom
|
Line 354... |
Line 355... |
354 |
|
355 |
|
355 |
$complement = $chercheur_infos_complementaires->rechercherInformationsComplementairesSurNom($parametres['nom_sel']);
|
- |
|
356 |
|
356 |
$complement = $chercheur_infos_complementaires->rechercherInformationsComplementairesSurNom($parametres['nom_sel']);
|
357 |
// Si l'on a trouvé un résultat sur la recherche, il s'agit vraisemblablement d'un copié-collé
|
357 |
// Si l'on a trouvé un résultat sur la recherche, il s'agit vraisemblablement d'un copié-collé
|
358 |
// de nom de taxon qui n'a pas été validé par la selection
|
358 |
// de nom de taxon qui n'a pas été validé par la selection
|
359 |
if(count($complement) > 0) {
|
359 |
if($complement) {
|
360 |
$parametres['nom_sel_nn'] = $complement[0][0];
|
360 |
$parametres['nom_sel_nn'] = $complement->{"nom_retenu.id"};
|
361 |
}
|
361 |
}
|
362 |
else {
|
362 |
else {
|
363 |
// pas de résultat de recherche sur le référentiel demandé, le webservice doit peut-être être corrigé
|
363 |
// pas de résultat de recherche sur le référentiel demandé, le webservice doit peut-être être corrigé
|
364 |
// mais en tout état de cause nous n'insérerons PAS de données incertaines associé à un référentiel !
|
364 |
// mais en tout état de cause nous n'insérerons PAS de données incertaines associé à un référentiel !
|
Line 368... |
Line 368... |
368 |
}
|
368 |
}
|
Line 369... |
Line 369... |
369 |
|
369 |
|
370 |
if ($parametres['nom_sel_nn']) {
|
370 |
if ($parametres['nom_sel_nn']) {
|
371 |
// Utilisation d'un nom faisant parti du referentiel : recherche du nom valide correspondant
|
371 |
// Utilisation d'un nom faisant parti du referentiel : recherche du nom valide correspondant
|
372 |
$chercheur_infos_complementaires = new RechercheInfosTaxonBeta($this->config , $code_referentiel);
|
372 |
$chercheur_infos_complementaires = new RechercheInfosTaxonBeta($this->config , $code_referentiel);
|
373 |
$complement = $chercheur_infos_complementaires->rechercherInformationsComplementairesSurNumNom($parametres['nom_sel_nn']);
|
- |
|
374 |
|
373 |
$complement = $chercheur_infos_complementaires->effectuerRequeteInfosComplementairesSurNumNom($parametres['nom_sel_nn']);
|
375 |
$parametres['nom_ret']=$complement['Nom_Retenu'];
|
374 |
$parametres['nom_ret'] = RechercheInfosTaxonBeta::supprimerBiblio($complement->nom_retenu_complet);
|
376 |
$parametres['nom_ret_nn']=$complement['Num_Nom_Retenu'];
|
375 |
$parametres['nom_ret_nn'] = $complement->{"nom_retenu.id"};
|
377 |
$parametres['nt']=$complement['Num_Taxon'];
|
376 |
$parametres['nt'] = $complement->num_taxonomique;
|
378 |
$parametres['famille']=$complement['Famille'];
|
377 |
$parametres['famille'] = $complement->famille;
|
379 |
}
|
378 |
}
|
Line 380... |
Line 379... |
380 |
}
|
379 |
}
|
381 |
|
380 |
|
- |
|
381 |
// mise à jour du référentiel utilisé, sans n° de version
|
382 |
// mise à jour du référentiel utilisé, sans n° de version
|
382 |
$parametres['nom_referentiel'] = $code_referentiel;
|
- |
|
383 |
}
|
- |
|
384 |
|
- |
|
385 |
/**
|
- |
|
386 |
* Formate les paramètres fournis en ajoutant des infos complementaires
|
- |
|
387 |
*
|
- |
|
388 |
* @param array $parametres tableau indexé avec les mêmes noms de champs que la bdd
|
- |
|
389 |
*
|
- |
|
390 |
* @return $parametres le tableau modifié selon ce qu'il contenait
|
383 |
$parametres['nom_referentiel'] = $code_referentiel;
|
391 |
*/
|
Line 384... |
Line 392... |
384 |
|
392 |
private function formaterParametresObservation(&$parametres) {
|
Line 385... |
Line 393... |
385 |
if(isset($parametres['ce_utilisateur'])) {
|
393 |
if(isset($parametres['ce_utilisateur'])) {
|
Line 416... |
Line 424... |
416 |
if(count(explode("/",$parametres['date_observation'])) >= 3) {
|
424 |
if(count(explode("/",$parametres['date_observation'])) >= 3) {
|
417 |
list($jour,$mois,$annee)=explode("/",$parametres['date_observation']);
|
425 |
list($jour,$mois,$annee)=explode("/",$parametres['date_observation']);
|
418 |
$parametres['date_observation']=$annee."-".$mois."-".$jour." 0:0:0";
|
426 |
$parametres['date_observation']=$annee."-".$mois."-".$jour." 0:0:0";
|
419 |
}
|
427 |
}
|
420 |
}
|
428 |
}
|
421 |
|
- |
|
422 |
return $parametres;
|
- |
|
423 |
}
|
429 |
}
|
Line 424... |
Line 430... |
424 |
|
430 |
|
425 |
|
431 |
|
Line 430... |
Line 436... |
430 |
* @param array $parametres un tableau avec les index correspondant aux champs de la bdd
|
436 |
* @param array $parametres un tableau avec les index correspondant aux champs de la bdd
|
431 |
*
|
437 |
*
|
432 |
* @return string une sous requete utilisable pour l'ajout d'une observation
|
438 |
* @return string une sous requete utilisable pour l'ajout d'une observation
|
433 |
*/
|
439 |
*/
|
434 |
private function traiterParametresObservationEtConstruireSousRequeteAjout($parametres) {
|
440 |
private function traiterParametresObservationEtConstruireSousRequeteAjout($parametres) {
|
435 |
|
- |
|
436 |
$sous_requete = '';
|
441 |
$sous_requete = '';
|
Line 437... |
Line -... |
437 |
|
- |
|
438 |
$parametres = $this->formaterParametresObservation($parametres);
|
- |
|
439 |
|
442 |
|
440 |
$champs = '';
|
443 |
$champs = '';
|
Line 441... |
Line 444... |
441 |
$valeurs = '';
|
444 |
$valeurs = '';
|
442 |
|
445 |
|
Line 471... |
Line 474... |
471 |
*
|
474 |
*
|
472 |
* @return string une sous requete utilisable pour la modification d'une observation
|
475 |
* @return string une sous requete utilisable pour la modification d'une observation
|
473 |
* selon la syntaxe UPDATE table SET colonne1 = valeur1, colonne2 = valeur2 WHERE condition
|
476 |
* selon la syntaxe UPDATE table SET colonne1 = valeur1, colonne2 = valeur2 WHERE condition
|
474 |
*/
|
477 |
*/
|
475 |
private function traiterParametresObservationEtConstruireSousRequeteMaj($parametres) {
|
478 |
private function traiterParametresObservationEtConstruireSousRequeteMaj($parametres) {
|
476 |
|
- |
|
477 |
$sous_requete = '';
|
479 |
$sous_requete = '';
|
478 |
|
- |
|
479 |
$parametres = $this->formaterParametresObservation($parametres);
|
- |
|
Line 480... |
Line 480... |
480 |
|
480 |
|
481 |
// Nullifiage ...
|
481 |
// Nullifiage ...
|
482 |
// TODO: code dupliqué, en faire une fonction à mettre à la place appropriée
|
482 |
// TODO: code dupliqué, en faire une fonction à mettre à la place appropriée
|
Line 483... |
Line 483... |
483 |
foreach($parametres as $cle => $valeur) {
|
483 |
foreach($parametres as $cle => $valeur) {
|
484 |
|
484 |
|
485 |
// Pour apparaitre le premier dans les tris ...
|
485 |
// Pour apparaitre le premier dans les tris ...
|
486 |
if (trim($valeur) == "" || trim($valeur) == "null") {
|
486 |
if (trim($valeur) == "" || trim($valeur) == "null" || trim($valeur) == "000null") {
|
487 |
$valeur = "NULL";
|
487 |
$valeur = "NULL";
|
488 |
} else {
|
488 |
} else {
|