Subversion Repositories eFlore/Applications.cel

Rev

Rev 757 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
416 aurelien 1
<?php
2
 
3
// in : utf8
4
// out : utf8
5
 
757 aurelien 6
/**
7
 * Liste les date de releves par utilisateur
8
 *
9
 * uid[0] : utilisateur obligatoire
10
 * uid[1] : si absent : valeur 'all' (annee)
11
 * uid[2] : si absent : valeur 'all' (mois)
12
 * uid[3] : si absent : valeur 'all' (jour)
13
 **/
14
class InventoryDateList extends Cel {
416 aurelien 15
 
757 aurelien 16
	private $correspondance_fonction = array(1 => 'year', 2 => 'month', 3 => 'day');
416 aurelien 17
 
18
 
19
	function getElement($uid){
20
 
21
		   // Controle detournement utilisateur
22
		    session_start();
23
		 	$this->controleUtilisateur($uid[0]);
757 aurelien 24
 
25
			$condition_requete = $this->traiterParametresEtConstruireRequete($uid);
416 aurelien 26
 
757 aurelien 27
		   	$requete_liste_dates = 'SELECT DISTINCT '.
28
	    			'date_observation AS id '.
29
	           		'FROM cel_inventory WHERE '.$condition_requete.' '.
30
	           		'ORDER BY date_observation';
31
 
32
		    $liste_dates = $this->executerRequete($requete_liste_dates);
33
 
34
	        $liste_dates = $this->formaterListeResultats($liste_dates);
35
 
36
			$output = json_encode($liste_dates);
37
			print($output);
416 aurelien 38
 
757 aurelien 39
			return true;
40
	}
41
 
42
	private function formaterListeResultats($liste_dates) {
416 aurelien 43
 
757 aurelien 44
		if (!$liste_dates) {
45
    	    $liste_dates = array();
46
        }
47
 
48
    	foreach($liste_dates as &$date) {
49
    		$date_heures = split(' ',$date['id']);
50
    		if(count($date_heures) > 1) {
51
    			$date = $date_heures[0];
52
    		}
53
 
54
    		$date = $date;
55
        }
56
 
57
        return $liste_dates;
58
	}
416 aurelien 59
 
757 aurelien 60
	private function traiterParametresEtConstruireRequete($params) {
416 aurelien 61
 
757 aurelien 62
		$requete_condition = ' identifiant = '.$this->proteger($params[0]);
416 aurelien 63
 
757 aurelien 64
		$taille_tableau_parametres = count($params);
65
		for($i=1; $i <= $taille_tableau_parametres; $i++) {
66
			if($this->estUnParametreDate($params[$i])) {
67
				$fonction_date = $this->correspondance_fonction[$i];
68
				$requete_condition .= ' AND '.$fonction_date.'(date_observation) = '.$this->proteger($params[$i]);
69
			}
70
		}
416 aurelien 71
 
757 aurelien 72
		return $requete_condition;
416 aurelien 73
	}
74
 
757 aurelien 75
	private function estUnParametreDate($valeur) {
76
		 return is_numeric($valeur) && $valeur != "all";
77
	}
416 aurelien 78
}
79
 
80
 
81
/* +--Fin du code ---------------------------------------------------------------------------------------+
82
* $Log$
83
* Revision 1.4  2008-01-30 08:57:28  ddelon
84
* fin mise en place mygwt
85
*
86
* Revision 1.3  2007-05-22 12:54:09  ddelon
87
* Securisation acces utilisateur
88
*
89
*
90
*
91
*/
92
 
93
 
94
 
95
?>