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"; |
} |
} |
|
|