Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 756 → Rev 757

/trunk/jrest/services/InventoryDateList.php
3,95 → 3,78
// in : utf8
// out : utf8
 
// Liste les date de releves par utilisateur
 
 
Class InventoryDateList extends DBAccessor {
 
 
var $config;
/**
* Liste les date de releves par utilisateur
*
* uid[0] : utilisateur obligatoire
* uid[1] : si absent : valeur 'all' (annee)
* uid[2] : si absent : valeur 'all' (mois)
* uid[3] : si absent : valeur 'all' (jour)
**/
class InventoryDateList extends Cel {
function InventoryDateList($config) {
 
$this->config=$config;
}
private $correspondance_fonction = array(1 => 'year', 2 => 'month', 3 => 'day');
 
function getElement($uid){
 
// uid[0] : utilisateur obligatoire
// uid[1] : si absent : valeur 'all' (annee)
// uid[2] : si absent : valeur 'all' (mois)
// uid[3] : si absent : valeur 'all' (jour)
 
// Controle detournement utilisateur
session_start();
$this->controleUtilisateur($uid[0]);
$condition_requete = $this->traiterParametresEtConstruireRequete($uid);
$DB=$this->connectDB($this->config,'database_cel');
$requete_liste_dates = 'SELECT DISTINCT '.
'date_observation AS id '.
'FROM cel_inventory WHERE '.$condition_requete.' '.
'ORDER BY date_observation';
$liste_dates = $this->executerRequete($requete_liste_dates);
$liste_dates = $this->formaterListeResultats($liste_dates);
$output = json_encode($liste_dates);
print($output);
$select = "date_observation" ;
if (!isset($uid[1]) || $uid[1]=="" || $uid[1]=="all" ) {
$uid[1]="all";
if ($select=="") $select="year(date_observation) ";
}
else {
$query_year=" AND year(date_observation)='".$DB->escapeSimple($uid[1])."' ";
}
if (!isset($uid[2]) || $uid[2]=="" || $uid[2]=="all" ) {
$uid[2]="all";
if ($select=="") $select="month(date_observation) ";
}
else {
$query_month=" AND month(date_observation)='".$DB->escapeSimple($uid[2])."' ";
}
 
if (!isset($uid[3]) || $uid[3]=="" || $uid[3]=="all" ) {
$uid[3]="all";
if ($select=="") $select="day(date_observation) ";
}
else {
$query_day=" AND day(date_observation)='".$DB->escapeSimple($uid[3])."' ";
}
return true;
}
private function formaterListeResultats($liste_dates) {
$value=array();
if (!$liste_dates) {
$liste_dates = array();
}
foreach($liste_dates as &$date) {
$date_heures = split(' ',$date['id']);
if(count($date_heures) > 1) {
$date = $date_heures[0];
}
$date = $date;
}
return $liste_dates;
}
private function traiterParametresEtConstruireRequete($params) {
$requete_condition = ' identifiant = '.$this->proteger($params[0]);
$query="SELECT DISTINCT ".
$select. " AS id" .
" FROM cel_inventory WHERE identifiant='".$DB->escapeSimple($uid[0])."' " .
$query_year.
$query_month.
$query_day.
" ORDER BY ".$select;
$taille_tableau_parametres = count($params);
for($i=1; $i <= $taille_tableau_parametres; $i++) {
if($this->estUnParametreDate($params[$i])) {
$fonction_date = $this->correspondance_fonction[$i];
$requete_condition .= ' AND '.$fonction_date.'(date_observation) = '.$this->proteger($params[$i]);
}
}
$res =& $DB->query($query);
if (DB::isError($res)) {
die($res->getMessage());
}
while ($row =& $res->fetchrow(DB_FETCHMODE_ASSOC)) {
$value[]=array($row['id']);
}
$output = json_encode($value);
print($output);
return true;
 
 
return $requete_condition;
}
 
 
private function estUnParametreDate($valeur) {
return is_numeric($valeur) && $valeur != "all";
}
}