Subversion Repositories eFlore/Applications.coel-consultation

Rev

Rev 150 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 150 Rev 169
1
<?php
1
<?php
2
// declare(encoding='UTF-8');
2
// declare(encoding='UTF-8');
3
/**
3
/**
4
 * Modèle d'accès à la base de données des Collections pour le module Structure.
4
 * Modèle d'accès à la base de données des Collections pour le module Structure.
5
 *
5
 *
6
 * @package	Collection
6
 * @package	Collection
7
 * @category	php 5.2
7
 * @category	php 5.2
8
 * @author		Jean-Pascal MILCENT <jpm@tela-botanica.org>
8
 * @author		Jean-Pascal MILCENT <jpm@tela-botanica.org>
9
 * @copyright	2010 Tela-Botanica
9
 * @copyright	2010 Tela-Botanica
10
 * @license	http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
10
 * @license	http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
11
 * @license	http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
11
 * @license	http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
12
 * @version	SVN: $Id: StructureDao.php 150 2010-09-06 15:24:03Z jpm $
12
 * @version	SVN: $Id: StructureDao.php 169 2011-03-11 09:15:42Z jpm $
13
 *
13
 *
14
 */
14
 */
15
class StructureDao extends Dao {
15
class StructureDao extends Dao {
16
	const ROLE_EQUIPE = 2027;
16
	const ROLE_EQUIPE = 2027;
17
	const SERVICE_STRUCTURE = 'CoelStructure';
17
	const SERVICE_STRUCTURE = 'CoelStructure';
18
	const SERVICE_STRUCTURE_A_PERSONNE = 'CoelStructureAPersonne';
18
	const SERVICE_STRUCTURE_A_PERSONNE = 'CoelStructureAPersonne';
19
	
19
	
20
	/**
20
	/**
21
	 * Retourne l'ensemble des information sur une structure.
21
	 * Retourne l'ensemble des information sur une structure.
22
	 * 
22
	 * 
23
	 * @param integer l'id de la structure.
23
	 * @param integer l'id de la structure.
24
	 * @return array un tableau contenant les informations sur la structure.
24
	 * @return array un tableau contenant les informations sur la structure.
25
	 */
25
	 */
26
	public function getStructure($id_structure) {
26
	public function getStructure($id_structure) {
27
		$url = $this->url_jrest.self::SERVICE_STRUCTURE."/*/$id_structure/*";
27
		$url = $this->url_jrest.self::SERVICE_STRUCTURE."/*/$id_structure/*";
28
		$json = $this->envoyerRequeteConsultation($url);
28
		$json = $this->envoyerRequeteConsultation($url);
29
		$donnees = json_decode($json, true);
29
		$donnees = json_decode($json, true);
30
		return $donnees['structures'];
30
		return $donnees['structures'];
31
	}
31
	}
32
	
32
	
33
	/**
33
	/**
34
	 * Retourne le nombre de structure par zone géographique.
34
	 * Retourne le nombre de structure par zone géographique.
35
	 * 
35
	 * 
36
	 * @param integer le type de recherche à effectuée.
36
	 * @param integer le type de recherche à effectuée.
37
	 * @return array un tableau contenant les informations sur le nombre de structures par zone.
37
	 * @return array un tableau contenant les informations sur le nombre de structures par zone.
38
	 */
38
	 */
39
	public function getStructureParZoneGeo($type_recherche) {
39
	public function getStructureParZoneGeo($type_recherche) {
40
		$url = $this->url_jrest.self::SERVICE_STRUCTURE."/ParZoneGeo/$type_recherche";
40
		$url = $this->url_jrest.self::SERVICE_STRUCTURE."/ParZoneGeo/$type_recherche";
-
 
41
		$url = $this->limiterParProjets($url);
41
		$json = $this->envoyerRequeteConsultation($url);
42
		$json = $this->envoyerRequeteConsultation($url);
42
		$donnees = json_decode($json, true);
43
		$donnees = json_decode($json, true);
43
		return $donnees;
44
		return $donnees;
44
	}
45
	}
-
 
46
	
-
 
47
	private function limiterParProjets($url) {
-
 
48
		if (Config::get('projets') != '') {
-
 
49
			$url .= '/'.Config::get('projets');
-
 
50
		}
-
 
51
		return $url;
-
 
52
	}
45
	
53
	
46
	/**
54
	/**
47
	 * Retourne l'ensemble des informations du personnel d'une structure.
55
	 * Retourne l'ensemble des informations du personnel d'une structure.
48
	 * 
56
	 * 
49
	 * @param integer l'id de la structure.
57
	 * @param integer l'id de la structure.
50
	 * @return array un tableau contenant les informations sur le personnel de la structure.
58
	 * @return array un tableau contenant les informations sur le personnel de la structure.
51
	 */
59
	 */
52
	public function getPersonnel($id_structure) {
60
	public function getPersonnel($id_structure) {
53
		$donnees = $this->getStructureAPersonne($id_structure);
61
		$donnees = $this->getStructureAPersonne($id_structure);
54
		$personnel = $this->filtrerRoleEquipe($donnees['structuresAPersonne']);
62
		$personnel = $this->filtrerRoleEquipe($donnees['structuresAPersonne']);
55
		return $personnel;
63
		return $personnel;
56
	}
64
	}
57
	
65
	
58
	/**
66
	/**
59
	 * Retourne le nombre de personnel d'une structure.
67
	 * Retourne le nombre de personnel d'une structure.
60
	 * 
68
	 * 
61
	 * @param integer l'id de la structure.
69
	 * @param integer l'id de la structure.
62
	 * @return integer le nombre de personnel de la structure.
70
	 * @return integer le nombre de personnel de la structure.
63
	 */
71
	 */
64
	public function getNbrePersonnel($id_structure) {
72
	public function getNbrePersonnel($id_structure) {
65
		$donnees = $this->getStructureAPersonne($id_structure);
73
		$donnees = $this->getStructureAPersonne($id_structure);
66
		$personnel = $this->filtrerRoleEquipe($donnees['structuresAPersonne']);
74
		$personnel = $this->filtrerRoleEquipe($donnees['structuresAPersonne']);
67
		$nbre_personnel = count($personnel);
75
		$nbre_personnel = count($personnel);
68
		return $nbre_personnel;
76
		return $nbre_personnel;
69
	}
77
	}
70
	
78
	
71
	private function getStructureAPersonne($id_structure) {
79
	private function getStructureAPersonne($id_structure) {
72
		$url = $this->url_jrest.self::SERVICE_STRUCTURE_A_PERSONNE."/$id_structure";
80
		$url = $this->url_jrest.self::SERVICE_STRUCTURE_A_PERSONNE."/$id_structure";
73
		$json = $this->envoyerRequeteConsultation($url);
81
		$json = $this->envoyerRequeteConsultation($url);
74
		$donnees = json_decode($json, true);
82
		$donnees = json_decode($json, true);
75
		return $donnees;
83
		return $donnees;
76
	}
84
	}
77
	
85
	
78
	private function filtrerRoleEquipe($personnes) {
86
	private function filtrerRoleEquipe($personnes) {
79
		$personnel = array();
87
		$personnel = array();
80
		foreach ($personnes as $personne) {
88
		foreach ($personnes as $personne) {
81
			if ($personne['csap_id_role'] == self::ROLE_EQUIPE) {
89
			if ($personne['csap_id_role'] == self::ROLE_EQUIPE) {
82
				$personnel[] = $personne;
90
				$personnel[] = $personne;
83
			}
91
			}
84
		}
92
		}
85
		return $personnel;
93
		return $personnel;
86
	}
94
	}
87
}
95
}
88
?>
96
?>