Subversion Repositories eFlore/Applications.cel

Rev

Rev 1659 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1659 Rev 1745
Line 295... Line 295...
295
	* @param array $parametres tableau indexé avec les mêmes noms de champs que la bdd
295
	* @param array $parametres tableau indexé avec les mêmes noms de champs que la bdd
296
	* 
296
	* 
297
	* @return $parametres le tableau modifié selon ce qu'il contenait
297
	* @return $parametres le tableau modifié selon ce qu'il contenait
298
	*/
298
	*/
299
	private function formaterParametresObservation(&$parametres) {
299
	private function formaterParametresObservation(&$parametres) {
300
				
300
 
301
		$code_referentiel = 'bdtfx';
301
		$code_referentiel = 'bdtfx';
302
		if(!isset($parametres['nom_referentiel'])) {
302
		if(!isset($parametres['nom_referentiel'])) {
303
			$parametres['nom_referentiel'] = 'bdtfx:v1.01';
303
			$parametres['nom_referentiel'] = Cel::$default_referentiel;
304
		}
304
		}
305
		$code_referentiel = substr($parametres['nom_referentiel'], 0, 5);
305
		$code_referentiel = substr(trim($parametres['nom_referentiel']), 0, 5);
306
		
306
 
307
		if($this->estUnNomRetenuSansSaisi($parametres)) {
307
		if($this->estUnNomRetenuSansSaisi($parametres)) {
308
			echo $this->estUnNomRetenuSansSaisi($parametres, 'nom_ret_nn');exit;
308
			echo $this->estUnNomRetenuSansSaisi($parametres, 'nom_ret_nn');exit;
309
			$parametres['nom_ret']= "";
309
			$parametres['nom_ret']= "";
310
			$parametres['nom_ret_nn']= "";
310
			$parametres['nom_ret_nn']= "";
311
			$parametres['nt']= "";
311
			$parametres['nt']= "";
312
			$parametres['famille']= "";
312
			$parametres['famille']= "";
313
		}
313
		}
314
		
314
 
-
 
315
		/* pour un nom saisi sans autocomplétion 3 cas de figure existent:
-
 
316
		   1) référentiel bdtfx
-
 
317
		   1.1) trouvé par le webservice => ref = bdtfx
-
 
318
		   1.2) pas trouvé par le webservice => ref = autre
-
 
319
		   2) si le référentiel est inconnu (explicitement mis à "autre"), alors pas d'appel au webservice => ref = autre */
-
 
320
		if(in_array($code_referentiel, Cel::$referentiels_valides)) {
315
		if ($this->estUnNomSolitaire($parametres)) {
321
			if ($this->estUnNomSolitaire($parametres)) {
316
			
-
 
317
			$chercheur_infos_complementaires = new RechercheInfosTaxonBeta($this->config, $code_referentiel);
322
				$chercheur_infos_complementaires = new RechercheInfosTaxonBeta($this->config, $code_referentiel);
318
			// Utilisation d'un nom sans numéro nomenclatural, recherche d'une correspondance sur le nom
323
				// Utilisation d'un nom sans numéro nomenclatural, recherche d'une correspondance sur le nom
-
 
324
 
319
			$complement = $chercheur_infos_complementaires->rechercherInformationsComplementairesSurNom($parametres['nom_sel']);
325
				$complement = $chercheur_infos_complementaires->rechercherInformationsComplementairesSurNom($parametres['nom_sel']);
320
 
326
 
321
			// Si l'on a trouvé un résultat sur la recherche, il s'agit vraisemblablement d'un copié-collé
327
				// Si l'on a trouvé un résultat sur la recherche, il s'agit vraisemblablement d'un copié-collé
322
			// de nom de taxon qui n'a pas été validé par la selection
328
				// de nom de taxon qui n'a pas été validé par la selection
323
			if(count($complement) > 0) {
329
				if(count($complement) > 0) {
324
				$parametres['nom_sel_nn'] = $complement[0][0];
330
					$parametres['nom_sel_nn'] = $complement[0][0];
-
 
331
				}
-
 
332
				else {
-
 
333
					// pas de résultat de recherche sur le référentiel demandé, le webservice doit peut-être être corrigé
-
 
334
					// mais en tout état de cause nous n'insérerons PAS de données incertaines associé à un référentiel !
-
 
335
					$code_referentiel = Cel::$fallback_referentiel;
-
 
336
					// note: 'nom_sel_nn' devrait être NULL, donc parametreNumNomEstPresent() ci-dessous ne devrait pas advenir
-
 
337
				}
325
			}
338
			}
326
		}
-
 
Line 327... Line 339...
327
 
339
 
328
		if ($this->parametreNumNomEstPresent($parametres)) {
340
			if ($this->parametreNumNomEstPresent($parametres)) {
329
			// Utilisation d'un nom faisant parti du referentiel : recherche du nom valide correspondant
341
				// Utilisation d'un nom faisant parti du referentiel : recherche du nom valide correspondant
330
			$chercheur_infos_complementaires = new RechercheInfosTaxonBeta($this->config , $code_referentiel);
342
				$chercheur_infos_complementaires = new RechercheInfosTaxonBeta($this->config , $code_referentiel);
Line 331... Line 343...
331
			$complement = $chercheur_infos_complementaires->rechercherInformationsComplementairesSurNumNom($parametres['nom_sel_nn']);
343
				$complement = $chercheur_infos_complementaires->rechercherInformationsComplementairesSurNumNom($parametres['nom_sel_nn']);
332
			
344
			
333
			$parametres['nom_ret']=$complement['Nom_Retenu'];
345
				$parametres['nom_ret']=$complement['Nom_Retenu'];
334
	        $parametres['nom_ret_nn']=$complement['Num_Nom_Retenu'];
346
				$parametres['nom_ret_nn']=$complement['Num_Nom_Retenu'];
-
 
347
				$parametres['nt']=$complement['Num_Taxon'];
335
	        $parametres['nt']=$complement['Num_Taxon'];
348
				$parametres['famille']=$complement['Famille'];
-
 
349
			}
-
 
350
		}
-
 
351
 
Line 336... Line 352...
336
	        $parametres['famille']=$complement['Famille'];
352
		// mise à jour du référentiel utilisé, sans n° de version
Line 337... Line 353...
337
		}
353
		$parametres['nom_referentiel'] = $code_referentiel;
Line 423... Line 439...
423
	private function traiterParametresObservationEtConstruireSousRequeteAjout($parametres) {
439
	private function traiterParametresObservationEtConstruireSousRequeteAjout($parametres) {
Line 424... Line 440...
424
		
440
		
Line 425... Line 441...
425
		$sous_requete = '';
441
		$sous_requete = '';
426
 
442
 
427
		$parametres = $this->formaterParametresObservation($parametres);
443
		$parametres = $this->formaterParametresObservation($parametres);
428
		
444
 
Line 429... Line 445...
429
		$champs = '';
445
		$champs = '';
430
		$valeurs = '';
446
		$valeurs = '';