Line 18... |
Line 18... |
18 |
* @copyright 2012
|
18 |
* @copyright 2012
|
19 |
*/
|
19 |
*/
|
Line 20... |
Line 20... |
20 |
|
20 |
|
21 |
set_include_path(get_include_path() . PATH_SEPARATOR . dirname(dirname(realpath(__FILE__))) . '/lib');
|
21 |
set_include_path(get_include_path() . PATH_SEPARATOR . dirname(dirname(realpath(__FILE__))) . '/lib');
|
22 |
// la sortie est binaire (xls), mais OLE n'est pas compatible E_ALL en PHP-5.4
|
22 |
// la sortie est binaire (xls), mais OLE n'est pas compatible E_ALL en PHP-5.4
|
23 |
//error_reporting(error_reporting() ^ E_STRICT);
|
23 |
error_reporting(error_reporting() ^ E_STRICT);
|
24 |
require_once("lib/OLE.php");
|
24 |
require_once("lib/OLE.php");
|
Line 25... |
Line 25... |
25 |
require_once("lib/Spreadsheet/Excel/Writer.php");
|
25 |
require_once("lib/Spreadsheet/Excel/Writer.php");
|
Line 223... |
Line 223... |
223 |
|
223 |
|
224 |
private function convertirEnCsv(&$data, &$colonnes, &$colonnes_supplementaires, &$champs_supplementaires = array())
|
224 |
private function convertirEnCsv(&$data, &$colonnes, &$colonnes_supplementaires, &$champs_supplementaires = array())
|
225 |
{
|
225 |
{
|
226 |
$chemin_temp = "php://temp";
|
226 |
$chemin_temp = "php://temp";
|
227 |
$outstream = fopen($chemin_temp, 'r+');
|
- |
|
228 |
$intitule_champs = array();
|
- |
|
- |
|
227 |
$outstream = fopen($chemin_temp, 'r+');
|
229 |
$nb_colonnes_supp = count($colonnes_supplementaires);
|
228 |
|
- |
|
229 |
$groupe_colonnes = FormateurGroupeColonne::nomEnsembleVersListeColonnes($colonnes);
|
- |
|
230 |
$intitule_champs = FormateurGroupeColonne::getIntitulesColonnes($groupe_colonnes);
|
- |
|
231 |
|
- |
|
232 |
foreach($colonnes_supplementaires as $colonne_sup) {
|
- |
|
233 |
$intitule_champs[] = $colonne_sup;
|
- |
|
234 |
}
|
- |
|
235 |
|
- |
|
236 |
// header
|
- |
|
237 |
fputcsv($outstream, $intitule_champs, ',', '"');
|
230 |
$groupe_colonnes = FormateurGroupeColonne::nomEnsembleVersListeColonnes($colonnes);
|
238 |
// lignes
|
231 |
foreach($data as &$ligne) {
|
239 |
foreach($data as &$ligne) {
|
232 |
$id_obs = $ligne['id_observation'];
|
240 |
$id_obs = $ligne['id_observation'];
|
233 |
$ligne = $this->filtrerDonneesSensibles($ligne);
|
241 |
$ligne = $this->filtrerDonneesSensibles($ligne);
|
234 |
$ligne = FormateurGroupeColonne::getLigneObservation($ligne, $groupe_colonnes, $this);
|
- |
|
235 |
$ligne_supp = $nb_colonnes_supp > 0 ? array_fill(0, $nb_colonnes_supp, '') : array();
|
- |
|
236 |
if(isset($champs_supplementaires[$id_obs])) {
|
242 |
$ligne = FormateurGroupeColonne::getLigneObservation($ligne, $groupe_colonnes, $this);
|
237 |
$ligne_supp = $this->traiterLigneEtendue($colonnes_supplementaires, $champs_supplementaires[$id_obs]);
|
- |
|
238 |
}
|
- |
|
239 |
$ligne += $ligne_supp;
|
- |
|
240 |
if(empty($intitule_champs)) {
|
- |
|
241 |
$intitule_champs = FormateurGroupeColonne::getIntitulesColonnes($groupe_colonnes);
|
243 |
$ligne_etendue_aplatie = self::aplatirChampsEtendus($champs_supplementaires[$id_obs]);
|
242 |
foreach($colonnes_supplementaires as $colonne_sup) {
|
- |
|
243 |
$intitule_champs[] = $colonne_sup;
|
- |
|
244 |
}
|
- |
|
245 |
fputcsv($outstream, $intitule_champs, ',', '"');
|
- |
|
246 |
}
|
244 |
self::traiterLigneEtendue($ligne, $colonnes_supplementaires, $ligne_etendue_aplatie);
|
247 |
fputcsv($outstream, $ligne, ',', '"');
|
245 |
fputcsv($outstream, $ligne, ',', '"');
|
248 |
}
|
246 |
}
|
249 |
rewind($outstream);
|
247 |
rewind($outstream);
|
250 |
$csv = stream_get_contents($outstream);
|
248 |
$csv = stream_get_contents($outstream);
|
Line 254... |
Line 252... |
254 |
|
252 |
|
255 |
private function convertirEnXls(&$data, &$colonnes, &$colonnes_supplementaires, &$champs_supplementaires = array()) {
|
253 |
private function convertirEnXls(&$data, &$colonnes, &$colonnes_supplementaires, &$champs_supplementaires = array()) {
|
256 |
$this->extendSpreadsheetProductor = new SpreadsheetProductor();
|
254 |
$this->extendSpreadsheetProductor = new SpreadsheetProductor();
|
Line 257... |
Line -... |
257 |
$this->extendSpreadsheetProductor->initSpreadsheet();
|
- |
|
258 |
|
- |
|
259 |
$nb_colonnes_supp = count($colonnes_supplementaires);
|
255 |
$this->extendSpreadsheetProductor->initSpreadsheet();
|
260 |
|
256 |
|
261 |
$workbook = new Spreadsheet_Excel_Writer();
|
257 |
$workbook = new Spreadsheet_Excel_Writer();
|
262 |
$worksheet = $workbook->addWorksheet('Liste');
|
258 |
$worksheet = $workbook->addWorksheet('Liste');
|
Line 263... |
Line 259... |
263 |
$workbook->setTempDir($this->config['cel']['chemin_stockage_temp']);
|
259 |
$workbook->setTempDir($this->config['cel']['chemin_stockage_temp']);
|
264 |
$workbook->setVersion(8);
|
260 |
$workbook->setVersion(8);
|
Line 265... |
Line 261... |
265 |
|
261 |
|
266 |
$worksheet->setInputEncoding('utf-8');
|
262 |
$worksheet->setInputEncoding('utf-8');
|
- |
|
263 |
$workbook->send($this->nom_fichier_export.'.xls');
|
- |
|
264 |
|
- |
|
265 |
$nb_lignes = 1;
|
- |
|
266 |
$groupe_colonnes = FormateurGroupeColonne::nomEnsembleVersListeColonnes($colonnes);
|
- |
|
267 |
$intitule_champs = FormateurGroupeColonne::getIntitulesColonnes($groupe_colonnes);
|
- |
|
268 |
foreach($colonnes_supplementaires as $colonne_sup) {
|
- |
|
269 |
$intitule_champs[] = $colonne_sup;
|
- |
|
270 |
}
|
- |
|
271 |
|
- |
|
272 |
// header
|
- |
|
273 |
$indice = 0;
|
- |
|
274 |
foreach ($intitule_champs as &$intitule) {
|
267 |
$workbook->send($this->nom_fichier_export.'.xls');
|
275 |
$worksheet->write(0,$indice,$intitule);
|
268 |
|
276 |
$indice++;
|
269 |
$nb_lignes = 1;
|
277 |
}
|
270 |
$groupe_colonnes = FormateurGroupeColonne::nomEnsembleVersListeColonnes($colonnes);
|
278 |
|
271 |
foreach($data as &$ligne) {
|
- |
|
272 |
$id_obs = $ligne['id_observation'];
|
- |
|
273 |
$ligne = $this->filtrerDonneesSensibles($ligne);
|
- |
|
274 |
$ligne = FormateurGroupeColonne::getLigneObservation($ligne, $groupe_colonnes, $this);
|
- |
|
275 |
if(empty($intitule_champs)) {
|
- |
|
276 |
$indice = 0;
|
- |
|
277 |
$intitule_champs = FormateurGroupeColonne::getIntitulesColonnes($groupe_colonnes);
|
- |
|
278 |
foreach($colonnes_supplementaires as $colonne_sup) {
|
- |
|
279 |
$intitule_champs[] = $colonne_sup;
|
- |
|
280 |
}
|
- |
|
281 |
foreach ($intitule_champs as &$intitule) {
|
- |
|
282 |
$colonne = $intitule_champs[$indice];
|
279 |
foreach($data as &$ligne) {
|
283 |
$worksheet->write(0,$indice,$colonne);
|
- |
|
284 |
$indice++;
|
280 |
$id_obs = $ligne['id_observation'];
|
285 |
}
|
281 |
$ligne = $this->filtrerDonneesSensibles($ligne);
|
286 |
}
|
- |
|
287 |
$ligne_supp = $nb_colonnes_supp > 0 ? array_fill(0, $nb_colonnes_supp, '') : array();
|
- |
|
288 |
if(isset($champs_supplementaires[$id_obs])) {
|
282 |
$ligne = FormateurGroupeColonne::getLigneObservation($ligne, $groupe_colonnes, $this);
|
289 |
$ligne_supp = $this->traiterLigneEtendue($colonnes_supplementaires, $champs_supplementaires[$id_obs]);
|
283 |
|
290 |
}
|
284 |
$ligne_etendue_aplatie = self::aplatirChampsEtendus($champs_supplementaires[$id_obs]);
|
291 |
$ligne += $ligne_supp;
|
285 |
$ligne_supp = self::traiterLigneEtendue($ligne, $colonnes_supplementaires, $ligne_etendue_aplatie);
|
292 |
$indice = 0;
|
286 |
$indice = 0;
|
Line 310... |
Line 304... |
310 |
private function envoyerPdf(&$pdf) {
|
304 |
private function envoyerPdf(&$pdf) {
|
311 |
$pdf->pdf->Output('etiquettes.pdf', 'I');
|
305 |
$pdf->pdf->Output('etiquettes.pdf', 'I');
|
312 |
exit;;
|
306 |
exit;;
|
313 |
}
|
307 |
}
|
Line 314... |
Line 308... |
314 |
|
308 |
|
- |
|
309 |
static function traiterLigneEtendue(&$ligne, &$colonnes_etendues, $ligne_etendue_aplatie) {
|
- |
|
310 |
if(! $colonnes_etendues) return;
|
- |
|
311 |
if(! $ligne_etendue_aplatie) return;
|
- |
|
312 |
$nb_colonnes_supp = count($colonnes_etendues);
|
315 |
private function traiterLigneEtendue(&$colonnes_etendues, &$ligne_champs_etendus) {
|
313 |
|
316 |
$ligne_etendue_aplatie = $this->aplatirChampsEtendus($ligne_champs_etendus);
|
314 |
$ligne_supp = array_fill(0, $nb_colonnes_supp, '');
|
- |
|
315 |
$ligne_etendue_fmt = array();
|
317 |
$ligne_etendue_fmt = array();
|
316 |
|
318 |
foreach($colonnes_etendues as $colonne) {
|
317 |
foreach($colonnes_etendues as $colonne) {
|
319 |
if(!isset($ligne_etendue_aplatie[$colonne])) {
|
318 |
if(!isset($ligne_etendue_aplatie[$colonne])) {
|
320 |
$ligne_etendue_fmt[$colonne] = '';
|
319 |
$ligne_etendue_fmt[$colonne] = '';
|
321 |
} else {
|
320 |
} else {
|
322 |
$ligne_etendue_fmt[$colonne] = $ligne_etendue_aplatie[$colonne];
|
321 |
$ligne_etendue_fmt[$colonne] = $ligne_etendue_aplatie[$colonne];
|
323 |
}
|
322 |
}
|
- |
|
323 |
}
|
324 |
}
|
324 |
|
325 |
return $ligne_etendue_fmt;
|
325 |
$ligne += $ligne_etendue_fmt;
|
Line 326... |
Line 326... |
326 |
}
|
326 |
}
|
- |
|
327 |
|
327 |
|
328 |
static function aplatirChampsEtendus(&$ligne_champs_etendus) {
|
328 |
private function aplatirChampsEtendus(&$ligne_champs_etendus) {
|
329 |
if(!$ligne_champs_etendus) return;
|
329 |
$champs_etendus_fmt = array();
|
330 |
$champs_etendus_fmt = array();
|
330 |
foreach($ligne_champs_etendus as $champ) {
|
331 |
foreach($ligne_champs_etendus as $champ) {
|
331 |
$champs_etendus_fmt[$champ->cle] = $champ->valeur;
|
332 |
$champs_etendus_fmt[$champ->cle] = $champ->valeur;
|