Subversion Repositories eFlore/Applications.coel-consultation

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

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