Subversion Repositories eFlore/Applications.cel

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
416 aurelien 1
<?php
925 aurelien 2
// ATTENTION ! Classe compatible uniquement avec nouveau format de bdd du cel //
3
/**
4
* PHP Version 5
5
*
6
* @category  PHP
7
* @package   jrest
8
* @author    Aurelien Peronnet <aurelien@tela-botanica.org>
9
* @copyright 2010 Tela-Botanica
10
* @license   http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
11
* @version   SVN: <svn_id>
12
* @link      /doc/jrest/
13
*/
416 aurelien 14
 
15
/**
925 aurelien 16
* InventoryObservationList.php
17
*
18
* in=utf8
19
* out=utf8
20
*
21
* Cas d'utilisation :
22
* 1: Service recherche d'observations a partir de divers critères
23
*  a: Le service recherche les observations correspondant aux critères demandés
24
*  b: Le service renvoie la liste des observations correspondantes
25
*
26
* 2: Service modification en masse d'observations
27
*  a: Le service recherche les observations correspondant aux identifiants donnés
28
*  b: Le service modifie les observations correspondantes avec les infos données en paramètres
29
*
30
* 3: Service de suppression d'observations en masse
31
*  a: Le service recherche les observations correspondant aux critères demandés
32
*  b: Le service supprime la liste des observations correspondantes
33
*/
34
class InventoryObservationList extends Cel {
35
 
36
	/**
37
	 * renvoie les observations correspondant au critères de filtrage
38
	 *
39
	 * uid[0] : utilisateur obligatoire
40
	 * uid[1] : criteres de filtrage de la forme critere1=valeur1&critere2=valeur2
41
	 */
416 aurelien 42
	function getElement($uid)
43
	{
44
		// Controle detournement utilisateur
45
	    $this->controleUtilisateur($uid[0]);
46
 
925 aurelien 47
		$chercheur_observations = new RechercheObservation($this->config);
416 aurelien 48
 
925 aurelien 49
		$numero_page = 0;
50
		$taille_page = 50;
51
		$criteres = array();
416 aurelien 52
 
1297 aurelien 53
		$criteres = $_GET ;
54
		if (isset($criteres['numero_page']) && isset($criteres['limite'])) {
55
			$numero_page = $criteres['numero_page'];
56
			unset($criteres['numero_page']);
57
			$taille_page = $criteres['limite'];
58
			unset($criteres['limite']);
416 aurelien 59
		}
966 aurelien 60
 
61
		$debut = $taille_page*$numero_page ;
416 aurelien 62
 
1631 raphael 63
		$retour = $chercheur_observations->rechercherObservations($uid[0], $criteres, $debut, $taille_page)->get();
1598 raphael 64
		$retour_formate = $chercheur_observations->formaterPourEnvoiCel($retour);
416 aurelien 65
 
1014 aurelien 66
		$this->envoyerJson($retour_formate);
67
		return true;
416 aurelien 68
	}
69
 
925 aurelien 70
	/**
71
	 * met à jour les métadonnées d'une liste d'observations
72
	 *
73
	 * uid[0] : utilisateur obligatoire
74
	 * uid[1] : ordres des observations à modifier séparés par des virgules
75
	 * pairs : données à mettre à jour sous la forme de clés => valeurs
76
	 */
416 aurelien 77
	function updateElement($uid,$pairs) {
78
 
925 aurelien 79
		// Controle detournement utilisateur
80
		$this->controleUtilisateur($uid[0]);
81
 
82
		if (!isset($uid[1])) {
83
			//TODO: envoyer un message d'erreur
84
			return;
85
		}
86
 
87
		$uid[1] = rtrim($uid[1],',');
88
 
89
		$gestionnaire_observation = new GestionObservation($this->config);
90
		$modification_observation = $gestionnaire_observation->modifierObservation($uid[0],$uid[1],$pairs);
91
 
92
        return true;
416 aurelien 93
	}
94
 
925 aurelien 95
	/**
96
	* Supprime une liste d'observations
97
	*
98
	* uid[0] : utilisateur obligatoire
99
	* uid[1] : ordres des observations à supprimer séparés par des virgules
100
	*/
416 aurelien 101
	function deleteElement($uid)
102
	{
925 aurelien 103
	 	// Controle detournement utilisateur
104
		$this->controleUtilisateur($uid[0]);
105
 
106
		if (!isset($uid[1])) {
107
			//TODO: envoyer un message d'erreur
108
			return;
416 aurelien 109
		}
925 aurelien 110
 
111
		$uid[1] = rtrim($uid[1],',');
112
 
113
		$gestionnaire_observation = new GestionObservation($this->config);
1571 aurelien 114
		$tableau_ordres = explode(',', $uid[1]);
115
		foreach($tableau_ordres as $ordre) {
116
			$ids_obs[] = $gestionnaire_observation->renvoyerIdPourOrdre($uid[0], $ordre);
117
		}
925 aurelien 118
 
1571 aurelien 119
		$suppression_observations = $gestionnaire_observation->supprimerObservation($uid[0],$uid[1]);
120
 
121
		$gestion_champs_etendus = new GestionChampsEtendus($this->config, 'obs');
122
		$champs_supp = $gestion_champs_etendus->viderParLots($ids_obs);
123
 
124
		if ($suppression_observations) {
925 aurelien 125
			echo "OK";
416 aurelien 126
		}
925 aurelien 127
 
128
    	exit() ;
416 aurelien 129
	}
130
}
131
?>