<?php
	

// CRUD ligne d'inventaire :
// In get : utf8
// In post : utf8
// out : utf8 

Class Inventory extends DBAccessor {


	var $config;
	
	function Inventory($config) {

		$this->config=$config;
	}
	

	function getElement($uid){
		
		   // Controle detournement utilisateur 
		    session_start();
		 	if (($_SESSION['user']!="") && $_SESSION['user']['name']!=$uid[0]) {    	  
		 		print "Acces interdit";
		 		return;
	     	}
   			

			$value=array();
			$DB=$this->connectDB($this->config,'database_cel');
			
			if (isset($uid[1])) {
	           	$query="SELECT identifiant, ordre, nom_sel, num_nom_sel, nom_ret, num_nom_ret, num_taxon, famille, location, id_location, date_observation, lieudit, station, commentaire FROM cel_inventory WHERE identifiant='".$DB->escapeSimple($uid[0])."' AND ordre =".$uid[1]." ORDER BY ordre";
			}
			else {
				if (isset($uid[0])) {
		           	$query="SELECT identifiant, ordre, nom_sel, num_nom_sel, nom_ret, num_nom_ret, num_taxon, famille, location, id_location, date_observation, lieudit, station, commentaire FROM cel_inventory WHERE identifiant='".$DB->escapeSimple($uid[0])."' ORDER BY ordre";
				}
			}
	                
		    $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['id_location'], $row['ordre'], $row['date_observation'],$row['lieudit'], $row['station'], $row['commentaire']);
    	    }
		
			$json = new Services_JSON();
			$output = $json->encode($value);
			print($output);
			
			return true;	


	}
	
	function getRessource(){
		
		
	}


	function updateElement($uid,$pairs) {
		
		 // Controle detournement utilisateur 
			    session_start();
			 	if (($_SESSION['user']!="") && $_SESSION['user']['name']!=$uid[0]) {    	  
			 		print "Acces interdit";
		 			return;
		     	}
   			

				$DB=$this->connectDB($this->config,'database_cel');
				   
                // Nullifiage ...
     
				foreach($pairs as $k=>$v) {
					if (trim($v)=="") {
						$pairs[$k]="null";
					}
					
				} 
				               
				// Pour apparaitre le premier dans les tris ...
                if ($pairs['location']=="null") $pairs['location']="000null";

				               
				// Pour apparaitre le premier dans les tris ...
                if ($pairs['lieudit']=="null") $pairs['lieudit']="000null";
                

				// Pour apparaitre le premier dans les tris ...
                if ($pairs['id_location']=="null") $pairs['id_location']="000null";
                
                
                // Pour apparaitre le premier dans les tris ...
                if ($pairs['station']=="null") $pairs['station']="000null";

                

                
                // TODO : decouper avec les / 
                
                if ($pairs['date_observation']!="null") {
                	list($jour,$mois,$annee)=split("/",$pairs['date_observation']);
                	$pairs['date_observation']=$annee."-".$mois."-".$jour." 0:0:0";
                }
                
				$query="UPDATE cel_inventory SET nom_sel = '".$DB->escapeSimple($pairs['nom_sel'])."',".
				"num_nom_sel = '".$DB->escapeSimple($pairs['num_nom_sel'])."',".
				"nom_ret = '".$DB->escapeSimple($pairs['nom_ret'])."',".
				"num_nom_ret = '".$DB->escapeSimple($pairs['num_nom_ret'])."',".
				"num_taxon = '".$DB->escapeSimple($pairs['num_taxon'])."',".
				"famille = '".$DB->escapeSimple($pairs['famille'])."',".
				"location = '".$DB->escapeSimple($pairs['location'])."',".
				"id_location = '".$DB->escapeSimple($pairs['id_location'])."',".
				"date_observation = '".$DB->escapeSimple($pairs['date_observation'])."',".
				"lieudit = '".$DB->escapeSimple($pairs['lieudit'])."',".
				"station = '".$DB->escapeSimple($pairs['station'])."',".
				"commentaire = '".$DB->escapeSimple($pairs['commentaire'])."',".
				"date_modification = now() WHERE  ordre = '".$DB->escapeSimple($uid[1])."' AND identifiant='".$DB->escapeSimple($uid[0])."'"; 
				
                
		    	$res =& $DB->query($query);
                if (PEAR::isError($res)) {
                	die($res->getMessage());
                }
                
                return	true;
                
	}
	           	

	function createElement($pairs){


			 // Controle detournement utilisateur 
			    session_start();
			 	if (($_SESSION['user']!="") && $_SESSION['user']['name']!=$pairs['identifiant']) {    	  
			 		print "Acces interdit";
		 			return;
		     	}

				
				// Dernier numero d'ordre utilise : 
					
                $DB=$this->connectDB($this->config,'database_cel');
	           	$query="SELECT max(ordre) AS ordre FROM cel_inventory WHERE identifiant='".$DB->escapeSimple($pairs['identifiant'])."' ";
                
			    $res =& $DB->query($query);
                if (DB::isError($res)) {
	    	        die($res->getMessage());
    	    	}
    	    	$row['ordre']=0;
	    	    while ($row =& $res->fetchrow(DB_FETCHMODE_ASSOC)) {
            	    $pairs['ordre']=$row['ordre']+1;
    	    	}
               
                // Nullifiage ...
     
				foreach($pairs as $k=>$v) {
					if (trim($v)=="") {
						$pairs[$k]="null";
					}
					
				} 
				               
				// Pour apparaitre le premier dans les tris ...
                if ($pairs['location']=="null") $pairs['location']="000null";

				               
				// Pour apparaitre le premier dans les tris ...
                if ($pairs['lieudit']=="null") $pairs['lieudit']="000null";

			               
				// Pour apparaitre le premier dans les tris ...
                if ($pairs['id_location']=="null") $pairs['id_location']="000null";


				// Pour apparaitre le premier dans les tris ...
                if ($pairs['station']=="null") $pairs['station']="000null";

                
                // TODO : decouper avec les / 
                
                if ($pairs['date_observation']!="null") {
                	list($jour,$mois,$annee)=split("/",$pairs['date_observation']);
                	$pairs['date_observation']=$annee."-".$mois."-".$jour." 0:0:0";
                }
                
                $query  = "INSERT INTO cel_inventory (identifiant,ordre,nom_sel,num_nom_sel,nom_ret,num_nom_ret,num_taxon,famille,location,id_location,date_observation,lieudit,station,commentaire,date_creation,date_modification) " .
                " VALUES('".$DB->escapeSimple($pairs['identifiant'])."','".
                $DB->escapeSimple($pairs['ordre'])."','".
                $DB->escapeSimple($pairs['nom_sel'])."','".
                $DB->escapeSimple($pairs['num_nom_sel'])."','".
                $DB->escapeSimple($pairs['nom_ret'])."','".
                $DB->escapeSimple($pairs['num_nom_ret'])."','".
                $DB->escapeSimple($pairs['num_taxon'])."','".
                $DB->escapeSimple($pairs['famille'])."','".
                $DB->escapeSimple($pairs['location'])."','".
                $DB->escapeSimple($pairs['id_location'])."','".
                $DB->escapeSimple($pairs['date_observation'])."','".
                $DB->escapeSimple($pairs['lieudit'])."','".
                $DB->escapeSimple($pairs['station'])."','".
                $DB->escapeSimple($pairs['commentaire'])."',".
                "now() , now() )";
		    	$res =& $DB->query($query);
                if (PEAR::isError($res)) {
                	die($res->getMessage());
                }
                
                return	true;
                
	}
	
	
	function deleteElement($uid){
	
	 // Controle detournement utilisateur 
	    session_start();
		if (($_SESSION['user']!="") && $_SESSION['user']['name']!=$uid[0]) {    	  
			print "Acces interdit";
			return;
	   	}

				
			

		$value=array();
		$DB=$this->connectDB($this->config,'database_cel');
			
		if (isset($uid[1])) {
	           	$query="DELETE FROM cel_inventory WHERE identifiant='".$DB->escapeSimple($uid[0])."' AND ordre in (".$DB->escapeSimple($uid[1]) .")";
		} 

    	$res =& $DB->query($query);
                
        if (PEAR::isError($res)) {
        	die($res->getMessage());
        }
        
        return true;
                
	
	}
}

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