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