Subversion Repositories eFlore/Applications.del

Rev

Rev 1305 | Rev 1684 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1305 Rev 1612
Line 52... Line 52...
52
		$resultat->corps = array('entete' => $this->conteneur->getEntete(), 'resultats' => $votes);
52
		$resultat->corps = array('entete' => $this->conteneur->getEntete(), 'resultats' => $votes);
53
		return $resultat;
53
		return $resultat;
54
	}
54
	}
Line 55... Line 55...
55
 
55
 
-
 
56
	private function chargerVotes($id_commentaire) {
56
	private function chargerVotes($id_commentaire) {
57
		$id_commentaire = $this->proteger($id_commentaire);
57
		$requeteVotes = 'SELECT * FROM '.
58
		$requeteVotes = 'SELECT * '.
58
		$this->gestionBdd->formaterTable('del_commentaire_vote').
59
			'FROM del_commentaire_vote '.
59
				'WHERE ce_proposition = '.$this->proteger($id_commentaire);
60
			"WHERE ce_proposition = $id_commentaire ";
60
		$resultatsVotes = $this->bdd->recupererTous($requeteVotes);
61
		$resultatsVotes = $this->bdd->recupererTous($requeteVotes);
61
		$votes = array();
62
		$votes = array();
62
		foreach ($resultatsVotes as $vote) {
63
		foreach ($resultatsVotes as $vote) {
63
			$votes[$vote['id_vote']] = $this->formaterVotes($vote);
64
			$votes[$vote['id_vote']] = $this->formaterVotes($vote);
Line 73... Line 74...
73
	* Trouver l'utilisateur en fonction des paramètres ou de la base de données si le nom, prénom et courriel ne sont pas donnés
74
	* Trouver l'utilisateur en fonction des paramètres ou de la base de données si le nom, prénom et courriel ne sont pas donnés
74
	* @return le tableau utilisateur
75
	* @return le tableau utilisateur
75
	* */
76
	* */
76
	private function chercherUtilisateur($id) {
77
	private function chercherUtilisateur($id) {
77
		$utilisateur = array();
78
		$utilisateur = array();
78
		$requete = "SELECT id_utilisateur as 'auteur.id', nom as 'auteur.nom', prenom as 'auteur.prenom', courriel as 'auteur.courriel' ".
79
		$requete = "SELECT id_utilisateur AS 'auteur.id', nom AS 'auteur.nom', prenom AS 'auteur.prenom', ".
-
 
80
			"courriel AS 'auteur.courriel' ".
79
						           'FROM '.$this->gestionBdd->formaterTable('del_utilisateur').
81
			'FROM del_utilisateur '.
80
								   'WHERE id_utilisateur = '.$this->bdd->proteger($id);
82
			'WHERE id_utilisateur = '.$this->bdd->proteger($id);
81
		$utilisateur = $this->bdd->recuperer($requete);
83
		$utilisateur = $this->bdd->recuperer($requete);
Line 82... Line 84...
82
 
84
 
83
		return $utilisateur;
85
		return $utilisateur;
Line 102... Line 104...
102
	*
104
	*
103
	* @return void
105
	* @return void
104
	*
106
	*
105
	* */
107
	* */
106
	public function ajouter($ressources, $parametres) {
108
	public function ajouter($ressources, $parametres) {
107
 
-
 
108
		$this->verifierParametresAjoutModif($ressources, $parametres);
109
		$this->verifierParametresAjoutModif($ressources, $parametres);
Line 109... Line 110...
109
 
110
 
110
		// Vérifie si la proposition existe, et la crée sinon
111
		// Vérifie si la proposition existe, et la crée sinon
111
		// (cas du vote sur la proposition fabriquée à partir de l'observation originale)
112
		// (cas du vote sur la proposition fabriquée à partir de l'observation originale)
Line 124... Line 125...
124
			RestServeur::envoyerEnteteStatutHttp(RestServeur::HTTP_CODE_CREATION_OK);
125
			RestServeur::envoyerEnteteStatutHttp(RestServeur::HTTP_CODE_CREATION_OK);
125
		}
126
		}
126
	}
127
	}
Line 127... Line 128...
127
 
128
 
128
	private function renvoyerIdPropositionObservation($id_observation) {
-
 
129
 
129
	private function renvoyerIdPropositionObservation($id_observation) {
130
		$id_commentaire = null;
130
		$id_commentaire = null;
131
		// Récupération de l'utilisateur + nom sel de l'observation originale
131
		// Récupération de l'utilisateur + nom sel de l'observation originale
132
		$requete_selection_obs = 'SELECT ce_utilisateur, nom_sel '.
132
		$requete_selection_obs = 'SELECT ce_utilisateur, nom_sel '.
133
		                           'FROM del_observation '.
133
			'FROM del_observation '.
Line 136... Line 136...
136
		$obs = $this->bdd->recuperer($requete_selection_obs);
136
		$obs = $this->bdd->recuperer($requete_selection_obs);
Line 137... Line 137...
137
 
137
 
138
		if(is_array($obs) && isset($obs['ce_utilisateur'])) {
138
		if (is_array($obs) && isset($obs['ce_utilisateur'])) {
139
			// On considère que la proposition faite par le même utilisateur et ayant le même
139
			// On considère que la proposition faite par le même utilisateur et ayant le même
140
			// nom sélectionné est bien la proposition composée à partir de l'obs originale
140
			// nom sélectionné est bien la proposition composée à partir de l'obs originale
-
 
141
			$requete_selection_comm = 'SELECT id_commentaire '.
141
			$requete_selection_comm = 'SELECT id_commentaire FROM del_commentaire '.
142
				'FROM del_commentaire '.
142
			           'WHERE ce_observation = '.$this->proteger($id_observation).' '.
143
				'WHERE ce_observation = '.$this->proteger($id_observation).' '.
143
			           ' AND nom_sel = '.$this->proteger($obs['nom_sel']).' AND '.
144
				' AND nom_sel = '.$this->proteger($obs['nom_sel']).' AND '.
Line 144... Line 145...
144
					   ' ce_utilisateur = '.$this->proteger($obs['ce_utilisateur']);
145
				' ce_utilisateur = '.$this->proteger($obs['ce_utilisateur']);
-
 
146
 
145
 
147
			$commentaire = $this->bdd->recuperer($requete_selection_comm);
-
 
148
			$id_commentaire = null;
-
 
149
			if (is_array($commentaire) && $commentaire['id_commentaire'] != null) {
146
			$commentaire = $this->bdd->recuperer($requete_selection_comm);
150
				$id_commentaire = $commentaire['id_commentaire'];
Line 147... Line 151...
147
			$id_commentaire = (is_array($commentaire) && $commentaire['id_commentaire'] != null) ? $commentaire['id_commentaire'] : null;
151
			}
148
		}
152
		}
Line 149... Line 153...
149
 
153
 
150
		return $id_commentaire;
154
		return $id_commentaire;
151
	}
155
	}
152
 
156
 
153
	private function renvoyerIdOuCreerPropositionDeterminationInitiale($id_observation) {
157
	private function renvoyerIdOuCreerPropositionDeterminationInitiale($id_observation) {
-
 
158
		$proposition_existe = $this->propositionInitialeExiste($id_observation);
-
 
159
		if(!$proposition_existe) {
154
		$proposition_existe = $this->propositionInitialeExiste($id_observation);
160
			$id_proposition = $this->creerPropositionAPartirObservation($id_observation);
155
		if(!$proposition_existe) {
161
		} else {
156
			$id_proposition = $this->creerPropositionAPartirObservation($id_observation);
162
			$requete = 'SELECT id_commentaire '.
157
		} else {
163
				'FROM del_commentaire '.
158
			$requete = "SELECT id_commentaire FROM del_commentaire WHERE ce_observation = ".$id_observation." ".
164
				"WHERE ce_observation = $id_observation ".
159
					   "AND proposition_initiale = 1";
165
				'AND proposition_initiale = 1 ';
160
			$resultat = $this->bdd->recuperer($requete);
166
			$resultat = $this->bdd->recuperer($requete);
Line 161... Line 167...
161
			$id_proposition = $resultat['id_commentaire'];
167
			$id_proposition = $resultat['id_commentaire'];
162
		}
-
 
-
 
168
		}
-
 
169
		return $id_proposition;
163
		return $id_proposition;
170
	}
164
	}
171
 
165
 
172
	private function propositionInitialeExiste($id_observation) {
166
	private function propositionInitialeExiste($id_observation) {
173
		$requete = 'SELECT COUNT(*) >= 1 AS existe '.
167
 
174
			'FROM del_commentaire '.
Line 168... Line 175...
168
		$requete = "SELECT COUNT(*) >= 1 as existe FROM del_commentaire WHERE ce_observation = ".$id_observation." ".
175
			"WHERE ce_observation = $id_observation ".
169
												"AND proposition_initiale = 1";
-
 
170
		$resultat = $this->bdd->recuperer($requete);
176
			'AND proposition_initiale = 1 ';
171
		return $resultat['existe'] == 1;
177
		$resultat = $this->bdd->recuperer($requete);
172
	}
178
		return $resultat['existe'] == 1;
173
 
179
	}
174
	private function creerPropositionAPartirObservation($id_observation) {
180
 
175
 
181
	private function creerPropositionAPartirObservation($id_observation) {
176
		$insertion = 'INSERT IGNORE INTO del_commentaire '.
182
		$insertion = 'INSERT IGNORE INTO del_commentaire '.
177
			'(ce_observation, ce_utilisateur, utilisateur_prenom, utilisateur_nom, utilisateur_courriel, '.
-
 
178
			'nom_sel, nom_sel_nn, nom_ret, nom_ret_nn, nt, famille, nom_referentiel, date, proposition_initiale) '.
183
			'(ce_observation, ce_utilisateur, utilisateur_prenom, utilisateur_nom, utilisateur_courriel, '.
179
			'SELECT id_observation, ce_utilisateur, prenom, nom, '.
184
			'nom_sel, nom_sel_nn, nom_ret, nom_ret_nn, nt, famille, nom_referentiel, date, proposition_initiale) '.
Line 180... Line 185...
180
			'		courriel, nom_sel, nom_sel_nn, nom_ret, nom_ret_nn, '.
185
			'SELECT id_observation, ce_utilisateur, prenom, nom, '.
-
 
186
			'		courriel, nom_sel, nom_sel_nn, nom_ret, nom_ret_nn, '.
181
			"		nt, famille, 'bdtfx_v1', NOW(), '1' ".
187
			"		nt, famille, 'bdtfx_v1', NOW(), '1' ".
182
			'FROM del_observation do '.
188
			'FROM del_observation do '.
183
				' LEFT JOIN del_utilisateur du ON '.
-
 
184
				'do.ce_utilisateur = du.id_utilisateur '.
189
			'	LEFT JOIN del_utilisateur du ON (do.ce_utilisateur = du.id_utilisateur) '.
185
			'WHERE id_observation = '.$this->proteger($id_observation);
190
			'WHERE id_observation = '.$this->proteger($id_observation);
Line 186... Line 191...
186
 
191
 
187
		$resultat = $this->bdd->requeter($insertion);
192
		$resultat = $this->bdd->requeter($insertion);
Line 198... Line 203...
198
	*
203
	*
199
	* @return void
204
	* @return void
200
	*
205
	*
201
	* */
206
	* */
202
	public function modifier($ressources, $parametres) {
207
	public function modifier($ressources, $parametres) {
203
 
-
 
204
		$this->verifierParametresAjoutModif($ressources, $parametres);
208
		$this->verifierParametresAjoutModif($ressources, $parametres);
Line 205... Line 209...
205
 
209
 
206
		// Si l'identifiant de proposition vaut 0, c'est un vote sur une proposition
210
		// Si l'identifiant de proposition vaut 0, c'est un vote sur une proposition
207
		// fabriquée à partir de l'observation originale, dont on doit obtenir l'id
211
		// fabriquée à partir de l'observation originale, dont on doit obtenir l'id
Line 218... Line 222...
218
		}
222
		}
Line 219... Line 223...
219
 
223
 
220
		$modification = 'UPDATE del_commentaire_vote '.
224
		$modification = 'UPDATE del_commentaire_vote '.
221
						'SET valeur ='.$this->proteger($parametres['valeur']).', '.
225
			'SET valeur ='.$this->proteger($parametres['valeur']).', '.
222
						'date = NOW() '.
-
 
223
						'WHERE '.
226
			'date = NOW() '.
224
							'ce_proposition = '.$this->proteger($ressources[1]).' AND '.
227
			'WHERE ce_proposition = '.$this->proteger($ressources[1]).' '.
Line 225... Line 228...
225
							'ce_utilisateur = '.$this->proteger($parametres['utilisateur']);
228
			'AND ce_utilisateur = '.$this->proteger($parametres['utilisateur']);
226
 
229
 
227
		$resultatsVotes = $this->bdd->requeter($modification);
230
		$resultatsVotes = $this->bdd->requeter($modification);
228
		if ($resultatsVotes == false) {
231
		if ($resultatsVotes == false) {