Subversion Repositories Applications.annuaire

Rev

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

Rev 437 Rev 452
Line 140... Line 140...
140
			// le tableau des champs carto se présente sous la forme type de champ => [0] nom_champ_annuaire [1] nomù champ metadonnées
140
			// le tableau des champs carto se présente sous la forme type de champ => [0] nom_champ_annuaire [1] nomù champ metadonnées
141
			$tableau_carto[$champ['at_action']][0] = $champ['at_ressource'];
141
			$tableau_carto[$champ['at_action']][0] = $champ['at_ressource'];
142
			$tableau_carto[$champ['at_action']][1] = $champ['at_valeur'];
142
			$tableau_carto[$champ['at_action']][1] = $champ['at_valeur'];
143
		}
143
		}
Line 144... Line 144...
144
 
144
 
145
		
145
 
146
		return $tableau_carto ;
146
		return $tableau_carto ;
Line 147... Line 147...
147
	}
147
	}
148
 
148
 
Line 164... Line 164...
164
			trigger_error('impossible de récupérer le champ avatar de l\'annuaire '.$id_annuaire);
164
			trigger_error('impossible de récupérer le champ avatar de l\'annuaire '.$id_annuaire);
165
		}
165
		}
Line 166... Line 166...
166
 
166
 
Line 167... Line 167...
167
		$champ_avatar = $resultat_champs_avatar['at_valeur'];
167
		$champ_avatar = $resultat_champs_avatar['at_valeur'];
168
 
168
 
169
		
169
 
Line 170... Line 170...
170
		return $champ_avatar ;
170
		return $champ_avatar ;
171
	}
171
	}
Line 184... Line 184...
184
		$champs_date_validite = array();
184
		$champs_date_validite = array();
185
		foreach ($resultat_champs_date_validite as $champ) {
185
		foreach ($resultat_champs_date_validite as $champ) {
186
     		$resultat_champs_date_validite[$champ['at_action']] = $champ['at_ressource'];
186
     		$resultat_champs_date_validite[$champ['at_action']] = $champ['at_ressource'];
187
		}
187
		}
Line 188... Line 188...
188
 
188
 
189
		
189
 
190
		return $resultat_champs_date_validite ;
190
		return $resultat_champs_date_validite ;
Line 191... Line 191...
191
	}
191
	}
192
 
192
 
Line 214... Line 214...
214
			$tableau_mappage[1][$champ['at_action']] = $champ['at_valeur'];
214
			$tableau_mappage[1][$champ['at_action']] = $champ['at_valeur'];
215
		}
215
		}
Line 216... Line 216...
216
 
216
 
217
		return $tableau_mappage ;
217
		return $tableau_mappage ;
218
	}
218
	}
219
	
219
 
220
	/** Charge le nombre d'inscrits d'une table annuaire mappée
220
	/** Charge le nombre d'inscrits d'une table annuaire mappée
221
	 * @param int $identifiant l'identifiant de l'annuaire mappé
221
	 * @param int $identifiant l'identifiant de l'annuaire mappé
222
	 */
222
	 */
223
	public function chargerNombreAnnuaireListeInscrits($identifiant) {
223
	public function chargerNombreAnnuaireListeInscrits($identifiant) {
224
		
224
 
225
			$requete_informations_annuaire = 	'SELECT aa_bdd, aa_table '.
225
			$requete_informations_annuaire = 	'SELECT aa_bdd, aa_table '.
226
					'FROM  annu_annuaire '.
226
					'FROM  annu_annuaire '.
227
					'WHERE aa_id_annuaire = '.$identifiant.' ';
227
					'WHERE aa_id_annuaire = '.$identifiant.' ';
Line 228... Line 228...
228
		$resultat_informations_annuaire = $this->requeteUn($requete_informations_annuaire);
228
		$resultat_informations_annuaire = $this->requeteUn($requete_informations_annuaire);
229
 
229
 
230
		if(!$resultat_informations_annuaire) {
230
		if(!$resultat_informations_annuaire) {
231
			trigger_error('impossible de récupérer les informations de la table '.$identifiant);
231
			trigger_error('impossible de récupérer les informations de la table '.$identifiant);
232
		}
232
		}
233
		
233
 
234
		$requete_nombre_inscrits = 'SELECT COUNT(*) as nb '.
234
		$requete_nombre_inscrits = 'SELECT COUNT(*) as nb '.
235
									'FROM '.$resultat_informations_annuaire['aa_bdd'].'.'.$resultat_informations_annuaire['aa_table'];
235
									'FROM '.$resultat_informations_annuaire['aa_bdd'].'.'.$resultat_informations_annuaire['aa_table'];
236
		
236
 
237
		// Récupération des résultats
237
		// Récupération des résultats
238
		try {
238
		try {
239
			$resultat_nb_inscrits = $this->requeteUn($requete_nombre_inscrits);
239
			$resultat_nb_inscrits = $this->requeteUn($requete_nombre_inscrits);
Line 243... Line 243...
243
				$nb_inscrits = $resultat_nb_inscrits['nb'];
243
				$nb_inscrits = $resultat_nb_inscrits['nb'];
244
			}
244
			}
245
		} catch (Exception $e) {
245
		} catch (Exception $e) {
246
			$this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage());
246
			$this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage());
247
		}
247
		}
248
		
248
 
249
		return $nb_inscrits; 
249
		return $nb_inscrits;
250
	}
250
	}
Line 251... Line 251...
251
 
251
 
252
	/** Charge le nombre d'inscrits d'une table annuaire mappée en les groupant par départements
252
	/** Charge le nombre d'inscrits d'une table annuaire mappée en les groupant par départements
253
	 * @param int $identifiant l'identifiant de l'annuaire mappé
253
	 * @param int $identifiant l'identifiant de l'annuaire mappé
Line 306... Line 306...
306
	 * @param array $id_recherchees un tableau contenant les codes de pays à rechercher
306
	 * @param array $id_recherchees un tableau contenant les codes de pays à rechercher
307
	 * @return array un tableau indexé par les numéros de pays contenant le nombre d'inscrits à chacun
307
	 * @return array un tableau indexé par les numéros de pays contenant le nombre d'inscrits à chacun
308
	 *
308
	 *
309
	 */
309
	 */
310
	public function chargerNombreAnnuaireListeInscritsParPays($id_annuaire, $ids_recherchees) {
310
	public function chargerNombreAnnuaireListeInscritsParPays($id_annuaire, $ids_recherchees) {
311
		
311
 
312
		$requete_informations_annuaire = 	'SELECT aa_bdd, aa_table '.
312
		$requete_informations_annuaire = 	'SELECT aa_bdd, aa_table '.
313
					'FROM  annu_annuaire '.
313
					'FROM  annu_annuaire '.
314
					'WHERE aa_id_annuaire = '.$id_annuaire.' ';
314
					'WHERE aa_id_annuaire = '.$id_annuaire.' ';
315
		$resultat_informations_annuaire = $this->requeteUn($requete_informations_annuaire);
315
		$resultat_informations_annuaire = $this->requeteUn($requete_informations_annuaire);
Line 350... Line 350...
350
			trigger_error('impossible de récupérer le nombre d\'inscrits de la table '.$resultat_informations_annuaire['aa_bdd'].'.'.$resultat_informations_annuaire['aa_table']);
350
			trigger_error('impossible de récupérer le nombre d\'inscrits de la table '.$resultat_informations_annuaire['aa_bdd'].'.'.$resultat_informations_annuaire['aa_table']);
351
		}
351
		}
Line 352... Line 352...
352
 
352
 
353
		return $resultat_nombre_inscrits;
353
		return $resultat_nombre_inscrits;
354
	}
354
	}
355
	
355
 
356
	private function formaterAbreviationPaysPourRecherche($chaine) {
356
	private function formaterAbreviationPaysPourRecherche($chaine) {
357
		return $this->proteger(strtoupper($chaine));
357
		return $this->proteger(strtoupper($chaine));
358
	}
358
	}
359
	
359
 
360
	/**
360
	/**
361
	 * Recherche selon une valeur d'un champ qui peut être une valeur approximative (avec des %) dans un champ d'annuaire donné
361
	 * Recherche selon une valeur d'un champ qui peut être une valeur approximative (avec des %) dans un champ d'annuaire donné
362
	 * @param int $id_annuaire l'identifiant de l'annuaire
362
	 * @param int $id_annuaire l'identifiant de l'annuaire
363
	 * @param string $champ_critere le champ qui servira de filtre
363
	 * @param string $champ_critere le champ qui servira de filtre
Line 370... Line 370...
370
		$sep = '';
370
		$sep = '';
Line 371... Line 371...
371
 
371
 
372
		if($modele) {
372
		if($modele) {
373
			$sep = '%';
373
			$sep = '%';
374
		}
374
		}
375
		
375
 
376
		foreach($criteres as $champ => $valeur) {
376
		foreach($criteres as $champ => $valeur) {
377
			$criteres[$champ] = $valeur.$sep;	
377
			$criteres[$champ] = $valeur.$sep;
Line 378... Line 378...
378
		}
378
		}
379
 
379
 
Line 393... Line 393...
393
		$requete_informations_annuaire = 	'SELECT aa_bdd, aa_table '.
393
		$requete_informations_annuaire = 	'SELECT aa_bdd, aa_table '.
394
					'FROM  annu_annuaire '.
394
					'FROM  annu_annuaire '.
395
					'WHERE aa_id_annuaire = '.$id_annuaire.' ';
395
					'WHERE aa_id_annuaire = '.$id_annuaire.' ';
Line 396... Line 396...
396
 
396
 
397
		$resultat_informations_annuaire = $this->requeteUn($requete_informations_annuaire);
397
		$resultat_informations_annuaire = $this->requeteUn($requete_informations_annuaire);
398
				
398
 
399
		$champs_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire);
399
		$champs_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire);
400
		
400
 
Line 401... Line 401...
401
		$requete_nb_inscrits = 'SELECT COUNT( * ) as nb '.' FROM '.$resultat_informations_annuaire['aa_bdd'].'.'.$resultat_informations_annuaire['aa_table'];
401
		$requete_nb_inscrits = 'SELECT COUNT( * ) as nb '.' FROM '.$resultat_informations_annuaire['aa_bdd'].'.'.$resultat_informations_annuaire['aa_table'];
Line 402... Line 402...
402
 
402
 
403
		$resultat_nb_inscrits = $this->requeteUn($requete_nb_inscrits);
403
		$resultat_nb_inscrits = $this->requeteUn($requete_nb_inscrits);
404
 
404
 
405
		$nb_inscrits = 0;
405
		$nb_inscrits = 0;
Line 406... Line 406...
406
		if($resultat_nb_inscrits) {
406
		if($resultat_nb_inscrits) {
407
			$nb_inscrits = $resultat_nb_inscrits['nb'];
407
			$nb_inscrits = $resultat_nb_inscrits['nb'];
408
		}
408
		}
409
 
409
 
410
		$requete_recherche_inscrits = 'SELECT '.$champs_mappage[0]['champ_id'].' FROM '.$resultat_informations_annuaire['aa_bdd'].'.'.$resultat_informations_annuaire['aa_table'];
410
		$requete_recherche_inscrits = 'SELECT '.$champs_mappage[0]['champ_id'].' FROM '.$resultat_informations_annuaire['aa_bdd'].'.'.$resultat_informations_annuaire['aa_table'];
Line 411... Line 411...
411
		
411
 
Line 749... Line 749...
749
		} else {
749
		} else {
750
			return $resultat_selection_utilisateur[$champs_mappage['champ_id']];
750
			return $resultat_selection_utilisateur[$champs_mappage['champ_id']];
751
		}
751
		}
Line 752... Line 752...
752
 
752
 
753
	}
753
	}
754
	
754
 
755
	/**
755
	/**
756
	 * Renvoie le nom et prénom associé au mail d'un utilisateur dans un annuaire donné
756
	 * Renvoie le nom et prénom associé au mail d'un utilisateur dans un annuaire donné
757
	 * @param int $id_annuair l'identifiant de l'annuaire
757
	 * @param int $id_annuaire l'identifiant de l'annuaire
758
	 * @param array $courriels un tableau de courriel d'utilisateur
758
	 * @param array $courriels un tableau de courriel d'utilisateur
759
	 * @return array un tableau contenant en clé le courriel et en valeur un tableau avec le prénom dans le champ 'prenom' et le nom dans le champ 'nom'.
759
	 * @return array un tableau contenant en clé le courriel et en valeur un tableau avec le prénom dans le champ 'prenom' et le nom dans le champ 'nom'.
760
	 */
760
	 */
761
	public function obtenirPrenomNomParCourriel($id_annuaire, $courriels) {
761
	public function obtenirPrenomNomParCourriel($id_annuaire, $courriels) {
762
		$mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire);
762
		$mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire);
763
		// on ne garde que les champs de mappage correspondant au champ de l'annuaire principal
763
		// on ne garde que les champs de mappage correspondant au champ de l'annuaire principal
Line 764... Line 764...
764
		$mappage = $mappage[0];
764
		$mappage = $mappage[0];
765
 
765
 
766
		$requete = 	'SELECT * '.
766
		$requete = 	'SELECT * '.
Line 767... Line 767...
767
					'FROM annu_annuaire '.
767
			'FROM annu_annuaire '.
768
					'WHERE aa_id_annuaire = '.$id_annuaire.' ';
768
			'WHERE aa_id_annuaire = '.$id_annuaire.' ';
769
 
769
 
770
		$annuaire = $this->requeteUn($requete);
770
		$annuaire = $this->requeteUn($requete);
771
		if (!$annuaire) {
771
		if (!$annuaire) {
772
			return false;
772
			return false;
773
		}
773
		}
774
		
774
 
775
		foreach ($courriels as $id => $courriel) {
775
		foreach ($courriels as $id => $courriel) {
776
			$courriels[$id] = $this->proteger($courriel);
776
			$courriels[$id] = $this->proteger($courriel);
777
		}
777
		}
778
		
778
 
779
		$requete = 	'SELECT '.$mappage['champ_id'].', '.$mappage['champ_mail'].', '.$mappage['champ_prenom'].', '.$mappage['champ_nom'].' '.
779
		$requete = 	'SELECT '.$mappage['champ_id'].', '.$mappage['champ_mail'].', '.$mappage['champ_prenom'].', '.$mappage['champ_nom'].' '.
Line 780... Line 780...
780
					'FROM '.$annuaire['aa_bdd'].'.'.$annuaire['aa_table'].' '.
780
			'FROM '.$annuaire['aa_bdd'].'.'.$annuaire['aa_table'].' '.
781
					'WHERE '.$mappage['champ_mail'].' IN ('.implode(',', $courriels).')';
781
			'WHERE '.$mappage['champ_mail'].' IN ('.implode(',', $courriels).')';
782
		$resultats = $this->requeteTous($requete);
782
		$resultats = $this->requeteTous($requete);
783
 
783
 
784
		if (!$resultats) {
784
		if (!$resultats) {
785
			return false;
785
			return false;
786
		} else {
786
		} else {
787
			$infos = array();
787
			$infos = array();
788
			foreach ($resultats as $resultat) {
788
			foreach ($resultats as $resultat) {
789
				$id = $resultat[$mappage['champ_id']];
789
				$id = $resultat[$mappage['champ_id']];
790
				$prenom = AppControleur::formaterMotPremiereLettreChaqueMotEnMajuscule($resultat[$mappage['champ_prenom']]);
790
				$prenom = AppControleur::formaterMotPremiereLettreChaqueMotEnMajuscule($resultat[$mappage['champ_prenom']]);
791
				$nom = AppControleur::formaterMotEnMajuscule($resultat[$mappage['champ_nom']]);
791
				$nom = AppControleur::formaterMotEnMajuscule($resultat[$mappage['champ_nom']]);
792
				
792
 
Line 793... Line 793...
793
				$infos[$resultat[$mappage['champ_mail']]] = array('id' => $id, 'prenom' => $prenom, 'nom' => $nom);
793
				$infos[$resultat[$mappage['champ_mail']]] = array('id' => $id, 'prenom' => $prenom, 'nom' => $nom);
Line -... Line 794...
-
 
794
			}
-
 
795
			return $infos;
-
 
796
		}
-
 
797
 
-
 
798
	}
-
 
799
 
-
 
800
	/**
-
 
801
	 * Renvoie les infos pour un utilisateur et un annuaire donné
-
 
802
	 * @param int $id_annuaire l'identifiant de l'annuaire
-
 
803
	 * @param array $id identifiant d'utilisateur
-
 
804
	 * @return array un tableau.
-
 
805
	 */
-
 
806
	public function obtenirInfosUtilisateurParId($id_annuaire, $id_utilisateur) {
-
 
807
		$requete = 	'SELECT * '.
-
 
808
			'FROM annu_annuaire '.
-
 
809
			'WHERE aa_id_annuaire = '.$id_annuaire.' ';
-
 
810
 
-
 
811
		$annuaire = $this->requeteUn($requete);
-
 
812
		if (!$annuaire) {
-
 
813
			return false;
-
 
814
		}
-
 
815
 
-
 
816
		$mappageInfos = $this->obtenirChampsMappageAnnuaire($id_annuaire, $id_utilisateur);
-
 
817
		// on ne garde que les champs de mappage correspondant au champ de l'annuaire principal
-
 
818
		$mappage = $mappageInfos[0];
-
 
819
		$requete = 	'SELECT '.$mappage['champ_id'].', '.$mappage['champ_mail'].', '.$mappage['champ_prenom'].', '.$mappage['champ_nom'].' '.
-
 
820
			'FROM '.$annuaire['aa_bdd'].'.'.$annuaire['aa_table'].' '.
-
 
821
			'WHERE '.$mappage['champ_id'].' = '.$id_utilisateur.' ';
-
 
822
		$resultat = $this->requeteUn($requete);
-
 
823
 
-
 
824
		$infos = false;
-
 
825
		if ($resultat) {
-
 
826
			$id = $resultat[$mappage['champ_id']];
-
 
827
			$prenom = AppControleur::formaterMotPremiereLettreChaqueMotEnMajuscule($resultat[$mappage['champ_prenom']]);
-
 
828
			$nom = AppControleur::formaterMotEnMajuscule($resultat[$mappage['champ_nom']]);
-
 
829
			$courriel = $resultat[$mappage['champ_mail']];
794
			}
830
 
795
			return $infos;
831
			$infos = array('id' => $id, 'prenom' => $prenom, 'nom' => $nom, 'courriel' => $courriel);
Line 796... Line 832...
796
		}
832
		}
797
 
833
		return $infos;
Line 913... Line 949...
913
			return false;
949
			return false;
914
		} else {
950
		} else {
915
			return $resultat_selection_utilisateur;
951
			return $resultat_selection_utilisateur;
916
		}
952
		}
917
	}
953
	}
918
	
954
 
919
/**
955
/**
920
	 * Récupère les valeurs utilisateur dans l'annuaire indiqué en les ordonnant par le champ demandé
956
	 * Récupère les valeurs utilisateur dans l'annuaire indiqué en les ordonnant par le champ demandé
921
	 * @param int $id_annuaire	l'identifiant de l'annuaire dans lequel on va travailler
957
	 * @param int $id_annuaire	l'identifiant de l'annuaire dans lequel on va travailler
922
	 * @param Array $champs_mappage les noms des champs que l'on veut récupérer
958
	 * @param Array $champs_mappage les noms des champs que l'on veut récupérer
923
	 * @param string order_by le champ par lequel on ordonne les résultats
959
	 * @param string order_by le champ par lequel on ordonne les résultats
Line 941... Line 977...
941
		$champ_order_by = $champs_mappage[$order_by];
977
		$champ_order_by = $champs_mappage[$order_by];
Line 942... Line 978...
942
 
978
 
943
		$requete_selection_utilisateur = 'SELECT '.$champs_mappage['champ_id'].' '.
979
		$requete_selection_utilisateur = 'SELECT '.$champs_mappage['champ_id'].' '.
944
										 'FROM '.$resultat_infos_annuaire['aa_bdd'].'.'.$resultat_infos_annuaire['aa_table'].' '.
980
										 'FROM '.$resultat_infos_annuaire['aa_bdd'].'.'.$resultat_infos_annuaire['aa_table'].' '.
945
										 'ORDER BY '.$champ_order_by.' '.$dir.' LIMIT '.$limit;
981
										 'ORDER BY '.$champ_order_by.' '.$dir.' LIMIT '.$limit;
946
		
982
 
Line 947... Line 983...
947
		$resultat_selection_utilisateur = $this->requeteTous($requete_selection_utilisateur);
983
		$resultat_selection_utilisateur = $this->requeteTous($requete_selection_utilisateur);
948
 
984
 
949
 
985
 
950
 
986
 
951
		if(!$resultat_selection_utilisateur) {
987
		if(!$resultat_selection_utilisateur) {
952
			return false;
988
			return false;
953
		} else {
989
		} else {
954
			return $resultat_selection_utilisateur;
990
			return $resultat_selection_utilisateur;
955
		}
991
		}
956
	}
992
	}
Line 957... Line 993...
957
	
993
 
958
	public function obtenirNombreInscriptionsDansIntervalleDate($id_annuaire, $date_debut, $date_fin) {
994
	public function obtenirNombreInscriptionsDansIntervalleDate($id_annuaire, $date_debut, $date_fin) {
959
		
995
 
Line 973... Line 1009...
973
 
1009
 
974
		//$supprimer_donnes = false;
1010
		//$supprimer_donnes = false;
Line 975... Line 1011...
975
		$valeurs_mappees = array();
1011
		$valeurs_mappees = array();
976
 
1012
 
977
		$champs_date = $this->obtenirChampDateEtValidite($id_annuaire);
1013
		$champs_date = $this->obtenirChampDateEtValidite($id_annuaire);
978
		
1014
 
979
		$date_inscription = $champs_date['champ_date_inscription'];
1015
		$date_inscription = $champs_date['champ_date_inscription'];
980
		
1016
 
981
		$requete_nb_inscrits_intervalle = 'SELECT COUNT(*) as nb '.
1017
		$requete_nb_inscrits_intervalle = 'SELECT COUNT(*) as nb '.
982
						'FROM '.$resultat_infos_annuaire['aa_bdd'].'.'.$resultat_infos_annuaire['aa_table'].' '.
1018
						'FROM '.$resultat_infos_annuaire['aa_bdd'].'.'.$resultat_infos_annuaire['aa_table'].' '.
983
						'WHERE '.$date_inscription.' >= "'.date('Y-m-d H:i:s', $date_debut).'" '.
1019
						'WHERE '.$date_inscription.' >= "'.date('Y-m-d H:i:s', $date_debut).'" '.
984
						'AND '.$date_inscription.' < "'.date('Y-m-d H:i:s', $date_fin).'" ';
1020
						'AND '.$date_inscription.' < "'.date('Y-m-d H:i:s', $date_fin).'" ';
985
		
1021
 
986
		$resultat_nb_inscrits_intervalle = $this->requeteUn($requete_nb_inscrits_intervalle);
1022
		$resultat_nb_inscrits_intervalle = $this->requeteUn($requete_nb_inscrits_intervalle);
987
		
1023
 
988
		if(!$resultat_nb_inscrits_intervalle) {
1024
		if(!$resultat_nb_inscrits_intervalle) {
Line 989... Line 1025...
989
			return 0;
1025
			return 0;
990
		}
1026
		}
991
 
1027
 
992
		return $resultat_nb_inscrits_intervalle['nb'];
1028
		return $resultat_nb_inscrits_intervalle['nb'];
993
		
1029
 
Line 994... Line 1030...
994
	}
1030
	}
995
	
1031
 
996
	
1032
 
997
 
1033
 
Line 1132... Line 1168...
1132
	 * @param array $valeurs un tableau de valeurs à rechercher
1168
	 * @param array $valeurs un tableau de valeurs à rechercher
1133
	 * @param array $id_a_inclure un tableau d'identifiants à inclure (pour chainer des recherches)
1169
	 * @param array $id_a_inclure un tableau d'identifiants à inclure (pour chainer des recherches)
1134
	 * @param boolean $exclusive indique si l'on recherche effectue une recherche exclusive ou inclusive (AND, ou OR)
1170
	 * @param boolean $exclusive indique si l'on recherche effectue une recherche exclusive ou inclusive (AND, ou OR)
1135
	 */
1171
	 */
1136
	public function rechercherInscritDansAnnuaireMappe($id_annuaire, $valeurs, $id_a_inclure = array(), $exclusive = true, $numero_page = 1, $taille_page = 50, $ordre = 'champ_nom') {
1172
	public function rechercherInscritDansAnnuaireMappe($id_annuaire, $valeurs, $id_a_inclure = array(), $exclusive = true, $numero_page = 1, $taille_page = 50, $ordre = 'champ_nom') {
1137
		
1173
 
1138
		// Si la fonction est appelée et que tous les critères sont vides
1174
		// Si la fonction est appelée et que tous les critères sont vides
1139
		if(count($valeurs) == 0 && count($id_a_inclure) == 0) {
1175
		if(count($valeurs) == 0 && count($id_a_inclure) == 0) {
1140
			// on sort directement
1176
			// on sort directement
1141
			return array();
1177
			return array();
1142
		}
1178
		}
Line 1144... Line 1180...
1144
		$requete_informations_annuaire = 'SELECT aa_bdd, aa_table '.
1180
		$requete_informations_annuaire = 'SELECT aa_bdd, aa_table '.
1145
					'FROM  annu_annuaire '.
1181
					'FROM  annu_annuaire '.
1146
					'WHERE aa_id_annuaire = '.$id_annuaire.' ';
1182
					'WHERE aa_id_annuaire = '.$id_annuaire.' ';
Line 1147... Line 1183...
1147
 
1183
 
1148
		$resultat_informations_annuaire = $this->requeteUn($requete_informations_annuaire);
1184
		$resultat_informations_annuaire = $this->requeteUn($requete_informations_annuaire);
1149
				
1185
 
Line 1150... Line 1186...
1150
		$champs_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire);
1186
		$champs_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire);
1151
 
1187
 
1152
		$requete_recherche_inscrits = 'SELECT '.$champs_mappage[0]['champ_id'].
1188
		$requete_recherche_inscrits = 'SELECT '.$champs_mappage[0]['champ_id'].
Line 1171... Line 1207...
1171
		}
1207
		}
Line 1172... Line 1208...
1172
 
1208
 
1173
		// si le champ contient un % alors on ne cherche pas une valeur exacte : on utilise LIKE
1209
		// si le champ contient un % alors on ne cherche pas une valeur exacte : on utilise LIKE
1174
		foreach($valeurs as $champ => $valeur) {
1210
		foreach($valeurs as $champ => $valeur) {
1175
			if(trim($valeur) != '') {
1211
			if(trim($valeur) != '') {
1176
				
1212
 
1177
				if($champ == $champs_mappage[0]['champ_nom'] || $champ == $champs_mappage[0]['champ_prenom']) {
1213
				if($champ == $champs_mappage[0]['champ_nom'] || $champ == $champs_mappage[0]['champ_prenom']) {
1178
					if(strpos($valeur,"%") === false) {
1214
					if(strpos($valeur,"%") === false) {
1179
						$valeur = '%' . $valeur.'%';
1215
						$valeur = '%' . $valeur.'%';
1180
					}
1216
					}
Line 1187... Line 1223...
1187
				elseif($champ == $champs_mappage[0]['champ_mail']) {
1223
				elseif($champ == $champs_mappage[0]['champ_mail']) {
1188
					if(strpos($valeur,"%") === false) {
1224
					if(strpos($valeur,"%") === false) {
1189
						$valeur = '%'.$valeur.'%';
1225
						$valeur = '%'.$valeur.'%';
1190
					}
1226
					}
1191
				}
1227
				}
1192
				
1228
 
1193
				if(strpos($valeur,"%") === false) {
1229
				if(strpos($valeur,"%") === false) {
1194
					$operateur = ' = ';
1230
					$operateur = ' = ';
1195
				} else {
1231
				} else {
1196
					$operateur = ' LIKE ';
1232
					$operateur = ' LIKE ';
1197
				}
1233
				}
1198
				
1234
 
1199
				$requete_conditions_inscrits .= $champ.$operateur.$this->proteger($valeur).$separateur;
1235
				$requete_conditions_inscrits .= $champ.$operateur.$this->proteger($valeur).$separateur;
1200
			}
1236
			}
1201
		}
1237
		}
Line 1202... Line 1238...
1202
 
1238
 
Line 1229... Line 1265...
1229
			$resultat_recherche_inscrits = array();
1265
			$resultat_recherche_inscrits = array();
1230
		}
1266
		}
Line 1231... Line 1267...
1231
 
1267
 
1232
		return array('total' => $nb_inscrits, 'resultat' => $resultat_recherche_inscrits) ;
1268
		return array('total' => $nb_inscrits, 'resultat' => $resultat_recherche_inscrits) ;
1233
	}
1269
	}
1234
	
1270
 
Line 1235... Line 1271...
1235
	public function rechercherDoublonsDansAnnuaireMappe($id_annuaire, $numero_page = 1, $taille_page = 50) {
1271
	public function rechercherDoublonsDansAnnuaireMappe($id_annuaire, $numero_page = 1, $taille_page = 50) {
1236
 
1272
 
1237
		$requete_informations_annuaire = 'SELECT aa_bdd, aa_table '.
1273
		$requete_informations_annuaire = 'SELECT aa_bdd, aa_table '.
Line 1238... Line 1274...
1238
					'FROM  annu_annuaire '.
1274
					'FROM  annu_annuaire '.
1239
					'WHERE aa_id_annuaire = '.$id_annuaire.' ';
1275
					'WHERE aa_id_annuaire = '.$id_annuaire.' ';
1240
 
1276
 
Line 1241... Line 1277...
1241
		$resultat_informations_annuaire = $this->requeteUn($requete_informations_annuaire);
1277
		$resultat_informations_annuaire = $this->requeteUn($requete_informations_annuaire);
1242
				
1278
 
1243
		$champs_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire);
1279
		$champs_mappage = $this->obtenirChampsMappageAnnuaire($id_annuaire);
1244
 
1280
 
1245
		$champ_id = $champs_mappage[0]['champ_id'];
1281
		$champ_id = $champs_mappage[0]['champ_id'];
1246
		$champ_mail = $champs_mappage[0]['champ_mail'];
1282
		$champ_mail = $champs_mappage[0]['champ_mail'];
1247
		$champ_nom = $champs_mappage[0]['champ_nom'];
1283
		$champ_nom = $champs_mappage[0]['champ_nom'];
1248
		$champ_prenom = $champs_mappage[0]['champ_prenom'];
1284
		$champ_prenom = $champs_mappage[0]['champ_prenom'];
1249
		$champ_ville = $champs_mappage[0]['champ_ville'];
1285
		$champ_ville = $champs_mappage[0]['champ_ville'];
1250
		 	
1286
 
1251
		$requete_recherche_doublon = 'SELECT DISTINCT t2.'.$champ_id.
1287
		$requete_recherche_doublon = 'SELECT DISTINCT t2.'.$champ_id.
1252
									' FROM '.$resultat_informations_annuaire['aa_bdd'].'.'.$resultat_informations_annuaire['aa_table'].' t1 '.
1288
									' FROM '.$resultat_informations_annuaire['aa_bdd'].'.'.$resultat_informations_annuaire['aa_table'].' t1 '.
1253
									'LEFT JOIN '.$resultat_informations_annuaire['aa_bdd'].'.'.$resultat_informations_annuaire['aa_table'].' t2 '.
1289
									'LEFT JOIN '.$resultat_informations_annuaire['aa_bdd'].'.'.$resultat_informations_annuaire['aa_table'].' t2 '.
Line 1254... Line 1290...
1254
									'USING ('.$champ_nom.','.$champ_prenom.','.$champ_ville.') '.
1290
									'USING ('.$champ_nom.','.$champ_prenom.','.$champ_ville.') '.
1255
									'WHERE t1.'.$champ_id.' != t2.'.$champ_id.' '.
1291
									'WHERE t1.'.$champ_id.' != t2.'.$champ_id.' '.
1256
									'ORDER BY '.$champ_nom.', '.$champ_prenom.' ';
1292
									'ORDER BY '.$champ_nom.', '.$champ_prenom.' ';
1257
		
1293
 
1258
 
1294
 
1259
 
1295
 
1260
		$requete_nb_doublons = 'SELECT COUNT(DISTINCT t2.'.$champs_mappage[0]['champ_id'].') as nb'.
1296
		$requete_nb_doublons = 'SELECT COUNT(DISTINCT t2.'.$champs_mappage[0]['champ_id'].') as nb'.
Line 1261... Line 1297...
1261
									' FROM '.$resultat_informations_annuaire['aa_bdd'].'.'.$resultat_informations_annuaire['aa_table'].' t1 '.
1297
									' FROM '.$resultat_informations_annuaire['aa_bdd'].'.'.$resultat_informations_annuaire['aa_table'].' t1 '.
1262
									'LEFT JOIN '.$resultat_informations_annuaire['aa_bdd'].'.'.$resultat_informations_annuaire['aa_table'].' t2 '.
1298
									'LEFT JOIN '.$resultat_informations_annuaire['aa_bdd'].'.'.$resultat_informations_annuaire['aa_table'].' t2 '.
1263
									'USING ('.$champ_nom.','.$champ_prenom.','.$champ_ville.') '.
1299
									'USING ('.$champ_nom.','.$champ_prenom.','.$champ_ville.') '.
1264
									'WHERE t1.'.$champ_id.' != t2.'.$champ_id;
1300
									'WHERE t1.'.$champ_id.' != t2.'.$champ_id;
1265
				
1301
 
1266
		$resultat_nb_doublons = $this->requeteUn($requete_nb_doublons);
1302
		$resultat_nb_doublons = $this->requeteUn($requete_nb_doublons);
1267
 
1303
 
1268
		$nb_doublons = 0;
1304
		$nb_doublons = 0;
1269
		if($resultat_nb_doublons) {
1305
		if($resultat_nb_doublons) {
1270
			$nb_doublons = $resultat_nb_doublons['nb'];
1306
			$nb_doublons = $resultat_nb_doublons['nb'];
1271
		}
1307
		}
1272
				
1308