Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 903 → Rev 904

/trunk/jrest/services/InventoryByDept.php
1,135 → 1,129
<?php
// ATTENTION ! Classe compatible uniquement avec nouveau format de bdd du cel //
 
// In utf8
// Out iso3859
/**
* PHP Version 5
*
* @category PHP
* @package jrest
* @author David Delon <delon@tela-botanica.org>
* @copyright 2010 Tela-Botanica
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
* @version SVN: <svn_id>
* @link /doc/
*/
 
// Liste des Nouvelles observations par departement
/**
*
* in=utf8
* out=iso3859
*
* Liste des Nouvelles observations par departement
* A voir avec David mais ne devrait plus ĂȘtre utilisĂ©
* ou fait autrement
*
*/
class InventoryByDept extends Cel {
 
 
Class InventoryByDept extends DBAccessor {
 
 
var $config;
var $extendSpreadsheetProductor;
function InventoryByDept($config) {
 
$this->config=$config;
parent::__construct($config);
// Pas d'heritage multiple en php :(
$this->extendSpreadsheetProductor = new SpreadsheetProductor();
$this->extendSpreadsheetProductor->initSpreadsheet();
$this->extendSpreadsheetProductor->initSpreadsheet();
}
 
//TODO : fonction qui prend en compte un departement
function getRessource(){
$DB=$this->connectDB($this->config,'database_cel');
$query="SELECT id_location, identifiant, ordre, nom_sel, num_nom_sel, nom_ret, num_nom_ret, num_taxon, famille, location, date_observation," .
" lieudit, station, milieu, commentaire, transmission FROM cel_inventory ".
"where id_location!='000null' and transmission=1 and num_taxon!=0 order by round(id_location), nom_ret";
$res =& $DB->query($query);
if (DB::isError($res)) {
die($res->getMessage());
}
$requete_obs = "SELECT ce_zone_geo, ce_utilisateur, courriel_utilisateur, ordre, nom_sel, nom_sel_nn, nom_ret, nom_ret_nn, nt, famille, zone_geo, date_observation," .
" lieudit, station, milieu, commentaire, transmission FROM cel_obs ".
"WHERE ce_zone_geo != '000null' AND ce_zone_geo != '' AND transmission = 1 AND nt!=0 ORDER BY ce_zone_geo, nom_ret LIMIT 50";
 
$resultat_obs = $this->executerRequete($requete_obs);
// Creating a workbook
$workbook = new Spreadsheet_Excel_Writer();
// Creating a workbook
$workbook = new Spreadsheet_Excel_Writer();
// Creating a worksheet
$worksheet = $workbook->addWorksheet('Liste');
 
$worksheet->write(0,0,'Departement');
$worksheet->write(0,1,'Nom saisi');
$worksheet->write(0,2,'Numero nomenclatural');
$worksheet->write(0,3,'Nom retenu');
$worksheet->write(0,4,'Numero nomenclatural nom retenu');
$worksheet->write(0,5,'Numero taxonomique');
$worksheet->write(0,6,'Famille');
$worksheet->write(0,7,'Commune');
$worksheet->write(0,8,'Date Observation');
$worksheet->write(0,9,'Lieu dit');
$worksheet->write(0,10,'Station');
$worksheet->write(0,11,'Milieu');
$worksheet->write(0,12,'Commentaire');
$worksheet->write(0,13,'Observateur');
 
$i=1;
// Creating a worksheet
$worksheet = $workbook->addWorksheet('Liste');
$observations = array();
$chercheur_infos_taxon = null;
if (is_array($resultat_obs)) {
$observations = &$resultat_obs;
$chercheur_infos_taxon = new RechercheInfosTaxon($this->config);
}
foreach ($observations as $obs) {
 
$worksheet->write(0,0,'Departement');
$worksheet->write(0,1,'Nom saisi');
$worksheet->write(0,2,'Numero nomenclatural');
$worksheet->write(0,3,'Nom retenu');
$worksheet->write(0,4,'Numero nomenclatural nom retenu');
$worksheet->write(0,5,'Numero taxonomique');
$worksheet->write(0,6,'Famille');
$worksheet->write(0,7,'Commune');
$worksheet->write(0,8,'Date Observation');
$worksheet->write(0,9,'Lieu dit');
$worksheet->write(0,10,'Station');
$worksheet->write(0,11,'Milieu');
$worksheet->write(0,12,'Commentaire');
$worksheet->write(0,13,'Observateur');
$DB2=$this->connectDB($this->config);
$i=1;
while ($row =& $res->fetchrow(DB_FETCHMODE_ASSOC)) {
$code_departement = $this->convertirCodeZoneGeoVersDepartement($obs['ce_zone_geo']);
$taxon_deja_vu = $chercheur_infos_taxon->taxonEstPresentDansDepartement($obs['nt'], $code_departement);
if (!$taxon_deja_vu) {
// Denullifiage
foreach($obs as $k=>$v) {
if (($v=="null") || ($v=="000null")) {
$obs[$k]="";
}
else {
$obs[$k]=utf8_decode($v);
}
}
 
$query2="SELECT ecd_ce_taxon FROM eflore_zg, eflore_chorologie_donnee WHERE ecd_ce_taxon =".$row['num_taxon']." and ezg_code=".$row['id_location']." and ecd_ce_zone_geo=ezg_id_zone_geo and ezg_id_projet_zg =ecd_ce_version_projet_zg and ecd_ce_version_projet_taxon=25";
if ($obs['date_observation']!="0000-00-00 00:00:00") {
list($year,$month,$day)= split ('-',$obs['date_observation']);
list($day)= split (' ',$day);
$obs['date_observation']=$day."/".$month."/".$year;
}
else {
$obs['date_observation']="00/00/0000";
}
 
$res2 =& $DB2->query($query2);
if (DB::isError($res2)) {
die($res2->getMessage());
}
if ($res2->numRows() == 0) {
// 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['id_location']);
$worksheet->write($i,1,$row['nom_sel']);
$worksheet->write($i,2,$row['num_nom_sel']);
$worksheet->write($i,3,$row['nom_ret']);
$worksheet->write($i,4,$row['num_nom_ret']);
$worksheet->write($i,5,$row['num_taxon']);
$worksheet->write($i,6,$row['famille']);
$worksheet->write($i,7,$row['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['milieu']);
$worksheet->write($i,12,$row['commentaire']);
$worksheet->write($i,13,$row['identifiant']);
$i++;
}
}
// sending HTTP headers
$workbook->send('liste.xls');
$workbook->close();
exit();
}
$worksheet->write($i,0,$code_departement);
$worksheet->write($i,1,$obs['nom_sel']);
$worksheet->write($i,2,$obs['nom_sel_nn']);
$worksheet->write($i,3,$obs['nom_ret']);
$worksheet->write($i,4,$obs['nom_ret_nn']);
$worksheet->write($i,5,$obs['nt']);
$worksheet->write($i,6,$obs['famille']);
$worksheet->write($i,7,$obs['zone_geo']);
$worksheet->write($i,8,$obs['date_observation']);
$worksheet->write($i,9,$obs['lieudit']);
$worksheet->write($i,10,$obs['station']);
$worksheet->write($i,11,$obs['milieu']);
$worksheet->write($i,12,$obs['commentaire']);
$worksheet->write($i,13,$obs['courriel_utilisateur']);
$i++;
}
}
// sending HTTP headers
$workbook->send('liste.xls');
$workbook->close();
exit();
}
}
 
/* +--Fin du code ---------------------------------------------------------------------------------------+
149,5 → 143,4
*
*
*/
 
?>
?>