33,6 → 33,17 |
case 'dedoublonnerPropositions' : |
$this->dedoublonnerPropositions(); |
break; |
case 'dedoublonnerPropositionsEtCorrigerDonnees' : |
// Suppression des propositions et votes sur des obs inexistantes |
// pas la peine de traiter ce qui n'existe plus ! |
$this->supprimerPropositionsOrphelines(); |
// Corriger les noms de référentiel permet de simplifier les affectations de noms ensuite |
$this->corrigerNomsReferentiels(); |
// Affectations de nums noms aux propositions qui le permettent |
$this->affecterNnsAuxPropositionsViables(); |
echo "\n"; |
$this->dedoublonnerPropositions(); |
break; |
default : |
throw new Exception("Erreur : la commande '$cmd' n'existe pas!"); |
} |
89,18 → 100,7 |
$modif_votes = $this->conteneur->getBdd()->executer($requete_votes); |
} |
|
private function dedoublonnerPropositions() { |
// Suppression des propositions et votes sur des obs inexistantes |
// pas la peine de traiter ce qui n'existe plus ! |
$this->supprimerPropositionsOrphelines(); |
|
// Corriger les noms de référentiel permet de simplifier les affectations de noms ensuite |
$this->corrigerNomsReferentiels(); |
|
// Affectations de nums noms aux propositions qui le permettent |
$this->affecterNnsAuxPropositionsViables(); |
echo "\n"; |
|
private function dedoublonnerPropositions() { |
echo "Détection des propositions en doublons \n"; |
// La méthode n'est pas optimisée, on fait beaucoup de boucles, de traitement de données |
// etc... mais la méthode ne doit pas être lancée souvent et elle est rapide |
354,92 → 354,6 |
} |
} |
|
/** |
* Tente de fusionner toutes les propositions, pour une observation donnée, |
* en se basant sur le couple auteur-nom_selectionne (première version obsolète) |
*/ |
protected function fusionnerPropositionsMauvais($index, &$prop, &$proposition_conservees, &$propositions_supprimees) { |
// On garde les num noms valides |
if($prop['nom_sel_nn'] != "" && $prop['nom_sel_nn'] != 0) { |
if(isset($proposition_conservees[$index])) { |
$proposition_conservees[$index]['nom_sel_nn'] = $prop['nom_sel_nn']; |
if($proposition_conservees[$index]['nom_ret_nn'] == "" || |
$proposition_conservees[$index]['nom_ret_nn'] == 0) { // on admet que nom_ret existe aussi dans ce cas |
$proposition_conservees[$index]['nom_ret'] = $prop['nom_ret']; |
$proposition_conservees[$index]['nom_ret_nn'] = $prop['nom_ret_nn']; |
} |
$raison = "Fusionnée car nn valide ! \n"; |
$conservee = false; |
} else { |
$raison = "Conservée car nn valide ! \n"; |
$proposition_conservees[$index] = $prop; |
$conservee = true; |
} |
} |
|
// On garde le caractère de proposition retenue |
if(!isset($proposition_conservees[$index]) && $prop['proposition_retenue'] == "1") { |
if(isset($proposition_conservees[$index])) { |
$proposition_conservees[$index]['proposition_retenue'] = $prop['proposition_retenue']; |
$proposition_conservees[$index]['date_validation'] = $prop['date_validation']; |
$proposition_conservees[$index]['ce_validateur'] = $prop['ce_validateur']; |
$raison = "Fusionnée car retenue ! \n"; |
$conservee = false; |
} else { |
$raison = "Conservée car retenue ! \n"; |
$proposition_conservees[$index] = $prop; |
$conservee = true; |
} |
} |
|
// On garde le caractère de proposition initiale |
if(!isset($proposition_conservees[$index]) && $prop['proposition_initiale'] == "1") { |
if(isset($proposition_conservees[$index])) { |
$proposition_conservees[$index]['proposition_initiale'] = $prop['proposition_initiale']; |
$proposition_conservees[$index]['ce_utilisateur'] = $prop['ce_utilisateur']; |
$proposition_conservees[$index]['utilisateur_prenom'] = $prop['utilisateur_prenom']; |
$proposition_conservees[$index]['utilisateur_nom'] = $prop['utilisateur_nom']; |
$proposition_conservees[$index]['utilisateur_courriel'] = $prop['utilisateur_courriel']; |
$conservee = false; |
} else { |
$raison = "Conservée car initiale ! \n"; |
$proposition_conservees[$index] = $prop; |
$conservee = true; |
} |
} |
|
// On garde le texte associé |
if(!isset($proposition_conservees[$index]) && trim($prop['texte']) != "") { |
if(isset($proposition_conservees[$index])) { |
$proposition_conservees[$index]['texte'] .= " ".$prop['texte']; |
$raison = "Fusionnée car contient du texte ! \n"; |
$conservee = false; |
} else { |
$raison = "Conservée car contient du texte ! \n"; |
$proposition_conservees[$index] = $prop; |
$conservee = true; |
} |
} |
|
// On garde un exemple de chaque couple auteur/nom scientifique |
// Ca laisse des doublons en terme de nom mais au moins ça ne lèse pas les auteurs |
if(!isset($proposition_conservees[$index])) { |
$raison = "Conservée car on conserve une proposition de chaque couple auteur/nom ! \n"; |
$proposition_conservees[$index] = $prop; |
$conservee = true; |
} |
|
if($conservee) { |
$proposition_conservees[$index] = $prop; |
$proposition_conservees[$index]['raison'] = $raison; |
} else { |
// Si elle n'est rentrée dans aucun des cas de conservation alors on la supprime |
// (les informations pertinentes qu'elle pourrait contenir ont été fusionnées plus haut) |
$propositions_supprimees[$prop['id_commentaire']] = $prop; |
$propositions_supprimees[$prop['id_commentaire']]['raison'] = $raison; |
} |
} |
|
private function mettreAJourPropositions(&$propositions_a_obs_a_nom) { |
$propositions_conservees = $propositions_a_obs_a_nom['propositions_conservees']; |
foreach($propositions_conservees as $index => $proposition_conservee) { |