Subversion Repositories Applications.referentiel

Rev

Rev 26 | Rev 33 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

<?php
// declare(encoding='UTF-8');
/**
 * DAO des traitements à réaliser sur les 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             $Id$
 *
 */
class TraitementDao extends Dao {
        const SERVICE = 'Traitement';
        
        private $url = null;
        
        public function __construct() {
                parent::__construct();
                $this->url = $this->url_jrest.self::SERVICE;
        }
        
        /**
         * Retourne l'ensemble des traitements en cours.
         * 
         * @param string le code du projet de référentiel.
         * @return mixed un tableau contenant les informations sur les traitements en cours ou false en cas d'échec.
         */
        public function getTraitementsEnCours($code_projet) {
                $url = $this->url."/EnCours/$code_projet";
                
                $json = $this->envoyerRequeteConsultation($url);
                $traitements = json_decode($json, true);
                return $traitements;
        }
        
        /**
         * Retourne les ids de l'ensemble des traitements obsolètes.
         * 
         * @param string le code du projet de référentiel.
         * @return mixed un tableau contenant les ids des traitements obsolètes ou false en cas d'échec.
         */
        public function getTraitementsObsoletes($code_projet) {
                $url = $this->url."/Obsolete/$code_projet";
                
                $json = $this->envoyerRequeteConsultation($url);
                $traitements = json_decode($json, true);
                return $traitements;
        }
        
        /**
         * Retourne le dernier traitement demandé et non traité pour un projet donné.
         * 
         * @param string le code du projet de référentiel.
         * @return mixed un tableau contenant les informations sur le dernier traitement demandé et non traité ou false en cas d'échec.
         */
        public function getDernierTraitement($code_projet) {
                $url = $this->url."/DerniereDemande/$code_projet";
                
                $json = $this->envoyerRequeteConsultation($url);
                $traitements = json_decode($json, true);
                return $traitements;
        }
        
        /**
         * Retourne l'ensemble des traitements terminés.
         * 
         * @param string le code du projet de référentiel.
         * @return mixed un tableau contenant les informations sur les traitements terminés ou false en cas d'échec.
         */
        public function getTraitementsTermines($code_projet) {
                $url = $this->url."/Termines/$code_projet";
                
                $json = $this->envoyerRequeteConsultation($url);
                $traitements = json_decode($json, true);
                return $traitements;
        }
        
        /**
         * Ajoute une demande de traitement pour une référentiel donné.
         * 
         * @param string le code du référentiel.
         * @return mixed l'id du traitement ou false en cas d'échec.
         */
        public function ajouterTraitement($code_projet) {
                // Préparation des données à passer par POST
                $donnees['referentiel_code'] = $code_projet;
                
                // Envoie des données et récupération du retour
                $json = $this->envoyerRequeteAjout($this->url, $donnees);
                $id = json_decode($json, true);
                return $id;
        }
        
        /**
         * Modifie un traitement pour indiquer qu'il est débuté.
         * 
         * @param integer l'id du traitement
         * @return boolean true en cas de succés sinon false.
         */
        public function debuterTraitement($id_traitement) {
                $url = $this->url."/$id_traitement";
                $donnees['action'] = 'Debuter';
                
                // Envoie des données et récupération du retour
                $json = $this->envoyerRequeteModif($url, $donnees);
                $ok = json_decode($json, true);
                return $ok;
        }
        
        /**
         * Modifie un traitement pour indiquer qu'il est terminé.
         * 
         * @param integer l'id du traitement
         * @return boolean true en cas de succés sinon false.
         */
        public function terminerTraitement($id_traitement) {
                $url = $this->url."/$id_traitement";
                $donnees['action'] = 'Terminer';
                
                // Envoie des données et récupération du retour
                $json = $this->envoyerRequeteModif($url, $donnees);
                $ok = json_decode($json, true);
                return $ok;
        }
        
        /**
         * Supprime des traitments en fonction de leur id.
         * 
         * @param array le tableau des id des traitements à supprimer
         * @return boolean true en cas de succès ou false en cas d'échec.
         */
        public function supprimer(Array $ids) {
                // Préparation de l'url
                $url = $this->url.'/'.implode(',', $ids);
                
                // Envoie des données et récupération du retour
                $json = $this->envoyerRequeteSuppression($url);
                $ok = json_decode($json, true);
                return $ok;
        }
}
?>