Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 1527 Rev 1571
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
class InventoryExport extends Cel  {
24
class InventoryExport extends Cel  {
25
 
25
 
26
	private $extendSpreadsheetProductor;
26
	private $extendSpreadsheetProductor;
27
 
27
 
28
	function InventoryExport($config) {
28
	function InventoryExport($config) {
29
 
29
 
30
		parent::__construct($config);
30
		parent::__construct($config);
31
 
31
 
32
		$this->extendSpreadsheetProductor = new SpreadsheetProductor();
32
		$this->extendSpreadsheetProductor = new SpreadsheetProductor();
33
		$this->extendSpreadsheetProductor->initSpreadsheet();
33
		$this->extendSpreadsheetProductor->initSpreadsheet();
34
	}
34
	}
35
 
35
 
36
	function getElement($uid){
36
	function getElement($uid){
37
 
37
 
38
		   // Controle detournement utilisateur
38
		   // Controle detournement utilisateur
39
		 	$this->controleUtilisateur($uid[0]);
39
		 	$this->controleUtilisateur($uid[0]);
40
 
40
 
41
			$criteres = $_GET;	
41
			$criteres = $_GET;	
42
			$chercheur_observations = new RechercheObservation($this->config);
42
			$chercheur_observations = new RechercheObservation($this->config);
43
 
43
 
44
    	    // Creating a workbook
44
    	    // Creating a workbook
45
			$workbook = new Spreadsheet_Excel_Writer();
45
			$workbook = new Spreadsheet_Excel_Writer();
46
 
46
 
47
			$workbook->send('liste.xls');
47
			$workbook->send('liste.xls');
48
 
48
 
49
			// Creating a worksheet
49
			// Creating a worksheet
50
			$worksheet = $workbook->addWorksheet('Liste');
50
			$worksheet = $workbook->addWorksheet('Liste');
51
			
51
			
52
            $worksheet->write(0,0,'Espece');
52
            $worksheet->write(0,0,'Espece');
53
            $worksheet->write(0,1,'Numero nomenclatural');
53
            $worksheet->write(0,1,'Numero nomenclatural');
54
            $worksheet->write(0,2,'Nom retenu');
54
            $worksheet->write(0,2,'Nom retenu');
55
            $worksheet->write(0,3,'Numero nomenclatural nom retenu');
55
            $worksheet->write(0,3,'Numero nomenclatural nom retenu');
56
            $worksheet->write(0,4,'Numero taxonomique');
56
            $worksheet->write(0,4,'Numero taxonomique');
57
            $worksheet->write(0,5,'Famille');
57
            $worksheet->write(0,5,'Famille');
58
            $worksheet->write(0,6,'Referentiel taxonomique');
58
            $worksheet->write(0,6,'Referentiel taxonomique');
59
            $worksheet->write(0,7,'Commune');
59
            $worksheet->write(0,7,'Commune');
60
            $worksheet->write(0,8,'Identifiant Commune');
60
            $worksheet->write(0,8,'Identifiant Commune');
61
            $worksheet->write(0,9,'Date');
61
            $worksheet->write(0,9,'Date');
62
            $worksheet->write(0,10,'Lieu-dit');
62
            $worksheet->write(0,10,'Lieu-dit');
63
            $worksheet->write(0,11,'Station');
63
            $worksheet->write(0,11,'Station');
64
            $worksheet->write(0,12,'Milieu');
64
            $worksheet->write(0,12,'Milieu');
65
            $worksheet->write(0,13,'Notes');
65
            $worksheet->write(0,13,'Notes');
66
            $worksheet->write(0,14,'Latitude');
66
            $worksheet->write(0,14,'Latitude');
67
            $worksheet->write(0,15,'Longitude');
67
            $worksheet->write(0,15,'Longitude');
68
            $worksheet->write(0,16,'Referentiel Geographique');
68
            $worksheet->write(0,16,'Referentiel Geographique');
69
            $worksheet->write(0,17,'Ordre');
69
            $worksheet->write(0,17,'Ordre');
70
            $worksheet->write(0,18,'Identifiant');
70
            $worksheet->write(0,18,'Identifiant');
71
            
71
            
72
            $numero_page = isset($criteres['numero_page']) ? $criteres['numero_page'] : 0;
72
            $numero_page = isset($criteres['numero_page']) ? $criteres['numero_page'] : 0;
73
            $limite = isset($criteres['limite']) ? $criteres['limite'] : 0;
73
            $limite = isset($criteres['limite']) ? $criteres['limite'] : 0;
74
 
74
 
75
			$observations = $chercheur_observations->rechercherObservations($uid[0], $criteres, $numero_page, $limite);
75
			$observations = $chercheur_observations->rechercherObservations($uid[0], $criteres, $numero_page, $limite);
-
 
76
			$ids_obs = array();
-
 
77
			$indices_lignes_obs = array();
76
 
78
			
77
			$i=1;
79
			$i=1;
78
			foreach ($observations as $obs) {
80
			foreach ($observations as &$obs) {
79
 
81
 
-
 
82
				$obs = $this->denullifierTableauValeurCel(&$obs);
-
 
83
				$ids_obs[] = $obs['id_observation'];
80
				$obs = $this->denullifierTableauValeurCel(&$obs);
84
				$indices_lignes_obs[$obs['id_observation']] = $i;
81
 
85
				
82
			  	if ($obs['date_observation'] != "0000-00-00 00:00:00") {
86
			  	if ($obs['date_observation'] != "0000-00-00 00:00:00") {
83
	                $obs['date_observation'] = $this->formaterDate($obs['date_observation']);
87
	                $obs['date_observation'] = $this->formaterDate($obs['date_observation']);
84
	        	}
88
	        	}
85
	        	else {
89
	        	else {
86
	                $obs['date_observation']="00/00/0000";
90
	                $obs['date_observation']="00/00/0000";
87
	        	}
91
	        	}
88
 
92
 
89
                $worksheet->write($i,0,$obs['nom_sel']);
93
                $worksheet->write($i,0,$obs['nom_sel']);
90
                $worksheet->write($i,1,$obs['nom_sel_nn']);
94
                $worksheet->write($i,1,$obs['nom_sel_nn']);
91
                $worksheet->write($i,2,$obs['nom_ret']);
95
                $worksheet->write($i,2,$obs['nom_ret']);
92
                $worksheet->write($i,3,$obs['nom_ret_nn']);
96
                $worksheet->write($i,3,$obs['nom_ret_nn']);
93
                $worksheet->write($i,4,$obs['nt']);
97
                $worksheet->write($i,4,$obs['nt']);
94
                $worksheet->write($i,5,$obs['famille']);
98
                $worksheet->write($i,5,$obs['famille']);
95
                $worksheet->write($i,6,$obs['nom_referentiel']);
99
                $worksheet->write($i,6,$obs['nom_referentiel']);
96
                $worksheet->write($i,7,$obs['zone_geo']);
100
                $worksheet->write($i,7,$obs['zone_geo']);
97
                $worksheet->write($i,8,$this->convertirCodeZoneGeoVersDepartement($obs['ce_zone_geo']));
101
                $worksheet->write($i,8,$this->convertirCodeZoneGeoVersDepartement($obs['ce_zone_geo']));
98
                $worksheet->write($i,9,$obs['date_observation']);
102
                $worksheet->write($i,9,$obs['date_observation']);
99
                $worksheet->write($i,10,$obs['lieudit']);
103
                $worksheet->write($i,10,$obs['lieudit']);
100
                $worksheet->write($i,11,$obs['station']);
104
                $worksheet->write($i,11,$obs['station']);
101
                $worksheet->write($i,12,$obs['milieu']);
105
                $worksheet->write($i,12,$obs['milieu']);
102
                $worksheet->write($i,13,$obs['commentaire']);
106
                $worksheet->write($i,13,$obs['commentaire']);
103
                $worksheet->write($i,14,$obs['latitude']);
107
                $worksheet->write($i,14,$obs['latitude']);
104
                $worksheet->write($i,15,$obs['longitude']);
108
                $worksheet->write($i,15,$obs['longitude']);
105
                $worksheet->write($i,16,$obs['geodatum']);
109
                $worksheet->write($i,16,$obs['geodatum']);
106
                $worksheet->write($i,17,$obs['ordre']);
110
                $worksheet->write($i,17,$obs['ordre']);
107
                $worksheet->write($i,18,$obs['id_observation']);
111
                $worksheet->write($i,18,$obs['id_observation']);
108
                $i++;
112
                $i++;
109
    	    }
113
    	    }
110
 
114
    	    
-
 
115
    	    $indice_dernier_champ_supp = 19;
-
 
116
    	    $indices_champs_supp = array();
-
 
117
    	    $gestion_champs_etendus = new GestionChampsEtendus($this->config, 'obs');
-
 
118
    	    $champs_supp_par_obs = $gestion_champs_etendus->consulterParLots($ids_obs);
-
 
119
    	    
-
 
120
    	    foreach($champs_supp_par_obs as $id_obs => &$champs_supp) {
-
 
121
	    	    foreach($champs_supp as  &$champ_etendu) {
-
 
122
	    	    	$cle = $champ_etendu->cle;
-
 
123
	    	    	$label = $champ_etendu->label;
-
 
124
	    	    	$valeur = $champ_etendu->valeur;
-
 
125
	    	    	if(!isset($indices_champs_supp[$cle])) {
-
 
126
	    	    		$indices_champs_supp[$cle] = $indice_dernier_champ_supp;
-
 
127
	    	    		$worksheet->write(0, $indice_dernier_champ_supp, utf8_decode($label));
-
 
128
	    	    		$indice_dernier_champ_supp++;
-
 
129
	    	    	}
-
 
130
	    	    	$num_ligne_obs = $indices_lignes_obs[$id_obs];
-
 
131
	    	    	$worksheet->write($num_ligne_obs,$indices_champs_supp[$cle],utf8_decode($valeur));
-
 
132
	    	    }
-
 
133
    	    }
-
 
134
    	    
111
			$workbook->close();
135
			$workbook->close();
112
 
-
 
113
			exit();
136
			exit();
114
	}
137
	}
115
}
138
}
116
/* +--Fin du code ---------------------------------------------------------------------------------------+
139
/* +--Fin du code ---------------------------------------------------------------------------------------+
117
* $Log$
140
* $Log$
118
* Revision 1.7  2008-11-13 11:29:12  ddelon
141
* Revision 1.7  2008-11-13 11:29:12  ddelon
119
* Reecriture gwt-ext
142
* Reecriture gwt-ext
120
*
143
*
121
* Revision 1.6  2008-01-30 08:57:28  ddelon
144
* Revision 1.6  2008-01-30 08:57:28  ddelon
122
* fin mise en place mygwt
145
* fin mise en place mygwt
123
*
146
*
124
* Revision 1.5  2007-06-06 13:31:16  ddelon
147
* Revision 1.5  2007-06-06 13:31:16  ddelon
125
* v0.09
148
* v0.09
126
*
149
*
127
* Revision 1.4  2007-05-22 12:54:09  ddelon
150
* Revision 1.4  2007-05-22 12:54:09  ddelon
128
* Securisation acces utilisateur
151
* Securisation acces utilisateur
129
*/
152
*/
130
?>
153
?>