Subversion Repositories Sites.obs-saisons.fr

Rev

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

Rev 324 Rev 327
1
<?php
1
<?php
2
 
2
 
3
class OdsObservation extends OdsTriple {
3
class OdsObservation extends OdsTriple {
4
 
4
 
5
	const PREFIXE = 'get';
5
	const PREFIXE = 'get';
6
	const ABBR_LISTE_EVENEMENTS = 'evenement';
6
	const ABBR_LISTE_EVENEMENTS = 'evenement';
7
 
7
 
8
 
8
 
9
/**
9
/**
10
 * Méthodes d'extractions d'informations
10
 * Méthodes d'extractions d'informations
11
 */
11
 */
12
 
12
 
13
	/**
13
	/**
14
     * Méthode appelée avec une requête de type GET.
14
     * Méthode appelée avec une requête de type GET.
15
     *
15
     *
16
     */
16
     */
17
    function getElement($param = array()) {
17
    function getElement($param = array()) {
18
 
18
 
19
    	$type = $param[0];
19
    	$type = $param[0];
20
 
20
 
21
        if ($type == '*' || is_numeric($type)) {
21
        if ($type == '*' || is_numeric($type)) {
22
            $info = $this->getElementParDefaut($param);
22
            $info = $this->getElementParDefaut($param);
23
        } else {
23
        } else {
24
            $methode = self::PREFIXE.$type;
24
            $methode = self::PREFIXE.$type;
25
            if (method_exists($this, $methode)) {
25
            if (method_exists($this, $methode)) {
26
                array_shift($param);
26
                array_shift($param);
27
                $info = $this->$methode($param);
27
                $info = $this->$methode($param);
28
            } else {
28
            } else {
29
                $this->messages[] = "Le type d'information demandé '$type' n'est pas disponible.";
29
                $this->messages[] = "Le type d'information demandé '$type' n'est pas disponible.";
30
            }
30
            }
31
        }
31
        }
32
 
32
 
33
        $this->envoyer($info);
33
        $this->envoyer($info);
34
    }
34
    }
35
 
35
 
36
	private function getElementParDefaut($params) {
36
	private function getElementParDefaut($params) {
37
 
37
 
38
   	}
38
   	}
-
 
39
 
-
 
40
		private function getAnneeMinimumObservation() {
-
 
41
			$requete_annee_min_obs = 'SELECT MIN(YEAR(oo_date)) as min_annee FROM ods_observations '.
-
 
42
														'WHERE oo_date != "0000-00-00"';
-
 
43
			$resultat_min_annee_obs = $this->executerRequete($requete_annee_min_obs);
-
 
44
			return !empty($resultat_min_annee_obs) ? $resultat_min_annee_obs[0]['min_annee'] : Date('Y');
-
 
45
		}
-
 
46
 
-
 
47
		private function getAnneesAyantObservations() {
-
 
48
			$requete_annee_min_obs = 'SELECT DISTINCT YEAR(oo_date) as annee FROM ods_observations '.
-
 
49
														'WHERE oo_date != "0000-00-00" AND YEAR(oo_date) <= "'.date('Y').'" '.
-
 
50
														'ORDER BY annee DESC';
-
 
51
														
-
 
52
			$resultat_annees_ayant_obs = $this->executerRequete($requete_annee_min_obs);
-
 
53
			$annees_ayant_obs = [];
-
 
54
			foreach($resultat_annees_ayant_obs as $res_annee_ayant_obs) {
-
 
55
				$annees_ayant_obs[] = $res_annee_ayant_obs['annee'];
-
 
56
			}
-
 
57
 
-
 
58
			return $annees_ayant_obs;
-
 
59
		}
39
 
60
 
40
   	private function getObservationsPourStation($params) {
61
   	private function getObservationsPourStation($params) {
41
 
62
 
42
   		$id_station = isset($params[0]) ? $params[0] :  '';
63
   		$id_station = isset($params[0]) ? $params[0] :  '';
43
   		$annee = isset($params[1]) ? $params[1] :  '';
64
   		$annee = isset($params[1]) ? $params[1] :  '';
44
 
65
 
45
   		return ;
66
   		return ;
46
 
67
 
47
   	}
68
   	}
48
 
69
 
49
    private function getObservationsPourIndividu($params) {
70
    private function getObservationsPourIndividu($params) {
50
 
71
 
51
    	$id_individu = isset($params[0]) ? $params[0] :  '';
72
    	$id_individu = isset($params[0]) ? $params[0] :  '';
52
   		$annee = isset($params[1]) ? $params[1] :  '';
73
   		$annee = isset($params[1]) ? $params[1] :  '';
53
 
74
 
54
   		$requete_liste_observation_individu = 'SELECT * FROM ods_observations '.
75
   		$requete_liste_observation_individu = 'SELECT * FROM ods_observations '.
55
   												  'WHERE oo_ce_individu ='.$this->proteger($id_individu).' '.
76
   												  'WHERE oo_ce_individu ='.$this->proteger($id_individu).' '.
56
   												  'AND DAY(oo_date) != "00" '.
77
   												  'AND DAY(oo_date) != "00" '.
57
   												  'ORDER BY YEAR(oo_date) DESC, MONTH(oo_date) ASC, DAY(oo_date) ASC ';
78
   												  'ORDER BY YEAR(oo_date) DESC, MONTH(oo_date) ASC, DAY(oo_date) ASC ';
58
 
79
 
59
   		$liste_observation_individu = $this->executerRequete($requete_liste_observation_individu);
80
   		$liste_observation_individu = $this->executerRequete($requete_liste_observation_individu);
60
 
81
 
61
   		$liste_observation_individu_formatees = array();
82
   		$liste_observation_individu_formatees = array();
62
 
83
 
63
   		foreach($liste_observation_individu as $observation_individu) {
84
   		foreach($liste_observation_individu as $observation_individu) {
64
 
85
 
65
   			$annee_obs = date("Y",strtotime($observation_individu['oo_date']));
86
   			$annee_obs = date("Y",strtotime($observation_individu['oo_date']));
66
   			$stade_observation_complet = $this->getInformationEvenementParId($observation_individu['oo_ce_evenement']);
87
   			$stade_observation_complet = $this->getInformationEvenementParId($observation_individu['oo_ce_evenement']);
67
 
88
 
68
   			$abbr_stade_observation = $stade_observation_complet['ot_cle'];
89
   			$abbr_stade_observation = $stade_observation_complet['ot_cle'];
69
 
90
 
70
   			$infos_stades = $this->renvoyerInformationStadeAPartirChaineTriple($abbr_stade_observation);
91
   			$infos_stades = $this->renvoyerInformationStadeAPartirChaineTriple($abbr_stade_observation);
71
 
92
 
72
   			$titre_stade = $infos_stades['nom'];
93
   			$titre_stade = $infos_stades['nom'];
73
   			$numero_stade = $infos_stades['numero'];
94
   			$numero_stade = $infos_stades['numero'];
74
   			$abreviation_stade = $infos_stades['abreviation'];
95
   			$abreviation_stade = $infos_stades['abreviation'];
75
 
96
 
76
   			$tableau_date =  date_parse($observation_individu['oo_date']);
97
   			$tableau_date =  date_parse($observation_individu['oo_date']);
77
 
98
 
78
   			if(!$this->estUneDateInvalide($tableau_date['day'], $tableau_date['month'], $tableau_date['year'])) {
99
   			if(!$this->estUneDateInvalide($tableau_date['day'], $tableau_date['month'], $tableau_date['year'])) {
79
 
100
 
80
	   			$date_observation_formatee = date($this->config['appli']['format_date'], strtotime($observation_individu['oo_date']));
101
	   			$date_observation_formatee = date($this->config['appli']['format_date'], strtotime($observation_individu['oo_date']));
81
	   			$liste_observation_individu_formatees[$annee_obs][$titre_stade][$numero_stade][$observation_individu['oo_id_observation']] = [
102
	   			$liste_observation_individu_formatees[$annee_obs][$titre_stade][$numero_stade][$observation_individu['oo_id_observation']] = [
82
						'date' => $date_observation_formatee,
103
						'date' => $date_observation_formatee,
83
						'absence_evenement' => $observation_individu['oo_absence_evenement']
104
						'absence_evenement' => $observation_individu['oo_absence_evenement']
84
					];
105
					];
85
   			}
106
   			}
86
   		}
107
   		}
87
 
108
 
88
   		krsort($liste_observation_individu_formatees);
109
   		krsort($liste_observation_individu_formatees);
89
 
110
 
90
		return $liste_observation_individu_formatees;
111
		return $liste_observation_individu_formatees;
91
    }
112
    }
92
 
113
 
93
/**
114
/**
94
 * Méthodes de création et modification d'informations
115
 * Méthodes de création et modification d'informations
95
 */
116
 */
96
 
117
 
97
     /**
118
     /**
98
     * Méthode appelée pour mettre à jour un élément
119
     * Méthode appelée pour mettre à jour un élément
99
     */
120
     */
100
    public function updateElement($uid, $params)    {
121
    public function updateElement($uid, $params)    {
101
 
122
 
102
    	$elements_requis = array('id_participant','id_individu', 'id_evenement', 'date_evenement');
123
    	$elements_requis = array('id_participant','id_individu', 'id_evenement', 'date_evenement');
103
    	$erreurs = array();
124
    	$erreurs = array();
104
 
125
 
105
    	foreach($elements_requis as $requis) {
126
    	foreach($elements_requis as $requis) {
106
    		if(!isset($params[$requis])) {
127
    		if(!isset($params[$requis])) {
107
    			$erreurs[$requis] = 'erreur ';
128
    			$erreurs[$requis] = 'erreur ';
108
    		}
129
    		}
109
    	}
130
    	}
110
 
131
 
111
			if(!empty($erreurs)) {
132
			if(!empty($erreurs)) {
112
				$this->envoyer($erreurs);
133
				$this->envoyer($erreurs);
113
				exit;
134
				exit;
114
			}
135
			}
115
 
136
 
116
    	if(!isset($params['annee_en_cours'])) {
137
    	if(!isset($params['annee_en_cours'])) {
117
    		$annee_en_cours = date('Y');
138
    		$annee_en_cours = date('Y');
118
    	} else {
139
    	} else {
119
    		$annee_en_cours = $params['annee_en_cours'];
140
    		$annee_en_cours = $params['annee_en_cours'];
120
    	}
141
    	}
121
 
142
 
122
    	$id_participant = $params['id_participant'];
143
    	$id_participant = $params['id_participant'];
123
    	$id_individu = $params['id_individu'];
144
    	$id_individu = $params['id_individu'];
124
 
145
 
125
			$a_modifier = !empty($params['id_observation']) ? $params['id_observation'] : false;
146
			$a_modifier = !empty($params['id_observation']) ? $params['id_observation'] : false;
126
			$retour = array();
147
			$retour = array();
127
 
148
 
128
			$date_evenement = $this->formaterDateObservationPourBdd($params['date_evenement']);
149
			$date_evenement = $this->formaterDateObservationPourBdd($params['date_evenement']);
129
 
150
 
130
			// dans le cas des ajouts ou modifications on vérifie que l'on insère pas une date
151
			// dans le cas des ajouts ou modifications on vérifie que l'on insère pas une date
131
			// déjà existante, car ça n'a pas de sens pour un même individu et stade
152
			// déjà existante, car ça n'a pas de sens pour un même individu et stade
132
			if (strpos($date_evenement, '00-00') === false) {
153
			if (strpos($date_evenement, '00-00') === false) {
133
				$requete_existe_avec_cette_date = 'SELECT * FROM ods_observations '.
154
				$requete_existe_avec_cette_date = 'SELECT * FROM ods_observations '.
134
																			'WHERE oo_ce_participant = '.$this->proteger($id_participant).' AND '.
155
																			'WHERE oo_ce_participant = '.$this->proteger($id_participant).' AND '.
135
																			'oo_ce_individu = '.$this->proteger($id_individu).' AND '.
156
																			'oo_ce_individu = '.$this->proteger($id_individu).' AND '.
136
																			'oo_ce_evenement = '.$this->proteger($params['id_evenement']).' AND '.
157
																			'oo_ce_evenement = '.$this->proteger($params['id_evenement']).' AND '.
137
																			'oo_date = '.$this->proteger($date_evenement);
158
																			'oo_date = '.$this->proteger($date_evenement);
138
				$resultat_requete_existe_avec_cette_date = $this->executerRequete($requete_existe_avec_cette_date);
159
				$resultat_requete_existe_avec_cette_date = $this->executerRequete($requete_existe_avec_cette_date);
139
 
160
 
140
				if(!empty($resultat_requete_existe_avec_cette_date)) {
161
				if(!empty($resultat_requete_existe_avec_cette_date)) {
141
					$this->envoyer([
162
					$this->envoyer([
142
						'erreurs' => [
163
						'erreurs' => [
143
							'date' => 'Une observation à cette date existe déjà pour ce stade et cet individu'
164
							'date' => 'Une observation à cette date existe déjà pour ce stade et cet individu'
144
						]
165
						]
145
					]);
166
					]);
146
					exit;
167
					exit;
147
				}
168
				}
148
			}
169
			}
149
 
170
 
150
    	$obs_a_traiter = array(
171
    	$obs_a_traiter = array(
151
				'date_evenement' => $date_evenement,
172
				'date_evenement' => $date_evenement,
152
    		'id_evenement' => $params['id_evenement'],
173
    		'id_evenement' => $params['id_evenement'],
153
	    	'id_individu' => $params['id_individu'],
174
	    	'id_individu' => $params['id_individu'],
154
				'absence_observation' => 0,
175
				'absence_observation' => 0,
155
    		'commentaire' => '');
176
    		'commentaire' => '');
156
 
177
 
157
    	if($a_modifier) {
178
    	if($a_modifier) {
158
    		$obs_a_traiter['id_observation'] = $a_modifier;
179
    		$obs_a_traiter['id_observation'] = $a_modifier;
159
    		$retour = $this->modifierObservation($id_participant, $obs_a_traiter);
180
    		$retour = $this->modifierObservation($id_participant, $obs_a_traiter);
160
    	} else {
181
    	} else {
161
				// le signalement de l'absence d'un stade pour une année et un individu donné est toujours
182
				// le signalement de l'absence d'un stade pour une année et un individu donné est toujours
162
				// une nouvelle observation (car cela bloque la saisie d'obs supplementaires pour ce stade,
183
				// une nouvelle observation (car cela bloque la saisie d'obs supplementaires pour ce stade,
163
				// cette année et cet individu)
184
				// cette année et cet individu)
164
				if(!empty($params['absence_observation']) && $params['absence_observation'] == 1) {
185
				if(!empty($params['absence_observation']) && $params['absence_observation'] == 1) {
165
					// si l'observation d'absence concerne l'année en cours on la met à la date du jour
186
					// si l'observation d'absence concerne l'année en cours on la met à la date du jour
166
					// sinon on la met arbitrairement au premier janvier de l'année concernée
187
					// sinon on la met arbitrairement au premier janvier de l'année concernée
167
					$obs_a_traiter['date_evenement'] = ($annee_en_cours == date('Y')) ? date('Y-m-d') : $annee_en_cours.'-01-01';
188
					$obs_a_traiter['date_evenement'] = ($annee_en_cours == date('Y')) ? date('Y-m-d') : $annee_en_cours.'-01-01';
168
					$obs_a_traiter['absence_observation'] = $params['absence_observation'];
189
					$obs_a_traiter['absence_observation'] = $params['absence_observation'];
169
				}
190
				}
170
    		$retour = ['id_observation' => $this->insererObservation($id_participant, $obs_a_traiter)];
191
    		$retour = ['id_observation' => $this->insererObservation($id_participant, $obs_a_traiter)];
171
    	}
192
    	}
172
 
193
 
173
      $this->envoyer($retour);
194
      $this->envoyer($retour);
174
    }
195
    }
175
 
196
 
176
    private function insererObservation($id_participant, $donnees_obs_a_inserer) {
197
    private function insererObservation($id_participant, $donnees_obs_a_inserer) {
177
 
198
 
178
    	$nouvel_ordre = 1;
199
    	$nouvel_ordre = 1;
179
 
200
 
180
    	$requete_max_ordre = 'SELECT MAX(oo_ordre) as max_ordre FROM ods_observations WHERE '.
201
    	$requete_max_ordre = 'SELECT MAX(oo_ordre) as max_ordre FROM ods_observations WHERE '.
181
    		'oo_ce_participant = '.$this->proteger($id_participant);
202
    		'oo_ce_participant = '.$this->proteger($id_participant);
182
 
203
 
183
    	$resultat_requete_ordre = $this->executerRequete($requete_max_ordre);
204
    	$resultat_requete_ordre = $this->executerRequete($requete_max_ordre);
184
 
205
 
185
    	if(count($resultat_requete_ordre) > 0) {
206
    	if(count($resultat_requete_ordre) > 0) {
186
    		$nouvel_ordre = $resultat_requete_ordre[0]['max_ordre'] + 1;
207
    		$nouvel_ordre = $resultat_requete_ordre[0]['max_ordre'] + 1;
187
    	}
208
    	}
188
 
209
 
189
    	$requete_nouvelle_observation = 'INSERT INTO ods_observations '.
210
    	$requete_nouvelle_observation = 'INSERT INTO ods_observations '.
190
    		'(oo_ce_participant, oo_ordre, oo_ce_individu, oo_ce_evenement, oo_date, oo_commentaire, oo_date_saisie, oo_date_modification, oo_absence_evenement) '.
211
    		'(oo_ce_participant, oo_ordre, oo_ce_individu, oo_ce_evenement, oo_date, oo_commentaire, oo_date_saisie, oo_date_modification, oo_absence_evenement) '.
191
    		'VALUES '.
212
    		'VALUES '.
192
    		'( '.
213
    		'( '.
193
    		    $this->proteger($id_participant).','.
214
    		    $this->proteger($id_participant).','.
194
	    		$this->proteger($nouvel_ordre).','.
215
	    		$this->proteger($nouvel_ordre).','.
195
	    		$this->proteger($donnees_obs_a_inserer['id_individu']).','.
216
	    		$this->proteger($donnees_obs_a_inserer['id_individu']).','.
196
	    		$this->proteger($donnees_obs_a_inserer['id_evenement']).','.
217
	    		$this->proteger($donnees_obs_a_inserer['id_evenement']).','.
197
	    		$this->proteger($donnees_obs_a_inserer['date_evenement']).','.
218
	    		$this->proteger($donnees_obs_a_inserer['date_evenement']).','.
198
	    		'"",'.
219
	    		'"",'.
199
	    		'NOW(),'.
220
	    		'NOW(),'.
200
	    		'NOW(),'.
221
	    		'NOW(),'.
201
					$this->proteger($donnees_obs_a_inserer['absence_observation']).
222
					$this->proteger($donnees_obs_a_inserer['absence_observation']).
202
    		')';
223
    		')';
203
 
224
 
204
	    $this->executerRequeteSimple($requete_nouvelle_observation);
225
	    $this->executerRequeteSimple($requete_nouvelle_observation);
205
			return $this->renvoyerDernierIdInsere();
226
			return $this->renvoyerDernierIdInsere();
206
    }
227
    }
207
 
228
 
208
	private function modifierObservation($id_participant, $donnees_obs_a_inserer) {
229
	private function modifierObservation($id_participant, $donnees_obs_a_inserer) {
209
 
230
 
210
			$requete_obs_existante = 'SELECT * FROM ods_observations '.
231
			$requete_obs_existante = 'SELECT * FROM ods_observations '.
211
												'WHERE oo_id_observation = '.$this->proteger($donnees_obs_a_inserer['id_observation']);
232
												'WHERE oo_id_observation = '.$this->proteger($donnees_obs_a_inserer['id_observation']);
212
			$obs_existante = $this->executerRequete($requete_obs_existante);
233
			$obs_existante = $this->executerRequete($requete_obs_existante);
213
 
234
 
214
			if(empty($obs_existante)) {
235
			if(empty($obs_existante)) {
215
				return false;
236
				return false;
216
			}
237
			}
217
 
238
 
218
			$obs_existante = $obs_existante[0];
239
			$obs_existante = $obs_existante[0];
219
 
240
 
220
			$tableau_date =  date_parse($donnees_obs_a_inserer['date_evenement']);
241
			$tableau_date =  date_parse($donnees_obs_a_inserer['date_evenement']);
221
			$est_une_suppression_obs = $this->estUneDateInvalide($tableau_date['day'], $tableau_date['month'], $tableau_date['year']);
242
			$est_une_suppression_obs = $this->estUneDateInvalide($tableau_date['day'], $tableau_date['month'], $tableau_date['year']);
222
 
243
 
223
			$resultat = true;
244
			$resultat = true;
224
			// Pour supprimer une observation, on indique une date invalide contenant seulement son année.
245
			// Pour supprimer une observation, on indique une date invalide contenant seulement son année.
225
			// Celle-ci n'est du coup pas supprimée mais plutôt désactivée car le reste du programme
246
			// Celle-ci n'est du coup pas supprimée mais plutôt désactivée car le reste du programme
226
			// ne tient normalement pas compte des obs avec des dates au format 00-00-yyyy (où yyyy est l'année où elle a eu lieu).
247
			// ne tient normalement pas compte des obs avec des dates au format 00-00-yyyy (où yyyy est l'année où elle a eu lieu).
227
			// Ceci permet de garder les données et les faires traiter par Isabelle.
248
			// Ceci permet de garder les données et les faires traiter par Isabelle.
228
			// TODO: on pourrait faire bien mieux mais ça fonctionne et changer le système demanderait
249
			// TODO: on pourrait faire bien mieux mais ça fonctionne et changer le système demanderait
229
			// plus de temps mais ça serait une bonne chose à faire.
250
			// plus de temps mais ça serait une bonne chose à faire.
230
			// Par contre si c'est une obs de signalement d'absence d'évènement on la supprime carrément
251
			// Par contre si c'est une obs de signalement d'absence d'évènement on la supprime carrément
231
			// car ça n'a pas d'interêt à être gardé (car c'est surement pour saisir une vraie obs après)
252
			// car ça n'a pas d'interêt à être gardé (car c'est surement pour saisir une vraie obs après)
232
			if($est_une_suppression_obs && $obs_existante['oo_absence_evenement'] == 1) {
253
			if($est_une_suppression_obs && $obs_existante['oo_absence_evenement'] == 1) {
233
 
254
 
234
				$requete_suppression_observation = 'DELETE FROM ods_observations '.
255
				$requete_suppression_observation = 'DELETE FROM ods_observations '.
235
					'WHERE oo_id_observation = '.$this->proteger($donnees_obs_a_inserer['id_observation']).' '.
256
					'WHERE oo_id_observation = '.$this->proteger($donnees_obs_a_inserer['id_observation']).' '.
236
					'AND oo_absence_evenement = 1';
257
					'AND oo_absence_evenement = 1';
237
					
258
 
238
					$this->executerRequeteSimple($requete_suppression_observation);
259
					$this->executerRequeteSimple($requete_suppression_observation);
239
			} else {
260
			} else {
240
				$requete_modification_observation = 'UPDATE ods_observations '.
261
				$requete_modification_observation = 'UPDATE ods_observations '.
241
					'SET '.
262
					'SET '.
242
						'oo_date = '.$this->proteger($donnees_obs_a_inserer['date_evenement']).', '.
263
						'oo_date = '.$this->proteger($donnees_obs_a_inserer['date_evenement']).', '.
243
						'oo_commentaire = '.$this->proteger($donnees_obs_a_inserer['commentaire']).', '.
264
						'oo_commentaire = '.$this->proteger($donnees_obs_a_inserer['commentaire']).', '.
244
						'oo_date_modification = NOW() '.
265
						'oo_date_modification = NOW() '.
245
					'WHERE oo_id_observation = '.$donnees_obs_a_inserer['id_observation'].' '.
266
					'WHERE oo_id_observation = '.$donnees_obs_a_inserer['id_observation'].' '.
246
					'AND oo_ce_participant = '.$this->proteger($id_participant);
267
					'AND oo_ce_participant = '.$this->proteger($id_participant);
247
 
268
 
248
					$resultat = $this->executerRequeteSimple($requete_modification_observation);
269
					$resultat = $this->executerRequeteSimple($requete_modification_observation);
249
			}
270
			}
250
 
271
 
251
    	return $resultat;
272
    	return $resultat;
252
    }
273
    }
253
 
274
 
254
    private function renvoyerIdObservationSiEvenementDejaObserveCetteAnnee($id_evenement, $tableau_observations_cette_annee) {
275
    private function renvoyerIdObservationSiEvenementDejaObserveCetteAnnee($id_evenement, $tableau_observations_cette_annee) {
255
 
276
 
256
    	foreach($tableau_observations_cette_annee as $observation_cette_annee) {
277
    	foreach($tableau_observations_cette_annee as $observation_cette_annee) {
257
 
278
 
258
    		if($id_evenement == $observation_cette_annee['oo_ce_evenement']) {
279
    		if($id_evenement == $observation_cette_annee['oo_ce_evenement']) {
259
    			return $observation_cette_annee['oo_id_observation'];
280
    			return $observation_cette_annee['oo_id_observation'];
260
    		}
281
    		}
261
    	}
282
    	}
262
 
283
 
263
    	return false;
284
    	return false;
264
    }
285
    }
265
 
286
 
266
	private function renvoyerIdEvenementSiChampDeFormulaireObservation($champ) {
287
	private function renvoyerIdEvenementSiChampDeFormulaireObservation($champ) {
267
 
288
 
268
    	$tab_champ = explode('observation_',$champ);
289
    	$tab_champ = explode('observation_',$champ);
269
 
290
 
270
    	if(count($tab_champ) > 1 && is_numeric($tab_champ[1])) {
291
    	if(count($tab_champ) > 1 && is_numeric($tab_champ[1])) {
271
    		return $tab_champ[1];
292
    		return $tab_champ[1];
272
    	}
293
    	}
273
 
294
 
274
    	return false;
295
    	return false;
275
    }
296
    }
276
 
297
 
277
    private function formaterDateObservationPourBdd($date) {
298
    private function formaterDateObservationPourBdd($date) {
278
 
299
 
279
		$format = $this->config['appli']['format_date'];
300
		$format = $this->config['appli']['format_date'];
280
 
301
 
281
		if(!isset($format)) {
302
		if(!isset($format)) {
282
			$format = 'd/m/Y';
303
			$format = 'd/m/Y';
283
		}
304
		}
284
 
305
 
285
		$recherche = array('d','m','Y');
306
		$recherche = array('d','m','Y');
286
		$remplacement = array('([0-9]{1,2})','([0-9]{1,2})','([0-9]{4})');
307
		$remplacement = array('([0-9]{1,2})','([0-9]{1,2})','([0-9]{4})');
287
 
308
 
288
		$pattern_date_simple = str_replace($recherche, $remplacement, $format);
309
		$pattern_date_simple = str_replace($recherche, $remplacement, $format);
289
 
310
 
290
		$date_tab = explode('/', $date);
311
		$date_tab = explode('/', $date);
291
		$time = mktime(0,0,0,$date_tab[1],$date_tab[0],$date_tab[2]);
312
		$time = mktime(0,0,0,$date_tab[1],$date_tab[0],$date_tab[2]);
292
 
313
 
293
		if($this->estUneDateInvalide($date_tab[1],$date_tab[0],$date_tab[2])) {
314
		if($this->estUneDateInvalide($date_tab[1],$date_tab[0],$date_tab[2])) {
294
			$date_a_renvoyer = $date_tab[2].'-'.$date_tab[1].'-'.$date_tab[0];
315
			$date_a_renvoyer = $date_tab[2].'-'.$date_tab[1].'-'.$date_tab[0];
295
		} else {
316
		} else {
296
			$date_a_renvoyer = date('Y-m-d', $time);
317
			$date_a_renvoyer = date('Y-m-d', $time);
297
		}
318
		}
298
 
319
 
299
		return $date_a_renvoyer;
320
		return $date_a_renvoyer;
300
	}
321
	}
301
 
322
 
302
	private function estUneDateInvalide($jour, $mois, $annee) {
323
	private function estUneDateInvalide($jour, $mois, $annee) {
303
		return ($jour == '00' || $mois == '00' || $annee == '0000');
324
		return ($jour == '00' || $mois == '00' || $annee == '0000');
304
	}
325
	}
305
 
326
 
306
    /**
327
    /**
307
     * Méthode appelée pour supprimer un élément
328
     * Méthode appelée pour supprimer un élément
308
     */
329
     */
309
    public function deleteElement($uid) {
330
    public function deleteElement($uid) {
310
 
331
 
311
        // Envoie sur la sortie standard
332
        // Envoie sur la sortie standard
312
        $this->envoyer();
333
        $this->envoyer();
313
    }
334
    }
314
}
335
}
315
?>
336
?>