Subversion Repositories Applications.annuaire

Compare Revisions

Ignore whitespace Rev 391 → Rev 392

/trunk/modeles/AnnuaireModele.php
222,12 → 222,12
 
return $tableau_mappage ;
}
 
/** Charge le nombre d'inscrits d'une table annuaire mappée
* @param int $identifiant l'identifiant de l'annuaire mappé
*/
public function chargerNombreAnnuaireListeInscrits($identifiant) {
 
$requete_informations_annuaire = 'SELECT aa_bdd, aa_table '.
'FROM annu_annuaire '.
'WHERE aa_id_annuaire = '.$identifiant.' ';
236,10 → 236,10
if(!$resultat_informations_annuaire) {
trigger_error('impossible de récupérer les informations de la table '.$identifiant);
}
 
$requete_nombre_inscrits = 'SELECT COUNT(*) as nb '.
'FROM '.$resultat_informations_annuaire['aa_bdd'].'.'.$resultat_informations_annuaire['aa_table'];
 
// Récupération des résultats
try {
$resultat_nb_inscrits = $this->requeteUn($requete_nombre_inscrits);
251,8 → 251,8
} catch (Exception $e) {
$this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage());
}
return $nb_inscrits;
 
return $nb_inscrits;
}
 
/** Charge le nombre d'inscrits d'une table annuaire mappée en les groupant par départements
314,7 → 314,7
*
*/
public function chargerNombreAnnuaireListeInscritsParPays($id_annuaire, $ids_recherchees) {
 
$requete_informations_annuaire = 'SELECT aa_bdd, aa_table '.
'FROM annu_annuaire '.
'WHERE aa_id_annuaire = '.$id_annuaire.' ';
358,11 → 358,11
 
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
378,9 → 378,9
if($modele) {
$sep = '%';
}
 
foreach($criteres as $champ => $valeur) {
$criteres[$champ] = $valeur.$sep;
$criteres[$champ] = $valeur.$sep;
}
 
return $this->rechercherInscritDansAnnuaireMappe($id_annuaire, $criteres, array(), true, $numero_page, $taille_page);
401,9 → 401,9
'WHERE aa_id_annuaire = '.$id_annuaire.' ';
 
$resultat_informations_annuaire = $this->requeteUn($requete_informations_annuaire);
 
$champs_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire);
 
$requete_nb_inscrits = 'SELECT COUNT( * ) as nb '.' FROM '.$resultat_informations_annuaire['aa_bdd'].'.'.$resultat_informations_annuaire['aa_table'];
 
$resultat_nb_inscrits = $this->requeteUn($requete_nb_inscrits);
414,7 → 414,7
}
 
$requete_recherche_inscrits = 'SELECT '.$champs_mappage[0]['champ_id'].' FROM '.$resultat_informations_annuaire['aa_bdd'].'.'.$resultat_informations_annuaire['aa_table'];
 
if($taille_page != 0) {
$requete_recherche_inscrits .= ' LIMIT '.(($numero_page-1)*$taille_page).','.($taille_page);
}
757,7 → 757,7
}
 
}
 
/**
* Renvoie le nom et prénom associé au mail d'un utilisateur dans un annuaire donné
* @param int $id_annuair l'identifiant de l'annuaire
777,11 → 777,11
if (!$annuaire) {
return false;
}
 
foreach ($courriels as $id => $courriel) {
$courriels[$id] = $this->proteger($courriel);
}
 
$requete = 'SELECT '.$mappage['champ_id'].', '.$mappage['champ_mail'].', '.$mappage['champ_prenom'].', '.$mappage['champ_nom'].' '.
'FROM '.$annuaire['aa_bdd'].'.'.$annuaire['aa_table'].' '.
'WHERE '.$mappage['champ_mail'].' IN ('.implode(',', $courriels).')';
795,7 → 795,7
$id = $resultat[$mappage['champ_id']];
$prenom = AppControleur::formaterMotPremiereLettreChaqueMotEnMajuscule($resultat[$mappage['champ_prenom']]);
$nom = AppControleur::formaterMotEnMajuscule($resultat[$mappage['champ_nom']]);
 
$infos[$resultat[$mappage['champ_mail']]] = array('id' => $id, 'prenom' => $prenom, 'nom' => $nom);
}
return $infos;
921,7 → 921,7
return $resultat_selection_utilisateur;
}
}
 
/**
* Récupère les valeurs utilisateur dans l'annuaire indiqué en les ordonnant par le champ demandé
* @param int $id_annuaire l'identifiant de l'annuaire dans lequel on va travailler
949,7 → 949,7
$requete_selection_utilisateur = 'SELECT '.$champs_mappage['champ_id'].' '.
'FROM '.$resultat_infos_annuaire['aa_bdd'].'.'.$resultat_infos_annuaire['aa_table'].' '.
'ORDER BY '.$champ_order_by.' '.$dir.' LIMIT '.$limit;
 
$resultat_selection_utilisateur = $this->requeteTous($requete_selection_utilisateur);
 
 
960,9 → 960,9
return $resultat_selection_utilisateur;
}
}
 
public function obtenirNombreInscriptionsDansIntervalleDate($id_annuaire, $date_debut, $date_fin) {
 
$champs_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire);
 
$requete_infos_annuaire = 'SELECT * '.
981,26 → 981,26
$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
* @param int $id_annuaire l'identifiant de l'annuaire dans lequel on supprime les données
1140,7 → 1140,7
* @param boolean $exclusive indique si l'on recherche effectue une recherche exclusive ou inclusive (AND, ou OR)
*/
public function rechercherInscritDansAnnuaireMappe($id_annuaire, $valeurs, $id_a_inclure = array(), $exclusive = true, $numero_page = 1, $taille_page = 50, $ordre = 'champ_nom') {
 
// Si la fonction est appelée et que tous les critères sont vides
if(count($valeurs) == 0 && count($id_a_inclure) == 0) {
// on sort directement
1152,7 → 1152,7
'WHERE aa_id_annuaire = '.$id_annuaire.' ';
 
$resultat_informations_annuaire = $this->requeteUn($requete_informations_annuaire);
 
$champs_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire);
 
$requete_recherche_inscrits = 'SELECT '.$champs_mappage[0]['champ_id'].
1179,25 → 1179,25
// si le champ contient un % alors on ne cherche pas une valeur exacte : on utilise LIKE
foreach($valeurs as $champ => $valeur) {
if(trim($valeur) != '') {
 
if($champ == $champs_mappage[0]['champ_nom'] || $champ == $champs_mappage[0]['champ_code_postal']) {
if(strpos($valeur,"%") === false) {
$valeur .= '%';
}
}
 
if($champ == $champs_mappage[0]['champ_mail']) {
if(strpos($valeur,"%") === false) {
$valeur = '%'.$valeur.'%';
}
}
 
if(strpos($valeur,"%") === false) {
$operateur = ' = ';
} else {
$operateur = ' LIKE ';
}
 
$requete_conditions_inscrits .= $champ.$operateur.$this->proteger($valeur).$separateur;
}
}
1205,7 → 1205,7
$requete_conditions_inscrits = rtrim($requete_conditions_inscrits, $separateur);
 
$requete_recherche_inscrits .= $requete_conditions_inscrits;
 
$requete_nb_inscrits = 'SELECT COUNT( * ) as nb '.' FROM '.$resultat_informations_annuaire['aa_bdd'].'.'.$resultat_informations_annuaire['aa_table'];
 
if(trim($requete_conditions_inscrits) != '') {
1220,11 → 1220,11
}
 
$requete_recherche_inscrits .= ' ORDER BY '.$champs_mappage[0]['champ_nom'];
 
if($taille_page != 0) {
$requete_recherche_inscrits .= ' LIMIT '.(($numero_page-1)*$taille_page).','.($taille_page);
}
 
$resultat_recherche_inscrits = $this->requeteTous($requete_recherche_inscrits);
 
if(!$resultat_recherche_inscrits) {
1233,9 → 1233,9
 
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 '.
1243,7 → 1243,7
'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'];
1251,7 → 1251,7
$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 '.
1258,15 → 1258,15
'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;
1273,9 → 1273,9
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 {