Subversion Repositories Applications.referentiel

Rev

Rev 344 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 344 Rev 356
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 Référentiels.
4
 * Modèle d'accès à la base de données des Référentiels.
5
 * Permet d'accèder au données des référentiels.
5
 * Permet d'accèder au données des référentiels.
6
 *
6
 *
7
 * @package		Referentiel
7
 * @package		Referentiel
8
 * @category	Php 5.2
8
 * @category	Php 5.2
9
 * @author		Jean-Pascal MILCENT <jpm@tela-botanica.org>
9
 * @author		Jean-Pascal MILCENT <jpm@tela-botanica.org>
10
 * @copyright	2010 Tela-Botanica
10
 * @copyright	2010 Tela-Botanica
11
 * @license		http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
11
 * @license		http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
12
 * @license		http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
12
 * @license		http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
13
 * @version		SVN: $Id$
13
 * @version		SVN: $Id$
14
 *
14
 *
15
 */
15
 */
16
class ReferentielDao extends Dao {
16
class ReferentielDao extends Dao {
17
	const SERVICE = 'Referentiel';
17
	const SERVICE = 'Referentiel';
18
	const SERVICE_ARCHIVAGE = 'ArchiverReferentiel';
18
	const SERVICE_ARCHIVAGE = 'ArchiverReferentiel';
19
 
19
 
20
	/**
20
	/**
21
	 * Retourne des infos sur l'ensemble des référentiels disponibles.
21
	 * Retourne des infos sur l'ensemble des référentiels disponibles.
22
	 * 
22
	 * 
23
	 * @return array un tableau contenant les informations sur les référentiels disponibles.
23
	 * @return array un tableau contenant les informations sur les référentiels disponibles.
24
	 */
24
	 */
25
	public function getReferentielsDispo() {
25
	public function getReferentielsDispo() {
26
		$url = $this->url_jrest.self::SERVICE."/Dispo";
26
		$url = $this->url_jrest.self::SERVICE."/Dispo";
27
		$json = $this->envoyerRequeteConsultation($url);
27
		$json = $this->envoyerRequeteConsultation($url);
28
		$noms = json_decode($json, true);
28
		$noms = json_decode($json, true);
29
		return $noms;
29
		return $noms;
30
	}
30
	}
31
	
31
	
32
	/**
32
	/**
33
	 * Retourne l'ensemble des information sur les noms d'un référentiel.
33
	 * Retourne l'ensemble des information sur les noms d'un référentiel.
34
	 * 
34
	 * 
35
	 * @param string le code du référentiel.
35
	 * @param string le code du référentiel.
36
	 * @return array un tableau contenant les informations sur les noms du référentiel.
36
	 * @return array un tableau contenant les informations sur les noms du référentiel.
37
	 */
37
	 */
38
	public function getTout($code_projet) {
38
	public function getTout($code_projet) {
39
		$url = $this->url_jrest.self::SERVICE."/Tout/$code_projet";
39
		$url = $this->url_jrest.self::SERVICE."/Tout/$code_projet";
40
		$nbre = $this->getNombre($code_projet);
40
		$nbre = $this->getNombre($code_projet);
41
		$noms = array();
41
		$noms = array();
42
		$pas = 5000;
42
		$pas = 5000;
43
		for ($i = 0; $i < $nbre ; $i += $pas) {
43
		for ($i = 0; $i < $nbre ; $i += $pas) {
44
			$this->setLimitation($i, $pas);
44
			$this->setLimitation($i, $pas);
45
			$json = $this->envoyerRequeteConsultation($url);
45
			$json = $this->envoyerRequeteConsultation($url);
46
			$noms_partiel = json_decode($json, true);
46
			$noms_partiel = json_decode($json, true);
47
			Tableau::etendre($noms, $noms_partiel);
47
			Tableau::etendre($noms, $noms_partiel);
48
		}
48
		}
49
		return $noms;
49
		return $noms;
50
	}
50
	}
51
	
51
	
52
	/**
52
	/**
53
	 * Retourne le nombre de noms présents dans la table de travail du référentiel.
53
	 * Retourne le nombre de noms présents dans la table de travail du référentiel.
54
	 * 
54
	 * 
55
	 * @param string le code du référentiel.
55
	 * @param string le code du référentiel.
56
	 * @return int le nombre de noms.
56
	 * @return int le nombre de noms.
57
	 */
57
	 */
58
	public function getNombre($code_projet) {
58
	public function getNombre($code_projet) {
59
		$url = $this->url_jrest.self::SERVICE."/Nombre/$code_projet";
59
		$url = $this->url_jrest.self::SERVICE."/Nombre/$code_projet";
60
		$json = $this->envoyerRequeteConsultation($url);
60
		$json = $this->envoyerRequeteConsultation($url);
61
		$nbre = json_decode($json, true);
61
		$nbre = json_decode($json, true);
62
		return $nbre;
62
		return $nbre;
63
	}
63
	}
64
	
64
	
65
	/**
65
	/**
66
	 * Retourne le titre du projet dans la table des meta-données du référentiel.
66
	 * Retourne le titre du projet dans la table des meta-données du référentiel.
67
	 * 
67
	 * 
68
	 * @param string le code du référentiel.
68
	 * @param string le code du référentiel.
69
	 * @return int le nombre de noms.
69
	 * @return int le nombre de noms.
70
	 */
70
	 */
71
	public function getNom($code_projet) {
71
	public function getNom($code_projet) {
72
		$url = $this->url_jrest.self::SERVICE."/Nom/$code_projet";
72
		$url = $this->url_jrest.self::SERVICE."/Nom/$code_projet";
73
		$json = $this->envoyerRequeteConsultation($url);
73
		$json = $this->envoyerRequeteConsultation($url);
74
		$nbre = json_decode($json, true);
74
		$nbre = json_decode($json, true);
75
		return $nbre;
75
		return $nbre;
76
	}
76
	}
77
	
77
	
78
	/**
78
	/**
79
	 * Retourne la date de mise à jour dans la table des meta-données du référentiel.
79
	 * Retourne la date de mise à jour dans la table des meta-données du référentiel.
80
	 *
80
	 *
81
	 * @param string le code du référentiel.
81
	 * @param string le code du référentiel.
82
	 * @return int le nombre de noms.
82
	 * @return int le nombre de noms.
83
	 */
83
	 */
84
	public function getDateMiseAJour($code_projet) {
84
	public function getDateMiseAJour($code_projet) {
85
		$url = $this->url_jrest.self::SERVICE."/DateMiseAJour/$code_projet";
85
		$url = $this->url_jrest.self::SERVICE."/DateMiseAJour/$code_projet";
86
		$json = $this->envoyerRequeteConsultation($url);
86
		$json = $this->envoyerRequeteConsultation($url);
87
		$nbre = json_decode($json, true);
87
		$nbre = json_decode($json, true);
88
		return $nbre;
88
		return $nbre;
89
	}
89
	}
90
	
90
	
91
	/**
91
	/**
92
	 * Copie la table de travail du référentiel pour l'archiver avec une numéro de version.
92
	 * Copie la table de travail du référentiel pour l'archiver avec une numéro de version.
93
	 * 
93
	 * 
94
	 * @param string le code du référentiel.
94
	 * @param string le code du référentiel.
95
	 * @param string la version du référentiel.
95
	 * @param string la version du référentiel.
96
	 * @return bool true en cas de succé ou false en cas d'échec.
96
	 * @return bool true en cas de succé ou false en cas d'échec.
97
	 */
97
	 */
98
	public function archiver($code_projet, $version) {
98
	public function archiver($code_projet, $version) {
99
		$url = $this->url_jrest.self::SERVICE_ARCHIVAGE;
99
		$url = $this->url_jrest.self::SERVICE_ARCHIVAGE;
100
		// Préparation des données à passer par POST
100
		// Préparation des données à passer par POST
101
		$donnees['code'] = $code_projet;
101
		$donnees['code'] = $code_projet;
102
		$donnees['version'] = $version;
102
		$donnees['version'] = $version;
103
		
103
		
104
		// Envoie des données et récupération du retour
104
		// Envoie des données et récupération du retour
105
		$json = $this->envoyerRequeteAjout($url, $donnees);
105
		$json = $this->envoyerRequeteAjout($url, $donnees);
106
		$ok = json_decode($json, true);
106
		$ok = json_decode($json, true);
107
		return $ok;
107
		return $ok;
108
	}
108
	}
109
	
109
	
110
	/**
110
	/**
111
	* Créer un fichier csv d'export d'une version d'un ref en sélectionnant les champs et filtrant en fonction de paramètres
111
	* Créer un fichier csv d'export d'une version d'un ref en sélectionnant les champs et filtrant en fonction de paramètres
112
	* @return l'url de stockage
112
	* @return l'url de stockage
113
	*/
113
	*/
114
	public function exporter($parametres) {
114
	public function exporter($parametres) {
115
		$this->ordre['nom_sci'] = 'ASC';
115
		$this->ordre['nom_sci'] = 'ASC';
116
		$url = $this->construireUrlExport($parametres);
116
		$url = $this->construireUrlExport($parametres);
117
		$json = $this->envoyerRequeteConsultation($url);
117
		$json = $this->envoyerRequeteConsultation($url);
118
		$donnees = json_decode($json, true);
118
		$donnees = json_decode($json, true);
119
		return $donnees;
119
		return $donnees;
120
	}
120
	}
121
	
121
	
122
	private function construireUrlExport($parametres) {
122
	private function construireUrlExport($parametres) {
123
		$url = $this->url_jrest.self::SERVICE.'/Export';
123
		$url = $this->url_jrest.self::SERVICE.'/Export';
124
	
124
	
125
		$params_a_passer = array('ref', 'version', 'champs', 'filtres');
125
		$params_a_passer = array('ref', 'version', 'champs', 'filtres', 'encodage');
126
		foreach ($params_a_passer as $param_cle) {
126
		foreach ($params_a_passer as $param_cle) {
127
			if (isset($parametres[$param_cle]) && $parametres[$param_cle] != '') {
127
			if (isset($parametres[$param_cle]) && $parametres[$param_cle] != '') {
128
				$valeur = urlencode(trim($parametres[$param_cle]));
128
				$valeur = urlencode(trim($parametres[$param_cle]));
129
				$url .= '/'.$valeur;
129
				$url .= '/'.$valeur;
130
			} else {
130
			} else {
131
				$url .= '/*';
131
				$url .= '/*';
132
			}
132
			}
133
		}
133
		}
134
		return $url;
134
		return $url;
135
	}
135
	}
136
	
136
	
137
	/**
137
	/**
138
	* Modifie un référentiel pour ajouter une colonne famille
138
	* Modifie un référentiel pour ajouter une colonne famille
139
	* @param integer l'id du traitement
139
	* @param integer l'id du traitement
140
	* @return boolean true en cas de succés sinon false.
140
	* @return boolean true en cas de succés sinon false.
141
	*/
141
	*/
142
	public function preparerTablePrChpFamille($referentiel) {
142
	public function preparerTablePrChpFamille($referentiel) {
143
		$url = $this->url_jrest.self::SERVICE.'/TablePrChpFamille/'.$referentiel;
143
		$url = $this->url_jrest.self::SERVICE.'/TablePrChpFamille/'.$referentiel;
144
		$json = $this->envoyerRequeteConsultation($url);
144
		$json = $this->envoyerRequeteConsultation($url);
145
		$donnees = json_decode($json, true);
145
		$donnees = json_decode($json, true);
146
		return $donnees;
146
		return $donnees;
147
		/*$donnees['referentiel'] = $referentiel;
147
		/*$donnees['referentiel'] = $referentiel;
148
		$donnees['action'] = 'TablePrChpFamille';
148
		$donnees['action'] = 'TablePrChpFamille';
149
	
149
	
150
		// Envoie des données et récupération du retour
150
		// Envoie des données et récupération du retour
151
		$json = $this->envoyerRequeteModif($url, $donnees);
151
		$json = $this->envoyerRequeteModif($url, $donnees);
152
		$ok = json_decode($json, true);
152
		$ok = json_decode($json, true);
153
		return $ok;*/
153
		return $ok;*/
154
	}
154
	}
155
	
155
	
156
	public function remplirChpFamille($referentiel, $noms) {
156
	public function remplirChpFamille($referentiel, $noms) {
157
		$url = $this->url_jrest.self::SERVICE.'/ChpFamille/';
157
		$url = $this->url_jrest.self::SERVICE.'/ChpFamille/';
158
		$donnees['referentiel'] = $referentiel;
158
		$donnees['referentiel'] = $referentiel;
159
		$donnees['noms'] = $noms;
159
		$donnees['noms'] = $noms;
160
	
160
	
161
		// Envoie des données et récupération du retour
161
		// Envoie des données et récupération du retour
162
		$json = $this->envoyerRequeteModif($url, $donnees);
162
		$json = $this->envoyerRequeteModif($url, $donnees);
163
		$ok = json_decode($json, true);
163
		$ok = json_decode($json, true);
164
		return $ok;
164
		return $ok;
165
	}
165
	}
166
	
166
	
167
	
167
	
168
}
168
}
169
?>
169
?>