294,11 → 294,11 |
/** Charge le nombre d'inscrits d'une table annuaire mappée en les groupant par pays |
* @param int $identifiant l'identifiant de l'annuaire mappé |
* @param array $id_recherchees un tableau contenant les codes de pays à rechercher |
* @return array un tableau indexé par les numéros de departement contenant le nombre d'inscrits à chacun |
* @return array un tableau indexé par les numéros de pays contenant le nombre d'inscrits à chacun |
* |
*/ |
public function chargerNombreAnnuaireListeInscritsParPays($id_annuaire, $ids_recherchees) { |
|
|
$requete_informations_annuaire = 'SELECT aa_bdd, aa_table '. |
'FROM annu_annuaire '. |
'WHERE aa_id_annuaire = '.$id_annuaire.' '; |
311,7 → 311,7 |
$tableau_mappage = $this->obtenirChampsCartographie($id_annuaire); |
$champ_pays = $tableau_mappage['champ_pays'][0]; |
|
$ids_recherchees = array_map('strtoupper', $ids_recherchees); |
//$ids_recherchees = array_map(array($this,'formaterAbreviationPaysPourRecherche'), $ids_recherchees); |
|
$resultat_nombre_inscrits = array(); |
|
343,6 → 343,10 |
return $resultat_nombre_inscrits; |
} |
|
private function formaterAbreviationPaysPourRecherche($chaine) { |
return $this->proteger(strtoupper($chaine)); |
} |
|
/** |
* Recherche selon une valeur d'un champ qui peut être une valeur approximative (avec des %) dans un champ d'annuaire donné |
* @param int $id_annuaire l'identifiant de l'annuaire |
902,7 → 906,45 |
} |
} |
|
public function obtenirNombreInscriptionsDansIntervalleDate($id_annuaire, $date_debut, $date_fin) { |
|
$champs_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire); |
|
$requete_infos_annuaire = 'SELECT * '. |
'FROM annu_annuaire '. |
'WHERE aa_id_annuaire = '.$id_annuaire.' '; |
|
$resultat_infos_annuaire = $this->requeteUn($requete_infos_annuaire); |
|
// en cas d'erreur on renvoie false |
// TODO: lever une exception |
if(!$resultat_infos_annuaire) { |
return false; |
} |
|
//$supprimer_donnes = false; |
$valeurs_mappees = array(); |
|
$champs_date = $this->obtenirChampDateEtValidite($id_annuaire); |
|
$date_inscription = $champs_date['champ_date_inscription']; |
|
$requete_nb_inscrits_intervalle = 'SELECT COUNT(*) as nb '. |
'FROM '.$resultat_infos_annuaire['aa_bdd'].'.'.$resultat_infos_annuaire['aa_table'].' '. |
'WHERE '.$date_inscription.' >= "'.date('Y-m-d H:i:s', $date_debut).'" '. |
'AND '.$date_inscription.' < "'.date('Y-m-d H:i:s', $date_fin).'" '; |
|
$resultat_nb_inscrits_intervalle = $this->requeteUn($requete_nb_inscrits_intervalle); |
|
if(!$resultat_nb_inscrits_intervalle) { |
return 0; |
} |
|
return $resultat_nb_inscrits_intervalle['nb']; |
|
} |
|
|
|
/** |
* Supprime une inscription dans une table annuaire |
1136,7 → 1178,58 |
|
return array('total' => $nb_inscrits, 'resultat' => $resultat_recherche_inscrits) ; |
} |
|
public function rechercherDoublonsDansAnnuaireMappe($id_annuaire, $numero_page = 1, $taille_page = 50) { |
|
$requete_informations_annuaire = 'SELECT aa_bdd, aa_table '. |
'FROM annu_annuaire '. |
'WHERE aa_id_annuaire = '.$id_annuaire.' '; |
|
$resultat_informations_annuaire = $this->requeteUn($requete_informations_annuaire); |
|
$champs_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire); |
|
$champ_id = $champs_mappage[0]['champ_id']; |
$champ_mail = $champs_mappage[0]['champ_mail']; |
$champ_nom = $champs_mappage[0]['champ_nom']; |
$champ_prenom = $champs_mappage[0]['champ_prenom']; |
$champ_ville = $champs_mappage[0]['champ_ville']; |
|
$requete_recherche_doublon = 'SELECT DISTINCT t2.'.$champ_id. |
' FROM '.$resultat_informations_annuaire['aa_bdd'].'.'.$resultat_informations_annuaire['aa_table'].' t1 '. |
'LEFT JOIN '.$resultat_informations_annuaire['aa_bdd'].'.'.$resultat_informations_annuaire['aa_table'].' t2 '. |
'USING ('.$champ_nom.','.$champ_prenom.','.$champ_ville.') '. |
'WHERE t1.'.$champ_id.' != t2.'.$champ_id.' '. |
'ORDER BY '.$champ_nom.', '.$champ_prenom.' '; |
|
|
|
$requete_nb_doublons = 'SELECT COUNT(DISTINCT t2.'.$champs_mappage[0]['champ_id'].') as nb'. |
' FROM '.$resultat_informations_annuaire['aa_bdd'].'.'.$resultat_informations_annuaire['aa_table'].' t1 '. |
'LEFT JOIN '.$resultat_informations_annuaire['aa_bdd'].'.'.$resultat_informations_annuaire['aa_table'].' t2 '. |
'USING ('.$champ_nom.','.$champ_prenom.','.$champ_ville.') '. |
'WHERE t1.'.$champ_id.' != t2.'.$champ_id; |
|
$resultat_nb_doublons = $this->requeteUn($requete_nb_doublons); |
|
$nb_doublons = 0; |
if($resultat_nb_doublons) { |
$nb_doublons = $resultat_nb_doublons['nb']; |
} |
|
$resultat_recherche_doublons = $this->requeteTous($requete_recherche_doublon); |
|
if(!$resultat_recherche_doublons) { |
$resultat_recherche_doublons = array(); |
} else { |
if($taille_page != 0) { |
$resultat_recherche_doublons = array_slice($resultat_recherche_doublons,($numero_page-1)*$taille_page,$taille_page); |
} |
} |
|
return array('total' => $nb_doublons, 'resultat' => $resultat_recherche_doublons) ; |
} |
|
/** |
* Reinitialise un mot de passe associé à un mail donné et en renvoie un nouveau, |
* généré aléatoirement |