Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 1751 → Rev 1752

/trunk/jrest/lib/GestionObservation.php
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