Subversion Repositories eFlore/Applications.del

Rev

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

Rev 1970 Rev 1983
Line 31... Line 31...
31
				$this->affecterNnsAuxPropositionsViables();
31
				$this->affecterNnsAuxPropositionsViables();
32
				break;
32
				break;
33
			case 'dedoublonnerPropositions' :
33
			case 'dedoublonnerPropositions' :
34
				$this->dedoublonnerPropositions();
34
				$this->dedoublonnerPropositions();
35
				break;
35
				break;
-
 
36
			case 'dedoublonnerPropositionsEtCorrigerDonnees' :
-
 
37
				// Suppression des propositions et votes sur des obs inexistantes
-
 
38
				// pas la peine de traiter ce qui n'existe plus !
-
 
39
				$this->supprimerPropositionsOrphelines();	
-
 
40
				// Corriger les noms de référentiels permet de simplifier les affectations de noms ensuite
-
 
41
				$this->corrigerNomsReferentiels();
-
 
42
				// Affectations de nums noms aux propositions qui le permettent
-
 
43
				$this->affecterNnsAuxPropositionsViables();
-
 
44
				echo "\n";
-
 
45
				$this->dedoublonnerPropositions();
-
 
46
				// A la fin, les votes qui n'ont pas été fusionnés pointent sur des propositions
-
 
47
				// qui n'existent plus, donc on les supprime
-
 
48
				$this->supprimerVotesOrphelins();
-
 
49
				echo "\n";
-
 
50
				break;
36
			default :
51
			default :
37
				throw new Exception("Erreur : la commande '$cmd' n'existe pas!");
52
				throw new Exception("Erreur : la commande '$cmd' n'existe pas!");
38
		}
53
		}
39
	}
54
	}
Line 87... Line 102...
87
				"WHERE ce_proposition NOT IN (SELECT id_commentaire FROM del_commentaire)";
102
				"WHERE ce_proposition NOT IN (SELECT id_commentaire FROM del_commentaire)";
Line 88... Line 103...
88
		
103
		
89
		$modif_votes = $this->conteneur->getBdd()->executer($requete_votes);
104
		$modif_votes = $this->conteneur->getBdd()->executer($requete_votes);
Line 90... Line 105...
90
	}
105
	}
91
	
-
 
92
	private function dedoublonnerPropositions() {
-
 
93
		// Suppression des propositions et votes sur des obs inexistantes
-
 
94
		// pas la peine de traiter ce qui n'existe plus !
-
 
95
		 $this->supprimerPropositionsOrphelines();
106
	
96
		
107
	private function dedoublonnerPropositions() {		
97
		echo "Détection des propositions en doublons \n";
108
		echo "Détection des propositions en doublons \n";
98
		// La méthode n'est pas optimisée, on fait beaucoup de boucles, de traitement de données
109
		// La méthode n'est pas optimisée, on fait beaucoup de boucles, de traitement de données
99
		// etc... mais la méthode ne doit pas être lancée souvent et elle est rapide
110
		// etc... mais la méthode ne doit pas être lancée souvent et elle est rapide
100
		// donc lisibilité > performances
111
		// donc lisibilité > performances
Line 101... Line 112...
101
		$infos_indexees = array();
112
		$infos_indexees = array();
102
		$infos_indexees_par_obs = array();
113
		$infos_indexees_par_obs = array();
103
		
114
		
104
		// Selection des ids de commentaires dupliqués, groupés par observation (concaténés par des virgules)
115
		// Selection des ids de commentaires dupliqués, groupés par observation et par nom (concaténés par des virgules)
105
		$requete_id_prod_doubl = "SELECT GROUP_CONCAT(id_commentaire) as id_commentaires_dupliques ".
116
		$requete_id_prod_doubl = "SELECT GROUP_CONCAT(id_commentaire) as id_commentaires_dupliques ".
Line 124... Line 135...
124
						"ORDER BY ce_observation, date ";
135
						"ORDER BY ce_observation, date ";
Line 125... Line 136...
125
	
136
	
126
			$propositions_doublonnees = $this->conteneur->getBdd()->recupererTous($requete_prop_doubl);
137
			$propositions_doublonnees = $this->conteneur->getBdd()->recupererTous($requete_prop_doubl);
Line 127... Line 138...
127
		}
138
		}
Line 128... Line 139...
128
		
139
		
129
		echo count($propositions_doublonnees)." propositions pour ".count($ids_propositions_doublonnees)." observations sont potentiellement en doublons \n";
140
		echo count($propositions_doublonnees)." propositions pour ".count($ids_propositions_doublonnees)." couples 'observation-nom_sel' sont potentiellement en doublons \n";
130
		
141
		
131
		// Organisation par numéro d'obs, puis par nom sel, puis par id proposition
142
		// Organisation par numéro d'obs, puis par nom sel, puis par id proposition
Line 187... Line 198...
187
			foreach($nom_en_doublons as $nom_en_doublon => &$propositions_en_doublons) {
198
			foreach($nom_en_doublons as $nom_en_doublon => &$propositions_en_doublons) {
188
				$this->mettreAJourPropositions($propositions_en_doublons);
199
				$this->mettreAJourPropositions($propositions_en_doublons);
189
			}
200
			}
190
			$this->afficherAvancement('observations traitées ', 1);
201
			$this->afficherAvancement('observations traitées ', 1);
191
		}
202
		}
192
		
203
				
193
		// A la fin, les votes qui n'ont pas été fusionnés pointent sur des propositions 
-
 
194
		// qui n'existent plus, donc on les supprime
-
 
195
		$this->supprimerVotesOrphelins();		
-
 
196
		echo "\n";
-
 
197
		
-
 
198
		// Fichier json pour vérification par zieutage (chemin à modifier suivant l'emplacement désiré)
204
		// Fichier json pour vérification par zieutage (chemin à modifier suivant l'emplacement désiré)
199
		//file_put_contents('/home/aurelien/web/test_fusion.json', json_encode($infos_indexees_par_obs));
205
		//file_put_contents('/home/aurelien/web/test_fusion.json', json_encode($infos_indexees_par_obs));
200
	}
206
	}
Line 201... Line 207...
201
	
207
	
Line 218... Line 224...
218
				// de réaffecter les votes à la proposition qui sera conservée
224
				// de réaffecter les votes à la proposition qui sera conservée
219
				if(!isset($votes_conserves[$index])) {
225
				if(!isset($votes_conserves[$index])) {
220
					$votes_conserves[$index] = array();
226
					$votes_conserves[$index] = array();
221
				}
227
				}
Line 222... Line 228...
222
				
228
				
223
				// Si on trouve un vote et un vote contre par le même utilisateur 
229
				// Si on trouve un vote pour et un vote contre par le même utilisateur 
224
				// (cas d'une proposition doublonnée voté de manière contradictoire par 
230
				// (cas d'une proposition doublonnée votée de manière contradictoire par 
Line 225... Line 231...
225
				// un utilisateur), on garde le vote positif
231
				// un utilisateur), on garde le vote positif
226
				
232
				
227
				foreach($prop['votes'] as $vote_proposition) {
233
				foreach($prop['votes'] as $vote_proposition) {
228
					// Un utilisateur ne peut avoir qu'un seul vote par proposition
234
					// Un utilisateur ne peut avoir qu'un seul vote par proposition
229
					$index_vote = $vote_proposition['ce_utilisateur'];
235
					$index_vote = $vote_proposition['ce_utilisateur'];
230
					if(isset($votes_conserves[$index][$index_vote])) {
236
					if(isset($votes_conserves[$index][$index_vote])) { // fusion
231
						$vote_deja_present = $votes_conserves[$index][$index_vote];
237
						$vote_deja_present = $votes_conserves[$index][$index_vote];
232
						// Mise à jour de la valeur dans le cas où le vote existe déjà
238
						// Mise à jour de la valeur dans le cas où le vote existe déjà
233
						$valeur_vote_maj = max($votes_conserves[$index][$index_vote]['valeur'], $vote_proposition['valeur']);
239
						$valeur_vote_maj = max($votes_conserves[$index][$index_vote]['valeur'], $vote_proposition['valeur']);
234
						$votes_conserves[$index][$index_vote]['valeur'] = $valeur_vote_maj;
240
						$votes_conserves[$index][$index_vote]['valeur'] = $valeur_vote_maj;
235
						$votes_conserves[$index][$index_vote]['raison'] .= ' - '.$vote_proposition['valeur'];
241
						$votes_conserves[$index][$index_vote]['raison'] .= ' - '.$vote_proposition['valeur'];
236
					} else {
242
					} else { // nouveau vote
237
						$vote_proposition['raison'] = 'Fusion de '.$vote_proposition['valeur'];
243
						$vote_proposition['raison'] = 'Fusion de '.$vote_proposition['valeur'];
238
						$votes_conserves[$index][$index_vote] = $vote_proposition;
244
						$votes_conserves[$index][$index_vote] = $vote_proposition;
239
					}
245
					}
240
				}
246
				}
-
 
247
			}
241
			}
248
 
242
			
249
			// valeurs par défaut
Line 243... Line 250...
243
			$conservee = false;
250
			$conservee = false;
244
			$raison = 'Supprimée car ne rentre dans aucun cas';
251
			$raison = 'Supprimée car ne rentre dans aucun cas';
245
			
252
			
Line 246... Line 253...
246
			// Les cas ci dessous permettent de fusionner le maximum d'information
253
			// Les cas ci dessous permettent de fusionner le maximum d'information
247
			// dans la proposition qui sera conservée (car il existe des doublons qui ne sont 
254
			// dans la proposition qui sera conservée (car il existe des doublons qui ne sont 
248
			// pas tout à fait identiques (ex.: l'un à un nom nom et l'autre pas)
-
 
249
			
-
 
250
			// Les propositions sont classées par ordre de saisie donc on gardera comme base de fusion,
-
 
251
			// la plus ancienne qui correspond à au moins un cas de conservation
-
 
252
			
-
 
253
			// On garde les num noms valides
-
 
254
			if($prop['nom_sel_nn'] != "" && $prop['nom_sel_nn'] != 0) {
-
 
255
				if(isset($proposition_conservees[$index])) {
-
 
256
					$proposition_conservees[$index]['nom_sel_nn'] = $prop['nom_sel_nn'];
-
 
257
					if($proposition_conservees[$index]['nom_ret_nn'] == "" ||
-
 
258
							$proposition_conservees[$index]['nom_ret_nn'] == 0) {
-
 
259
						$proposition_conservees[$index]['nom_ret_nn'] = $prop['nom_ret_nn'];
-
 
260
						$proposition_conservees[$index]['nom_ret_nn'] = $prop['nom_ret_nn'];
-
 
261
					}
-
 
262
					$raison = "Fusionnée car nn valide ! \n";
-
 
263
					$conservee = false;
-
 
264
				} else {
-
 
265
					$raison = "Conservée car nn valide ! \n";
-
 
266
					$proposition_conservees[$index] = $prop;
-
 
267
					$conservee = true;
-
 
268
				}
-
 
269
			}
-
 
270
			
-
 
271
			// On garde le caractère de proposition retenue
-
 
272
			if(!isset($proposition_conservees[$index]) && $prop['proposition_retenue'] == "1") {
-
 
273
				if(isset($proposition_conservees[$index])) {
-
 
274
					$proposition_conservees[$index]['proposition_retenue'] = $prop['proposition_retenue'];
-
 
275
					$proposition_conservees[$index]['date_validation'] = $prop['date_validation'];
-
 
276
					$proposition_conservees[$index]['ce_validateur'] = $prop['ce_validateur'];
-
 
277
					$raison = "Fusionnée car retenue ! \n";
-
 
278
					$conservee = false;
-
 
279
				} else {
-
 
280
					$raison = "Conservée car retenue ! \n";
-
 
281
					$proposition_conservees[$index] = $prop;
-
 
282
					$conservee = true;
-
 
283
				}
-
 
284
			}
-
 
285
			
255
			// pas tout à fait identiques (ex.: l'un à un num_nom et l'autre pas)
286
			// On garde le caractère de proposition initiale
-
 
287
			if(!isset($proposition_conservees[$index]) && $prop['proposition_initiale'] == "1") {
-
 
288
				if(isset($proposition_conservees[$index])) {
-
 
289
					$proposition_conservees[$index]['proposition_initiale'] = $prop['proposition_initiale'];
-
 
290
					$proposition_conservees[$index]['ce_utilisateur'] = $prop['ce_utilisateur'];
-
 
291
					$proposition_conservees[$index]['utilisateur_prenom'] = $prop['utilisateur_prenom'];
-
 
292
					$proposition_conservees[$index]['utilisateur_nom'] = $prop['utilisateur_nom'];
-
 
293
					$proposition_conservees[$index]['utilisateur_courriel'] = $prop['utilisateur_courriel'];
-
 
294
					$conservee = false;
-
 
295
				} else {
-
 
296
					$raison = "Conservée car initiale ! \n";
-
 
297
					$proposition_conservees[$index] = $prop;
-
 
298
					$conservee = true;
-
 
299
				}
-
 
300
			}
-
 
301
			
-
 
302
			// On garde le texte associé
-
 
303
			if(!isset($proposition_conservees[$index]) && trim($prop['texte']) != "") {
-
 
304
				if(isset($proposition_conservees[$index])) {
-
 
305
					$proposition_conservees[$index]['texte'] .= " ".$prop['texte'];
-
 
306
					$raison = "Fusionnée car contient du texte ! \n";
-
 
307
					$conservee = false;
-
 
308
				} else {
-
 
309
					$raison = "Conservée car contient du texte ! \n";
-
 
310
					$proposition_conservees[$index] = $prop;
-
 
311
					$conservee = true;
-
 
312
				}
-
 
313
			}
-
 
314
			
-
 
315
			// On garde un exemple de chaque couple auteur/nom scientifique
-
 
316
			// Ca laisse des doublons en terme de nom mais au moins ça ne lèse pas les auteurs
-
 
317
			if(!isset($proposition_conservees[$index])) {
-
 
318
				$raison = "Conservée car on conserve une proposition de chaque couple auteur/nom ! \n";
-
 
319
				$proposition_conservees[$index] = $prop;
-
 
320
				$conservee = true;
-
 
321
			}
-
 
322
							
-
 
323
			if($conservee) {
-
 
324
				$proposition_conservees[$index] = $prop;
-
 
325
				$proposition_conservees[$index]['raison'] = $raison;
-
 
326
			} else {
-
 
327
				// Si elle n'est rentrée dans aucun des cas de conservation alors on la supprime
-
 
328
				// (les informations pertinentes qu'elle pourrait contenir ont été fusionnées plus haut)
256
			
Line 329... Line 257...
329
				$propositions_supprimees[$prop['id_commentaire']] = $prop;
257
			// Les propositions sont classées par ordre de saisie donc on gardera comme base de fusion,
330
				$propositions_supprimees[$prop['id_commentaire']]['raison'] = $raison;
258
			// la plus ancienne qui correspond à au moins un cas de conservation
-
 
259
			$this->fusionnerPropositions($index, $prop, $proposition_conservees, $propositions_supprimees);
331
			}
260
		}
332
		}
261
		
333
		
262
		// Si aucune proposition ne convient on prend la première
334
		// Si aucune proposition ne convient on prend la première
263
		// qui est normalement la plus ancienne
335
		// qui est normalement la plus ancienne
264
		// @TODO normalement ça sert plus à rien
336
		if(empty($proposition_conservees)) {
265
		if (empty($proposition_conservees)) {
337
			$prop_conservee = reset($prop_a_doublons);
266
			$prop_conservee = reset($prop_a_doublons);
338
			$index = strtolower($prop_conservee['nom_sel']).'-'.$prop_conservee['utilisateur_courriel'];
267
			$index = strtolower($prop_conservee['nom_sel']).'-'.$prop_conservee['utilisateur_courriel'];
339
			$proposition_conservees[$index] = $prop_conservee;
268
			$proposition_conservees[$index] = $prop_conservee;
Line 340... Line 269...
340
			$proposition_conservees[$index]['raison'] = "Conservée car aucune autre ne convient \n";
269
			$proposition_conservees[$index]['raison'] = "Conservée car aucune autre ne convient \n";
341
			
270
		
342
			// Dans ce cas on retire la proposition de la liste des propositions supprimées
271
			// Dans ce cas on retire la proposition de la liste des propositions supprimées
Line 343... Line 272...
343
			unset($propositions_supprimees[$prop_conservee['id_commentaire']]);
272
			unset($propositions_supprimees[$prop_conservee['id_commentaire']]);
Line -... Line 273...
-
 
273
		}
-
 
274
		
-
 
275
		$prop_a_doublons['propositions_conservees'] = $proposition_conservees;
-
 
276
		$prop_a_doublons['propositions_supprimees'] = $propositions_supprimees;
-
 
277
		$prop_a_doublons['votes_propositions_doublons'] = $votes_conserves;
-
 
278
		
-
 
279
	}
-
 
280
 
-
 
281
	/**
-
 
282
	 * Tente de fusionner toutes les propositions, pour une observation donnée,
-
 
283
	 * en se basant sur le couple auteur-nom_selectionne
-
 
284
	 */
-
 
285
	protected function fusionnerPropositions($index, &$prop, &$proposition_conservees, &$propositions_supprimees) {
-
 
286
		// On garde un exemple de chaque couple auteur/nom scientifique
-
 
287
		// Ca laisse des doublons en terme de nom mais au moins ça ne lèse pas les auteurs
-
 
288
		if(!isset($proposition_conservees[$index])) {
-
 
289
			// première rencontre avec le couple nom_sel/auteur
-
 
290
			$proposition_conservees[$index] = $prop;
-
 
291
		} else { // Cas de la fusion
-
 
292
			// Fusion d'un nom valide : fusionner nom _sel_nn (et nom_ret_nn et nom_ret s'ils existent)
-
 
293
			if(!empty($prop['nom_sel_nn'])) {
-
 
294
				$proposition_conservees[$index]['nom_sel_nn'] = $prop['nom_sel_nn'];
-
 
295
				// infos complémentaires concernant le référentiel
-
 
296
				if(!empty($prop['nom_referentiel'])) {
-
 
297
					$proposition_conservees[$index]['nom_referentiel'] = $prop['nom_referentiel'];
-
 
298
				}				
-
 
299
				if(!empty($prop['famille'])) {
-
 
300
					$proposition_conservees[$index]['famille'] = $prop['famille'];
-
 
301
				}
-
 
302
				// Fusion du nom retenu s'il existe
-
 
303
				if($proposition_conservees[$index]['nom_ret_nn'] == 0) { // on admet que nom_ret existe aussi dans ce cas
-
 
304
					$proposition_conservees[$index]['nom_ret'] = $prop['nom_ret'];
-
 
305
					$proposition_conservees[$index]['nom_ret_nn'] = $prop['nom_ret_nn'];
-
 
306
				}
-
 
307
			}
-
 
308
			
-
 
309
			// Fusion du caractère retenu : fusioner le booleen, la date de retention, le validateur
-
 
310
			if($prop['proposition_retenue'] == "1") {
-
 
311
				$proposition_conservees[$index]['proposition_retenue'] = $prop['proposition_retenue'];
-
 
312
				if (empty($proposition_conservees[$index]['date_validation'])) {
-
 
313
					$proposition_conservees[$index]['date_validation'] = $prop['date_validation'];
-
 
314
				}
-
 
315
				if (empty($proposition_conservees[$index]['ce_validateur'])) {
-
 
316
					$proposition_conservees[$index]['ce_validateur'] = $prop['ce_validateur'];
-
 
317
				}
-
 
318
			}
-
 
319
			
-
 
320
			// Fusion du caractère initial : fusion du booleen, fusion des infos d'auteur et de la date la plus ancienne
-
 
321
			if($prop['proposition_initiale'] == "1") {
-
 
322
				$proposition_conservees[$index]['proposition_initiale'] = $prop['proposition_initiale'];
-
 
323
				if (empty($proposition_conservees[$index]['ce_utilisateur'])) {
-
 
324
					$proposition_conservees[$index]['ce_utilisateur'] = $prop['ce_utilisateur'];
-
 
325
				}
-
 
326
				if (empty($proposition_conservees[$index]['utilisateur_prenom'])) {
-
 
327
					$proposition_conservees[$index]['utilisateur_prenom'] = $prop['utilisateur_prenom'];
-
 
328
				}
-
 
329
				if (empty($proposition_conservees[$index]['utilisateur_nom'])) {
-
 
330
					$proposition_conservees[$index]['utilisateur_nom'] = $prop['utilisateur_nom'];
-
 
331
				}
-
 
332
				if (empty($proposition_conservees[$index]['utilisateur_courriel'])) {
-
 
333
					$proposition_conservees[$index]['utilisateur_courriel'] = $prop['utilisateur_courriel'];
-
 
334
				}
-
 
335
				// Test tout simple pour éviter les dates vides
-
 
336
				if (empty($proposition_conservees[$index]['date'])) {
-
 
337
					if(substr($prop['date'], 0, 4) != "0000") {
-
 
338
						$proposition_conservees[$index]['date'] = $prop['date'];
-
 
339
					}
-
 
340
				}
-
 
341
			}
-
 
342
 
-
 
343
			// Fusion du commentaire (concaténation du texte)
-
 
344
			if(trim($proposition_conservees[$index]['texte']) != "") {
-
 
345
				$prop['texte'] = trim($prop['texte']);
-
 
346
				// Suppression du texte fusionné, au cas où il existerait déjà (un peu barbare mais bon)
-
 
347
				$proposition_conservees[$index]['texte'] = str_replace($prop['texte'].';', '', $proposition_conservees[$index]['texte']);
344
		}
348
				$proposition_conservees[$index]['texte'] .= $prop['texte'].';';		
345
		
349
			}		
346
		$prop_a_doublons['propositions_conservees'] = $proposition_conservees;
350
	
Line 347... Line 351...
347
		$prop_a_doublons['propositions_supprimees'] = $propositions_supprimees;
351
			// À la fin, une proposition fusionnée doit être supprimée
348
		$prop_a_doublons['votes_propositions_doublons'] = $votes_conserves;
352
			$propositions_supprimees[$prop['id_commentaire']] = $prop;
349
		
353
		}
Line 350... Line 354...
350
	}
354
	}
351
 
355
 
352
	private function mettreAJourPropositions(&$propositions_a_obs_a_nom) {
356
	private function mettreAJourPropositions(&$propositions_a_obs_a_nom) {
353
		$propositions_conservees = $propositions_a_obs_a_nom['propositions_conservees'];
357
		$propositions_conservees = $propositions_a_obs_a_nom['propositions_conservees'];
Line -... Line 358...
-
 
358
		foreach($propositions_conservees as $index => $proposition_conservee) {
354
		foreach($propositions_conservees as $index => $proposition_conservee) {
359
			
355
			
360
			$id_proposition_conservee = $proposition_conservee['id_commentaire'];
356
			$id_proposition_conservee = $proposition_conservee['id_commentaire'];
361
			// Pas besoin de mettre à jour une clé primaire !
Line 357... Line 362...
357
			// Pas besoin de mettre à jour un clé primaire !
362
			unset($proposition_conservee['id_commentaire']);
358
			unset($proposition_conservee['id_commentaire']);
363
			
359
			
-
 
-
 
364
			// Suppression des champs qui n'existent pas dans la base de données
360
			// Suppression des champs qui n'existent pas dans la base de données
365
			unset($proposition_conservee['votes']);
Line 361... Line 366...
361
			unset($proposition_conservee['votes']);
366
			unset($proposition_conservee['raison']);
362
			unset($proposition_conservee['raison']);
367
			$maj_prop = array();
Line 386... Line 391...
386
					
391
					
387
					$vote_a_proposition['ce_proposition'] = $id_proposition_conservee;
392
					$vote_a_proposition['ce_proposition'] = $id_proposition_conservee;
388
					foreach($vote_a_proposition as $champ_v => $valeur_v) {
393
					foreach($vote_a_proposition as $champ_v => $valeur_v) {
389
						$maj_vote[] = $champ_v.'='.$this->conteneur->getBdd()->proteger($valeur_v);
394
						$maj_vote[] = $champ_v.'='.$this->conteneur->getBdd()->proteger($valeur_v);
390
					}
-
 
-
 
395
					}
-
 
396
					// tous les votes pertinents pointent maintenant vers la proposition fusionnée
391
					
397
					// certains votes voient leur valeur mise à jour (fusion de valeurs de votes)
392
					$requete_maj_vote = "UPDATE del_commentaire_vote SET ".implode(',', $maj_vote)." ".
398
					$requete_maj_vote = "UPDATE del_commentaire_vote SET ".implode(',', $maj_vote)." ".
393
							"WHERE id_vote = ".$id_vote_conserve;
399
							"WHERE id_vote = ".$id_vote_conserve;
394
					$modif_vote = $this->conteneur->getBdd()->requeter($requete_maj_vote);
400
					$modif_vote = $this->conteneur->getBdd()->requeter($requete_maj_vote);
395
				}
401
				}