Subversion Repositories eFlore/Applications.coel-consultation

Rev

Rev 195 | Details | Compare with Previous | 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 195 2014-01-22 13:29:20Z aurelien $
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) {
195 aurelien 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";
150 jpm 41
		$json = $this->envoyerRequeteConsultation($url);
25 jpm 42
		$donnees = json_decode($json, true);
43
		return $donnees;
44
	}
45
 
46
	/**
16 jpm 47
	 * Retourne l'ensemble des informations du personnel d'une structure.
48
	 *
49
	 * @param integer l'id de la structure.
50
	 * @return array un tableau contenant les informations sur le personnel de la structure.
51
	 */
118 jpm 52
	public function getPersonnel($id_structure) {
150 jpm 53
		$donnees = $this->getStructureAPersonne($id_structure);
54
		$personnel = $this->filtrerRoleEquipe($donnees['structuresAPersonne']);
55
		return $personnel;
56
	}
57
 
58
	/**
59
	 * Retourne le nombre de personnel d'une structure.
60
	 *
61
	 * @param integer l'id de la structure.
62
	 * @return integer le nombre de personnel de la structure.
63
	 */
64
	public function getNbrePersonnel($id_structure) {
65
		$donnees = $this->getStructureAPersonne($id_structure);
66
		$personnel = $this->filtrerRoleEquipe($donnees['structuresAPersonne']);
67
		$nbre_personnel = count($personnel);
68
		return $nbre_personnel;
69
	}
70
 
71
	private function getStructureAPersonne($id_structure) {
118 jpm 72
		$url = $this->url_jrest.self::SERVICE_STRUCTURE_A_PERSONNE."/$id_structure";
150 jpm 73
		$json = $this->envoyerRequeteConsultation($url);
16 jpm 74
		$donnees = json_decode($json, true);
150 jpm 75
		return $donnees;
76
	}
77
 
78
	private function filtrerRoleEquipe($personnes) {
71 jpm 79
		$personnel = array();
80
		foreach ($personnes as $personne) {
81
			if ($personne['csap_id_role'] == self::ROLE_EQUIPE) {
82
				$personnel[] = $personne;
83
			}
84
		}
85
		return $personnel;
16 jpm 86
	}
15 jpm 87
}
88
?>