Subversion Repositories Sites.obs-saisons.fr

Rev

Rev 167 | Rev 302 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 167 Rev 210
1
<?php
1
<?php
2
// declare(encoding='UTF-8');
2
// declare(encoding='UTF-8');
3
/**
3
/**
4
 * Classe de test des Controleurs.
4
 * Classe de test des Controleurs.
5
 *
5
 *
6
 * @package     Collection
6
 * @package     Collection
7
 * @category    Php 5.2
7
 * @category    Php 5.2
8
 * @author      Jean-Pascal MILCENT <jpm@tela-botanica.org>
8
 * @author      Jean-Pascal MILCENT <jpm@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: Fiche.php 152 2010-09-06 16:19:12Z jpm $
12
 * @version     SVN: $Id: Fiche.php 152 2010-09-06 16:19:12Z jpm $
13
 */
13
 */
14
class Station extends aControleur {
14
class Station extends aControleur {
15
 
15
 
16
	private $id_station_en_cours = null;
16
	private $id_station_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_station'])) {
26
    	if(isset($_GET['id_station'])) {
27
    		$this->id_station_en_cours = $_GET['id_station'];
27
    		$this->id_station_en_cours = $_GET['id_station'];
28
    	}
28
    	}
29
    	$this->setNavigation();
29
    	$this->setNavigation();
30
    	
30
    	
31
    }
31
    }
32
    
32
    
33
    public function executerActionParDefaut() {
33
    public function executerActionParDefaut() {
34
    	return $this->afficherFormulaireSaisieStation();
34
    	return $this->afficherFormulaireSaisieStation();
35
    }
35
    }
36
    
36
    
37
   	// +---------------------------------------------------------------------------------------------------------------+
37
   	// +---------------------------------------------------------------------------------------------------------------+
38
    // METHODES D'AFFICHAGE DE FORMULAIRE 
38
    // METHODES D'AFFICHAGE DE FORMULAIRE 
39
    public function afficherFormulaireSaisieStation($donnees = array()) {
39
    public function afficherFormulaireSaisieStation($donnees = array()) {
40
    	
40
    	
41
    	if($donnees == array()) {
41
    	if($donnees == array()) {
42
    		
42
    		
43
	    	$donnees['station_commune'] = '';
43
	    	$donnees['station_commune'] = '';
44
		    $donnees['station_milieu'] = '';
44
		    $donnees['station_milieu'] = '';
45
		    $donnees['station_nom'] = '';
45
		    $donnees['station_nom'] = '';
46
		    $donnees['station_lat'] = '';
46
		    $donnees['station_lat'] = '';
47
		    $donnees['station_lon'] = '';
47
		    $donnees['station_lon'] = '';
48
		   	$donnees['station_alt'] = '';
48
		   	$donnees['station_alt'] = '';
49
		   	$donnees['station_code_insee'] = '';
49
		   	$donnees['station_code_insee'] = '';
50
    	}
50
    	}
51
    	
51
    	
52
    	$donnees['milieux'] = $this->getListeMilieux();
52
    	$donnees['milieux'] = $this->getListeMilieux();
53
    	$formulaire = $this->getVue('formulaires/station_saisie',$donnees);
53
    	$formulaire = $this->getVue('formulaires/station_saisie',$donnees);
54
    	$this->setSortie(self::RENDU_CORPS, $formulaire);     
54
    	$this->setSortie(self::RENDU_CORPS, $formulaire);     
55
    }
55
    }
56
    
56
    
57
	public function afficherFormulaireModificationStation($donnees = array()) {
57
	public function afficherFormulaireModificationStation($donnees = array()) {
58
    	
58
    	
59
    	$id_station = $this->id_station_en_cours;
59
    	$id_station = $this->id_station_en_cours;
60
    	$donnees['milieux'] = $this->getListeMilieux();
60
    	$donnees['milieux'] = $this->getListeMilieux();
61
    	$donnees['infos_station'] = $this->getInformationsStation($id_station);
61
    	$donnees['infos_station'] = $this->getInformationsStation($id_station);
62
    	
62
    	
63
    	$formulaire = $this->getVue('formulaires/station_modification',$donnees);
63
    	$formulaire = $this->getVue('formulaires/station_modification',$donnees);
64
    	$this->setSortie(self::RENDU_CORPS, $formulaire);     
64
    	$this->setSortie(self::RENDU_CORPS, $formulaire);     
65
    }
65
    }
66
    
66
    
67
    // +---------------------------------------------------------------------------------------------------------------+
67
    // +---------------------------------------------------------------------------------------------------------------+
68
    // METHODES APPELEES LORS DE LA VALIDATION D'UN FORMULAIRE
68
    // METHODES APPELEES LORS DE LA VALIDATION D'UN FORMULAIRE
69
    public function validerFormulaireSaisieStation() {
69
    public function validerFormulaireSaisieStation() {
70
    	
70
    	
71
    	$valeurs_collectees = $this->collecterValeursFormulaireSaisieStation();
71
    	$valeurs_collectees = $this->collecterValeursFormulaireSaisieStation();
72
    	
72
    	
73
    	$verification_ou_erreurs = $this->verifierValeursStation($valeurs_collectees);
73
    	$verification_ou_erreurs = $this->verifierValeursStation($valeurs_collectees);
74
    	
74
    	
75
    	if($verification_ou_erreurs !== true) {
75
    	if($verification_ou_erreurs !== true) {
76
    		
76
    		
77
    		$donnees = $valeurs_collectees;
77
    		$donnees = $valeurs_collectees;
78
    		
78
    		
79
    		$donnees['erreurs'] = $verification_ou_erreurs;
79
    		$donnees['erreurs'] = $verification_ou_erreurs;
80
    		$this->afficherFormulaireSaisieStation($donnees);
80
    		$this->afficherFormulaireSaisieStation($donnees);
81
    		return;
81
    		return;
82
    	}
82
    	}
83
    	
83
    	
84
    	$valeurs_verifiees = $valeurs_collectees;
84
    	$valeurs_verifiees = $valeurs_collectees;
85
    	    	
85
    	    	
86
    	$station_dao = new StationDao();
86
    	$station_dao = new StationDao();
87
    	$retour_ajout_station = $station_dao->ajouterStation($valeurs_verifiees);
87
    	$retour_ajout_station = $station_dao->ajouterStation($valeurs_verifiees);
88
    	
88
    	
89
    	if($id_nouvelle_station = $this->renvoyerIdSiAjoutStationEffectue($retour_ajout_station)) {
89
    	if($id_nouvelle_station = $this->renvoyerIdSiAjoutStationEffectue($retour_ajout_station)) {
90
    		$this->id_station_en_cours = $id_nouvelle_station;
90
    		$this->id_station_en_cours = $id_nouvelle_station;
91
    		$this->afficherInformationsStation();  
91
    		$this->afficherInformationsStation();  
92
    		$this->setNavigation();
92
    		$this->setNavigation();
93
    	}
93
    	}
94
    }
94
    }
95
    
95
    
96
    private function renvoyerIdSiAjoutStationEffectue($donnees_retour_dao) {
96
    private function renvoyerIdSiAjoutStationEffectue($donnees_retour_dao) {
97
    	
97
    	
98
    	if(isset($donnees_retour_dao['id_nouvelle_station'])) {
98
    	if(isset($donnees_retour_dao['id_nouvelle_station'])) {
99
    		return $donnees_retour_dao['id_nouvelle_station'];
99
    		return $donnees_retour_dao['id_nouvelle_station'];
100
    	}
100
    	}
101
    	
101
    	
102
    	return false;
102
    	return false;
103
    }
103
    }
104
    
104
    
105
    private function collecterValeursFormulaireSaisieStation() {
105
    private function collecterValeursFormulaireSaisieStation() {
106
    	
106
    	
107
    	$valeurs_collectees['station_commune'] = $_POST['station_commune'];
107
    	$valeurs_collectees['station_commune'] = $_POST['station_commune'];
108
	    $valeurs_collectees['station_milieu'] =  $_POST['station_milieu'];
108
	    $valeurs_collectees['station_milieu'] =  $_POST['station_milieu'];
109
	    $valeurs_collectees['station_nom'] = $_POST['station_nom'];
109
	    $valeurs_collectees['station_nom'] = $_POST['station_nom'];
110
	    $valeurs_collectees['station_lat'] =  $_POST['station_lat']; 
110
	    $valeurs_collectees['station_lat'] =  $_POST['station_lat']; 
111
	    $valeurs_collectees['station_lon'] = $_POST['station_lon'];
111
	    $valeurs_collectees['station_lon'] = $_POST['station_lon'];
112
	   	$valeurs_collectees['station_alt'] = $_POST['station_alt'];
112
	   	$valeurs_collectees['station_alt'] = $_POST['station_alt'];
113
	   	$valeurs_collectees['station_code_insee'] = $_POST['station_code_insee'];
113
	   	$valeurs_collectees['station_code_insee'] = $_POST['station_code_insee'];
114
	    
114
	    
115
	    return $valeurs_collectees;
115
	    return $valeurs_collectees;
116
    	
116
    	
117
    }
117
    }
118
    
118
    
119
	private function collecterValeursFormulaireModificationStation() {
119
	private function collecterValeursFormulaireModificationStation() {
120
    	
120
    	
121
    	$valeurs_collectees['station_commune'] = $_POST['station_commune'];
121
    	$valeurs_collectees['station_commune'] = $_POST['station_commune'];
122
	    $valeurs_collectees['station_milieu'] =  $_POST['station_milieu'];
122
	    $valeurs_collectees['station_milieu'] =  $_POST['station_milieu'];
123
	    $valeurs_collectees['station_nom'] = $_POST['station_nom'];
123
	    $valeurs_collectees['station_nom'] = $_POST['station_nom'];
124
	    $valeurs_collectees['station_lat'] =  $_POST['station_lat']; 
124
	    $valeurs_collectees['station_lat'] =  $_POST['station_lat']; 
125
	    $valeurs_collectees['station_lon'] = $_POST['station_lon'];
125
	    $valeurs_collectees['station_lon'] = $_POST['station_lon'];
126
	    $valeurs_collectees['station_alt'] = $_POST['station_alt'];
126
	    $valeurs_collectees['station_alt'] = $_POST['station_alt'];
127
	    $valeurs_collectees['station_id'] = $_POST['station_id'];
127
	    $valeurs_collectees['station_id'] = $_POST['station_id'];
128
	    $valeurs_collectees['station_code_insee'] = $_POST['station_code_insee'];
128
	    $valeurs_collectees['station_code_insee'] = $_POST['station_code_insee'];
129
	    
129
	    
130
	    return $valeurs_collectees;
130
	    return $valeurs_collectees;
131
    	
131
    	
132
    }
132
    }
133
    
133
    
134
    private function verifierValeursStation($valeurs_a_verifier) {
134
    private function verifierValeursStation($valeurs_a_verifier) {
135
    	
135
    	
136
    	$erreurs = array();
136
    	$erreurs = array();
137
    	
137
    	
138
    	foreach($valeurs_a_verifier as $champ => $valeur) {
138
    	foreach($valeurs_a_verifier as $champ => $valeur) {
139
    		if($champ != 'station_code_insee' && trim($valeur) == '') {
139
    		if($champ != 'station_code_insee' && trim($valeur) == '') {
140
    			$erreurs[$champ] .= ' Ce champ ne peut pas être vide'; 
140
    			$erreurs[$champ] .= ' Ce champ ne peut pas être vide'; 
141
    		}
141
    		}
142
    	}
142
    	}
143
    	
143
    	
144
    	if(!empty($erreurs)) {
144
    	if(!empty($erreurs)) {
145
    		return $erreurs;
145
    		return $erreurs;
146
    	}
146
    	}
147
    	
147
    	
148
    	return true;
148
    	return true;
149
    }
149
    }
150
    
150
    
151
    public function validerFormulaireModificationStation() {
151
    public function validerFormulaireModificationStation() {
152
    	
152
    	
153
    	$valeurs_verifiees = $this->collecterValeursFormulaireModificationStation();
153
    	$valeurs_verifiees = $this->collecterValeursFormulaireModificationStation();
154
    	
154
    	
155
    	$station_dao = new StationDao();
155
    	$station_dao = new StationDao();
156
    	$retour_modification = $station_dao->modifierStation($valeurs_verifiees['station_id'],$valeurs_verifiees);
156
    	$retour_modification = $station_dao->modifierStation($valeurs_verifiees['station_id'],$valeurs_verifiees);
157
    	
157
    	
158
    	if($retour_modification) {
158
    	if($retour_modification) {
159
    		$this->afficherInformationsStation();  
159
    		$this->afficherInformationsStation();  
160
    		$this->setNavigation();
160
    		$this->setNavigation();
161
    	}
161
    	}
162
    	
162
    	
163
    }
163
    }
-
 
164
    
-
 
165
    public function supprimerStation() {
-
 
166
    	
-
 
167
    	$id_station_a_supprimer = $_POST['id_station_a_supprimer'];
-
 
168
    	
-
 
169
    	$individus_station = $this->getIndividusStation($id_station_a_supprimer);
-
 
170
    	
-
 
171
    	if(count($individus_station) > 0) {
-
 
172
    		$donnees = array();
-
 
173
    		$donnees['erreurs'] = 'Impossible de supprimer une station qui contient des données';
-
 
174
    		
-
 
175
    		$this->id_station_en_cours = $id_station_a_supprimer;
-
 
176
    		$this->afficherInformationsStation($donnees); 
-
 
177
    	} else {
-
 
178
    		$station_dao = new StationDao();
-
 
179
    		$retour_suppression = $station_dao->supprimerStation($id_station_a_supprimer);
-
 
180
    		
-
 
181
    		$this->setNavigation();
-
 
182
    		$this->executerActionParDefaut();
-
 
183
    	}
-
 
184
    	
-
 
185
    }
164
        
186
        
165
	// +---------------------------------------------------------------------------------------------------------------+
187
	// +---------------------------------------------------------------------------------------------------------------+
166
    // METHODES D'AFFICHAGES D'INFORMATION
188
    // METHODES D'AFFICHAGES D'INFORMATION
167
    public function afficherlisteStation($param = null) {	
189
    public function afficherlisteStation($param = null) {	
168
    	
190
    	
169
    	$id_utilisateur = AppControleur::getIdUtilisateur();
191
    	$id_utilisateur = AppControleur::getIdUtilisateur();
170
    	
192
    	
171
    	$donnees['stations'] = $this->getListeStations($id_utilisateur);
193
    	$donnees['stations'] = $this->getListeStations($id_utilisateur);
172
        $this->setSortie(self::RENDU_CORPS, $this->getVue('listes/station_liste', $donnees));
194
        $this->setSortie(self::RENDU_CORPS, $this->getVue('listes/station_liste', $donnees));
173
    }
195
    }
174
    
196
    
175
    public function afficherInformationsStation() {
197
	public function getFicheInformationsStation($donnees = array()) {
176
    	
198
    	
177
    	$id_station = $this->id_station_en_cours;
199
    	$id_station = $this->id_station_en_cours;
178
    	
200
    	
179
    	$donnees['id_station'] = $id_station;
201
    	$donnees['id_station'] = $id_station;
180
    	$donnees['infos_station'] = $this->getInformationsStation($id_station);
202
    	$donnees['infos_station'] = $this->getInformationsStation($id_station);
-
 
203
    	
181
    	$donnees['milieux'] = $this->getListeMilieux();
204
    	$donnees['milieux'] = $this->getListeMilieux();
182
    	
205
    	
-
 
206
    	return $this->getVue('fiches/station_fiche', $donnees);
-
 
207
    	
-
 
208
    }
-
 
209
    
-
 
210
    public function afficherInformationsStation($donnees = array()) {
-
 
211
    	
-
 
212
    	$infos_station = $this->getFicheInformationsStation($donnees);
-
 
213
    	
183
    	$this->setSortie(self::RENDU_CORPS, $this->getVue('fiches/station_fiche', $donnees));
214
    	$this->setSortie(self::RENDU_CORPS, $infos_station);
184
    	
215
    	
185
    }
216
    }
186
   
217
   
187
    // +---------------------------------------------------------------------------------------------------------------+
218
    // +---------------------------------------------------------------------------------------------------------------+
188
    // METHODES POUR FABRIQUER LE MENU
219
    // METHODES POUR FABRIQUER LE MENU
189
    public function construireMenuNavigation($id_espece_en_cours = null) {
220
    public function construireMenuNavigation($id_espece_en_cours = null) {
190
    	    	    	
221
    	    	    	
191
    	$id_station_en_cours = $this->id_station_en_cours;
222
    	$id_station_en_cours = $this->id_station_en_cours;
192
    	
223
    	
193
    	if(isset($_GET['id_espece'])) {
224
    	if(isset($_GET['id_espece'])) {
194
    		$id_espece_en_cours = $_GET['id_espece'];
225
    		$id_espece_en_cours = $_GET['id_espece'];
195
    	}
226
    	}
196
 
227
 
197
    	
228
    	
198
    	$stations = $this->getListeStations();
229
    	$stations = $this->getListeStations();
199
    	    	
230
    	    	
200
    	foreach($stations as &$station) {  
231
    	foreach($stations as &$station) {  
201
    		        	
232
    		        	
202
    		$station['url'] = Liens::getUrlConsultationFicheStation($station['id']);
233
    		$station['url'] = Liens::getUrlConsultationFicheStation($station['id']);
203
    	}
234
    	}
204
    	
235
    	
205
    	if($id_station_en_cours != null && $id_station_en_cours != 'saisie') {
236
    	if($id_station_en_cours != null && $id_station_en_cours != 'saisie') {
206
    		$especes_station_en_cours = $this->getEspecesStation($id_station_en_cours);
237
    		$especes_station_en_cours = $this->getEspecesStation($id_station_en_cours);
207
    		
238
    		
208
    	    foreach($especes_station_en_cours as &$espece) {   		
239
    	    foreach($especes_station_en_cours as &$espece) {   		
209
    			$espece['url'] = Liens::getUrlConsultationEspeceStation($id_station_en_cours, $espece['id_espece']);
240
    			$espece['url'] = Liens::getUrlConsultationEspeceStation($id_station_en_cours, $espece['id_espece']);
210
    	    }
241
    	    }
211
    		$stations[$id_station_en_cours]['especes'] = $especes_station_en_cours;
242
    		$stations[$id_station_en_cours]['especes'] = $especes_station_en_cours;
212
    	}
243
    	}
213
    	
244
    	
214
    	$donnees['stations'] = $stations;
245
    	$donnees['stations'] = $stations;
215
    	$donnees['id_station_en_cours'] = $id_station_en_cours;
246
    	$donnees['id_station_en_cours'] = $id_station_en_cours;
216
 
247
 
217
    	$donnees['id_espece_en_cours'] = $id_espece_en_cours;
248
    	$donnees['id_espece_en_cours'] = $id_espece_en_cours;
218
    	
249
    	
219
    	$menu_navigation = $this->getVue('navigation/menu', $donnees);
250
    	$menu_navigation = $this->getVue('navigation/menu', $donnees);
220
    	
251
    	
221
        return $menu_navigation;
252
        return $menu_navigation;
222
        
253
        
223
    }
254
    }
224
    
255
    
225
    public function setNavigation() {
256
    public function setNavigation() {
226
    	$this->setSortie(self::RENDU_NAVIGATION, $this->construireMenuNavigation());
257
    	$this->setSortie(self::RENDU_NAVIGATION, $this->construireMenuNavigation());
227
    }
258
    }
228
    
259
    
229
    // +---------------------------------------------------------------------------------------------------------------+
260
    // +---------------------------------------------------------------------------------------------------------------+
230
    // METHODE D'APPELS AUX DAOS
261
    // METHODE D'APPELS AUX DAOS
231
    protected function getListeStations() { 
262
    protected function getListeStations() { 
232
    	   	
263
    	   	
233
    	$station_dao = new StationDao();
264
    	$station_dao = new StationDao();
234
    	return $station_dao->getListeStations();
265
    	return $station_dao->getListeStations();
235
    }
266
    }
236
    
267
    
237
    private function getInformationsStation($id_station) {
268
    private function getInformationsStation($id_station) {
238
    	
269
    	
239
    	$station_dao = new StationDao();
270
    	$station_dao = new StationDao();
240
    	$infos_station = $station_dao->getInformationsStation($id_station);
271
    	$infos_station = $station_dao->getInformationsStation($id_station);
241
    	
272
    	
242
    	$infos_station['individus'] = $this->getIndividusStation($id_station);
273
    	$infos_station['individus'] = $this->getIndividusStation($id_station);
243
    	
274
    	
244
    	return $infos_station;
275
    	return $infos_station;
245
    }
276
    }
246
    
277
    
247
    private function getEspecesStation($id_station) {
278
    private function getEspecesStation($id_station) {
248
    	
279
    	
249
    	$espece_dao = new EspeceDao();
280
    	$espece_dao = new EspeceDao();
250
    	$liste_especes = $espece_dao->getListeEspecesPourStation($id_station);
281
    	$liste_especes = $espece_dao->getListeEspecesPourStation($id_station);
251
    	
282
    	
252
    	return $liste_especes;
283
    	return $liste_especes;
253
    }
284
    }
254
    
285
    
255
    public function getIndividusStation($id_station) {
286
    public function getIndividusStation($id_station) {
256
    	
287
    	
257
    	$individu_dao = new IndividuDao();
288
    	$individu_dao = new IndividuDao();
258
    	$liste_individus = $individu_dao->getListeIndividusPourStation($id_station);
289
    	$liste_individus = $individu_dao->getListeIndividusPourStation($id_station);
259
    	
290
    	
260
    	return $liste_individus;
291
    	return $liste_individus;
261
    }
292
    }
262
    
293
    
263
	public function getIndividusStationPourEspece($id_station,$id_espece) {
294
	public function getIndividusStationPourEspece($id_station,$id_espece) {
264
    	
295
    	
265
    	$individu_dao = new IndividuDao();
296
    	$individu_dao = new IndividuDao();
266
    	$liste_individus = $individu_dao->getListeIndividusPourStationPourEspece($id_station, $id_espece);
297
    	$liste_individus = $individu_dao->getListeIndividusPourStationPourEspece($id_station, $id_espece);
267
    	
298
    	
268
    	return $liste_individus;
299
    	return $liste_individus;
269
    }
300
    }
270
    
301
    
271
    public function getListeMilieux() {
302
    public function getListeMilieux() {
272
    	
303
    	
273
    	$triple_dao = new TripleDao();
304
    	$triple_dao = new TripleDao();
274
    	$liste_milieux = $triple_dao->getListeMilieux();
305
    	$liste_milieux = $triple_dao->getListeMilieux();
275
    	
306
    	
276
    	return $liste_milieux;
307
    	return $liste_milieux;
277
    }
308
    }
278
}
309
}
279
?>
310
?>