Subversion Repositories eFlore/Applications.cel

Rev

Rev 423 | Rev 848 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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