Subversion Repositories Sites.obs-saisons.fr

Rev

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

Rev 70 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 Individu extends aControleur {
14
class Individu extends aControleur {
15
   
15
   
16
	private $id_individu_en_cours = null;
16
	private $id_individu_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_individu'])) {
26
    	if(isset($_GET['id_individu'])) {
27
    		$this->id_individu_en_cours = $_GET['id_individu'];
27
    		$this->id_individu_en_cours = $_GET['id_individu'];
28
    	}
28
    	}
29
    	$this->setNavigation();
29
    	$this->setNavigation();
30
    }
30
    }
31
    
31
    
32
    public function executerActionParDefaut() {
32
    public function executerActionParDefaut() {
33
    	return $this->afficherFormulaireSaisieIndividu();
33
    	return $this->afficherFormulaireSaisieIndividu();
34
    }
34
    }
35
    
35
    
36
    public function afficherFormulaireSaisieIndividu($donnees = array()) {
36
    public function afficherFormulaireSaisieIndividu($donnees = array()) {
37
    	
37
    	
38
    	$formulaire = $this->getFormulaireSaisieIndividu($donnees);
38
    	$formulaire = $this->getFormulaireSaisieIndividu($donnees);
39
    	$this->setSortie(self::RENDU_CORPS, $formulaire);     
39
    	$this->setSortie(self::RENDU_CORPS, $formulaire);     
40
    }
40
    }
41
    
41
    
42
    public function getFormulaireSaisieIndividu($donnees = array()) {
42
    public function getFormulaireSaisieIndividu($donnees = array()) {
-
 
43
    	
-
 
44
        if($donnees == array()) {
-
 
45
		    $donnees['individu_nom'] = '';
-
 
46
    	}
43
    	
47
    	
44
    	$donnees['id_station'] = $_GET['id_station'];
48
    	$donnees['id_station'] = $_GET['id_station'];
45
    	
49
    	
46
    	if(!isset($donnees['id_espece'])) {
50
    	if(!isset($donnees['id_espece'])) {
47
    		$donnees['id_espece'] = $_GET['id_espece'];
51
    		$donnees['id_espece'] = $_GET['id_espece'];
48
    	}
52
    	}
49
    	
53
    	
50
    	$espece_dao = new EspeceDao();
54
    	$espece_dao = new EspeceDao();
51
    	
55
    	
52
    	$donnees['informations_espece'] = $espece_dao->getInformationsEspece($donnees['id_espece']);
56
    	$donnees['informations_espece'] = $espece_dao->getInformationsEspece($donnees['id_espece']);
53
    	return $this->getVue('formulaires/individu_saisie',$donnees);
57
    	return $this->getVue('formulaires/individu_saisie',$donnees);
54
    }
58
    }
55
        
59
    
-
 
60
	public function afficherFormulaireModificationIndividu($donnees = array()) {
-
 
61
		
-
 
62
    	$individu_dao = new IndividuDao();
-
 
63
		
-
 
64
    	$id_individu = $_GET['id_individu'];
56
	// +---------------------------------------------------------------------------------------------------------------+
65
		$donnees['infos_individu'] = $individu_dao->getInformationsIndividu($id_individu);    	
-
 
66
    	$donnees['id_station'] = $_GET['id_station'];
-
 
67
    	$donnees['id_espece'] = $_GET['id_espece'];
-
 
68
    	
57
    // METHODES GENERIQUES
69
    	$espece_dao = new EspeceDao();
-
 
70
    	$donnees['informations_espece'] = $espece_dao->getInformationsEspece($donnees['id_espece']);
-
 
71
    	
-
 
72
    	$this->setSortie(self::RENDU_CORPS,$this->getVue('formulaires/individu_modification',$donnees));
-
 
73
    }
-
 
74
 
58
    public function afficherListeIndividu() {
75
    public function afficherListeIndividu() {
59
    	
76
    	
60
    	$this->setSortie(self::RENDU_CORPS, $this->getListeIndividu());
77
    	$this->setSortie(self::RENDU_CORPS, $this->getListeIndividu());
61
    }
78
    }
62
    
79
    
63
    public function getListeIndividu() {	
80
    public function getListeIndividu() {	
64
    	
81
    	
65
    	$id_utilisateur = AppControleur::getUtilisateur()->getIdentifiantNumerique();
82
    	$id_utilisateur = AppControleur::getUtilisateur()->getIdentifiantNumerique();
66
    	
83
    	
67
    	$id_station = $_GET['id_station'];
84
    	$id_station = $_GET['id_station'];
68
    	$id_espece = $_GET['id_espece'];
85
    	$id_espece = $_GET['id_espece'];
69
    	
86
    	
70
        if(isset($_GET['annee'])) {
87
        if(isset($_GET['annee'])) {
71
    		$donnees['annee'] = $_GET['annee'];
88
    		$donnees['annee'] = $_GET['annee'];
72
    	} else {
89
    	} else {
73
    		$donnees['annee'] = date('Y');
90
    		$donnees['annee'] = date('Y');
74
    	}
91
    	}
75
    	
92
    	
76
    	$espece = new Espece();
93
    	$espece = new Espece();
77
    	$evenements = $espece->getListeEvenementPourEspece($id_espece);
94
    	$evenements = $espece->getListeEvenementPourEspece($id_espece);
78
    	
95
    	
79
    	$individus = $this->getListeIndividus($id_station, $id_espece);
96
    	$individus = $this->getListeIndividus($id_station, $id_espece);
80
    	
97
    	
81
    	foreach($individus as &$individu) {
98
    	foreach($individus as &$individu) {
82
    		
99
    		
83
    		$observation = new Observation();
100
    		$observation = new Observation();
-
 
101
    		
-
 
102
    		if(trim($individu['nom']) == '') {
-
 
103
    			$individu['nom'] = 'Individu sans nom';
-
 
104
    		}
84
    		
105
    		
85
    		$individu['observations'] = $observation->getListeObservationsPourIndividu($individu['id_individu']);    		
106
    		$individu['observations'] = $observation->getListeObservationsPourIndividu($individu['id_individu']);    		
86
    		$individu['url'] = Liens::getUrlConsultationFicheIndividu($id_station, $id_espece, $individu['id_individu']);
107
    		$individu['url'] = Liens::getUrlConsultationFicheIndividu($id_station, $id_espece, $individu['id_individu']);
87
    	}
108
    	}
88
 
109
 
89
    	$donnees['evenements'] = $evenements;
110
    	$donnees['evenements'] = $evenements;
90
    	$donnees['individus'] = $individus;
111
    	$donnees['individus'] = $individus;
91
    	$donnees['id_station'] = $_GET['id_station'];
112
    	$donnees['id_station'] = $_GET['id_station'];
92
    	$donnees['id_espece'] = $_GET['id_espece'];
113
    	$donnees['id_espece'] = $_GET['id_espece'];
93
 
114
 
94
        return $this->getVue('listes/evenement_liste', $donnees);
115
        return $this->getVue('listes/evenement_liste', $donnees);
95
    }
116
    }
96
    
117
    
97
    public function afficherInformationsIndividu() {
118
    public function afficherInformationsIndividu($donnees = array()) {
98
    	
119
    	
99
    	$id_individu = $_GET['id_individu'];
120
    	$id_individu = $_GET['id_individu'];
100
    	$id_espece = $_GET['id_espece'];
121
    	$id_espece = $_GET['id_espece'];
101
    	
122
    	
102
    	$donnees['infos_individu'] = $this->getInformationsIndividu($id_individu);
123
    	$donnees['infos_individu'] = $this->getInformationsIndividu($id_individu);
103
    	$donnees['annees_observations'] = $this->getObservationsPourIndividu($id_individu);
124
    	$donnees['annees_observations'] = $this->getObservationsPourIndividu($id_individu);
104
    	
125
    	
105
		$espece_dao = new EspeceDao();
126
		$espece_dao = new EspeceDao();
106
    	$donnees['infos_espece'] = $espece_dao->getInformationsEspece($id_espece);   
127
    	$donnees['infos_espece'] = $espece_dao->getInformationsEspece($id_espece);   
107
    	
128
    	
108
    	$this->setSortie(self::RENDU_CORPS, $this->getVue('fiches/individu_fiche', $donnees));
129
    	$this->setSortie(self::RENDU_CORPS, $this->getVue('fiches/individu_fiche', $donnees));
109
    	
130
    	
110
    }
131
    }
111
   
132
   
112
    // +---------------------------------------------------------------------------------------------------------------+
133
    // +---------------------------------------------------------------------------------------------------------------+
113
    // METHODES DE VALIDATION DE FORMULAIRE 
134
    // METHODES DE VALIDATION DE FORMULAIRE 
114
	public function validerFormulaireSaisieIndividu() {
135
	public function validerFormulaireSaisieIndividu() {
115
    	
136
    	
-
 
137
    	$valeurs_collectees = $this->collecterValeursFormulaireSaisieIndividu();
-
 
138
    	
-
 
139
	    $verification_ou_erreurs = $this->verifierValeursIndividu($valeurs_collectees);
-
 
140
    	
-
 
141
    	if($verification_ou_erreurs !== true) {
-
 
142
    		
-
 
143
    		$donnees = $valeurs_collectees;
-
 
144
    		
-
 
145
    		$donnees['erreurs'] = $verification_ou_erreurs;
-
 
146
    		$this->afficherFormulaireSaisieIndividu($donnees);
-
 
147
    		return;
-
 
148
    	}
-
 
149
    	
116
    	$valeurs_verifiees = $this->collecterValeursFormulaireSaisieIndividu();
150
    	$valeurs_verifiees = $valeurs_collectees;
117
    	
151
    	
118
    	$individu_dao = new IndividuDao();
152
    	$individu_dao = new IndividuDao();
119
    	$retour_ajout_individu = $individu_dao->ajouterIndividu($valeurs_verifiees);
153
    	$retour_ajout_individu = $individu_dao->ajouterIndividu($valeurs_verifiees);
120
    	
154
    	
121
    	if($id_nouvel_individu = $this->renvoyerIdSiAjoutIndividuEffectue($retour_ajout_individu)) {
155
    	if($id_nouvel_individu = $this->renvoyerIdSiAjoutIndividuEffectue($retour_ajout_individu)) {
122
    		$this->afficherListeIndividu();
156
    		$this->afficherListeIndividu();
123
    		$this->setNavigation();
157
    		$this->setNavigation();
124
    	} else {	    	
158
    	} else {	    	
125
    		$this->afficherFormulaireSaisieIndividu();
159
    		$this->afficherFormulaireSaisieIndividu($donnees);
126
    	}
160
    	}
127
    }
161
    }
128
    
162
    
129
	private function renvoyerIdSiAjoutIndividuEffectue($donnees_retour_dao) {
163
	private function renvoyerIdSiAjoutIndividuEffectue($donnees_retour_dao) {
130
    	
164
    	
131
    	if(isset($donnees_retour_dao['id_nouvel_individu'])) {
165
    	if(isset($donnees_retour_dao['id_nouvel_individu'])) {
132
    		return $donnees_retour_dao['id_nouvel_individu'];
166
    		return $donnees_retour_dao['id_nouvel_individu'];
133
    	}
167
    	}
134
    	
168
    	
135
    	return false;
169
    	return false;
136
    }
170
    }
137
    
171
    
138
    private function collecterValeursFormulaireSaisieIndividu() {
172
    private function collecterValeursFormulaireSaisieIndividu() {
139
    	
173
    	
140
    	$valeurs_verifiees['id_station'] = $_POST['station'];
174
    	$valeurs_verifiees['id_station'] = $_POST['station'];
141
	    $valeurs_verifiees['id_espece'] =  $_POST['espece'];
175
	    $valeurs_verifiees['id_espece'] =  $_POST['espece'];
142
	    $valeurs_verifiees['individu_nom'] = $_POST['individu_nom'];
176
	    $valeurs_verifiees['individu_nom'] = $_POST['individu_nom'];
143
	    
177
	    	    
144
	    //TODO: verifier valeurs plus complètement
-
 
145
	    
-
 
146
	    return $valeurs_verifiees;
178
	    return $valeurs_verifiees;
-
 
179
    	
-
 
180
    }
-
 
181
    
-
 
182
    private function collecterValeursFormulaireModificationIndividu() {
-
 
183
    	
-
 
184
    	$valeurs_verifiees['id_station'] = $_POST['id_station'];
-
 
185
	    $valeurs_verifiees['id_espece'] =  $_POST['id_espece'];
-
 
186
	    $valeurs_verifiees['individu_nom'] = $_POST['individu_nom'];
-
 
187
	    $valeurs_verifiees['id_individu'] = $_POST['id_individu'];
-
 
188
	    	    
-
 
189
	    return $valeurs_verifiees;
-
 
190
    	
-
 
191
    }
-
 
192
    
-
 
193
    private function verifierValeursIndividu($valeurs_a_verifier) {
-
 
194
    	
-
 
195
    	$erreurs = array();
-
 
196
    	
-
 
197
    	foreach($valeurs_a_verifier as $champ => $valeur) {
-
 
198
    		if(trim($valeur) == '') {
-
 
199
    			$erreurs[$champ] .= ' Ce champ ne peut pas être vide'; 
-
 
200
    		}
-
 
201
    	}
-
 
202
    	
-
 
203
    	if(!empty($erreurs)) {
-
 
204
    		return $erreurs;
-
 
205
    	}
-
 
206
    	
-
 
207
    	return true;
-
 
208
    }
-
 
209
    
-
 
210
	public function validerFormulaireModificationIndividu() {
-
 
211
    	
-
 
212
    	$valeurs_collectees = $this->collecterValeursFormulaireModificationIndividu();
-
 
213
    	
-
 
214
	    $verification_ou_erreurs = $this->verifierValeursIndividu($valeurs_collectees);
-
 
215
    	
-
 
216
    	if($verification_ou_erreurs !== true) {
-
 
217
    		
-
 
218
    		$donnees = $valeurs_collectees;
-
 
219
    		
-
 
220
    		$donnees['erreurs'] = $verification_ou_erreurs;
-
 
221
    		$this->afficherFormulaireModificationIndividu($donnees);
-
 
222
    		return;
-
 
223
    	}
-
 
224
    	
-
 
225
    	$valeurs_verifiees = $valeurs_collectees;
-
 
226
    	
-
 
227
    	$id_individu = $valeurs_collectees['id_individu'];
-
 
228
    	    	
-
 
229
    	$individu_dao = new IndividuDao();
-
 
230
    	$retour_modification_individu = $individu_dao->modifierIndividu($id_individu, $valeurs_verifiees);
-
 
231
    	
-
 
232
    	$this->afficherInformationsIndividu();
-
 
233
    }
-
 
234
    
-
 
235
	public function supprimerIndividu() {
-
 
236
    	
-
 
237
    	$id_individu_a_supprimer = $_POST['id_individu_a_supprimer'];
-
 
238
    	
-
 
239
    	$observations_individu = $this->getObservationsPourIndividu($id_individu_a_supprimer);
-
 
240
    	
-
 
241
    	if(count($observations_individu) > 0) {
-
 
242
    		$donnees = array();
-
 
243
    		$donnees['erreurs'] = 'Impossible de supprimer un individu pour lequel on a saisi des données';
-
 
244
    		
-
 
245
    		$this->id_individu_en_cours = $id_individu_a_supprimer;
-
 
246
    		$this->afficherInformationsIndividu($donnees); 
-
 
247
    		
-
 
248
    	} else {
-
 
249
    		
-
 
250
    		$individu_dao = new IndividuDao();
-
 
251
    		$individu_dao->supprimerIndividu($id_individu_a_supprimer);
-
 
252
    		
-
 
253
    		$gestion_station = new Station();
-
 
254
    		$_GET['id_station'] = $_POST['id_station'];
-
 
255
    		
-
 
256
    		$this->setSortie(self::RENDU_CORPS, $gestion_station->getFicheInformationsStation());
-
 
257
    	}
147
    	
258
    	
148
    }
259
    }
149
    
260
    
150
    // +---------------------------------------------------------------------------------------------------------------+
261
    // +---------------------------------------------------------------------------------------------------------------+
151
    // METHODES POUR FABRIQUER LE MENU    
262
    // METHODES POUR FABRIQUER LE MENU    
152
    public function setNavigation() {
263
    public function setNavigation() {
153
    	
264
    	
154
    	$station = new Station();
265
    	$station = new Station();
155
    	$this->setSortie(self::RENDU_NAVIGATION, $station->construireMenuNavigation());
266
    	$this->setSortie(self::RENDU_NAVIGATION, $station->construireMenuNavigation());
156
    }
267
    }
157
    
268
    
158
    protected function getListeIndividus($id_station, $id_espece) {
269
    protected function getListeIndividus($id_station, $id_espece) {
159
    	
270
    	
160
    	$individu_dao = new IndividuDao();
271
    	$individu_dao = new IndividuDao();
161
    	return $individu_dao->getListeIndividusPourStationPourEspece($id_station,$id_espece);
272
    	return $individu_dao->getListeIndividusPourStationPourEspece($id_station,$id_espece);
162
    	
273
    	
163
    }
274
    }
164
    
275
    
165
    private function getInformationsIndividu($id_individu) {
276
    private function getInformationsIndividu($id_individu) {
166
    	
277
    	
167
    	$individu_dao = new IndividuDao();
278
    	$individu_dao = new IndividuDao();
168
    	$infos_individu = $individu_dao->getInformationsIndividu($id_individu);
279
    	$infos_individu = $individu_dao->getInformationsIndividu($id_individu);
169
    	
280
    	
170
    	return $infos_individu;
281
    	return $infos_individu;
171
    }
282
    }
172
    
283
    
173
    private function getObservationsPourIndividu($id_individu) {
284
    private function getObservationsPourIndividu($id_individu) {
174
    	$observation_dao = new ObservationDao();
285
    	$observation_dao = new ObservationDao();
175
    	$liste_observation_pour_individu = $observation_dao->getListeObservationsPourIndividu($id_individu);
286
    	$liste_observation_pour_individu = $observation_dao->getListeObservationsPourIndividu($id_individu);
176
    	
287
    	
177
    	return $liste_observation_pour_individu;
288
    	return $liste_observation_pour_individu;
178
    }
289
    }
179
}
290
}
180
?>
291
?>