Subversion Repositories eFlore/Applications.cel

Rev

Rev 2114 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2114 Rev 2164
Line 141... Line 141...
141
		$base_param = array(
141
		$base_param = array(
142
			'nom_sel_nn' => NULL,
142
			'nom_sel_nn' => NULL,
143
			'nom_sel' => NULL,
143
			'nom_sel' => NULL,
144
			'nom_ret_nn' => NULL,
144
			'nom_ret_nn' => NULL,
145
			'nom_referentiel' => NULL);
145
			'nom_referentiel' => NULL);
146
		// $parametres = array_merge($base_param, $parametres);
-
 
147
 
-
 
148
		$requete_modification = "UPDATE cel_obs SET " ;
-
 
Line -... Line 146...
-
 
146
 
149
 
147
		$requete = "UPDATE cel_obs SET " ;
150
		// si pas de nom_sel : on supprime les champs automatiques. et le référentiel.
148
		// si pas de nom_sel : on supprime les champs automatiques. et le référentiel.
151
		if (false && (!isset($parametres['nom_sel']) || !@$parametres['nom_sel'])) {
149
		if (false && (!isset($parametres['nom_sel']) || !@$parametres['nom_sel'])) {
152
			$parametres['nom_referentiel'] = NULL;
150
			$parametres['nom_referentiel'] = NULL;
153
			// pas d'update de traiterParametresObservationEtConstruireSousRequeteMaj()
151
			// pas d'update de traiterParametresObservationEtConstruireSousRequeteMaj()
154
			$requete_modification .= "nom_referentiel = NULL, nom_sel_nn = NULL, nom_ret_nn = NULL, nom_ret = NULL, nt = NULL, famille = NULL,";
152
			$requete .= "nom_referentiel = NULL, nom_sel_nn = NULL, nom_ret_nn = NULL, nom_ret = NULL, nt = NULL, famille = NULL,";
155
		} elseif (false) {
153
		} elseif (false) {
156
			/* TODO:
154
			/* TODO:
157
			 * si (à l'origine) pas de nom_sel_nn (donc pas de référentiel) POSTé
155
			 * si (à l'origine) pas de nom_sel_nn (donc pas de référentiel) POSTé
158
			 * et aucun nom déterminés, alors on supprime les données automatiques:
156
			 * et aucun nom déterminés, alors on supprime les données automatiques:
159
			 * alors on test une différence de réferentiel...
157
			 * alors on test une différence de réferentiel...
160
			 */
158
			 */
161
			$r = $parametres['nom_referentiel'];
-
 
162
			$requete_modification .= <<<EOF
159
			$referentielP = Cel::db()->proteger($parametres['nom_referentiel']);
163
nom_sel_nn = IF(SUBSTR(nom_referentiel, 1, 5) != "$r", NULL, nom_sel_nn),
160
			$requete .= "nom_sel_nn = IF(SUBSTR(nom_referentiel, 1, 5) != $referentielP, NULL, nom_sel_nn),".
164
nom_ret_nn = IF(SUBSTR(nom_referentiel, 1, 5) != "$r", NULL, nom_ret_nn),
161
				"nom_ret_nn = IF(SUBSTR(nom_referentiel, 1, 5) != $referentielP, NULL, nom_ret_nn), ".
165
nom_ret = IF(SUBSTR(nom_referentiel, 1, 5) != "$r", NULL, nom_ret),
162
				"nom_ret = IF(SUBSTR(nom_referentiel, 1, 5) != $referentielP, NULL, nom_ret), ".
166
nt = IF(SUBSTR(nom_referentiel, 1, 5) != "$r", NULL, nt),
163
				"nt = IF(SUBSTR(nom_referentiel, 1, 5) != $referentielP, NULL, nt), ".
167
famille = IF(SUBSTR(nom_referentiel, 1, 5) != "$r", NULL, famille),
-
 
168
EOF;
164
				"famille = IF(SUBSTR(nom_referentiel, 1, 5) != $referentielP, NULL, famille), ";
169
		} elseif (isset($parametres['nom_sel'])) {
165
		} elseif (isset($parametres['nom_sel'])) {
170
			// uniquement en cas de nom_sel présent
166
			// uniquement en cas de nom_sel présent
171
			$this->traiterEspece($parametres);
167
			$this->traiterEspece($parametres);
Line 172... Line 168...
172
		}
168
		}
Line 173... Line 169...
173
 
169
 
174
		self::formaterParametresObservation($parametres);
170
		self::formaterParametresObservation($parametres);
Line 175... Line -...
175
 
-
 
176
		$champ_maj = self::traiterParametresObservationEtConstruireSousRequeteMaj($parametres);
171
 
177
		$champ_maj[] = "date_modification = now()";
172
		$champ_maj = self::traiterParametresObservationEtConstruireSousRequeteMaj($parametres);
178
 
173
		$champ_maj[] = "date_modification = now()";
Line 179... Line -...
179
		$requete_modification .=
-
 
180
			implode(', ', $champ_maj).
174
 
181
			" WHERE ordre IN (".$ordre.") AND ce_utilisateur = ".Cel::db()->proteger($utilisateur).
175
		$requete .= implode(', ', $champ_maj).
182
			 ' -- ' . __FILE__ . ':' . __LINE__;
176
			" WHERE ordre IN ($ordre) AND ce_utilisateur = ".Cel::db()->proteger($utilisateur).' '.
183
 
177
			 ' -- ' . __FILE__ . ':' . __LINE__;
Line 184... Line 178...
184
 
178
 
185
		// important ! ne pas utiliser la fonction executerRequete qui renvoie une erreur si la requete contient des | (pipes)
179
		// important ! ne pas utiliser la fonction executerRequete qui renvoie une erreur si la requete contient des | (pipes)
186
		// ce qui peut arriver dans les commentaires
180
		// ce qui peut arriver dans les commentaires
187
		// TODO: corriger la fonction ou bien continuer à utiliser executerRequeteSimple
181
		// TODO: corriger la fonction ou bien continuer à utiliser executerRequeteSimple
188
		$resultat_modification = Cel::db()->executerRequeteSimple($requete_modification);
182
		$resultat = Cel::db()->executerRequeteSimple($requete);
189
 
183
 
190
		$retour = true;
184
		$retour = true;
Line 191... Line 185...
191
		if ($resultat_modification === false) {
185
		if ($resultat === false) {
Line 249... Line 243...
249
		self::formaterParametresObservation($parametres);
243
		self::formaterParametresObservation($parametres);
Line 250... Line 244...
250
 
244
 
Line 251... Line 245...
251
		$retour = true;
245
		$retour = true;
252
 
246
 
Line 253... Line 247...
253
		$champ_maj = self::traiterParametresObservationEtConstruireSousRequeteMaj($parametres);
247
		$champ_maj = self::traiterParametresObservationEtConstruireSousRequeteMaj($parametres);
254
		$champ_maj[] = "date_modification = now()";
248
		$champ_maj[] = 'date_modification = now()';
255
 
249
 
256
		$requete_modification = "UPDATE cel_obs SET " .
250
		$requete_modification = "UPDATE cel_obs SET " .
Line 263... Line 257...
263
		// ce qui peut arriver dans les commentaires
257
		// ce qui peut arriver dans les commentaires
264
		// TODO: corriger la fonction ou bien continuer à utiliser executerRequeteSimple
258
		// TODO: corriger la fonction ou bien continuer à utiliser executerRequeteSimple
265
		$resultat_modification = Cel::db()->executerRequeteSimple($requete_modification . ' -- ' . __FILE__ . ':' . __LINE__);
259
		$resultat_modification = Cel::db()->executerRequeteSimple($requete_modification . ' -- ' . __FILE__ . ':' . __LINE__);
Line 266... Line 260...
266
 
260
 
267
		if ($resultat_modification === false) {
261
		if ($resultat_modification === false) {
268
			$this->logger("CEL_bugs","Erreur de mise à jour de l\'observation : ".$id);
262
			$this->logger('CEL_bugs', "Erreur de mise à jour de l'observation : $id");
Line 269... Line 263...
269
		}
263
		}
270
 
264