New file |
0,0 → 1,169 |
<?php |
// declare(encoding='UTF-8'); |
/** |
* Modèle d'accès à la base de données des Référentiels. |
* Permet d'accèder au données des référentiels. |
* |
* @package Referentiel |
* @category Php 5.2 |
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org> |
* @copyright 2010 Tela-Botanica |
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL |
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL |
* @version SVN: $Id$ |
* |
*/ |
class ReferentielDao extends Dao { |
const SERVICE = 'Referentiel'; |
const SERVICE_ARCHIVAGE = 'ArchiverReferentiel'; |
|
/** |
* Retourne des infos sur l'ensemble des référentiels disponibles. |
* |
* @return array un tableau contenant les informations sur les référentiels disponibles. |
*/ |
public function getReferentielsDispo() { |
$url = $this->url_jrest.self::SERVICE."/Dispo"; |
$json = $this->envoyerRequeteConsultation($url); |
$noms = json_decode($json, true); |
return $noms; |
} |
|
/** |
* Retourne l'ensemble des information sur les noms d'un référentiel. |
* |
* @param string le code du référentiel. |
* @return array un tableau contenant les informations sur les noms du référentiel. |
*/ |
public function getTout($code_projet) { |
$url = $this->url_jrest.self::SERVICE."/Tout/$code_projet"; |
$nbre = $this->getNombre($code_projet); |
$noms = array(); |
$pas = 5000; |
for ($i = 0; $i < $nbre ; $i += $pas) { |
$this->setLimitation($i, $pas); |
$json = $this->envoyerRequeteConsultation($url); |
$noms_partiel = json_decode($json, true); |
Tableau::etendre($noms, $noms_partiel); |
} |
return $noms; |
} |
|
/** |
* Retourne le nombre de noms présents dans la table de travail du référentiel. |
* |
* @param string le code du référentiel. |
* @return int le nombre de noms. |
*/ |
public function getNombre($code_projet) { |
$url = $this->url_jrest.self::SERVICE."/Nombre/$code_projet"; |
$json = $this->envoyerRequeteConsultation($url); |
$nbre = json_decode($json, true); |
return $nbre; |
} |
|
/** |
* Retourne le titre du projet dans la table des meta-données du référentiel. |
* |
* @param string le code du référentiel. |
* @return int le nombre de noms. |
*/ |
public function getNom($code_projet) { |
$url = $this->url_jrest.self::SERVICE."/Nom/$code_projet"; |
$json = $this->envoyerRequeteConsultation($url); |
$nbre = json_decode($json, true); |
return $nbre; |
} |
|
/** |
* Retourne la date de mise à jour dans la table des meta-données du référentiel. |
* |
* @param string le code du référentiel. |
* @return int le nombre de noms. |
*/ |
public function getDateMiseAJour($code_projet) { |
$url = $this->url_jrest.self::SERVICE."/DateMiseAJour/$code_projet"; |
$json = $this->envoyerRequeteConsultation($url); |
$nbre = json_decode($json, true); |
return $nbre; |
} |
|
/** |
* Copie la table de travail du référentiel pour l'archiver avec une numéro de version. |
* |
* @param string le code du référentiel. |
* @param string la version du référentiel. |
* @return bool true en cas de succé ou false en cas d'échec. |
*/ |
public function archiver($code_projet, $version) { |
$url = $this->url_jrest.self::SERVICE_ARCHIVAGE; |
// Préparation des données à passer par POST |
$donnees['code'] = $code_projet; |
$donnees['version'] = $version; |
|
// Envoie des données et récupération du retour |
$json = $this->envoyerRequeteAjout($url, $donnees); |
$ok = json_decode($json, true); |
return $ok; |
} |
|
/** |
* 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 |
* @return l'url de stockage |
*/ |
public function exporter($parametres) { |
$this->ordre['nom_sci'] = 'ASC'; |
$url = $this->construireUrlExport($parametres); |
$json = $this->envoyerRequeteConsultation($url); |
$donnees = json_decode($json, true); |
return $donnees; |
} |
|
private function construireUrlExport($parametres) { |
$url = $this->url_jrest.self::SERVICE.'/Export'; |
|
$params_a_passer = array('ref', 'version', 'champs', 'filtres'); |
foreach ($params_a_passer as $param_cle) { |
if (isset($parametres[$param_cle]) && $parametres[$param_cle] != '') { |
$valeur = urlencode(trim($parametres[$param_cle])); |
$url .= '/'.$valeur; |
} else { |
$url .= '/*'; |
} |
} |
return $url; |
} |
|
/** |
* Modifie un référentiel pour ajouter une colonne famille |
* @param integer l'id du traitement |
* @return boolean true en cas de succés sinon false. |
*/ |
public function preparerTablePrChpFamille($referentiel) { |
$url = $this->url_jrest.self::SERVICE.'/TablePrChpFamille/'.$referentiel; |
$json = $this->envoyerRequeteConsultation($url); |
$donnees = json_decode($json, true); |
return $donnees; |
/*$donnees['referentiel'] = $referentiel; |
$donnees['action'] = 'TablePrChpFamille'; |
|
// Envoie des données et récupération du retour |
$json = $this->envoyerRequeteModif($url, $donnees); |
$ok = json_decode($json, true); |
return $ok;*/ |
} |
|
public function remplirChpFamille($referentiel, $noms) { |
$url = $this->url_jrest.self::SERVICE.'/ChpFamille/'; |
$donnees['referentiel'] = $referentiel; |
$donnees['noms'] = $noms; |
|
// Envoie des données et récupération du retour |
$json = $this->envoyerRequeteModif($url, $donnees); |
$ok = json_decode($json, true); |
return $ok; |
} |
|
|
} |
?> |