Subversion Repositories Sites.obs-saisons.fr

Rev

Rev 63 | Rev 210 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
31 aurelien 1
<?php
2
// declare(encoding='UTF-8');
3
/**
4
 * Classe de test des Controleurs.
5
 *
6
 * @package     Collection
7
 * @category    Php 5.2
8
 * @author      Jean-Pascal MILCENT <jpm@tela-botanica.org>
9
 * @copyright   2010 Tela-Botanica
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
12
 * @version     SVN: $Id: Fiche.php 152 2010-09-06 16:19:12Z jpm $
13
 */
14
class Individu extends aControleur {
15
 
16
	private $id_individu_en_cours = null;
17
 
18
    public function __construct()  {
19
 
20
		parent::__construct();
21
        $this->initialiser();
22
    }
23
 
24
    public function initialiser() {
25
 
70 aurelien 26
    	if(isset($_GET['id_individu'])) {
27
    		$this->id_individu_en_cours = $_GET['id_individu'];
28
    	}
31 aurelien 29
    	$this->setNavigation();
30
    }
31
 
32
    public function executerActionParDefaut() {
35 aurelien 33
    	return $this->afficherFormulaireSaisieIndividu();
31 aurelien 34
    }
35
 
35 aurelien 36
    public function afficherFormulaireSaisieIndividu($donnees = array()) {
43 aurelien 37
 
35 aurelien 38
    	$formulaire = $this->getFormulaireSaisieIndividu($donnees);
31 aurelien 39
    	$this->setSortie(self::RENDU_CORPS, $formulaire);
40
    }
35 aurelien 41
 
42
    public function getFormulaireSaisieIndividu($donnees = array()) {
44 aurelien 43
 
44
    	$donnees['id_station'] = $_GET['id_station'];
45
 
46
    	if(!isset($donnees['id_espece'])) {
47
    		$donnees['id_espece'] = $_GET['id_espece'];
48
    	}
49
 
50
    	$espece_dao = new EspeceDao();
51
 
52
    	$donnees['informations_espece'] = $espece_dao->getInformationsEspece($donnees['id_espece']);
35 aurelien 53
    	return $this->getVue('formulaires/individu_saisie',$donnees);
54
    }
31 aurelien 55
 
56
	// +---------------------------------------------------------------------------------------------------------------+
57
    // METHODES GENERIQUES
44 aurelien 58
    public function afficherListeIndividu() {
31 aurelien 59
 
44 aurelien 60
    	$this->setSortie(self::RENDU_CORPS, $this->getListeIndividu());
61
    }
62
 
63
    public function getListeIndividu() {
64
 
31 aurelien 65
    	$id_utilisateur = AppControleur::getUtilisateur()->getIdentifiantNumerique();
66
 
35 aurelien 67
    	$id_station = $_GET['id_station'];
68
    	$id_espece = $_GET['id_espece'];
69
 
44 aurelien 70
        if(isset($_GET['annee'])) {
71
    		$donnees['annee'] = $_GET['annee'];
72
    	} else {
73
    		$donnees['annee'] = date('Y');
74
    	}
75
 
31 aurelien 76
    	$espece = new Espece();
77
    	$evenements = $espece->getListeEvenementPourEspece($id_espece);
78
 
35 aurelien 79
    	$individus = $this->getListeIndividus($id_station, $id_espece);
80
 
31 aurelien 81
    	foreach($individus as &$individu) {
82
 
83
    		$observation = new Observation();
84
 
44 aurelien 85
    		$individu['observations'] = $observation->getListeObservationsPourIndividu($individu['id_individu']);
70 aurelien 86
    		$individu['url'] = Liens::getUrlConsultationFicheIndividu($id_station, $id_espece, $individu['id_individu']);
31 aurelien 87
    	}
88
 
89
    	$donnees['evenements'] = $evenements;
90
    	$donnees['individus'] = $individus;
91
    	$donnees['id_station'] = $_GET['id_station'];
92
    	$donnees['id_espece'] = $_GET['id_espece'];
93
 
44 aurelien 94
        return $this->getVue('listes/evenement_liste', $donnees);
31 aurelien 95
    }
96
 
97
    public function afficherInformationsIndividu() {
98
 
43 aurelien 99
    	$id_individu = $_GET['id_individu'];
100
    	$id_espece = $_GET['id_espece'];
31 aurelien 101
 
102
    	$donnees['infos_individu'] = $this->getInformationsIndividu($id_individu);
44 aurelien 103
    	$donnees['annees_observations'] = $this->getObservationsPourIndividu($id_individu);
31 aurelien 104
 
105
		$espece_dao = new EspeceDao();
106
    	$donnees['infos_espece'] = $espece_dao->getInformationsEspece($id_espece);
43 aurelien 107
 
31 aurelien 108
    	$this->setSortie(self::RENDU_CORPS, $this->getVue('fiches/individu_fiche', $donnees));
109
 
110
    }
111
 
112
    // +---------------------------------------------------------------------------------------------------------------+
35 aurelien 113
    // METHODES DE VALIDATION DE FORMULAIRE
114
	public function validerFormulaireSaisieIndividu() {
115
 
116
    	$valeurs_verifiees = $this->collecterValeursFormulaireSaisieIndividu();
117
 
44 aurelien 118
    	$individu_dao = new IndividuDao();
119
    	$retour_ajout_individu = $individu_dao->ajouterIndividu($valeurs_verifiees);
35 aurelien 120
 
44 aurelien 121
    	if($id_nouvel_individu = $this->renvoyerIdSiAjoutIndividuEffectue($retour_ajout_individu)) {
122
    		$this->afficherListeIndividu();
123
    		$this->setNavigation();
124
    	} else {
125
    		$this->afficherFormulaireSaisieIndividu();
126
    	}
35 aurelien 127
    }
128
 
44 aurelien 129
	private function renvoyerIdSiAjoutIndividuEffectue($donnees_retour_dao) {
130
 
131
    	if(isset($donnees_retour_dao['id_nouvel_individu'])) {
132
    		return $donnees_retour_dao['id_nouvel_individu'];
133
    	}
134
 
135
    	return false;
136
    }
137
 
35 aurelien 138
    private function collecterValeursFormulaireSaisieIndividu() {
139
 
140
    	$valeurs_verifiees['id_station'] = $_POST['station'];
141
	    $valeurs_verifiees['id_espece'] =  $_POST['espece'];
142
	    $valeurs_verifiees['individu_nom'] = $_POST['individu_nom'];
143
 
144
	    //TODO: verifier valeurs plus complètement
145
 
146
	    return $valeurs_verifiees;
147
 
148
    }
149
 
150
    // +---------------------------------------------------------------------------------------------------------------+
31 aurelien 151
    // METHODES POUR FABRIQUER LE MENU
152
    public function setNavigation() {
153
 
154
    	$station = new Station();
155
    	$this->setSortie(self::RENDU_NAVIGATION, $station->construireMenuNavigation());
156
    }
157
 
35 aurelien 158
    protected function getListeIndividus($id_station, $id_espece) {
31 aurelien 159
 
160
    	$individu_dao = new IndividuDao();
35 aurelien 161
    	return $individu_dao->getListeIndividusPourStationPourEspece($id_station,$id_espece);
31 aurelien 162
 
163
    }
164
 
165
    private function getInformationsIndividu($id_individu) {
166
 
167
    	$individu_dao = new IndividuDao();
168
    	$infos_individu = $individu_dao->getInformationsIndividu($id_individu);
169
 
170
    	return $infos_individu;
171
    }
44 aurelien 172
 
173
    private function getObservationsPourIndividu($id_individu) {
174
    	$observation_dao = new ObservationDao();
175
    	$liste_observation_pour_individu = $observation_dao->getListeObservationsPourIndividu($id_individu);
176
 
177
    	return $liste_observation_pour_individu;
178
    }
70 aurelien 179
}
180
?>