Subversion Repositories eFlore/Applications.cel

Rev

Rev 1750 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1750 Rev 1752
Line 132... Line 132...
132
	* @param array $parametres tableau indexé avec les mêmes noms de champs que la bdd
132
	* @param array $parametres tableau indexé avec les mêmes noms de champs que la bdd
133
	*
133
	*
134
	* @return true ou false suivant le succès de l'opération
134
	* @return true ou false suivant le succès de l'opération
135
	*/
135
	*/
136
	public function modifierObservationPublique($utilisateur, $id, $parametres) {
136
	public function modifierObservationPublique($utilisateur, $id, $parametres) {
-
 
137
		$base_param = array('nom_sel_nn' => NULL,
-
 
138
							'nom_sel' => NULL,
-
 
139
							'nom_ret_nn' => NULL,
-
 
140
							'nom_referentiel' => NULL);
-
 
141
		$parametres = array_merge($base_param, $parametres);
137
	
142
 
138
		$retour = true;
143
		$retour = true;
139
		$requete_modification = "UPDATE cel_obs SET " ;
144
		$requete_modification = "UPDATE cel_obs SET " ;
Line 140... Line 145...
140
	
145
	
141
		$sous_requete_modification = $this->traiterParametresObservationEtConstruireSousRequeteMaj($parametres);
146
		$sous_requete_modification = $this->traiterParametresObservationEtConstruireSousRequeteMaj($parametres);
Line 297... Line 302...
297
	* @return $parametres le tableau modifié selon ce qu'il contenait
302
	* @return $parametres le tableau modifié selon ce qu'il contenait
298
	*/
303
	*/
299
	private function formaterParametresObservation(&$parametres) {
304
	private function formaterParametresObservation(&$parametres) {
Line 300... Line 305...
300
 
305
 
301
		$code_referentiel = 'bdtfx';
306
		$code_referentiel = 'bdtfx';
302
		if(!isset($parametres['nom_referentiel'])) {
307
		if(!$parametres['nom_referentiel']) {
303
			$parametres['nom_referentiel'] = Cel::$default_referentiel;
308
			$parametres['nom_referentiel'] = Cel::$default_referentiel;
304
		}
309
		}
Line 305... Line -...
305
		$code_referentiel = substr(trim($parametres['nom_referentiel']), 0, 5);
-
 
306
 
310
		$code_referentiel = substr(trim($parametres['nom_referentiel']), 0, 5);
307
		if($this->estUnNomRetenuSansSaisi($parametres)) {
311
 
308
			$parametres['nom_ret']= "";
-
 
309
			$parametres['nom_ret_nn']= "";
312
		// TODO/XXX: quoi ?!
310
			$parametres['nt']= "";
313
		if(!$parametres['nom_sel_nn'] && !$parametres['nom_sel'] && $parametres['nom_ret_nn']) {
Line 311... Line 314...
311
			$parametres['famille']= "";
314
			$parametres['nom_ret'] = $parametres['nom_ret_nn'] = $parametres['nt'] = $parametres['famille'] =  "";
312
		}
315
		}
313
 
316
 
314
		/* pour un nom saisi sans autocomplétion 3 cas de figure existent:
317
		/* pour un nom saisi sans autocomplétion 3 cas de figure existent:
315
		   1) référentiel bdtfx
318
		   1) référentiel bdtfx
316
		   1.1) trouvé par le webservice => ref = bdtfx
319
		   1.1) trouvé par le webservice => ref = bdtfx
-
 
320
		   1.2) pas trouvé par le webservice => ref = autre
317
		   1.2) pas trouvé par le webservice => ref = autre
321
		   2) si le référentiel est inconnu (explicitement mis à "autre"), alors pas d'appel au webservice => ref = autre */
318
		   2) si le référentiel est inconnu (explicitement mis à "autre"), alors pas d'appel au webservice => ref = autre */
322
		if(in_array($code_referentiel, Cel::$referentiels_valides)) {
319
		if(in_array($code_referentiel, Cel::$referentiels_valides)) {
323
			// nom saisi sans numéro
Line 320... Line 324...
320
			if ($this->estUnNomSolitaire($parametres)) {
324
			if ($parametres['nom_sel'] && !$parametres['nom_sel_nn']) {
Line 334... Line 338...
334
					$code_referentiel = Cel::$fallback_referentiel;
338
					$code_referentiel = Cel::$fallback_referentiel;
335
					// note: 'nom_sel_nn' devrait être NULL, donc parametreNumNomEstPresent() ci-dessous ne devrait pas advenir
339
					// note: 'nom_sel_nn' devrait être NULL, donc parametreNumNomEstPresent() ci-dessous ne devrait pas advenir
336
				}
340
				}
337
			}
341
			}
Line 338... Line 342...
338
 
342
 
339
			if ($this->parametreNumNomEstPresent($parametres)) {
343
			if ($parametres['nom_sel_nn']) {
340
				// Utilisation d'un nom faisant parti du referentiel : recherche du nom valide correspondant
344
				// Utilisation d'un nom faisant parti du referentiel : recherche du nom valide correspondant
341
				$chercheur_infos_complementaires = new RechercheInfosTaxonBeta($this->config , $code_referentiel);
345
				$chercheur_infos_complementaires = new RechercheInfosTaxonBeta($this->config , $code_referentiel);
Line 342... Line 346...
342
				$complement = $chercheur_infos_complementaires->rechercherInformationsComplementairesSurNumNom($parametres['nom_sel_nn']);
346
				$complement = $chercheur_infos_complementaires->rechercherInformationsComplementairesSurNumNom($parametres['nom_sel_nn']);
Line 390... Line 394...
390
 
394
 
391
        return $parametres;
395
        return $parametres;
Line 392... Line -...
392
	}
-
 
393
	
-
 
394
	
-
 
395
	private function estUnNomRetenuSansSaisi($parametres) {
-
 
396
		return $this->parametreNumNomPasPresent($parametres) &&
-
 
397
		$this->parametreNomSelPasPresent($parametres) &&
-
 
398
		$this->parametreEstPresentEtValide($parametres, 'nom_ret_nn');
-
 
399
	}
-
 
400
		
-
 
401
	private function parametreEstPresentEtValide($parametres, $index) {
-
 
402
		return (isset($parametres[$index]) &&
-
 
403
		$parametres[$index] != null &&
-
 
404
		$parametres[$index] != '' &&
-
 
405
		$parametres[$index] != 0);
-
 
406
	}
-
 
407
	
-
 
408
	private function estUnNomSolitaire($parametres) {
-
 
409
		return $this->parametreNumNomPasPresent($parametres) && isset($parametres['nom_sel']) && $parametres['nom_sel'] != '';
-
 
410
	}
-
 
411
	
-
 
412
	private function parametreNumNomEstPresent($parametres) {
-
 
413
		return !$this->parametreNumNomPasPresent($parametres);
-
 
414
	}
-
 
415
	
-
 
416
	private function parametreNumNomPasPresent($parametres) {
-
 
417
		return (!isset($parametres['nom_sel_nn']) || 
-
 
418
				$parametres['nom_sel_nn'] == null ||
-
 
419
				$parametres['nom_sel_nn'] == '' || 
-
 
420
				$parametres['nom_sel_nn'] == 0);
-
 
421
	}
-
 
422
	
-
 
423
	private function parametreNomSelPasPresent($parametres) {
-
 
424
		return (!isset($parametres['nom_sel']) ||
-
 
425
		$parametres['nom_sel'] == null ||
-
 
426
		$parametres['nom_sel'] == '' ||
-
 
427
		$parametres['nom_sel'] == 0);
396
	}
428
	}
397
	
429
	
398
	
430
	/**
399
	/**
431
	* Assemble une sous requete pour un ajout, tout en formatant les paramètres et en recherchant
400
	* Assemble une sous requete pour un ajout, tout en formatant les paramètres et en recherchant