Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 1787 → Rev 1788

/trunk/jrest/lib/GestionObservation.php
139,7 → 139,6
// uniquement en cas de nom_sel présent
$this->traiterEspece($parametres);
}
 
$this->formaterParametresObservation($parametres);
 
$requete_modification .= $this->traiterParametresObservationEtConstruireSousRequeteMaj($parametres) .
331,7 → 330,6
}
private function traiterEspece(&$parametres) {
$code_referentiel = 'bdtfx';
if(!$parametres['nom_referentiel']) {
$parametres['nom_referentiel'] = Cel::$default_referentiel;
}
348,33 → 346,48
1.2) pas trouvé par le webservice => ref = autre
2) si le référentiel est inconnu (explicitement mis à "autre"), alors pas d'appel au webservice => ref = autre */
if(in_array($code_referentiel, Cel::$referentiels_valides)) {
//
$deuxieme_passe = true;
// nom saisi sans numéro
if ($parametres['nom_sel'] && !$parametres['nom_sel_nn']) {
$chercheur_infos_complementaires = new RechercheInfosTaxonBeta($this->config, $code_referentiel);
// 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($complement) {
$parametres['nom_sel_nn'] = $complement->{"nom_retenu.id"};
$parametres['nom_sel_nn'] = $complement->id;
$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;
}
else {
// pas de résultat de recherche sur le référentiel demandé, le webservice doit peut-être être corrigé
// mais en tout état de cause nous n'insérerons PAS de données incertaines associé à un référentiel !
// mais en tout état de cause nous n'insérerons PAS de données incertaines associées à un référentiel !
$code_referentiel = Cel::$fallback_referentiel;
// note: 'nom_sel_nn' devrait être NULL, donc parametreNumNomEstPresent() ci-dessous ne devrait pas advenir
$parametres['nom_sel_nn'] = $parametres['nom_ret'] = $parametres['nom_ret_nn'] = $parametres['nt'] = $parametres['famille'] = NULL;
// goto out;
$deuxieme_passe = false;
}
}
 
if ($parametres['nom_sel_nn']) {
// XXX: ne devrait plus être nécessaire maintenant que rechercherInformationsComplementairesSurNom() [plus précisément effectuerRequeteUrlRecherche()]
// a été modifiée pour retourner tous les champs nécessaire.
if ($deuxieme_passe && (!$parametres['nom_ret_nn'] || !$parametres['nt'])) {
// 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->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;
// les paramètres passés datait peut-être d'une précédente autocomplétion, mais le référentiel ayant été changé par l'utilisateur
// la détection ne fonctionne plus : nous supprimons les données précédemment générées de la base !
if(!$complement) {
$parametres['nom_sel_nn'] = $parametres['nom_ret'] = $parametres['nom_ret_nn'] = $parametres['nt'] = $parametres['famille'] = NULL;
} else {
$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;
}
}
}