134,7 → 134,12 |
* @return true ou false suivant le succès de l'opération |
*/ |
public function modifierObservationPublique($utilisateur, $id, $parametres) { |
|
$base_param = array('nom_sel_nn' => NULL, |
'nom_sel' => NULL, |
'nom_ret_nn' => NULL, |
'nom_referentiel' => NULL); |
$parametres = array_merge($base_param, $parametres); |
|
$retour = true; |
$requete_modification = "UPDATE cel_obs SET " ; |
|
299,16 → 304,14 |
private function formaterParametresObservation(&$parametres) { |
|
$code_referentiel = 'bdtfx'; |
if(!isset($parametres['nom_referentiel'])) { |
if(!$parametres['nom_referentiel']) { |
$parametres['nom_referentiel'] = Cel::$default_referentiel; |
} |
$code_referentiel = substr(trim($parametres['nom_referentiel']), 0, 5); |
|
if($this->estUnNomRetenuSansSaisi($parametres)) { |
$parametres['nom_ret']= ""; |
$parametres['nom_ret_nn']= ""; |
$parametres['nt']= ""; |
$parametres['famille']= ""; |
// TODO/XXX: quoi ?! |
if(!$parametres['nom_sel_nn'] && !$parametres['nom_sel'] && $parametres['nom_ret_nn']) { |
$parametres['nom_ret'] = $parametres['nom_ret_nn'] = $parametres['nt'] = $parametres['famille'] = ""; |
} |
|
/* pour un nom saisi sans autocomplétion 3 cas de figure existent: |
317,7 → 320,8 |
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)) { |
if ($this->estUnNomSolitaire($parametres)) { |
// 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 |
|
336,7 → 340,7 |
} |
} |
|
if ($this->parametreNumNomEstPresent($parametres)) { |
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']); |
392,41 → 396,6 |
} |
|
|
private function estUnNomRetenuSansSaisi($parametres) { |
return $this->parametreNumNomPasPresent($parametres) && |
$this->parametreNomSelPasPresent($parametres) && |
$this->parametreEstPresentEtValide($parametres, 'nom_ret_nn'); |
} |
|
private function parametreEstPresentEtValide($parametres, $index) { |
return (isset($parametres[$index]) && |
$parametres[$index] != null && |
$parametres[$index] != '' && |
$parametres[$index] != 0); |
} |
|
private function estUnNomSolitaire($parametres) { |
return $this->parametreNumNomPasPresent($parametres) && isset($parametres['nom_sel']) && $parametres['nom_sel'] != ''; |
} |
|
private function parametreNumNomEstPresent($parametres) { |
return !$this->parametreNumNomPasPresent($parametres); |
} |
|
private function parametreNumNomPasPresent($parametres) { |
return (!isset($parametres['nom_sel_nn']) || |
$parametres['nom_sel_nn'] == null || |
$parametres['nom_sel_nn'] == '' || |
$parametres['nom_sel_nn'] == 0); |
} |
|
private function parametreNomSelPasPresent($parametres) { |
return (!isset($parametres['nom_sel']) || |
$parametres['nom_sel'] == null || |
$parametres['nom_sel'] == '' || |
$parametres['nom_sel'] == 0); |
} |
|
/** |
* Assemble une sous requete pour un ajout, tout en formatant les paramètres et en recherchant |
* les infos complémentaires |