Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 1318 Rev 1322
Line 270... Line 270...
270
	
270
	
Line 271... Line 271...
271
	public function taxonEstPresentDansDepartement($num_taxon,$code_departement) {
271
	public function taxonEstPresentDansDepartement($num_taxon,$code_departement) {
272
		
272
		
273
		$requete_presence_taxon = "SELECT ecd_ce_taxon FROM eflore_zg, eflore_chorologie_donnee ".
273
		$requete_presence_taxon = "SELECT ecd_ce_taxon FROM eflore_zg, eflore_chorologie_donnee ".
274
								  "WHERE ecd_ce_taxon = ".$this->proteger($num_taxon)." ".
274
								  "WHERE ecd_ce_taxon = ".$this->proteger($num_taxon)." ".
275
								  "AND ezg_code=".$this->proteger($code_departement)." ".
275
								  "AND ezg_code = ".$this->proteger($code_departement)." ".
276
								  "AND ecd_ce_zone_geo = ezg_id_zone_geo ". 
276
								  "AND ecd_ce_zone_geo = ezg_id_zone_geo ". 
Line 277... Line 277...
277
								  "AND ezg_id_projet_zg = ecd_ce_version_projet_zg ".
277
								  "AND ezg_id_projet_zg = ecd_ce_version_projet_zg ".
Line 285... Line 285...
285
	}
285
	}
Line 286... Line 286...
286
	
286
	
287
	private function decouperNomEtRechercheEspeceOuSousEspece($identifiant_espece) {
287
	private function decouperNomEtRechercheEspeceOuSousEspece($identifiant_espece) {
288
		$nameparser=new NameParser();
288
		$nameparser=new NameParser();
289
		$nom_latin_decoupe=$nameparser->parse($identifiant_espece);
-
 
290
		
289
		$nom_latin_decoupe=$nameparser->parse($identifiant_espece);
291
		// requete sous espece (on privilegie les noms retenu cf tri par esn_ce_statut)
290
		// requete sous espece (on privilegie les noms retenu cf tri par esn_ce_statut)
292
		if (isset($nom_latin_decoupe['infra']) && $nom_latin_decoupe['infra']!="") {
291
		if (isset($nom_latin_decoupe['infra']) && $nom_latin_decoupe['infra']!="") {
293
			$requete="SELECT DISTINCT en_id_nom, esn_ce_statut" .
292
			$requete="SELECT DISTINCT en_id_nom, esn_ce_statut" .
294
            	" FROM eflore_nom, eflore_nom_rang, eflore_selection_nom " .
293
            	" FROM eflore_nom, eflore_nom_rang, eflore_selection_nom " .
295
            	" WHERE en_id_version_projet_nom = '25' AND en_nom_genre = '".$this->proteger($nom_latin_decoupe['genus'])."' " .
294
            	" WHERE en_id_version_projet_nom = '25' AND en_nom_genre = ".$this->proteger($nom_latin_decoupe['genus'])." " .
296
                " AND enrg_abreviation_rang = '".$this->proteger($nom_latin_decoupe['infra_type'])."' " .
295
                " AND enrg_abreviation_rang = ".$this->proteger($nom_latin_decoupe['infra_type'])." " .
297
                " AND en_epithete_infra_specifique = '".$this->proteger($nom_latin_decoupe['infra'])."' " .
296
                " AND en_epithete_infra_specifique = ".$this->proteger($nom_latin_decoupe['infra'])." " .
298
                " AND esn_id_nom= en_id_nom ".
297
                " AND esn_id_nom= en_id_nom ".
299
                " AND esn_id_version_projet_taxon=en_id_version_projet_nom " .
298
                " AND esn_id_version_projet_taxon=en_id_version_projet_nom " .
300
                " AND en_epithete_espece =  '".$this->proteger($nom_latin_decoupe['species'])."' AND en_ce_rang = enrg_id_rang " .
299
                " AND en_epithete_espece =  ".$this->proteger($nom_latin_decoupe['species'])." AND en_ce_rang = enrg_id_rang " .
301
                " ORDER BY esn_ce_statut ".
300
                " ORDER BY esn_ce_statut ".
302
                " LIMIT 1";
301
                " LIMIT 1";
303
		}
302
		}
304
		else { // espece  (on privilegie les noms retenu cf tri par esn_ce_statut)
303
		else { // espece  (on privilegie les noms retenu cf tri par esn_ce_statut)
305
			$requete="SELECT DISTINCT en_id_nom, esn_ce_statut" .
304
			$requete="SELECT DISTINCT en_id_nom, esn_ce_statut" .
306
				" FROM eflore_nom, eflore_nom_rang, eflore_selection_nom " .
305
				" FROM eflore_nom, eflore_nom_rang, eflore_selection_nom " .
307
				" WHERE en_id_version_projet_nom = '25' AND en_nom_genre = '".$this->proteger($nom_latin_decoupe['genus'])."' " .
306
				" WHERE en_id_version_projet_nom = '25' AND en_nom_genre = ".$this->proteger($nom_latin_decoupe['genus'])." " .
308
				" AND enrg_abreviation_rang = 'sp.' " .
307
				" AND enrg_abreviation_rang = 'sp.' " .
309
				" AND esn_id_nom= en_id_nom ".
308
				" AND esn_id_nom= en_id_nom ".
310
				" AND esn_id_version_projet_taxon=en_id_version_projet_nom " .
309
				" AND esn_id_version_projet_taxon=en_id_version_projet_nom " .
311
				" AND en_epithete_espece =  '".$this->proteger($nom_latin_decoupe['species'])."' AND en_ce_rang = enrg_id_rang " .
310
				" AND en_epithete_espece =  ".$this->proteger($nom_latin_decoupe['species'])." AND en_ce_rang = enrg_id_rang " .
312
				" ORDER BY esn_ce_statut ".
311
				" ORDER BY esn_ce_statut ".
Line 313... Line 312...
313
				" LIMIT 1";
312
				" LIMIT 1";
Line 319... Line 318...
319
		$retour = array();
318
		$retour = array();
320
		if (is_array($resultat) && count($resultat) > 0) {
319
		if (is_array($resultat) && count($resultat) > 0) {
321
			$retour = $resultat[0];
320
			$retour = $resultat[0];
322
		}
321
		}
Line 323... Line 322...
323
		
322
		
324
		return $resultat;
323
		return $retour;
Line 325... Line 324...
325
	}
324
	}
Line 326... Line 325...
326
	
325
	
Line 401... Line 400...
401
			preg_match('/BDNFFnt([0-9][0-9]*)/', $identifiant_espece, $elements);
400
			preg_match('/BDNFFnt([0-9][0-9]*)/', $identifiant_espece, $elements);
Line 402... Line 401...
402
	
401
	
403
			if (isset($elements[1])) {
402
			if (isset($elements[1])) {
404
				// Numero taxonomique
403
				// Numero taxonomique
-
 
404
				$infos_taxon = $this->effectuerRequeteInfosComplementairesSurNumTax($elements[1]);
405
				$infos_taxon = $this->effectuerRequeteInfosComplementairesSurNumTax($elements[1]);
405
				$infos_taxon = $infos_taxon[0];
406
				$retour = array("nom_sel" => $this->formaterNom($infos_taxon), "en_id_nom" => $infos_taxon['en_id_nom']);
406
				$retour = array("nom_sel" => $this->formaterNom($infos_taxon), "en_id_nom" => $infos_taxon['en_id_nom']);
407
			} else { 
407
			} else { 
408
				// Nom scientifique
408
				// Nom scientifique
409
				$id_nom = $this->decouperNomEtRechercheEspeceOuSousEspece($identifiant_espece);	
409
				$id_nom = $this->decouperNomEtRechercheEspeceOuSousEspece($identifiant_espece);	
-
 
410
				// Recherche du nom associe
-
 
411
				$retour = array("nom_sel" => $identifiant_espece);
410
				// Recherche du nom associe
412
				if(is_array($id_nom && isset($id_nom['en_id_nom']))) {
411
				$infos_nom = $this->effectuerRequeteInfosComplementairesSurNumNom($id_nom['en_id_nom']);
413
					$infos_nom = $this->effectuerRequeteInfosComplementairesSurNumNom($id_nom['en_id_nom']);
-
 
414
					if (is_array($infos_nom) && !empty($infos_nom)) {
412
				if (is_array($infos_nom) && !empty($infos_nom)) {
415
						$infos_nom = $infos_nom[0];
413
					$retour = array("nom_sel" => $this->formaterNom($infos_nom), "en_id_nom" => $id_nom['en_id_nom']);
416
						$retour = array("nom_sel" => $this->formaterNom($infos_nom), "en_id_nom" => $id_nom['en_id_nom']);
414
				} else {
-
 
415
					$retour = array("nom_sel" => $identifiant_espece);
417
					}
416
				}
418
				}
417
			}
419
			}
-
 
420
		}
418
		}
421
		
419
		return $retour;
422
		return $retour;
420
	}
423
	}
421
}
424
}
422
?>
425
?>