Subversion Repositories eFlore/Applications.cel

Rev

Rev 1631 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1631 Rev 1755
1
<?php
1
<?php
2
// ATTENTION ! Classe compatible uniquement avec nouveau format de bdd du cel //
2
// ATTENTION ! Classe compatible uniquement avec nouveau format de bdd du cel //
3
 
3
 
4
/**
4
/**
5
* PHP Version 5
5
* PHP Version 5
6
*
6
*
7
* @category  PHP
7
* @category  PHP
8
* @package   jrest
8
* @package   jrest
9
* @author    David Delon <david@tela-botania.org>
9
* @author    David Delon <david@tela-botania.org>
10
* @author    Aurélien Peronnet <aurelien@tela-botania.org>
10
* @author    Aurélien Peronnet <aurelien@tela-botania.org>
11
* @copyright 2010 Tela-Botanica
11
* @copyright 2010 Tela-Botanica
12
* @license   http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
12
* @license   http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
13
* @version   SVN: <svn_id>
13
* @version   SVN: <svn_id>
14
* @link      /doc/jrest/
14
* @link      /doc/jrest/
15
*/
15
*/
16
 
16
 
17
/**
17
/**
18
* in:utf8
18
* in:utf8
19
* out:iso8859
19
* out:iso8859
20
* 
20
* 
21
* Export vers feuille de calcul d'une selection de releves
21
* Export vers feuille de calcul d'une selection de releves
22
* 
22
* 
23
*/
23
*/
24
 
24
 
25
set_include_path(get_include_path() . PATH_SEPARATOR . dirname(dirname(realpath(__FILE__))) . '/lib');
25
set_include_path(get_include_path() . PATH_SEPARATOR . dirname(dirname(realpath(__FILE__))) . '/lib');
26
// la sortie est binaire (xls), mais OLE n'est pas compatible E_ALL en PHP-5.4
26
// la sortie est binaire (xls), mais OLE n'est pas compatible E_ALL en PHP-5.4
27
error_reporting(error_reporting() ^ E_STRICT);
27
error_reporting(error_reporting() ^ E_STRICT);
28
require_once("lib/OLE.php");
28
require_once("lib/OLE.php");
29
require_once("lib/Spreadsheet/Excel/Writer.php");
29
require_once("lib/Spreadsheet/Excel/Writer.php");
30
 
30
 
31
class InventoryExport extends Cel  {
31
class InventoryExport extends Cel  {
32
 
32
 
33
	private $extendSpreadsheetProductor;
33
	private $extendSpreadsheetProductor;
34
 
34
 
35
	function InventoryExport($config) {
35
	function InventoryExport($config) {
36
 
36
 
37
		parent::__construct($config);
37
		parent::__construct($config);
38
 
38
 
39
		$this->extendSpreadsheetProductor = new SpreadsheetProductor();
39
		$this->extendSpreadsheetProductor = new SpreadsheetProductor();
40
		$this->extendSpreadsheetProductor->initSpreadsheet();
40
		$this->extendSpreadsheetProductor->initSpreadsheet();
41
	}
41
	}
42
 
42
 
43
	function getElement($uid){
43
	function getElement($uid){
44
 
44
 
45
		   // Controle detournement utilisateur
45
		   // Controle detournement utilisateur
46
		 	$this->controleUtilisateur($uid[0]);
46
		 	$this->controleUtilisateur($uid[0]);
47
 
47
 
48
			$criteres = $_GET;	
48
			$criteres = $_GET;	
49
			$chercheur_observations = new RechercheObservation($this->config);
49
			$chercheur_observations = new RechercheObservation($this->config);
50
 
50
 
51
    	    // Creating a workbook
51
    	    // Creating a workbook
52
			$workbook = new Spreadsheet_Excel_Writer();
52
			$workbook = new Spreadsheet_Excel_Writer();
53
			$workbook->setVersion(8);
53
			$workbook->setVersion(8);
54
 
54
 
55
			$workbook->send('liste.xls');
55
			$workbook->send('liste.xls');
56
 
56
 
57
			// Creating a worksheet
57
			// Creating a worksheet
58
			$worksheet = $workbook->addWorksheet('Liste');
58
			$worksheet = $workbook->addWorksheet('Liste');
59
			$worksheet->setInputEncoding('utf-8');
59
			$worksheet->setInputEncoding('utf-8');
60
			
60
			
61
            $worksheet->write(0,0,'Espece');
61
            $worksheet->write(0,0,'Espece');
62
            $worksheet->write(0,1,'Numero nomenclatural');
62
            $worksheet->write(0,1,'Numero nomenclatural');
63
            $worksheet->write(0,2,'Nom retenu');
63
            $worksheet->write(0,2,'Nom retenu');
64
            $worksheet->write(0,3,'Numero nomenclatural nom retenu');
64
            $worksheet->write(0,3,'Numero nomenclatural nom retenu');
65
            $worksheet->write(0,4,'Numero taxonomique');
65
            $worksheet->write(0,4,'Numero taxonomique');
66
            $worksheet->write(0,5,'Famille');
66
            $worksheet->write(0,5,'Famille');
67
            $worksheet->write(0,6,'Referentiel taxonomique');
67
            $worksheet->write(0,6,'Referentiel taxonomique');
68
            $worksheet->write(0,7,'Commune');
68
            $worksheet->write(0,7,'Commune');
69
            $worksheet->write(0,8,'Identifiant Commune');
69
            $worksheet->write(0,8,'Identifiant Commune');
70
            $worksheet->write(0,9,'Date');
70
            $worksheet->write(0,9,'Date');
71
            $worksheet->write(0,10,'Lieu-dit');
71
            $worksheet->write(0,10,'Lieu-dit');
72
            $worksheet->write(0,11,'Station');
72
            $worksheet->write(0,11,'Station');
73
            $worksheet->write(0,12,'Milieu');
73
            $worksheet->write(0,12,'Milieu');
74
            $worksheet->write(0,13,'Notes');
74
            $worksheet->write(0,13,'Notes');
75
            $worksheet->write(0,14,'Latitude');
75
            $worksheet->write(0,14,'Latitude');
76
            $worksheet->write(0,15,'Longitude');
76
            $worksheet->write(0,15,'Longitude');
77
            $worksheet->write(0,16,'Referentiel Geographique');
77
            $worksheet->write(0,16,'Referentiel Geographique');
78
            $worksheet->write(0,17,'Ordre');
78
            $worksheet->write(0,17,'Ordre');
79
            $worksheet->write(0,18,'Identifiant');
79
            $worksheet->write(0,18,'Identifiant');
80
            
80
            
81
            $numero_page = isset($criteres['numero_page']) ? $criteres['numero_page'] : 0;
81
            $numero_page = isset($criteres['numero_page']) ? $criteres['numero_page'] : 0;
82
            $limite = isset($criteres['limite']) ? $criteres['limite'] : 0;
82
            $limite = isset($criteres['limite']) ? $criteres['limite'] : 0;
83
 
83
 
84
			$observations = $chercheur_observations->rechercherObservations($uid[0], $criteres, $numero_page, $limite)->get();
84
			$observations = $chercheur_observations->rechercherObservations($uid[0], $criteres, $numero_page, $limite)->get();
-
 
85
			if(!$observations) {
-
 
86
				header('HTTP/1.0 204 No Content');
-
 
87
				exit;
-
 
88
			}
-
 
89
 
85
			$ids_obs = array();
90
			$ids_obs = array();
86
			$indices_lignes_obs = array();
91
			$indices_lignes_obs = array();
87
			
92
			
88
			$i=1;
93
			$i=1;
89
			foreach ($observations as &$obs) {
94
			foreach ($observations as &$obs) {
90
 
95
 
91
				$obs = $this->denullifierTableauValeurCel($obs);
96
				$obs = $this->denullifierTableauValeurCel($obs);
92
				$ids_obs[] = $obs['id_observation'];
97
				$ids_obs[] = $obs['id_observation'];
93
				$indices_lignes_obs[$obs['id_observation']] = $i;
98
				$indices_lignes_obs[$obs['id_observation']] = $i;
94
				
99
				
95
			  	if ($obs['date_observation'] != "0000-00-00 00:00:00") {
100
			  	if ($obs['date_observation'] != "0000-00-00 00:00:00") {
96
	                $obs['date_observation'] = $this->formaterDate($obs['date_observation']);
101
	                $obs['date_observation'] = $this->formaterDate($obs['date_observation']);
97
	        	}
102
	        	}
98
	        	else {
103
	        	else {
99
	                $obs['date_observation']="00/00/0000";
104
	                $obs['date_observation']="00/00/0000";
100
	        	}
105
	        	}
101
 
106
 
102
                $worksheet->write($i,0,$obs['nom_sel']);
107
                $worksheet->write($i,0,$obs['nom_sel']);
103
                $worksheet->write($i,1,$obs['nom_sel_nn']);
108
                $worksheet->write($i,1,$obs['nom_sel_nn']);
104
                $worksheet->write($i,2,$obs['nom_ret']);
109
                $worksheet->write($i,2,$obs['nom_ret']);
105
                $worksheet->write($i,3,$obs['nom_ret_nn']);
110
                $worksheet->write($i,3,$obs['nom_ret_nn']);
106
                $worksheet->write($i,4,$obs['nt']);
111
                $worksheet->write($i,4,$obs['nt']);
107
                $worksheet->write($i,5,$obs['famille']);
112
                $worksheet->write($i,5,$obs['famille']);
108
                $worksheet->write($i,6,$obs['nom_referentiel']);
113
                $worksheet->write($i,6,$obs['nom_referentiel']);
109
                $worksheet->write($i,7,$obs['zone_geo']);
114
                $worksheet->write($i,7,$obs['zone_geo']);
110
                $worksheet->write($i,8,$this->convertirCodeZoneGeoVersDepartement($obs['ce_zone_geo']));
115
                $worksheet->write($i,8,$this->convertirCodeZoneGeoVersDepartement($obs['ce_zone_geo']));
111
                $worksheet->write($i,9,$obs['date_observation']);
116
                $worksheet->write($i,9,$obs['date_observation']);
112
                $worksheet->write($i,10,$obs['lieudit']);
117
                $worksheet->write($i,10,$obs['lieudit']);
113
                $worksheet->write($i,11,$obs['station']);
118
                $worksheet->write($i,11,$obs['station']);
114
                $worksheet->write($i,12,$obs['milieu']);
119
                $worksheet->write($i,12,$obs['milieu']);
115
                $worksheet->write($i,13,$obs['commentaire']);
120
                $worksheet->write($i,13,$obs['commentaire']);
116
                $worksheet->write($i,14,$obs['latitude']);
121
                $worksheet->write($i,14,$obs['latitude']);
117
                $worksheet->write($i,15,$obs['longitude']);
122
                $worksheet->write($i,15,$obs['longitude']);
118
                $worksheet->write($i,16,$obs['geodatum']);
123
                $worksheet->write($i,16,$obs['geodatum']);
119
                $worksheet->write($i,17,$obs['ordre']);
124
                $worksheet->write($i,17,$obs['ordre']);
120
                $worksheet->write($i,18,$obs['id_observation']);
125
                $worksheet->write($i,18,$obs['id_observation']);
121
                $i++;
126
                $i++;
122
    	    }
127
    	    }
123
    	    
128
    	    
124
    	    $indice_dernier_champ_supp = 19;
129
    	    $indice_dernier_champ_supp = 19;
125
    	    $indices_champs_supp = array();
130
    	    $indices_champs_supp = array();
126
    	    $gestion_champs_etendus = new GestionChampsEtendus($this->config, 'obs');
131
    	    $gestion_champs_etendus = new GestionChampsEtendus($this->config, 'obs');
127
    	    $champs_supp_par_obs = $gestion_champs_etendus->consulterParLots($ids_obs);
132
    	    $champs_supp_par_obs = $gestion_champs_etendus->consulterParLots($ids_obs);
128
    	    
133
    	    
129
    	    foreach($champs_supp_par_obs as $id_obs => &$champs_supp) {
134
    	    foreach($champs_supp_par_obs as $id_obs => &$champs_supp) {
130
	    	    foreach($champs_supp as  &$champ_etendu) {
135
	    	    foreach($champs_supp as  &$champ_etendu) {
131
	    	    	$cle = $champ_etendu->cle;
136
	    	    	$cle = $champ_etendu->cle;
132
	    	    	$label = $champ_etendu->label;
137
	    	    	$label = $champ_etendu->label;
133
	    	    	$valeur = $champ_etendu->valeur;
138
	    	    	$valeur = $champ_etendu->valeur;
134
	    	    	if(!isset($indices_champs_supp[$cle])) {
139
	    	    	if(!isset($indices_champs_supp[$cle])) {
135
	    	    		$indices_champs_supp[$cle] = $indice_dernier_champ_supp;
140
	    	    		$indices_champs_supp[$cle] = $indice_dernier_champ_supp;
136
	    	    		$worksheet->write(0, $indice_dernier_champ_supp, utf8_decode($label));
141
	    	    		$worksheet->write(0, $indice_dernier_champ_supp, utf8_decode($label));
137
	    	    		$indice_dernier_champ_supp++;
142
	    	    		$indice_dernier_champ_supp++;
138
	    	    	}
143
	    	    	}
139
	    	    	$num_ligne_obs = $indices_lignes_obs[$id_obs];
144
	    	    	$num_ligne_obs = $indices_lignes_obs[$id_obs];
140
	    	    	$worksheet->write($num_ligne_obs,$indices_champs_supp[$cle],utf8_decode($valeur));
145
	    	    	$worksheet->write($num_ligne_obs,$indices_champs_supp[$cle],utf8_decode($valeur));
141
	    	    }
146
	    	    }
142
    	    }
147
    	    }
143
    	    
148
    	    
144
			$workbook->close();
149
			$workbook->close();
145
			exit();
150
			exit();
146
	}
151
	}
147
}
152
}
148
/* +--Fin du code ---------------------------------------------------------------------------------------+
153
/* +--Fin du code ---------------------------------------------------------------------------------------+
149
* $Log$
154
* $Log$
150
* Revision 1.7  2008-11-13 11:29:12  ddelon
155
* Revision 1.7  2008-11-13 11:29:12  ddelon
151
* Reecriture gwt-ext
156
* Reecriture gwt-ext
152
*
157
*
153
* Revision 1.6  2008-01-30 08:57:28  ddelon
158
* Revision 1.6  2008-01-30 08:57:28  ddelon
154
* fin mise en place mygwt
159
* fin mise en place mygwt
155
*
160
*
156
* Revision 1.5  2007-06-06 13:31:16  ddelon
161
* Revision 1.5  2007-06-06 13:31:16  ddelon
157
* v0.09
162
* v0.09
158
*
163
*
159
* Revision 1.4  2007-05-22 12:54:09  ddelon
164
* Revision 1.4  2007-05-22 12:54:09  ddelon
160
* Securisation acces utilisateur
165
* Securisation acces utilisateur
161
*/
166
*/
162
?>
167
?>