Subversion Repositories eFlore/Applications.cel

Rev

Rev 1660 | Rev 1671 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1660 Rev 1662
Line 43... Line 43...
43
		'annee' => 'annee',
43
		'annee' => 'annee',
44
		'mois' => 'mois',
44
		'mois' => 'mois',
45
		'jour' => 'jour',
45
		'jour' => 'jour',
46
		'recherche' => 'recherche',
46
		'recherche' => 'recherche',
47
		'id_mots_cles' => 'id_mots_cles',
47
		'id_mots_cles' => 'id_mots_cles',
-
 
48
		'mots_cles' => 'mots_cles',
48
		'debut' => 'debut',
49
		'debut' => 'debut',
49
		'limite' => 'limite',
50
		'limite' => 'limite',
50
		'format' => 'format',
51
		'format' => 'format',
51
		'colonnes' => 'colonnes',
52
		'colonnes' => 'colonnes',
52
		'transmission' => 'transmission'
53
		'transmission' => 'transmission'
Line 160... Line 161...
160
		$observations = $chercheur_observations->rechercherObservations(null, $criteres, $debut, $limite)->get();
161
		$observations = $chercheur_observations->rechercherObservations(null, $criteres, $debut, $limite)->get();
161
		$ids = array();
162
		$ids = array();
162
		foreach($observations as &$obs) {
163
		foreach($observations as &$obs) {
163
			$ids[] = $obs['id_observation'];
164
			$ids[] = $obs['id_observation'];
164
		}
165
		}
-
 
166
 
-
 
167
		if($this->format != 'pdf') {
165
		$gestion_champs_etendus = new GestionChampsEtendus($this->config, 'obs');
168
			$gestion_champs_etendus = new GestionChampsEtendus($this->config, 'obs');
166
    	$champs_supp_par_obs = $gestion_champs_etendus->consulterParLots($ids);
169
    		$champs_supp_par_obs = $gestion_champs_etendus->consulterParLots($ids);
167
    	$colonnes_champs_supp_par_obs = $gestion_champs_etendus->consulterClesParLots($ids);
170
    		$colonnes_champs_supp_par_obs = $gestion_champs_etendus->consulterClesParLots($ids);
-
 
171
		}
Line 168... Line 172...
168
 
172
 
169
    	// TODO: tous les champs étendus et les paramètres supplémentaires devraient être passés en un seul
173
    	// TODO: tous les champs étendus et les paramètres supplémentaires devraient être passés en un seul
170
    	// tableau (et chaque formateur csv, xls etc... pourrait également être dans une classe à part)
174
    	// tableau (et chaque formateur csv, xls etc... pourrait également être dans une classe à part)
171
		switch($this->format) {
175
		switch($this->format) {
Line 176... Line 180...
176
		case 'xls':
180
		case 'xls':
177
			$xls = $this->convertirEnXls($observations, $colonnes, $colonnes_champs_supp_par_obs, $champs_supp_par_obs);
181
			$xls = $this->convertirEnXls($observations, $colonnes, $colonnes_champs_supp_par_obs, $champs_supp_par_obs);
178
			$this->envoyerXls($xls);
182
			$this->envoyerXls($xls);
179
			break;
183
			break;
180
		case 'pdf':
184
		case 'pdf':
181
			if(count($observations) > 300) die('trop de données');
-
 
182
			require_once('GenerateurPDF.php');
-
 
183
			$pdf = new GenerateurPDF();
-
 
184
			$pdf->export($observations);
185
			$pdf = $this->convertirEnPdf($observations);
185
			$pdf->pdf->Output('etiquettes.pdf', 'I');
186
			$this->envoyerPdf($pdf);
186
			die;
-
 
187
			break;
187
			break;
188
		default:
188
		default:
189
		}
189
		}
190
	}
190
	}
Line 210... Line 210...
210
	private function envoyerXls($workbook) {
210
	private function envoyerXls($workbook) {
211
		$workbook->close();
211
		$workbook->close();
212
		exit;
212
		exit;
213
	}
213
	}
Line 214... Line 214...
214
	
214
	
215
	private function convertirEnCsv($data, $colonnes, $colonnes_supplementaires, $champs_supplementaires = array())
215
	private function convertirEnCsv(&$data, &$colonnes, &$colonnes_supplementaires, &$champs_supplementaires = array())
216
	{
216
	{
217
		$chemin_temp = "php://temp";
217
		$chemin_temp = "php://temp";
218
		$outstream = fopen($chemin_temp, 'r+');
218
		$outstream = fopen($chemin_temp, 'r+');
219
		$intitule_champs = array();
219
		$intitule_champs = array();
Line 241... Line 241...
241
		$csv = stream_get_contents($outstream);
241
		$csv = stream_get_contents($outstream);
242
		fclose($outstream);
242
		fclose($outstream);
243
		return $csv;
243
		return $csv;
244
	}
244
	}
Line 245... Line 245...
245
	
245
	
246
	private function convertirEnXls($data, $colonnes,  $colonnes_supplementaires, $champs_supplementaires = array()) {		
246
	private function convertirEnXls(&$data, &$colonnes,  &$colonnes_supplementaires, &$champs_supplementaires = array()) {		
247
		$this->extendSpreadsheetProductor = new SpreadsheetProductor();
247
		$this->extendSpreadsheetProductor = new SpreadsheetProductor();
Line 248... Line 248...
248
		$this->extendSpreadsheetProductor->initSpreadsheet();
248
		$this->extendSpreadsheetProductor->initSpreadsheet();
Line 288... Line 288...
288
			$nb_lignes++;
288
			$nb_lignes++;
289
		}
289
		}
290
		return $workbook;
290
		return $workbook;
291
	}
291
	}
Line -... Line 292...
-
 
292
	
-
 
293
	private function convertirEnPdf(&$observations) {
-
 
294
		if(count($observations) > 300) die('trop de données');
-
 
295
		//require_once('GenerateurPDF.php');
-
 
296
		$pdf = new GenerateurPDF();
-
 
297
		$pdf->export($observations);
-
 
298
		return $pdf;
-
 
299
	}
-
 
300
	
-
 
301
	private function envoyerPdf(&$pdf) {
-
 
302
		$pdf->pdf->Output('etiquettes.pdf', 'I');
-
 
303
		exit;;
-
 
304
	}
292
	
305
	
293
	private function traiterLigneEtendue(&$colonnes_etendues, &$ligne_champs_etendus) {
306
	private function traiterLigneEtendue(&$colonnes_etendues, &$ligne_champs_etendus) {
294
		$ligne_etendue_aplatie = $this->aplatirChampsEtendus($ligne_champs_etendus);
307
		$ligne_etendue_aplatie = $this->aplatirChampsEtendus($ligne_champs_etendus);
295
		$ligne_etendue_fmt = array();
308
		$ligne_etendue_fmt = array();
296
		foreach($colonnes_etendues as $colonne) {
309
		foreach($colonnes_etendues as $colonne) {