Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 1700 Rev 1703
Line 170... Line 170...
170
		$ids = array();
170
		$ids = array();
171
		foreach($observations as &$obs) {
171
		foreach($observations as &$obs) {
172
			$ids[] = $obs['id_observation'];
172
			$ids[] = $obs['id_observation'];
173
		}
173
		}
Line 174... Line 174...
174
 
174
 
175
		if($this->format != 'pdf') {
175
		if($this->format == 'pdf') {
176
			$gestion_champs_etendus = new GestionChampsEtendus($this->config, 'obs');
-
 
177
    		$champs_supp_par_obs = $gestion_champs_etendus->consulterParLots($ids);
-
 
178
    		$colonnes_champs_supp_par_obs = $gestion_champs_etendus->consulterClesParLots($ids);
176
			$pdf = $this->convertirEnPdf($observations);
179
			// $cache pourrait être utilisé par les fonctions de colonnes
-
 
180
			// * Pour "nom commun", "preload" retourne NULL, car c'est le cache statique de FormateurGroupeColonne
-
 
181
			// qu'il initialise et utilise en interne sans qu'un passage par paramètre ne soit nécessaire
-
 
182
			$cache = FormateurGroupeColonne::preload(FormateurGroupeColonne::nomEnsembleVersListeColonnes($colonnes),
-
 
183
													 $this,
177
			$pdf->pdf->Output('etiquettes.pdf', 'I');
184
													 $ids);
178
			exit;
Line -... Line 179...
-
 
179
		}
-
 
180
 
-
 
181
		// cas XLS et CSV: on peut avoir besoin des champs étendus, des noms communs et des champs baseflor:
-
 
182
 
-
 
183
		// 1) champs étendus
-
 
184
		$gestion_champs_etendus = new GestionChampsEtendus($this->config, 'obs');
-
 
185
		$champs_supp_par_obs = $gestion_champs_etendus->consulterParLots($ids);
-
 
186
		$colonnes_champs_supp_par_obs = $gestion_champs_etendus->consulterClesParLots($ids);
-
 
187
 
-
 
188
		// 2) nom communs
-
 
189
		// $cache pourrait être utilisé par les fonctions de colonnes
-
 
190
		// * Pour "nom commun", "preload" retourne NULL, car c'est le cache statique de FormateurGroupeColonne
-
 
191
		// qu'il initialise et utilise en interne sans qu'un passage par paramètre ne soit nécessaire
-
 
192
		$cache = FormateurGroupeColonne::preload(FormateurGroupeColonne::nomEnsembleVersListeColonnes($colonnes),
-
 
193
												 $this,
185
		}
194
												 $ids);
186
 
195
 
187
    	// TODO: tous les champs étendus et les paramètres supplémentaires devraient être passés en un seul
196
    	// TODO: tous les champs étendus et les paramètres supplémentaires devraient être passés en un seul
188
    	// tableau (et chaque formateur csv, xls etc... pourrait également être dans une classe à part)
197
    	// tableau (et chaque formateur csv, xls etc... pourrait également être dans une classe à part)
189
		switch($this->format) {
198
		switch($this->format) {
Line 193... Line 202...
193
			break;
202
			break;
194
		case 'xls':
203
		case 'xls':
195
			$xls = $this->convertirEnXls($observations, $colonnes, $colonnes_champs_supp_par_obs, $champs_supp_par_obs);
204
			$xls = $this->convertirEnXls($observations, $colonnes, $colonnes_champs_supp_par_obs, $champs_supp_par_obs);
196
			$this->envoyerXls($xls);
205
			$this->envoyerXls($xls);
197
			break;
206
			break;
198
		case 'pdf':
-
 
199
			$pdf = $this->convertirEnPdf($observations);
-
 
200
			$this->envoyerPdf($pdf);
-
 
201
			break;
-
 
202
		default:
207
		default:
203
		}
208
		}
204
	}
209
	}
Line 205... Line 210...
205
	
210
	
Line 231... Line 236...
231
		$chemin_temp = "php://temp";
236
		$chemin_temp = "php://temp";
232
		$outstream = fopen($chemin_temp, 'r+');
237
		$outstream = fopen($chemin_temp, 'r+');
Line 233... Line 238...
233
 
238
 
Line 234... Line 239...
234
		$groupe_colonnes = FormateurGroupeColonne::nomEnsembleVersListeColonnes($colonnes);
239
		$groupe_colonnes = FormateurGroupeColonne::nomEnsembleVersListeColonnes($colonnes);
-
 
240
 
-
 
241
		$intitule_champs = array_merge(FormateurGroupeColonne::getIntitulesColonnes($groupe_colonnes));
-
 
242
		// en premier car utilisé génériquement dans getLigneObservation()
-
 
243
		if(strpos($colonnes, 'avance') !== false) {
-
 
244
			$intitule_champs = array_merge($intitule_champs, FormateurGroupeColonne::$baseflor_col);
235
 
245
		}
Line 236... Line 246...
236
		$intitule_champs = array_merge(FormateurGroupeColonne::getIntitulesColonnes($groupe_colonnes),
246
		// en second car manuellement appellé plus bas, TODO: utiliser l'API du FormateurGroupeColonne
237
									   array_values($colonnes_supplementaires));
247
		$intitule_champs = array_merge($intitule_champs, array_values($colonnes_supplementaires));
238
 
248
 
239
		// header
249
		// header
Line 265... Line 275...
265
		$worksheet->setInputEncoding('utf-8');
275
		$worksheet->setInputEncoding('utf-8');
266
		$workbook->send($this->nom_fichier_export.'.xls');
276
		$workbook->send($this->nom_fichier_export.'.xls');
Line 267... Line 277...
267
		
277
		
268
		$nb_lignes = 1;
278
		$nb_lignes = 1;
-
 
279
		$groupe_colonnes = FormateurGroupeColonne::nomEnsembleVersListeColonnes($colonnes);
269
		$groupe_colonnes = FormateurGroupeColonne::nomEnsembleVersListeColonnes($colonnes);
280
 
-
 
281
		$intitule_champs = array_merge(FormateurGroupeColonne::getIntitulesColonnes($groupe_colonnes));
-
 
282
		// en premier car utilisé génériquement dans getLigneObservation()
-
 
283
		if(strpos($colonnes, 'avance') !== false) {
-
 
284
			$intitule_champs = array_merge($intitule_champs, FormateurGroupeColonne::$baseflor_col);
-
 
285
		}
270
		$intitule_champs = array_merge(FormateurGroupeColonne::getIntitulesColonnes($groupe_colonnes),
286
		// en second car manuellement appellé plus bas, TODO: utiliser l'API du FormateurGroupeColonne
Line 271... Line 287...
271
									   array_values($colonnes_supplementaires));
287
		$intitule_champs = array_merge($intitule_champs, array_values($colonnes_supplementaires));
272
 
288
 
273
		// header
289
		// header
274
		$indice = 0;
290
		$indice = 0;
Line 298... Line 314...
298
		$pdf = new GenerateurPDF();
314
		$pdf = new GenerateurPDF();
299
		$pdf->export($observations);
315
		$pdf->export($observations);
300
		return $pdf;
316
		return $pdf;
301
	}
317
	}
Line 302... Line -...
302
	
-
 
303
	private function envoyerPdf(&$pdf) {
-
 
304
		$pdf->pdf->Output('etiquettes.pdf', 'I');
-
 
305
		exit;;
-
 
306
	}
-
 
307
	
318
	
308
	static function traiterLigneEtendue(&$ligne, &$colonnes_etendues, $ligne_etendue_aplatie) {
319
	static function traiterLigneEtendue(&$ligne, &$colonnes_etendues, $ligne_etendue_aplatie) {
309
		if(! $colonnes_etendues) return;
320
		if(! $colonnes_etendues) return;
310
		if(! $ligne_etendue_aplatie) return;
321
		if(! $ligne_etendue_aplatie) return;
Line 321... Line 332...
321
			}
332
			}
322
		}
333
		}
Line 323... Line 334...
323
 
334
 
324
		$ligne += $ligne_etendue_fmt;
335
		$ligne += $ligne_etendue_fmt;
325
	}
336
	}
326
	
337
 
327
	static function aplatirChampsEtendus(&$ligne_champs_etendus) {
338
	static function aplatirChampsEtendus(&$ligne_champs_etendus) {
328
		$champs_etendus_fmt = array();
339
		$champs_etendus_fmt = array();
329
		if(!$ligne_champs_etendus) return $champs_etendus_fmt;
340
		if(!$ligne_champs_etendus) return $champs_etendus_fmt;
330
		foreach($ligne_champs_etendus as $champ) {
341
		foreach($ligne_champs_etendus as $champ) {
Line 347... Line 358...
347
	}
358
	}
Line 348... Line 359...
348
	
359
	
349
	private function peutExporterObsPrivees($id_utilisateur) {
360
	private function peutExporterObsPrivees($id_utilisateur) {
350
		$gestion_utilisateur = new User($this->config);
361
		$gestion_utilisateur = new User($this->config);
351
		$utilisateur = $gestion_utilisateur->obtenirIdentiteConnectee();
-
 
352
		return $utilisateur['connecte'] && 
-
 
353
				$utilisateur['id_utilisateur'] != '' &&
362
		$utilisateur = $gestion_utilisateur->obtenirIdentiteConnectee();
354
				$id_utilisateur == $utilisateur['id_utilisateur'];
363
		return ! empty($utilisateur['id_utilisateur']) && $id_utilisateur == $utilisateur['id_utilisateur'];
Line 355... Line 364...
355
	}
364
	}
356
 
365
 
357
	static function traiterObsIds($range_param) {
366
	static function traiterObsIds($range_param) {