Subversion Repositories eFlore/Applications.del

Rev

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

Rev 1970 Rev 1971
Line 90... Line 90...
90
	}
90
	}
Line 91... Line 91...
91
	
91
	
92
	private function dedoublonnerPropositions() {
92
	private function dedoublonnerPropositions() {
93
		// Suppression des propositions et votes sur des obs inexistantes
93
		// Suppression des propositions et votes sur des obs inexistantes
94
		// pas la peine de traiter ce qui n'existe plus !
94
		// pas la peine de traiter ce qui n'existe plus !
-
 
95
		$this->supprimerPropositionsOrphelines();
-
 
96
		 
-
 
97
		// Corriger les noms de référentiel permet de simplifier les affectations de noms ensuite
-
 
98
		$this->corrigerNomsReferentiels();
-
 
99
		
-
 
100
		// Affectations de nums noms aux propositions qui le permettent
-
 
101
		$this->affecterNnsAuxPropositionsViables();
Line 95... Line 102...
95
		 $this->supprimerPropositionsOrphelines();
102
		echo "\n";
96
		
103
		
97
		echo "Détection des propositions en doublons \n";
104
		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
105
		// 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
106
		// etc... mais la méthode ne doit pas être lancée souvent et elle est rapide
100
		// donc lisibilité > performances
107
		// donc lisibilité > performances
Line 101... Line 108...
101
		$infos_indexees = array();
108
		$infos_indexees = array();
102
		$infos_indexees_par_obs = array();
109
		$infos_indexees_par_obs = array();
103
		
110
		
104
		// Selection des ids de commentaires dupliqués, groupés par observation (concaténés par des virgules)
111
		// 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 ".
112
		$requete_id_prod_doubl = "SELECT GROUP_CONCAT(id_commentaire) as id_commentaires_dupliques ".
Line 124... Line 131...
124
						"ORDER BY ce_observation, date ";
131
						"ORDER BY ce_observation, date ";
Line 125... Line 132...
125
	
132
	
126
			$propositions_doublonnees = $this->conteneur->getBdd()->recupererTous($requete_prop_doubl);
133
			$propositions_doublonnees = $this->conteneur->getBdd()->recupererTous($requete_prop_doubl);
Line 127... Line 134...
127
		}
134
		}
Line 128... Line 135...
128
		
135
		
129
		echo count($propositions_doublonnees)." propositions pour ".count($ids_propositions_doublonnees)." observations sont potentiellement en doublons \n";
136
		echo count($propositions_doublonnees)." propositions pour ".count($ids_propositions_doublonnees)." couples 'observation-nom_sel' sont potentiellement en doublons \n";
130
		
137
		
131
		// Organisation par numéro d'obs, puis par nom sel, puis par id proposition
138
		// Organisation par numéro d'obs, puis par nom sel, puis par id proposition
Line 190... Line 197...
190
			$this->afficherAvancement('observations traitées ', 1);
197
			$this->afficherAvancement('observations traitées ', 1);
191
		}
198
		}
Line 192... Line 199...
192
		
199
		
193
		// A la fin, les votes qui n'ont pas été fusionnés pointent sur des propositions 
200
		// 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
201
		// qui n'existent plus, donc on les supprime
195
		$this->supprimerVotesOrphelins();		
202
		$this->supprimerVotesOrphelins();
Line 196... Line 203...
196
		echo "\n";
203
		echo "\n";
197
		
204
		
198
		// Fichier json pour vérification par zieutage (chemin à modifier suivant l'emplacement désiré)
205
		// Fichier json pour vérification par zieutage (chemin à modifier suivant l'emplacement désiré)
Line 218... Line 225...
218
				// de réaffecter les votes à la proposition qui sera conservée
225
				// de réaffecter les votes à la proposition qui sera conservée
219
				if(!isset($votes_conserves[$index])) {
226
				if(!isset($votes_conserves[$index])) {
220
					$votes_conserves[$index] = array();
227
					$votes_conserves[$index] = array();
221
				}
228
				}
Line 222... Line 229...
222
				
229
				
223
				// Si on trouve un vote et un vote contre par le même utilisateur 
230
				// 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 
231
				// (cas d'une proposition doublonnée votée de manière contradictoire par 
Line 225... Line 232...
225
				// un utilisateur), on garde le vote positif
232
				// un utilisateur), on garde le vote positif
226
				
233
				
227
				foreach($prop['votes'] as $vote_proposition) {
234
				foreach($prop['votes'] as $vote_proposition) {
228
					// Un utilisateur ne peut avoir qu'un seul vote par proposition
235
					// Un utilisateur ne peut avoir qu'un seul vote par proposition
229
					$index_vote = $vote_proposition['ce_utilisateur'];
236
					$index_vote = $vote_proposition['ce_utilisateur'];
230
					if(isset($votes_conserves[$index][$index_vote])) {
237
					if(isset($votes_conserves[$index][$index_vote])) { // fusion
231
						$vote_deja_present = $votes_conserves[$index][$index_vote];
238
						$vote_deja_present = $votes_conserves[$index][$index_vote];
232
						// Mise à jour de la valeur dans le cas où le vote existe déjà
239
						// 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']);
240
						$valeur_vote_maj = max($votes_conserves[$index][$index_vote]['valeur'], $vote_proposition['valeur']);
234
						$votes_conserves[$index][$index_vote]['valeur'] = $valeur_vote_maj;
241
						$votes_conserves[$index][$index_vote]['valeur'] = $valeur_vote_maj;
235
						$votes_conserves[$index][$index_vote]['raison'] .= ' - '.$vote_proposition['valeur'];
242
						$votes_conserves[$index][$index_vote]['raison'] .= ' - '.$vote_proposition['valeur'];
236
					} else {
243
					} else { // nouveau vote
237
						$vote_proposition['raison'] = 'Fusion de '.$vote_proposition['valeur'];
244
						$vote_proposition['raison'] = 'Fusion de '.$vote_proposition['valeur'];
238
						$votes_conserves[$index][$index_vote] = $vote_proposition;
245
						$votes_conserves[$index][$index_vote] = $vote_proposition;
239
					}
246
					}
240
				}
247
				}
-
 
248
			}
241
			}
249
 
242
			
250
			// valeurs par défaut
Line 243... Line 251...
243
			$conservee = false;
251
			$conservee = false;
244
			$raison = 'Supprimée car ne rentre dans aucun cas';
252
			$raison = 'Supprimée car ne rentre dans aucun cas';
245
			
253
			
Line 246... Line 254...
246
			// Les cas ci dessous permettent de fusionner le maximum d'information
254
			// 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 
255
			// dans la proposition qui sera conservée (car il existe des doublons qui ne sont 
-
 
256
			// pas tout à fait identiques (ex.: l'un à un num_nom et l'autre pas)
-
 
257
			
248
			// pas tout à fait identiques (ex.: l'un à un nom nom et l'autre pas)
258
			// Les propositions sont classées par ordre de saisie donc on gardera comme base de fusion,
-
 
259
			// la plus ancienne qui correspond à au moins un cas de conservation
249
			
260
			$this->fusionnerPropositions($index, $prop, $proposition_conservees, $propositions_supprimees);
250
			// Les propositions sont classées par ordre de saisie donc on gardera comme base de fusion,
261
		}
251
			// la plus ancienne qui correspond à au moins un cas de conservation
262
		
-
 
263
		// Si aucune proposition ne convient on prend la première
-
 
264
		// qui est normalement la plus ancienne
252
			
265
		// @TODO normalement ça sert plus à rien
-
 
266
		if (empty($proposition_conservees)) {
-
 
267
			$prop_conservee = reset($prop_a_doublons);
-
 
268
			$index = strtolower($prop_conservee['nom_sel']).'-'.$prop_conservee['utilisateur_courriel'];
-
 
269
			$proposition_conservees[$index] = $prop_conservee;
-
 
270
			$proposition_conservees[$index]['raison'] = "Conservée car aucune autre ne convient \n";
-
 
271
		
-
 
272
			// Dans ce cas on retire la proposition de la liste des propositions supprimées
-
 
273
			unset($propositions_supprimees[$prop_conservee['id_commentaire']]);
-
 
274
		}
-
 
275
		
-
 
276
		$prop_a_doublons['propositions_conservees'] = $proposition_conservees;
-
 
277
		$prop_a_doublons['propositions_supprimees'] = $propositions_supprimees;
-
 
278
		$prop_a_doublons['votes_propositions_doublons'] = $votes_conserves;
-
 
279
		
-
 
280
	}
-
 
281
 
-
 
282
	/**
-
 
283
	 * Tente de fusionner toutes les propositions, pour une observation donnée,
-
 
284
	 * en se basant sur le couple auteur-nom_selectionne
253
			// On garde les num noms valides
285
	 */
-
 
286
	protected function fusionnerPropositions($index, &$prop, &$proposition_conservees, &$propositions_supprimees) {
254
			if($prop['nom_sel_nn'] != "" && $prop['nom_sel_nn'] != 0) {
287
		// On garde un exemple de chaque couple auteur/nom scientifique
-
 
288
		// Ca laisse des doublons en terme de nom mais au moins ça ne lèse pas les auteurs
-
 
289
		if(!isset($proposition_conservees[$index])) {
-
 
290
			// première rencontre avec le couple nom_sel/auteur
255
				if(isset($proposition_conservees[$index])) {
291
			$proposition_conservees[$index] = $prop;
-
 
292
		} else { // Cas de la fusion
-
 
293
			// Fusion d'un nom valide : fusionner nom _sel_nn (et nom_ret_nn et nom_ret s'ils existent)
256
					$proposition_conservees[$index]['nom_sel_nn'] = $prop['nom_sel_nn'];
294
			if(!empty($prop['nom_sel_nn'])) {
257
					if($proposition_conservees[$index]['nom_ret_nn'] == "" ||
295
				$proposition_conservees[$index]['nom_sel_nn'] = $prop['nom_sel_nn'];
258
							$proposition_conservees[$index]['nom_ret_nn'] == 0) {
296
				// infos complémentaires concernant le référentiel
259
						$proposition_conservees[$index]['nom_ret_nn'] = $prop['nom_ret_nn'];
297
				if(!empty($prop['nom_referentiel'])) {
260
						$proposition_conservees[$index]['nom_ret_nn'] = $prop['nom_ret_nn'];
298
					$proposition_conservees[$index]['nom_referentiel'] = $prop['nom_referentiel'];
261
					}
299
				}				
-
 
300
				if(!empty($prop['famille'])) {
262
					$raison = "Fusionnée car nn valide ! \n";
301
					$proposition_conservees[$index]['famille'] = $prop['famille'];
263
					$conservee = false;
302
				}
264
				} else {
303
				// Fusion du nom retenu s'il existe
265
					$raison = "Conservée car nn valide ! \n";
304
				if($proposition_conservees[$index]['nom_ret_nn'] == 0) { // on admet que nom_ret existe aussi dans ce cas
Line 266... Line -...
266
					$proposition_conservees[$index] = $prop;
-
 
267
					$conservee = true;
305
					$proposition_conservees[$index]['nom_ret'] = $prop['nom_ret'];
268
				}
306
					$proposition_conservees[$index]['nom_ret_nn'] = $prop['nom_ret_nn'];
269
			}
307
				}
-
 
308
			}
270
			
309
			
-
 
310
			// Fusion du caractère retenu : fusioner le booleen, la date de retention, le validateur
-
 
311
			if($prop['proposition_retenue'] == "1") {
271
			// On garde le caractère de proposition retenue
312
				$proposition_conservees[$index]['proposition_retenue'] = $prop['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;
313
				if (empty($proposition_conservees[$index]['date_validation'])) {
279
				} else {
314
					$proposition_conservees[$index]['date_validation'] = $prop['date_validation'];
Line 280... Line -...
280
					$raison = "Conservée car retenue ! \n";
-
 
281
					$proposition_conservees[$index] = $prop;
315
				}
282
					$conservee = true;
316
				if (empty($proposition_conservees[$index]['ce_validateur'])) {
283
				}
317
					$proposition_conservees[$index]['ce_validateur'] = $prop['ce_validateur'];
-
 
318
				}
284
			}
319
			}
-
 
320
			
-
 
321
			// Fusion du caractère initial : fusion du booleen, fusion des infos d'auteur et de la date la plus ancienne
285
			
322
			if($prop['proposition_initiale'] == "1") {
-
 
323
				$proposition_conservees[$index]['proposition_initiale'] = $prop['proposition_initiale'];
-
 
324
				if (empty($proposition_conservees[$index]['ce_utilisateur'])) {
286
			// On garde le caractère de proposition initiale
325
					$proposition_conservees[$index]['ce_utilisateur'] = $prop['ce_utilisateur'];
-
 
326
				}
-
 
327
				if (empty($proposition_conservees[$index]['utilisateur_prenom'])) {
287
			if(!isset($proposition_conservees[$index]) && $prop['proposition_initiale'] == "1") {
328
					$proposition_conservees[$index]['utilisateur_prenom'] = $prop['utilisateur_prenom'];
288
				if(isset($proposition_conservees[$index])) {
-
 
289
					$proposition_conservees[$index]['proposition_initiale'] = $prop['proposition_initiale'];
329
				}
290
					$proposition_conservees[$index]['ce_utilisateur'] = $prop['ce_utilisateur'];
330
				if (empty($proposition_conservees[$index]['utilisateur_nom'])) {
291
					$proposition_conservees[$index]['utilisateur_prenom'] = $prop['utilisateur_prenom'];
331
					$proposition_conservees[$index]['utilisateur_nom'] = $prop['utilisateur_nom'];
-
 
332
				}
292
					$proposition_conservees[$index]['utilisateur_nom'] = $prop['utilisateur_nom'];
333
				if (empty($proposition_conservees[$index]['utilisateur_courriel'])) {
-
 
334
					$proposition_conservees[$index]['utilisateur_courriel'] = $prop['utilisateur_courriel'];
293
					$proposition_conservees[$index]['utilisateur_courriel'] = $prop['utilisateur_courriel'];
335
				}
294
					$conservee = false;
336
				// Test tout simple pour éviter les dates vides
295
				} else {
337
				if (empty($proposition_conservees[$index]['date'])) {
296
					$raison = "Conservée car initiale ! \n";
338
					if(substr($prop['date'], 0, 4) != "0000") {
297
					$proposition_conservees[$index] = $prop;
339
						$proposition_conservees[$index]['date'] = $prop['date'];
298
					$conservee = true;
340
					}
-
 
341
				}
-
 
342
			}
299
				}
343
 
-
 
344
			// Fusion du commentaire (concaténation du texte)
-
 
345
			if(trim($proposition_conservees[$index]['texte']) != "") {
300
			}
346
				$prop['texte'] = trim($prop['texte']);
301
			
347
				// Suppression du texte fusionné, au cas où il existerait déjà (un peu barbare mais bon)
302
			// On garde le texte associé
348
				$proposition_conservees[$index]['texte'] = str_replace($prop['texte'].';', '', $proposition_conservees[$index]['texte']);
-
 
349
				$proposition_conservees[$index]['texte'] .= $prop['texte'].';';		
-
 
350
			}		
-
 
351
	
-
 
352
			// À la fin, une proposition fusionnée doit être supprimée
-
 
353
			$propositions_supprimees[$prop['id_commentaire']] = $prop;
-
 
354
		}
-
 
355
	}
-
 
356
 
-
 
357
	/**
-
 
358
	 * Tente de fusionner toutes les propositions, pour une observation donnée,
-
 
359
	 * en se basant sur le couple auteur-nom_selectionne (première version obsolète)
303
			if(!isset($proposition_conservees[$index]) && trim($prop['texte']) != "") {
360
	 */
-
 
361
	protected function fusionnerPropositionsMauvais($index, &$prop, &$proposition_conservees, &$propositions_supprimees) {
304
				if(isset($proposition_conservees[$index])) {
362
		// On garde les num noms valides
305
					$proposition_conservees[$index]['texte'] .= " ".$prop['texte'];
363
		if($prop['nom_sel_nn'] != "" && $prop['nom_sel_nn'] != 0) {
306
					$raison = "Fusionnée car contient du texte ! \n";
364
			if(isset($proposition_conservees[$index])) {
-
 
365
				$proposition_conservees[$index]['nom_sel_nn'] = $prop['nom_sel_nn'];
-
 
366
				if($proposition_conservees[$index]['nom_ret_nn'] == "" ||
-
 
367
				$proposition_conservees[$index]['nom_ret_nn'] == 0) { // on admet que nom_ret existe aussi dans ce cas
-
 
368
					$proposition_conservees[$index]['nom_ret'] = $prop['nom_ret'];
-
 
369
					$proposition_conservees[$index]['nom_ret_nn'] = $prop['nom_ret_nn'];
-
 
370
				}
307
					$conservee = false;
371
				$raison = "Fusionnée car nn valide ! \n";
-
 
372
				$conservee = false;
Line 308... Line 373...
308
				} else {
373
			} else {
309
					$raison = "Conservée car contient du texte ! \n";
374
				$raison = "Conservée car nn valide ! \n";
310
					$proposition_conservees[$index] = $prop;
375
				$proposition_conservees[$index] = $prop;
-
 
376
				$conservee = true;
-
 
377
			}
-
 
378
		}
-
 
379
			
-
 
380
		// On garde le caractère de proposition retenue
-
 
381
		if(!isset($proposition_conservees[$index]) && $prop['proposition_retenue'] == "1") {
311
					$conservee = true;
382
			if(isset($proposition_conservees[$index])) {
312
				}
383
				$proposition_conservees[$index]['proposition_retenue'] = $prop['proposition_retenue'];
313
			}
384
				$proposition_conservees[$index]['date_validation'] = $prop['date_validation'];
314
			
385
				$proposition_conservees[$index]['ce_validateur'] = $prop['ce_validateur'];
-
 
386
				$raison = "Fusionnée car retenue ! \n";
315
			// On garde un exemple de chaque couple auteur/nom scientifique
387
				$conservee = false;
-
 
388
			} else {
-
 
389
				$raison = "Conservée car retenue ! \n";
-
 
390
				$proposition_conservees[$index] = $prop;
-
 
391
				$conservee = true;
-
 
392
			}
-
 
393
		}
-
 
394
			
-
 
395
		// On garde le caractère de proposition initiale
316
			// Ca laisse des doublons en terme de nom mais au moins ça ne lèse pas les auteurs
396
		if(!isset($proposition_conservees[$index]) && $prop['proposition_initiale'] == "1") {
-
 
397
			if(isset($proposition_conservees[$index])) {
-
 
398
				$proposition_conservees[$index]['proposition_initiale'] = $prop['proposition_initiale'];
317
			if(!isset($proposition_conservees[$index])) {
399
				$proposition_conservees[$index]['ce_utilisateur'] = $prop['ce_utilisateur'];
-
 
400
				$proposition_conservees[$index]['utilisateur_prenom'] = $prop['utilisateur_prenom'];
-
 
401
				$proposition_conservees[$index]['utilisateur_nom'] = $prop['utilisateur_nom'];
-
 
402
				$proposition_conservees[$index]['utilisateur_courriel'] = $prop['utilisateur_courriel'];
-
 
403
				$conservee = false;
-
 
404
			} else {
-
 
405
				$raison = "Conservée car initiale ! \n";
-
 
406
				$proposition_conservees[$index] = $prop;
318
				$raison = "Conservée car on conserve une proposition de chaque couple auteur/nom ! \n";
407
				$conservee = true;
-
 
408
			}
-
 
409
		}
319
				$proposition_conservees[$index] = $prop;
410
			
320
				$conservee = true;
411
		// On garde le texte associé
321
			}
-
 
322
							
412
		if(!isset($proposition_conservees[$index]) && trim($prop['texte']) != "") {
323
			if($conservee) {
413
			if(isset($proposition_conservees[$index])) {
324
				$proposition_conservees[$index] = $prop;
414
				$proposition_conservees[$index]['texte'] .= " ".$prop['texte'];
325
				$proposition_conservees[$index]['raison'] = $raison;
415
				$raison = "Fusionnée car contient du texte ! \n";
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)
-
 
329
				$propositions_supprimees[$prop['id_commentaire']] = $prop;
-
 
330
				$propositions_supprimees[$prop['id_commentaire']]['raison'] = $raison;
-
 
331
			}
-
 
332
		}
-
 
333
		
-
 
Line -... Line 416...
-
 
416
				$conservee = false;
-
 
417
			} else {
-
 
418
				$raison = "Conservée car contient du texte ! \n";
-
 
419
				$proposition_conservees[$index] = $prop;
-
 
420
				$conservee = true;
-
 
421
			}
-
 
422
		}
-
 
423
			
-
 
424
		// On garde un exemple de chaque couple auteur/nom scientifique
-
 
425
		// Ca laisse des doublons en terme de nom mais au moins ça ne lèse pas les auteurs
-
 
426
		if(!isset($proposition_conservees[$index])) {
-
 
427
			$raison = "Conservée car on conserve une proposition de chaque couple auteur/nom ! \n";
334
		// Si aucune proposition ne convient on prend la première
428
			$proposition_conservees[$index] = $prop;
-
 
429
			$conservee = true;
335
		// qui est normalement la plus ancienne
430
		}
-
 
431
			
336
		if(empty($proposition_conservees)) {
432
		if($conservee) {
337
			$prop_conservee = reset($prop_a_doublons);
-
 
338
			$index = strtolower($prop_conservee['nom_sel']).'-'.$prop_conservee['utilisateur_courriel'];
-
 
339
			$proposition_conservees[$index] = $prop_conservee;
-
 
340
			$proposition_conservees[$index]['raison'] = "Conservée car aucune autre ne convient \n";
-
 
341
			
-
 
342
			// Dans ce cas on retire la proposition de la liste des propositions supprimées
433
			$proposition_conservees[$index] = $prop;
Line 343... Line 434...
343
			unset($propositions_supprimees[$prop_conservee['id_commentaire']]);
434
			$proposition_conservees[$index]['raison'] = $raison;
344
		}
435
		} else {
345
		
436
			// Si elle n'est rentrée dans aucun des cas de conservation alors on la supprime
Line 346... Line 437...
346
		$prop_a_doublons['propositions_conservees'] = $proposition_conservees;
437
			// (les informations pertinentes qu'elle pourrait contenir ont été fusionnées plus haut)
347
		$prop_a_doublons['propositions_supprimees'] = $propositions_supprimees;
438
			$propositions_supprimees[$prop['id_commentaire']] = $prop;
348
		$prop_a_doublons['votes_propositions_doublons'] = $votes_conserves;
439
			$propositions_supprimees[$prop['id_commentaire']]['raison'] = $raison;
Line 349... Line 440...
349
		
440
		}
350
	}
441
	}
351
 
442
 
352
	private function mettreAJourPropositions(&$propositions_a_obs_a_nom) {
443
	private function mettreAJourPropositions(&$propositions_a_obs_a_nom) {
Line -... Line 444...
-
 
444
		$propositions_conservees = $propositions_a_obs_a_nom['propositions_conservees'];
353
		$propositions_conservees = $propositions_a_obs_a_nom['propositions_conservees'];
445
		foreach($propositions_conservees as $index => $proposition_conservee) {
354
		foreach($propositions_conservees as $index => $proposition_conservee) {
446
			
355
			
447
			$id_proposition_conservee = $proposition_conservee['id_commentaire'];
Line 356... Line 448...
356
			$id_proposition_conservee = $proposition_conservee['id_commentaire'];
448
			// Pas besoin de mettre à jour une clé primaire !
357
			// Pas besoin de mettre à jour un clé primaire !
449
			unset($proposition_conservee['id_commentaire']);
358
			unset($proposition_conservee['id_commentaire']);
-
 
-
 
450
			
359
			
451
			// Suppression des champs qui n'existent pas dans la base de données
Line 360... Line 452...
360
			// Suppression des champs qui n'existent pas dans la base de données
452
			unset($proposition_conservee['votes']);
361
			unset($proposition_conservee['votes']);
453
			unset($proposition_conservee['raison']);
Line 386... Line 478...
386
					
478
					
387
					$vote_a_proposition['ce_proposition'] = $id_proposition_conservee;
479
					$vote_a_proposition['ce_proposition'] = $id_proposition_conservee;
388
					foreach($vote_a_proposition as $champ_v => $valeur_v) {
480
					foreach($vote_a_proposition as $champ_v => $valeur_v) {
389
						$maj_vote[] = $champ_v.'='.$this->conteneur->getBdd()->proteger($valeur_v);
481
						$maj_vote[] = $champ_v.'='.$this->conteneur->getBdd()->proteger($valeur_v);
390
					}
-
 
-
 
482
					}
-
 
483
					// tous les votes pertinents pointent maintenant vers la proposition fusionnée
391
					
484
					// certains votes voient leur valeur mise à jour (fusion de valeurs de votes)
392
					$requete_maj_vote = "UPDATE del_commentaire_vote SET ".implode(',', $maj_vote)." ".
485
					$requete_maj_vote = "UPDATE del_commentaire_vote SET ".implode(',', $maj_vote)." ".
393
							"WHERE id_vote = ".$id_vote_conserve;
486
							"WHERE id_vote = ".$id_vote_conserve;
394
					$modif_vote = $this->conteneur->getBdd()->requeter($requete_maj_vote);
487
					$modif_vote = $this->conteneur->getBdd()->requeter($requete_maj_vote);
395
				}
488
				}