Subversion Repositories Sites.obs-saisons.fr

Rev

Rev 83 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 83 Rev 167
1
<?php
1
<?php
2
// declare(encoding='UTF-8');
2
// declare(encoding='UTF-8');
3
/**
3
/**
4
 * Classe de gestion des epeces.
4
 * Classe de gestion des epeces.
5
 *
5
 *
6
 * @package     Collection
6
 * @package     Collection
7
 * @category    Php 5.2
7
 * @category    Php 5.2
8
 * @author      Aurélien PERONNET <aurelien@tela-botanica.org>
8
 * @author      Aurélien PERONNET <aurelien@tela-botanica.org>
9
 * @copyright   2010 Tela-Botanica
9
 * @copyright   2010 Tela-Botanica
10
 * @license     http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
10
 * @license     http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
11
 * @license     http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
11
 * @license     http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
12
 * @version     SVN: $Id: Espece.php 152 2010-09-06 16:19:12Z jpm $
12
 * @version     SVN: $Id: Espece.php 152 2010-09-06 16:19:12Z jpm $
13
 */
13
 */
14
class Espece extends aControleur {
14
class Espece extends aControleur {
15
   
15
   
16
	private $id_espece_en_cours = null;
16
	private $id_espece_en_cours = null;
17
   
17
   
18
    public function __construct()  {
18
    public function __construct()  {
19
    	
19
    	
20
		parent::__construct();
20
		parent::__construct();
21
        $this->initialiser();
21
        $this->initialiser();
22
    }
22
    }
23
    
23
    
24
    public function initialiser() {
24
    public function initialiser() {
25
    	
25
    	
26
    	if(isset($_GET['$id_espece'])) {
26
    	if(isset($_GET['$id_espece'])) {
27
    		$this->id_espece_en_cours = $_GET['$id_espece'];
27
    		$this->id_espece_en_cours = $_GET['$id_espece'];
28
    	}
28
    	}
29
    	$this->setNavigation();
29
    	$this->setNavigation();
30
    }
30
    }
31
    
31
    
32
    private function setNavigation() {   	
32
    private function setNavigation() {   	
33
		$station = new Station();
33
		$station = new Station();
34
    	$this->setSortie(self::RENDU_NAVIGATION, $station->construireMenuNavigation());
34
    	$this->setSortie(self::RENDU_NAVIGATION, $station->construireMenuNavigation());
35
    }
35
    }
36
    
36
    
37
    public function executerActionParDefaut() {
37
    public function executerActionParDefaut() {
38
    	return $this->afficherFormulaireSaisieIndividu();
38
    	return $this->afficherFormulaireSaisieIndividu();
39
    }
39
    }
40
    
40
    
41
   	// +---------------------------------------------------------------------------------------------------------------+
41
   	// +---------------------------------------------------------------------------------------------------------------+
42
    // METHODES D'AFFICHAGE DE FORMULAIRE 
42
    // METHODES D'AFFICHAGE DE FORMULAIRE 
43
    public function afficherFormulaireSaisieEspece() {
43
    public function afficherFormulaireSaisieEspece() {
44
    	
44
    	
45
    	$donnees = array();
45
    	$donnees = array();
46
    	
46
    	
47
    	if(!isset($_GET['id_station'])) {
47
    	if(!isset($_GET['id_station'])) {
48
    		return;
48
    		return;
49
    	}
49
    	}
50
    	
50
    	
51
    	$donnees['id_station'] = $_GET['id_station'];
51
    	$donnees['id_station'] = $_GET['id_station'];
52
    	    	
52
    	    	
53
		$donnees['types'] = $this->renvoyerListeEspeceParTypeMoinsEspecePresentesDansStation($donnees['id_station']);
53
		$donnees['types'] = $this->renvoyerListeEspeceParTypeMoinsEspecePresentesDansStation($donnees['id_station']);
54
    	
54
    	
55
    	$formulaire = $this->getVue('formulaires/espece_saisie',$donnees);
55
    	$formulaire = $this->getVue('formulaires/espece_saisie',$donnees);
56
    	$this->setSortie(self::RENDU_CORPS, $formulaire);   
56
    	$this->setSortie(self::RENDU_CORPS, $formulaire);   
57
    }
57
    }
58
    
58
    
59
    public function validerFormulaireSaisieEspece() {
59
    public function validerFormulaireSaisieEspece() {
60
    	
60
    	
61
    	$valeurs_verifiees = $this->collecterValeursFormulaireSaisieEspece();
61
    	$valeurs_verifiees = $this->collecterValeursFormulaireSaisieEspece();
62
 
62
 
63
    	$individu = new Individu();
63
    	$individu = new Individu();
64
    	$this->setNavigation();
64
    	$this->setNavigation();
65
    	$this->setSortie(self::RENDU_CORPS,$individu->getFormulaireSaisieIndividu($valeurs_verifiees));
65
    	$this->setSortie(self::RENDU_CORPS,$individu->getFormulaireSaisieIndividu($valeurs_verifiees));
66
    
66
    
67
    }
67
    }
68
    
68
    
69
    private function renvoyerListeEspeceParTypeMoinsEspecePresentesDansStation($id_station) {
69
    private function renvoyerListeEspeceParTypeMoinsEspecePresentesDansStation($id_station) {
70
    	
70
    	
71
    	$espece_dao = new EspeceDao();
71
    	$espece_dao = new EspeceDao();
72
    	
72
    	
73
    	return $liste_espece_par_type_complete = $espece_dao->getListeEspecesParType();
73
    	return $liste_espece_par_type_complete = $espece_dao->getListeEspecesParType();
74
    	$liste_plate_especes_dans_station = $espece_dao->getListeEspecesPourStation($id_station);
74
    	$liste_plate_especes_dans_station = $espece_dao->getListeEspecesPourStation($id_station);
75
    	
75
    	
76
    	$liste_especes_pouvant_etre_ajoutees = array();
76
    	$liste_especes_pouvant_etre_ajoutees = array();
77
    	
77
    	
78
    	foreach($liste_espece_par_type_complete as $type => $especes_pour_type) {
78
    	foreach($liste_espece_par_type_complete as $type => $especes_pour_type) {
79
    		    		
79
    		    		
80
    		foreach($liste_plate_especes_dans_station as $indice => $espece_dans_station) {
80
    		foreach($liste_plate_especes_dans_station as $indice => $espece_dans_station) {
81
    			
81
    			
82
    			$id_espece = $espece_dans_station['id_espece'];
82
    			$id_espece = $espece_dans_station['id_espece'];
83
    			
83
    			
84
    			if($this->especeEstPresenteDansTableauIndexeParId($id_espece, $especes_pour_type)) {
84
    			if($this->especeEstPresenteDansTableauIndexeParId($id_espece, $especes_pour_type)) {
85
    				    				
85
    				    				
86
    				unset($liste_plate_especes_dans_station[$indice]);
86
    				unset($liste_plate_especes_dans_station[$indice]);
87
    				unset($especes_pour_type['especes'][$id_espece]);
87
    				unset($especes_pour_type['especes'][$id_espece]);
88
    			}
88
    			}
89
    		}
89
    		}
90
    		
90
    		
91
    		$liste_especes_pouvant_etre_ajoutees[$type] = $especes_pour_type;
91
    		$liste_especes_pouvant_etre_ajoutees[$type] = $especes_pour_type;
92
    	}
92
    	}
93
    	
93
    	
94
    	return $liste_especes_pouvant_etre_ajoutee;
94
    	return $liste_especes_pouvant_etre_ajoutee;
95
		
95
		
96
    }
96
    }
97
    
97
    
98
    private function especeEstPresenteDansTableauIndexeParId($id_espece, $tableau_espece) {
98
    private function especeEstPresenteDansTableauIndexeParId($id_espece, $tableau_espece) {
99
    	return isset($tableau_espece['especes'][$id_espece]);
99
    	return isset($tableau_espece['especes'][$id_espece]);
100
    }
100
    }
101
    
101
    
102
    // +---------------------------------------------------------------------------------------------------------------+
102
    // +---------------------------------------------------------------------------------------------------------------+
103
    // METHODES DE VALIDATION DE FORMULAIRE 
103
    // METHODES DE VALIDATION DE FORMULAIRE 
104
    private function collecterValeursFormulaireSaisieEspece() {
104
    private function collecterValeursFormulaireSaisieEspece() {
105
    	
105
    	
106
    	$valeurs_verifiees['id_espece'] = $_POST['id_espece'];
106
    	$valeurs_verifiees['id_espece'] = $_POST['id_espece'];
-
 
107
    	
-
 
108
    	if(!isset($_POST['id_station'])) {
-
 
109
    		$valeurs_verifiees['id_station'] =  $_GET['id_station'];
-
 
110
    	} else {
107
	    $valeurs_verifiees['id_station'] =  $_POST['id_station'];
111
    		$valeurs_verifiees['id_station'] =  $_POST['id_station'];
-
 
112
    	}
-
 
113
	    
108
	    //TODO: verifier valeurs plus complètement
114
	    //TODO: verifier valeurs plus complètement
109
	    
115
	    
110
	    return $valeurs_verifiees;
116
	    return $valeurs_verifiees;
111
    	
117
    	
112
    }
118
    }
113
    
119
    
114
    public function getListeEvenementPourEspece($id_espece) {
120
    public function getListeEvenementPourEspece($id_espece) {
115
    	
121
    	
116
    	$evenementDao = new EvenementDao();
122
    	$evenementDao = new EvenementDao();
117
    	$liste_evenements = $evenementDao->getListeEvenementPourEspece($id_espece);
123
    	$liste_evenements = $evenementDao->getListeEvenementPourEspece($id_espece);
118
    	
124
    	
119
    	return $liste_evenements;
125
    	return $liste_evenements;
120
    }
126
    }
121
}
127
}
122
?>
128
?>