Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 1786 Rev 1788
Line 137... Line 137...
137
		}
137
		}
138
		else {
138
		else {
139
			// uniquement en cas de nom_sel présent
139
			// uniquement en cas de nom_sel présent
140
			$this->traiterEspece($parametres);
140
			$this->traiterEspece($parametres);
141
		}
141
		}
142
 
-
 
143
		$this->formaterParametresObservation($parametres);
142
		$this->formaterParametresObservation($parametres);
Line 144... Line 143...
144
 
143
 
145
		$requete_modification .= $this->traiterParametresObservationEtConstruireSousRequeteMaj($parametres) .
144
		$requete_modification .= $this->traiterParametresObservationEtConstruireSousRequeteMaj($parametres) .
Line 329... Line 328...
329
	
328
	
330
		return $migration_releve;
329
		return $migration_releve;
Line 331... Line 330...
331
	}
330
	}
332
	
-
 
333
	private function traiterEspece(&$parametres) {
331
	
334
		$code_referentiel = 'bdtfx';
332
	private function traiterEspece(&$parametres) {
335
		if(!$parametres['nom_referentiel']) {
333
		if(!$parametres['nom_referentiel']) {
336
			$parametres['nom_referentiel'] = Cel::$default_referentiel;
334
			$parametres['nom_referentiel'] = Cel::$default_referentiel;
Line 346... Line 344...
346
		   1) référentiel bdtfx
344
		   1) référentiel bdtfx
347
		   1.1) trouvé par le webservice => ref = bdtfx
345
		   1.1) trouvé par le webservice => ref = bdtfx
348
		   1.2) pas trouvé par le webservice => ref = autre
346
		   1.2) pas trouvé par le webservice => ref = autre
349
		   2) si le référentiel est inconnu (explicitement mis à "autre"), alors pas d'appel au webservice => ref = autre */
347
		   2) si le référentiel est inconnu (explicitement mis à "autre"), alors pas d'appel au webservice => ref = autre */
350
		if(in_array($code_referentiel, Cel::$referentiels_valides)) {
348
		if(in_array($code_referentiel, Cel::$referentiels_valides)) {
-
 
349
			//
-
 
350
			$deuxieme_passe = true;
351
			// nom saisi sans numéro
351
			// nom saisi sans numéro
352
			if ($parametres['nom_sel'] && !$parametres['nom_sel_nn']) {
352
			if ($parametres['nom_sel'] && !$parametres['nom_sel_nn']) {
353
				$chercheur_infos_complementaires = new RechercheInfosTaxonBeta($this->config, $code_referentiel);
353
				$chercheur_infos_complementaires = new RechercheInfosTaxonBeta($this->config, $code_referentiel);
354
				// Utilisation d'un nom sans numéro nomenclatural, recherche d'une correspondance sur le nom
354
				// Utilisation d'un nom sans numéro nomenclatural, recherche d'une correspondance sur le nom
355
 
-
 
356
				$complement = $chercheur_infos_complementaires->rechercherInformationsComplementairesSurNom($parametres['nom_sel']);
355
				$complement = $chercheur_infos_complementaires->rechercherInformationsComplementairesSurNom($parametres['nom_sel']);
357
				// Si l'on a trouvé un résultat sur la recherche, il s'agit vraisemblablement d'un copié-collé
356
				// Si l'on a trouvé un résultat sur la recherche, il s'agit vraisemblablement d'un copié-collé
358
				// de nom de taxon qui n'a pas été validé par la selection
357
				// de nom de taxon qui n'a pas été validé par la selection
359
				if($complement) {
358
				if($complement) {
-
 
359
					$parametres['nom_sel_nn'] = $complement->id;
-
 
360
					$parametres['nom_ret'] = RechercheInfosTaxonBeta::supprimerBiblio($complement->nom_retenu_complet);
360
					$parametres['nom_sel_nn'] = $complement->{"nom_retenu.id"};
361
					$parametres['nom_ret_nn'] = $complement->{"nom_retenu.id"};
-
 
362
					$parametres['nt'] = $complement->num_taxonomique;
-
 
363
					$parametres['famille'] = $complement->famille;
361
				}
364
				}
362
				else {
365
				else {
363
					// pas de résultat de recherche sur le référentiel demandé, le webservice doit peut-être être corrigé
366
					// pas de résultat de recherche sur le référentiel demandé, le webservice doit peut-être être corrigé
364
					// mais en tout état de cause nous n'insérerons PAS de données incertaines associé à un référentiel !
367
					// mais en tout état de cause nous n'insérerons PAS de données incertaines associées à un référentiel !
365
					$code_referentiel = Cel::$fallback_referentiel;
368
					$code_referentiel = Cel::$fallback_referentiel;
366
					// note: 'nom_sel_nn' devrait être NULL, donc parametreNumNomEstPresent() ci-dessous ne devrait pas advenir
369
					$parametres['nom_sel_nn'] = $parametres['nom_ret'] = $parametres['nom_ret_nn'] = $parametres['nt'] = $parametres['famille'] = NULL;
-
 
370
					// goto out;
-
 
371
					$deuxieme_passe = false;
367
				}
372
				}
368
			}
373
			}
Line -... Line 374...
-
 
374
 
-
 
375
			// XXX: ne devrait plus être nécessaire maintenant que rechercherInformationsComplementairesSurNom() [plus précisément effectuerRequeteUrlRecherche()]
369
 
376
			// a été modifiée pour retourner tous les champs nécessaire.
370
			if ($parametres['nom_sel_nn']) {
377
			if ($deuxieme_passe && (!$parametres['nom_ret_nn'] || !$parametres['nt'])) {
371
				// Utilisation d'un nom faisant parti du referentiel : recherche du nom valide correspondant
378
				// Utilisation d'un nom faisant parti du referentiel : recherche du nom valide correspondant
372
				$chercheur_infos_complementaires = new RechercheInfosTaxonBeta($this->config , $code_referentiel);
379
				$chercheur_infos_complementaires = new RechercheInfosTaxonBeta($this->config , $code_referentiel);
-
 
380
				$complement = $chercheur_infos_complementaires->effectuerRequeteInfosComplementairesSurNumNom($parametres['nom_sel_nn']);
-
 
381
				// 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
-
 
382
				// la détection ne fonctionne plus : nous supprimons les données précédemment générées de la base !
-
 
383
				if(!$complement) {
-
 
384
					$parametres['nom_sel_nn'] = $parametres['nom_ret'] = $parametres['nom_ret_nn'] = $parametres['nt'] = $parametres['famille'] = NULL;
373
				$complement = $chercheur_infos_complementaires->effectuerRequeteInfosComplementairesSurNumNom($parametres['nom_sel_nn']);
385
				} else {
374
				$parametres['nom_ret'] = RechercheInfosTaxonBeta::supprimerBiblio($complement->nom_retenu_complet);
386
					$parametres['nom_ret'] = RechercheInfosTaxonBeta::supprimerBiblio($complement->nom_retenu_complet);
375
				$parametres['nom_ret_nn'] = $complement->{"nom_retenu.id"};
387
					$parametres['nom_ret_nn'] = $complement->{"nom_retenu.id"};
376
				$parametres['nt'] = $complement->num_taxonomique;
388
					$parametres['nt'] = $complement->num_taxonomique;
-
 
389
					$parametres['famille'] = $complement->famille;
377
				$parametres['famille'] = $complement->famille;
390
				}
378
			}
391
			}
Line 379... Line 392...
379
		}
392
		}
380
 
393