<?php


// In :  utf8 
// Out : utf8

Class InventoryItemList extends DBAccessor {


	var $config;
	
	function InventoryItemList($config) {

		$this->config=$config;
	}
	

	function getElement($uid){
		
		 // Controle detournement utilisateur 
		    session_start();
		 	if (($_SESSION['user']!="") && $_SESSION['user']['name']!=$uid[0]) {    	  
		 		print "Acces interdit";
		 		return;
	     	}
		
			// uid[0] : utilisateur obligatoire
			// uid[1] : si absent : valeur 'all' (departement)
			// uid[2] : si absent : valeur 'all' (commune)
			// uid[3] : si absent : valeur 'all' (annee)
			// uid[4] : si absent : valeur 'all' (mois)
			// uid[5] : si absent : valeur 'all' (jour)
			// uid[6] : si absent : valeur 'all' (recherche libre)
			// uid[7] : si absent : valeur 'all' (lieudit)
			// uid[8] et uid[9] : selection intervalle
			
			$DB=$this->connectDB($this->config,'database_cel');


			if (!isset($uid[1]) || $uid[1]=="" || $uid[1]=="all" ) {
				$uid[1]="all";
				$query_id_location="";
			}
			else {
				$query_id_location=" AND id_location='".$DB->escapeSimple($uid[1])."' ";
			}

			 
			if (!isset($uid[2]) || $uid[2]=="" || $uid[2]=="all" ) {
				$uid[2]="all";
				$query_location="";
			}
			else {
				$query_location=" AND location='".$DB->escapeSimple($uid[2])."' ";
			}
			
			if (!isset($uid[3]) || $uid[3]=="" || $uid[3]=="all") {
				$uid[3]="all";
				$query_year="";
			}
			else {
				$query_year=" AND year(date_observation)='".$DB->escapeSimple($uid[3])."' ";
			}
			

			if (!isset($uid[4]) || $uid[4]=="" || $uid[4]=="all") {
				$uid[4]="all";
				$query_month="";
			}
			else {
				$query_month=" AND month(date_observation)='".$DB->escapeSimple($uid[4])."' ";
			}

			if (!isset($uid[5]) || $uid[5]=="" || $uid[5]=="all") {
				$uid[5]="all";
				$query_day="";
			}
			else {
				$query_day=" AND day(date_observation)='".$DB->escapeSimple($uid[5])."' ";
			}
			
			
			if (!isset($uid[6]) || $uid[6]=="" || $uid[6]=="all") {
				$uid[6]="all";
				$query_libre="";
			}
			else {
				$query_libre=" AND (nom_sel like '%".$DB->escapeSimple($uid[6])."%' OR nom_ret like '%".$DB->escapeSimple($uid[6])."%' OR station like '%".$DB->escapeSimple($uid[6])."%' OR commentaire like '%".$DB->escapeSimple($uid[6])."%') ";
			}

			if (!isset($uid[7]) || $uid[7]=="" || $uid[7]=="all") {
				$uid[7]="all";
				$query_lieudit="";
			}
			else {
				$query_lieudit=" AND lieudit='".$DB->escapeSimple($uid[7])."' ";
			}
			

			$value=array();
			
			
			if (isset($uid[8]) && isset($uid[9])) {
	           	$query="SELECT identifiant, ordre, nom_sel, num_nom_sel, nom_ret, num_nom_ret, num_taxon, famille, location, date_observation," .
	           			" lieudit, station, commentaire, transmission  FROM cel_inventory WHERE identifiant='".$DB->escapeSimple($uid[0])."' " .
	           			$query_id_location.	
	           			$query_location.	
	           			$query_year.	
	           			$query_month.	
	           			$query_day.	
	           			$query_libre.	
	           			$query_lieudit.	
	           			" ORDER BY ordre LIMIT ".$uid[8].",".$uid[9];
			}
			
			else {
				if (isset($uid[8])) {
						// les n derniers 					
			          	$query="SELECT identifiant, ordre, nom_sel, num_nom_sel, nom_ret, num_nom_ret, num_taxon, famille, location, date_observation," .
			          	" lieudit, station, commentaire, transmission  FROM cel_inventory WHERE identifiant='".$DB->escapeSimple($uid[0])."' " .
	           			$query_id_location.	
	           			$query_location.	
	           		    $query_year.	
	           			$query_month.	
	           			$query_day.	
	           			$query_libre.	
	           			$query_lieudit.	
			          	" ORDER BY ordre LIMIT ".$uid[8].",18446744073709551615";
				}
				else {
			           	$query="SELECT count(*) as count FROM cel_inventory WHERE identifiant='".$DB->escapeSimple($uid[0])."'" .
	           			$query_id_location.	
						$query_location.	
	           			$query_year.	
	           			$query_month.	
	           			$query_day.	
	           			$query_libre.	
	           			$query_lieudit;	

           			    $res =& $DB->query($query);
   
    
				        if (DB::isError($res)) {
			    	        die($res->getMessage());
			        	}
				        while ($row =& $res->fetchrow(DB_FETCHMODE_ASSOC)) {
			                $value=$row['count'];
			    	    }
					
						$json = new Services_JSON();
						$output = $json->encode((integer)$value);
						print($output);
						
						return true;	
					
				}
			}

	     
		    $res =& $DB->query($query);
		    
	        if (DB::isError($res)) {
    	        die($res->getMessage());
        	}
	        while ($row =& $res->fetchrow(DB_FETCHMODE_ASSOC)) {
	        	if ($row['date_observation']!="0000-00-00 00:00:00") {
	                list($year,$month,$day)= split ('-',$row['date_observation']);
    	            list($day)= split (' ',$day);
	                $row['date_observation']=$day."/".$month."/".$year;
	        	}
                $value[]=array($row['nom_sel'], $row['num_nom_sel'],$row['nom_ret'],$row['num_nom_ret'],$row['num_taxon'],$row['famille'], $row['location'], $row['ordre'], $row['date_observation'], $row['lieudit'], $row['station'],$row['commentaire'], $row['transmission']);
                
    	    }
		
			$json = new Services_JSON();
			$output = $json->encode($value);
			print($output);
			
			return true;	


	}
	


}

/* +--Fin du code ---------------------------------------------------------------------------------------+
* $Log$
* Revision 1.6  2008-01-30 08:57:28  ddelon
* fin mise en place mygwt
*
* Revision 1.5  2007-05-22 12:54:08  ddelon
* Securisation acces utilisateur
*
*
* 
*/

 
?>