34,7 → 34,10 |
|
$retour = true; |
$parametres['ordre'] = $this->renvoyerDernierOrdreUtilisePlusUn($utilisateur); |
|
|
$this->traiterEspece($parametres); |
$this->formaterParametresObservation($parametres); |
|
$requete_insertion_observation = 'INSERT INTO cel_obs '; |
$sous_requete_colonnes = $this->traiterParametresObservationEtConstruireSousRequeteAjout($parametres); |
|
132,12 → 135,17 |
famille = IF(SUBSTR(nom_referentiel, 1, 5) != "$r", NULL, famille), |
EOF; |
} |
else { |
// uniquement en cas de nom_sel présent |
$this->traiterEspece($parametres); |
} |
|
$sous_requete_modification = $this->traiterParametresObservationEtConstruireSousRequeteMaj($parametres); |
$requete_modification .= $sous_requete_modification; |
$this->formaterParametresObservation($parametres); |
|
$requete_modification .= " WHERE ordre IN (".$ordre.") AND ce_utilisateur = ".Cel::db()->proteger($utilisateur); |
$requete_modification .= $this->traiterParametresObservationEtConstruireSousRequeteMaj($parametres) . |
" WHERE ordre IN (".$ordre.") AND ce_utilisateur = ".Cel::db()->proteger($utilisateur); |
|
|
// important ! ne pas utiliser la fonction executerRequete qui renvoie une erreur si la requete contient des | (pipes) |
// ce qui peut arriver dans les commentaires |
// TODO: corriger la fonction ou bien continuer à utiliser executerRequeteSimple |
167,15 → 175,16 |
'nom_referentiel' => NULL); |
$parametres = array_merge($base_param, $parametres); |
|
$this->traiterEspece($parametres); |
$this->formaterParametresObservation($parametres); |
|
$retour = true; |
$requete_modification = "UPDATE cel_obs SET " ; |
|
$sous_requete_modification = $this->traiterParametresObservationEtConstruireSousRequeteMaj($parametres); |
$requete_modification .= $sous_requete_modification; |
|
$requete_modification .= " WHERE id_observation = ".Cel::db()->proteger($id). |
" AND ce_utilisateur = ".Cel::db()->proteger($utilisateur)." ". |
" AND transmission = 1"; |
$requete_modification = "UPDATE cel_obs SET " . |
$this->traiterParametresObservationEtConstruireSousRequeteMaj($parametres) . |
" WHERE id_observation = ".Cel::db()->proteger($id). |
" AND ce_utilisateur = ".Cel::db()->proteger($utilisateur)." ". |
" AND transmission = 1"; |
|
// important ! ne pas utiliser la fonction executerRequete qui renvoie une erreur si la requete contient des | (pipes) |
// ce qui peut arriver dans les commentaires |
// TODO: corriger la fonction ou bien continuer à utiliser executerRequeteSimple |
321,15 → 330,7 |
return $migration_releve; |
} |
|
/** |
* Formate les paramètres fournis en ajoutant des infos complementaires |
* |
* @param array $parametres tableau indexé avec les mêmes noms de champs que la bdd |
* |
* @return $parametres le tableau modifié selon ce qu'il contenait |
*/ |
private function formaterParametresObservation(&$parametres) { |
|
private function traiterEspece(&$parametres) { |
$code_referentiel = 'bdtfx'; |
if(!$parametres['nom_referentiel']) { |
$parametres['nom_referentiel'] = Cel::$default_referentiel; |
353,11 → 354,10 |
// Utilisation d'un nom sans numéro nomenclatural, recherche d'une correspondance sur le nom |
|
$complement = $chercheur_infos_complementaires->rechercherInformationsComplementairesSurNom($parametres['nom_sel']); |
|
// Si l'on a trouvé un résultat sur la recherche, il s'agit vraisemblablement d'un copié-collé |
// de nom de taxon qui n'a pas été validé par la selection |
if(count($complement) > 0) { |
$parametres['nom_sel_nn'] = $complement[0][0]; |
if($complement) { |
$parametres['nom_sel_nn'] = $complement->{"nom_retenu.id"}; |
} |
else { |
// pas de résultat de recherche sur le référentiel demandé, le webservice doit peut-être être corrigé |
370,18 → 370,26 |
if ($parametres['nom_sel_nn']) { |
// Utilisation d'un nom faisant parti du referentiel : recherche du nom valide correspondant |
$chercheur_infos_complementaires = new RechercheInfosTaxonBeta($this->config , $code_referentiel); |
$complement = $chercheur_infos_complementaires->rechercherInformationsComplementairesSurNumNom($parametres['nom_sel_nn']); |
|
$parametres['nom_ret']=$complement['Nom_Retenu']; |
$parametres['nom_ret_nn']=$complement['Num_Nom_Retenu']; |
$parametres['nt']=$complement['Num_Taxon']; |
$parametres['famille']=$complement['Famille']; |
$complement = $chercheur_infos_complementaires->effectuerRequeteInfosComplementairesSurNumNom($parametres['nom_sel_nn']); |
$parametres['nom_ret'] = RechercheInfosTaxonBeta::supprimerBiblio($complement->nom_retenu_complet); |
$parametres['nom_ret_nn'] = $complement->{"nom_retenu.id"}; |
$parametres['nt'] = $complement->num_taxonomique; |
$parametres['famille'] = $complement->famille; |
} |
} |
|
// mise à jour du référentiel utilisé, sans n° de version |
$parametres['nom_referentiel'] = $code_referentiel; |
|
} |
|
/** |
* Formate les paramètres fournis en ajoutant des infos complementaires |
* |
* @param array $parametres tableau indexé avec les mêmes noms de champs que la bdd |
* |
* @return $parametres le tableau modifié selon ce qu'il contenait |
*/ |
private function formaterParametresObservation(&$parametres) { |
if(isset($parametres['ce_utilisateur'])) { |
|
$infos_utilisateur = $this->getInfosComplementairesUtilisateur($parametres['ce_utilisateur']); |
418,8 → 426,6 |
$parametres['date_observation']=$annee."-".$mois."-".$jour." 0:0:0"; |
} |
} |
|
return $parametres; |
} |
|
|
432,11 → 438,8 |
* @return string une sous requete utilisable pour l'ajout d'une observation |
*/ |
private function traiterParametresObservationEtConstruireSousRequeteAjout($parametres) { |
|
$sous_requete = ''; |
|
$parametres = $this->formaterParametresObservation($parametres); |
|
$champs = ''; |
$valeurs = ''; |
|
473,10 → 476,7 |
* selon la syntaxe UPDATE table SET colonne1 = valeur1, colonne2 = valeur2 WHERE condition |
*/ |
private function traiterParametresObservationEtConstruireSousRequeteMaj($parametres) { |
|
$sous_requete = ''; |
|
$parametres = $this->formaterParametresObservation($parametres); |
|
// Nullifiage ... |
// TODO: code dupliqué, en faire une fonction à mettre à la place appropriée |
483,7 → 483,7 |
foreach($parametres as $cle => $valeur) { |
|
// Pour apparaitre le premier dans les tris ... |
if (trim($valeur) == "" || trim($valeur) == "null") { |
if (trim($valeur) == "" || trim($valeur) == "null" || trim($valeur) == "000null") { |
$valeur = "NULL"; |
} else { |
$valeur = Cel::db()->proteger($valeur); |