<?php

// In : utf8 
// Out : iso8859

// Export vers feuille de calcul d'une selection de releves

Class InventoryExport extends DBAccessor  {


	var $config;
	var $extendSpreadsheetProductor;
	
	function InventoryExport($config) {

		$this->config=$config;
		// Pas d'heritage multiple en php :(
		
		
		$this->extendSpreadsheetProductor = new SpreadsheetProductor();
		$this->extendSpreadsheetProductor->initSpreadsheet();
	}
	

	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' (id_location)
			// uid[2] : si absent : valeur 'all' (location)
			// uid[3] : si absent : valeur 'all' (lieudit)
			// uid[4] : si absent : valeur 'all' (annee)
			// uid[5] : si absent : valeur 'all' (mois)
			// uid[6] : si absent : valeur 'all' (jour)
			
			$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_lieudit="";
			}
			else {
				$query_lieudit=" AND lieudit='".$DB->escapeSimple($uid[3])."' ";
			}
			
			
			if (!isset($uid[4]) || $uid[4]=="" || $uid[4]=="all") {
				$uid[4]="all";
				$query_year="";
			}
			else {
				$query_year=" AND year(date_observation)='".$DB->escapeSimple($uid[4])."' ";
			}
			

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

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

			$value=array();
			
			
		   	$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_lieudit.	
	        		$query_year.	
	        		$query_month.	
	        		$query_day.	
	          		" ORDER BY ordre ";
			     
       	    $res =& $DB->query($query);
   
    
			if (DB::isError($res)) {
			     die($res->getMessage());
			}
					
	            
		
    	    // Creating a workbook
			$workbook = new Spreadsheet_Excel_Writer();
				
		
			// Creating a worksheet
			$worksheet = $workbook->addWorksheet('Liste');
	

            $worksheet->write(0,0,'Nom saisi');
            $worksheet->write(0,1,'Numero nomenclatural');
            $worksheet->write(0,2,'Nom retenu');
            $worksheet->write(0,3,'Numero nomenclatural nom retenu');
            $worksheet->write(0,4,'Numero taxonomique');
            $worksheet->write(0,5,'Famille');
            $worksheet->write(0,6,'Commune');
            $worksheet->write(0,7,'Identifiant Commune');
            $worksheet->write(0,8,'Date Observation');
            $worksheet->write(0,9,'Lieu dit');
            $worksheet->write(0,10,'Station');
            $worksheet->write(0,11,'Commentaire');
	
		
			$i=1;	
			 while ($row =& $res->fetchrow(DB_FETCHMODE_ASSOC)) {
			 	  
			 	// Denullifiage   
				foreach($row as $k=>$v) {
					if (($v=="null") || ($v=="000null")) {
						$row[$k]="";
					}
					else {
						$row[$k]=utf8_decode($v);
					}
				} 
				      
			 	
			  	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;
	        	}
	        	else {
	                $row['date_observation']="00/00/0000";
	        	}
          
          
                $worksheet->write($i,0,$row['nom_sel']);
                $worksheet->write($i,1,$row['num_nom_sel']);
                $worksheet->write($i,2,$row['nom_ret']);
                $worksheet->write($i,3,$row['num_nom_ret']);
                $worksheet->write($i,4,$row['num_taxon']);
                $worksheet->write($i,5,$row['famille']);
                $worksheet->write($i,6,$row['location']);
                $worksheet->write($i,7,$row['id_location']);
                $worksheet->write($i,8,$row['date_observation']);
                $worksheet->write($i,9,$row['lieudit']);
                $worksheet->write($i,10,$row['station']);
                $worksheet->write($i,11,$row['commentaire']);
                $i++;
    	    }
    	
				// sending HTTP headers
			$workbook->send('liste.xls');
			$workbook->close();
			
			exit();			


	}
	


}


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

 
?>
