Subversion Repositories eFlore/Applications.del

Rev

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

Rev 1971 Rev 1972
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érentiel 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
				break;
36
			default :
47
			default :
37
				throw new Exception("Erreur : la commande '$cmd' n'existe pas!");
48
				throw new Exception("Erreur : la commande '$cmd' n'existe pas!");
38
		}
49
		}
39
	}
50
	}
Line 87... Line 98...
87
				"WHERE ce_proposition NOT IN (SELECT id_commentaire FROM del_commentaire)";
98
				"WHERE ce_proposition NOT IN (SELECT id_commentaire FROM del_commentaire)";
Line 88... Line 99...
88
		
99
		
89
		$modif_votes = $this->conteneur->getBdd()->executer($requete_votes);
100
		$modif_votes = $this->conteneur->getBdd()->executer($requete_votes);
Line 90... Line 101...
90
	}
101
	}
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();
-
 
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();
-
 
102
		echo "\n";
102
	
103
		
103
	private function dedoublonnerPropositions() {		
104
		echo "Détection des propositions en doublons \n";
104
		echo "Détection des propositions en doublons \n";
105
		// 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
106
		// 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
Line 352... Line 352...
352
			// À la fin, une proposition fusionnée doit être supprimée
352
			// À la fin, une proposition fusionnée doit être supprimée
353
			$propositions_supprimees[$prop['id_commentaire']] = $prop;
353
			$propositions_supprimees[$prop['id_commentaire']] = $prop;
354
		}
354
		}
355
	}
355
	}
Line 356... Line -...
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)
-
 
360
	 */
-
 
361
	protected function fusionnerPropositionsMauvais($index, &$prop, &$proposition_conservees, &$propositions_supprimees) {
-
 
362
		// On garde les num noms valides
-
 
363
		if($prop['nom_sel_nn'] != "" && $prop['nom_sel_nn'] != 0) {
-
 
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
				}
-
 
371
				$raison = "Fusionnée car nn valide ! \n";
-
 
372
				$conservee = false;
-
 
373
			} else {
-
 
374
				$raison = "Conservée car nn valide ! \n";
-
 
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") {
-
 
382
			if(isset($proposition_conservees[$index])) {
-
 
383
				$proposition_conservees[$index]['proposition_retenue'] = $prop['proposition_retenue'];
-
 
384
				$proposition_conservees[$index]['date_validation'] = $prop['date_validation'];
-
 
385
				$proposition_conservees[$index]['ce_validateur'] = $prop['ce_validateur'];
-
 
386
				$raison = "Fusionnée car retenue ! \n";
-
 
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
-
 
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'];
-
 
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;
-
 
407
				$conservee = true;
-
 
408
			}
-
 
409
		}
-
 
410
			
-
 
411
		// On garde le texte associé
-
 
412
		if(!isset($proposition_conservees[$index]) && trim($prop['texte']) != "") {
-
 
413
			if(isset($proposition_conservees[$index])) {
-
 
414
				$proposition_conservees[$index]['texte'] .= " ".$prop['texte'];
-
 
415
				$raison = "Fusionnée car contient du texte ! \n";
-
 
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";
-
 
428
			$proposition_conservees[$index] = $prop;
-
 
429
			$conservee = true;
-
 
430
		}
-
 
431
			
-
 
432
		if($conservee) {
-
 
433
			$proposition_conservees[$index] = $prop;
-
 
434
			$proposition_conservees[$index]['raison'] = $raison;
-
 
435
		} else {
-
 
436
			// Si elle n'est rentrée dans aucun des cas de conservation alors on la supprime
-
 
437
			// (les informations pertinentes qu'elle pourrait contenir ont été fusionnées plus haut)
-
 
438
			$propositions_supprimees[$prop['id_commentaire']] = $prop;
-
 
439
			$propositions_supprimees[$prop['id_commentaire']]['raison'] = $raison;
-
 
440
		}
-
 
441
	}
-
 
442
 
356
 
443
	private function mettreAJourPropositions(&$propositions_a_obs_a_nom) {
357
	private function mettreAJourPropositions(&$propositions_a_obs_a_nom) {
444
		$propositions_conservees = $propositions_a_obs_a_nom['propositions_conservees'];
358
		$propositions_conservees = $propositions_a_obs_a_nom['propositions_conservees'];
Line 445... Line 359...
445
		foreach($propositions_conservees as $index => $proposition_conservee) {
359
		foreach($propositions_conservees as $index => $proposition_conservee) {