Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 2486 Rev 2538
Line 55... Line 55...
55
			// quoiqu'il en soit, on le met à "autre"
55
			// quoiqu'il en soit, on le met à "autre"
56
			$parametres['nom_referentiel'] = Cel::$fallback_referentiel;
56
			$parametres['nom_referentiel'] = Cel::$fallback_referentiel;
57
		}
57
		}
Line 58... Line 58...
58
 
58
 
59
		$this->ajoutInfoUtilisateurARequete($parametres);
59
		$this->ajoutInfoUtilisateurARequete($parametres);
Line 60... Line 60...
60
		self::formaterParametresObservation($parametres);
60
		$this->formaterParametresObservation($parametres);
61
 
61
 
Line 62... Line 62...
62
		$requete_insertion_observation = 'INSERT INTO cel_obs ';
62
		$requete_insertion_observation = 'INSERT INTO cel_obs ';
Line 138... Line 138...
138
	public function modifierObservation($utilisateur, $ordre, $parametres) {
138
	public function modifierObservation($utilisateur, $ordre, $parametres) {
139
		if (isset($parametres['nom_sel'])) {
139
		if (isset($parametres['nom_sel'])) {
140
			// uniquement en cas de nom_sel présent
140
			// uniquement en cas de nom_sel présent
141
			$this->traiterEspece($parametres);
141
			$this->traiterEspece($parametres);
142
		}
142
		}
143
		self::formaterParametresObservation($parametres);
143
		$this->formaterParametresObservation($parametres);
144
		$champ_maj = self::traiterParametresObservationEtConstruireSousRequeteMaj($parametres);
144
		$champ_maj = self::traiterParametresObservationEtConstruireSousRequeteMaj($parametres);
145
		$champ_maj[] = "date_modification = NOW()";
145
		$champ_maj[] = "date_modification = NOW()";
146
		$clauseSet = implode(', ', $champ_maj);
146
		$clauseSet = implode(', ', $champ_maj);
147
		$utilisateurIdP = Cel::db()->proteger($utilisateur);
147
		$utilisateurIdP = Cel::db()->proteger($utilisateur);
Line 161... Line 161...
161
	}
161
	}
Line 162... Line 162...
162
 
162
 
163
	/**
163
	/**
164
	 * @return nombre d'observations mises à jour, ou FALSE en cas de problème
164
	 * @return nombre d'observations mises à jour, ou FALSE en cas de problème
165
	 */
165
	 */
166
	static function modifierMultiplesObservation($utilisateur, Array $ordre, $parametres) {
166
	public function modifierMultiplesObservation($utilisateur, Array $ordre, $parametres) {
167
		// nous pouvons aussi retirer 'ce_utilisateur' (== $utilisateur) qui sera dans la clause WHERE
167
		// nous pouvons aussi retirer 'ce_utilisateur' (== $utilisateur) qui sera dans la clause WHERE
168
		$exclusions = ['nom_sel_nn', 'nom_sel', 'nom_ret_nn', 'nom_referentiel', 'ce_utilisateur'];
168
		$exclusions = ['nom_sel_nn', 'nom_sel', 'nom_ret_nn', 'nom_referentiel', 'ce_utilisateur'];
169
		$parametres = array_diff_key($parametres, array_flip($exclusions));
169
		$parametres = array_diff_key($parametres, array_flip($exclusions));
Line 170... Line 170...
170
		$parametres = array_intersect_key($parametres, array_flip(self::$cel_obs));
170
		$parametres = array_intersect_key($parametres, array_flip(self::$cel_obs));
171
 
171
 
172
		$parametres = array_filter(
172
		$parametres = array_filter(
Line 173... Line 173...
173
			$parametres,
173
			$parametres,
174
			create_function('$e','return strpos($e, "(Valeurs multiples)") === false;'));
174
			create_function('$e','return strpos($e, "(Valeurs multiples)") === false;'));
Line 175... Line 175...
175
 
175
 
176
		// modifie $parametres par référence
176
		// modifie $parametres par référence
Line 177... Line 177...
177
		self::formaterParametresObservation($parametres);
177
		$this->formaterParametresObservation($parametres);
Line 212... Line 212...
212
			'nom_ret_nn' => NULL,
212
			'nom_ret_nn' => NULL,
213
			'nom_referentiel' => NULL);
213
			'nom_referentiel' => NULL);
214
		$parametres = array_merge($parametresDefaut, $parametres);
214
		$parametres = array_merge($parametresDefaut, $parametres);
Line 215... Line 215...
215
 
215
 
216
		$this->traiterEspece($parametres);
216
		$this->traiterEspece($parametres);
Line 217... Line 217...
217
		self::formaterParametresObservation($parametres);
217
		$this->formaterParametresObservation($parametres);
218
 
218
 
Line 219... Line 219...
219
		$champ_maj = self::traiterParametresObservationEtConstruireSousRequeteMaj($parametres);
219
		$champ_maj = self::traiterParametresObservationEtConstruireSousRequeteMaj($parametres);
Line 460... Line 460...
460
	* Formate les paramètres fournis en ajoutant des infos complementaires
460
	* Formate les paramètres fournis en ajoutant des infos complementaires
461
	*
461
	*
462
	* @param array $parametres tableau indexé avec les mêmes noms de champs que la bdd
462
	* @param array $parametres tableau indexé avec les mêmes noms de champs que la bdd
463
	* @return $parametres le tableau modifié selon ce qu'il contenait
463
	* @return $parametres le tableau modifié selon ce qu'il contenait
464
	*/
464
	*/
465
	static function formaterParametresObservation(&$parametres) {
465
	public function formaterParametresObservation(&$parametres) {
466
		// Pour empecher que des numéros de département de 1 à 9 soient saisis sans 0
466
		// Pour empecher que des numéros de département de 1 à 9 soient saisis sans 0
467
		// TODO: décider quoi faire pour les zones géo plus générales
467
		// TODO: décider quoi faire pour les zones géo plus générales
468
		if (isset($parametres['ce_zone_geo'])) {
468
		if (isset($parametres['ce_zone_geo'])) {
469
			if ($parametres['ce_zone_geo'] == 'null' || trim($parametres['ce_zone_geo']) == "") {
469
			if ($parametres['ce_zone_geo'] == 'null' || trim($parametres['ce_zone_geo']) == "" || !is_numeric($parametres['ce_zone_geo'])) {
470
				$parametres['ce_zone_geo'] = "";
470
				$parametres['ce_zone_geo'] = "";
-
 
471
				$parametres['pays'] = '';
471
			} else {
472
			} else {
472
				if (strlen($parametres['ce_zone_geo']) == 4) {
473
				if (strlen($parametres['ce_zone_geo']) == 4) {
473
					$parametres['ce_zone_geo'] = '0'.$parametres['ce_zone_geo'];
474
					$parametres['ce_zone_geo'] = '0'.$parametres['ce_zone_geo'];
474
				}
475
				}
Line 475... Line 476...
475
 
476
 
476
				if (strlen($parametres['ce_zone_geo']) > 0 && strlen($parametres['ce_zone_geo']) <= 2) {
477
				if (strlen($parametres['ce_zone_geo']) > 0 && strlen($parametres['ce_zone_geo']) <= 2) {
477
					$parametres['ce_zone_geo'] = Cel::obtenirCodeInseeCommunePourNomEtDepartement($parametres['zone_geo'], $parametres['ce_zone_geo']);
478
					$parametres['ce_zone_geo'] = Cel::obtenirCodeInseeCommunePourNomEtDepartement($parametres['zone_geo'], $parametres['ce_zone_geo']);
478
				} else {
479
				} else {
479
					$parametres['ce_zone_geo'] = 'INSEE-C:'. $parametres['ce_zone_geo'];
480
					$parametres['ce_zone_geo'] = 'INSEE-C:'. $parametres['ce_zone_geo'];
-
 
481
				}
-
 
482
				$parametres['pays'] = 'FR';
-
 
483
			}
-
 
484
		} else {
-
 
485
			$parametres['pays'] = '';
-
 
486
		}
-
 
487
 
-
 
488
		// TODO: Fusionner cette partie et la partie du dessus en une fonction qui complete toutes les infos 
-
 
489
		// géo, quand on sera riche et qu'on aura du temps
-
 
490
		if(empty($parametres['pays']) && !empty($parametres['latitude']) && !empty($parametres['longitude'])) {
-
 
491
			$recherche_pays = new RechercheInfosZoneGeo($this->config);
-
 
492
			$infos_pays = $recherche_pays->obtenirInfosPourCoordonnees($parametres);
-
 
493
			if($infos_pays['type'] == 'france') {
-
 
494
				$parametres['pays'] = 'FR';
-
 
495
				// Ajout d'infos supplémentaires si jamais on a pas de ce zone geo ou de zone geo
-
 
496
				if(empty($parametres['ce_zone_geo'])) {
-
 
497
					$parametres['ce_zone_geo'] = 'INSEE-C:'.$infos_pays['code_insee'];
-
 
498
				}
-
 
499
				
-
 
500
				if(empty($parametres['zone_geo'])) {
-
 
501
					$parametres['zone_geo'] = $infos_pays['nom'];
-
 
502
				}
-
 
503
			} else {
480
				}
504
				$parametres['pays'] = $infos_pays['code_pays'];
481
			}
505
			}
Line 482... Line 506...
482
		}
506
		}
483
 
507