Subversion Repositories eFlore/Applications.cel

Rev

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

<?php
// ATTENTION ! Classe compatible uniquement avec nouveau format de bdd du cel //
/**
* PHP Version 5
*
* @category  PHP
* @package   papyrus_bp
* @author    David Delon <david@tela-botanica.org>
* @author    Aurelien Peronnet <aurelien@tela-botanica.org>
* @copyright 2010 Tela-Botanica
* @license   http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
* @version   SVN: <svn_id>
* @link      /doc/jrest/
*/

/**
* CRUD observation
* 
* in=utf8
* out=utf8
*
**/ 
class Inventory extends Cel {
        
        // TODO;: faire un descriptif du service
        function getRessource(){

        }

        function getElement($uid){

                // Controle detournement utilisateur
            session_start();
                $this->controleUtilisateur($uid[0]);

                $value=array();

                if(!isset($uid[0])) {
                        return;
                }
                
                $parametres_recherche = array(array('ce_utilisateur',$uid[0]),array('ordre',$uid[1]));
                
                $chercheur_observations = new RechercheObservation($this->config);
        $retour_recherche = $chercheur_observations->rechercherObservations($uid[0], $parametres_recherche, 0, 1);
        
        $observation = array();
        if(is_array($retour_recherche) && count($retour_recherche) > 0) {
                $observation = $retour_recherche[0];
        }
        
        $observation = $this->formaterObservationVersTableauSequentiel(&$observation);
                $output = json_encode($observation);
                
                header("Content-type: application/json");
                print($output);

                return true;
        }
        
        private function formaterObservationVersTableauSequentiel($observation) {
                
        if ($observation['date_observation']!="0000-00-00 00:00:00") {
            list($year,$month,$day)= split ('-',$observation['date_observation']);
            list($day)= split (' ',$day);
            $observation['date_observation']=$day."/".$month."/".$year;
        }

        $observation = array($observation['nom_sel'], $observation['nom_sel_nn'],
                                $observation['nom_ret'], $observation['nom_ret_nn'],
                                $observation['nt'], $observation['famille'], $observation['zone_geo'],
                                $observation['ce_zone_geo'], $observation['ordre'],
                                $observation['date_observation'], $observation['lieudit'],
                                $observation['station'], $observation['milieu'],
                                $observation['commentaire'], $observation['latitude'],
                                $observation['longitude']);
            
            return $observation;
        }

        function updateElement($uid,$pairs) {

                // Controle detournement utilisateur
            session_start();
                $this->controleUtilisateur($uid[0]);

        if (!isset($uid[1])) {
                        //TODO: envoyer un message d'erreur
                        return; 
                }
                
                $uid[1] = rtrim($uid[1],',');
                
                $gestionnaire_observation = new GestionObservation($this->config);
                $modification_observation = $gestionnaire_observation->modifierObservation($uid[0],$uid[1],$pairs);     
         
        return true;
        }


        function createElement($pairs){

                // Controle detournement utilisateur
            session_start();
                $this->controleUtilisateur($pairs['ce_utilisateur']);
                
                $gestionnaire_observation = new GestionObservation($this->config);
                $gestionnaire_observation->ajouterObservation($pairs['ce_utilisateur'], $pairs);

        return true;
        }

        /**
        * Supprime une observation
        * 
        * uid[0] : utilisateur obligatoire
        * uid[1] : ordres de l'observation à supprimer
        */ 
        function deleteElement($uid){

                // Controle detournement utilisateur
                session_start();
                $this->controleUtilisateur($uid[0]);
                
                if (!isset($uid[1])) {
                        //TODO: envoyer un message d'erreur
                        return; 
                }
                
                $uid[1] = rtrim($uid[1],',');
                
                $gestionnaire_observation = new GestionObservation($this->config);
                $suppression_observation = $gestionnaire_observation->supprimerObservation($uid[0],$uid[1]);    
                
                if ($suppression_observation) {
                        echo "OK";      
                }
                
        exit() ;
        }
}
/* +--Fin du code ---------------------------------------------------------------------------------------+
* $Log$
* Revision 1.11  2008-11-13 11:29:12  ddelon
* Reecriture gwt-ext
*
* Revision 1.10  2008-01-30 08:57:28  ddelon
* fin mise en place mygwt
*
* Revision 1.9  2007-05-22 12:54:09  ddelon
* Securisation acces utilisateur
*
*/
?>