Subversion Repositories Sites.obs-saisons.fr

Rev

Rev 320 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 320 Rev 324
Line 76... Line 76...
76
   			$tableau_date =  date_parse($observation_individu['oo_date']);
76
   			$tableau_date =  date_parse($observation_individu['oo_date']);
Line 77... Line 77...
77
 
77
 
Line 78... Line 78...
78
   			if(!$this->estUneDateInvalide($tableau_date['day'], $tableau_date['month'], $tableau_date['year'])) {
78
   			if(!$this->estUneDateInvalide($tableau_date['day'], $tableau_date['month'], $tableau_date['year'])) {
79
 
-
 
80
	   			$date_observation_formatee = date($this->config['appli']['format_date'], strtotime($observation_individu['oo_date']));
79
 
-
 
80
	   			$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']] = [
-
 
82
						'date' => $date_observation_formatee,
81
 
83
						'absence_evenement' => $observation_individu['oo_absence_evenement']
82
	   			$liste_observation_individu_formatees[$annee_obs][$titre_stade][$numero_stade][$observation_individu['oo_id_observation']] = $date_observation_formatee;
-
 
83
   			}
84
					];
Line 84... Line 85...
84
 
85
   			}
Line 85... Line 86...
85
   		}
86
   		}
Line 105... Line 106...
105
    		if(!isset($params[$requis])) {
106
    		if(!isset($params[$requis])) {
106
    			$erreurs[$requis] = 'erreur ';
107
    			$erreurs[$requis] = 'erreur ';
107
    		}
108
    		}
108
    	}
109
    	}
Line -... Line 110...
-
 
110
 
-
 
111
			if(!empty($erreurs)) {
-
 
112
				$this->envoyer($erreurs);
-
 
113
				exit;
-
 
114
			}
109
 
115
 
110
    	if(!isset($params['annee_en_cours'])) {
116
    	if(!isset($params['annee_en_cours'])) {
111
    		$annee_en_cours = date('Y');
117
    		$annee_en_cours = date('Y');
112
    	} else {
118
    	} else {
113
    		$annee_en_cours = $params['annee_en_cours'];
119
    		$annee_en_cours = $params['annee_en_cours'];
Line 114... Line -...
114
    	}
-
 
115
 
-
 
116
    	if(!empty($erreurs)) {
-
 
117
    		$this->envoyer($erreurs);
-
 
118
				exit;
-
 
119
    	}
120
    	}
120
 
121
 
Line 121... Line 122...
121
    	$id_participant = $params['id_participant'];
122
    	$id_participant = $params['id_participant'];
122
    	$id_individu = $params['id_individu'];
123
    	$id_individu = $params['id_individu'];
Line 123... Line 124...
123
 
124
 
Line 124... Line 125...
124
			$a_modifier_ou_inserer = !empty($params['id_observation']) ? $params['id_observation'] : false;
125
			$a_modifier = !empty($params['id_observation']) ? $params['id_observation'] : false;
Line 148... Line 149...
148
 
149
 
149
    	$obs_a_traiter = array(
150
    	$obs_a_traiter = array(
150
				'date_evenement' => $date_evenement,
151
				'date_evenement' => $date_evenement,
151
    		'id_evenement' => $params['id_evenement'],
152
    		'id_evenement' => $params['id_evenement'],
-
 
153
	    	'id_individu' => $params['id_individu'],
152
	    	'id_individu' => $params['id_individu'],
154
				'absence_observation' => 0,
Line 153... Line 155...
153
    		'commentaire' => '');
155
    		'commentaire' => '');
154
 
156
 
155
    	if($a_modifier_ou_inserer) {
157
    	if($a_modifier) {
156
    		$obs_a_traiter['id_observation'] = $a_modifier_ou_inserer;
158
    		$obs_a_traiter['id_observation'] = $a_modifier;
-
 
159
    		$retour = $this->modifierObservation($id_participant, $obs_a_traiter);
-
 
160
    	} else {
-
 
161
				// 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,
-
 
163
				// cette année et cet individu)
-
 
164
				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
-
 
166
					// 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';
157
    		$this->modifierObservation($id_participant, $obs_a_traiter);
168
					$obs_a_traiter['absence_observation'] = $params['absence_observation'];
158
    	} else {
169
				}
Line 159... Line 170...
159
    		$retour = ['id_observation' => $this->insererObservation($id_participant, $obs_a_traiter)];
170
    		$retour = ['id_observation' => $this->insererObservation($id_participant, $obs_a_traiter)];
160
    	}
171
    	}
Line 174... Line 185...
174
    	if(count($resultat_requete_ordre) > 0) {
185
    	if(count($resultat_requete_ordre) > 0) {
175
    		$nouvel_ordre = $resultat_requete_ordre[0]['max_ordre'] + 1;
186
    		$nouvel_ordre = $resultat_requete_ordre[0]['max_ordre'] + 1;
176
    	}
187
    	}
Line 177... Line 188...
177
 
188
 
178
    	$requete_nouvelle_observation = 'INSERT INTO ods_observations '.
189
    	$requete_nouvelle_observation = 'INSERT INTO ods_observations '.
179
    		'(oo_ce_participant, oo_ordre, oo_ce_individu, oo_ce_evenement, oo_date, oo_commentaire, oo_date_saisie, oo_date_modification) '.
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) '.
180
    		'VALUES '.
191
    		'VALUES '.
181
    		'( '.
192
    		'( '.
182
    		    $this->proteger($id_participant).','.
193
    		    $this->proteger($id_participant).','.
183
	    		$this->proteger($nouvel_ordre).','.
194
	    		$this->proteger($nouvel_ordre).','.
184
	    		$this->proteger($donnees_obs_a_inserer['id_individu']).','.
195
	    		$this->proteger($donnees_obs_a_inserer['id_individu']).','.
185
	    		$this->proteger($donnees_obs_a_inserer['id_evenement']).','.
196
	    		$this->proteger($donnees_obs_a_inserer['id_evenement']).','.
186
	    		$this->proteger($donnees_obs_a_inserer['date_evenement']).','.
197
	    		$this->proteger($donnees_obs_a_inserer['date_evenement']).','.
187
	    		'"",'.
198
	    		'"",'.
188
	    		'NOW(),'.
199
	    		'NOW(),'.
-
 
200
	    		'NOW(),'.
189
	    		'NOW()'.
201
					$this->proteger($donnees_obs_a_inserer['absence_observation']).
Line 190... Line 202...
190
    		')';
202
    		')';
191
 
203
 
192
	    $this->executerRequeteSimple($requete_nouvelle_observation);
204
	    $this->executerRequeteSimple($requete_nouvelle_observation);
Line 193... Line 205...
193
			return $this->renvoyerDernierIdInsere();
205
			return $this->renvoyerDernierIdInsere();
Line -... Line 206...
-
 
206
    }
-
 
207
 
-
 
208
	private function modifierObservation($id_participant, $donnees_obs_a_inserer) {
-
 
209
 
-
 
210
			$requete_obs_existante = 'SELECT * FROM ods_observations '.
-
 
211
												'WHERE oo_id_observation = '.$this->proteger($donnees_obs_a_inserer['id_observation']);
-
 
212
			$obs_existante = $this->executerRequete($requete_obs_existante);
-
 
213
 
-
 
214
			if(empty($obs_existante)) {
-
 
215
				return false;
-
 
216
			}
-
 
217
 
-
 
218
			$obs_existante = $obs_existante[0];
-
 
219
 
-
 
220
			$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']);
-
 
222
 
-
 
223
			$resultat = true;
-
 
224
			// 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
-
 
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).
-
 
227
			// 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
-
 
229
			// 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
-
 
231
			// 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) {
-
 
233
 
-
 
234
				$requete_suppression_observation = 'DELETE FROM ods_observations '.
-
 
235
					'WHERE oo_id_observation = '.$this->proteger($donnees_obs_a_inserer['id_observation']).' '.
194
    }
236
					'AND oo_absence_evenement = 1';
195
 
237
					
196
	private function modifierObservation($id_participant, $donnees_obs_a_inserer) {
238
					$this->executerRequeteSimple($requete_suppression_observation);
197
 
239
			} else {
198
    	$requete_modification_observation = 'UPDATE ods_observations '.
240
				$requete_modification_observation = 'UPDATE ods_observations '.
199
    		'SET '.
241
					'SET '.
200
    			'oo_date = '.$this->proteger($donnees_obs_a_inserer['date_evenement']).', '.
242
						'oo_date = '.$this->proteger($donnees_obs_a_inserer['date_evenement']).', '.
-
 
243
						'oo_commentaire = '.$this->proteger($donnees_obs_a_inserer['commentaire']).', '.
-
 
244
						'oo_date_modification = NOW() '.
-
 
245
					'WHERE oo_id_observation = '.$donnees_obs_a_inserer['id_observation'].' '.
Line 201... Line 246...
201
    			'oo_commentaire = '.$this->proteger($donnees_obs_a_inserer['commentaire']).', '.
246
					'AND oo_ce_participant = '.$this->proteger($id_participant);
202
    			'oo_date_modification = NOW() '.
247
 
Line 203... Line 248...
203
    		'WHERE oo_id_observation = '.$donnees_obs_a_inserer['id_observation'].' '.
248
					$resultat = $this->executerRequeteSimple($requete_modification_observation);
Line 204... Line 249...
204
    		'AND oo_ce_participant = '.$this->proteger($id_participant);
249
			}