172,18 → 172,27 |
$ids[] = $obs['id_observation']; |
} |
|
if($this->format != 'pdf') { |
$gestion_champs_etendus = new GestionChampsEtendus($this->config, 'obs'); |
$champs_supp_par_obs = $gestion_champs_etendus->consulterParLots($ids); |
$colonnes_champs_supp_par_obs = $gestion_champs_etendus->consulterClesParLots($ids); |
// $cache pourrait être utilisé par les fonctions de colonnes |
// * Pour "nom commun", "preload" retourne NULL, car c'est le cache statique de FormateurGroupeColonne |
// qu'il initialise et utilise en interne sans qu'un passage par paramètre ne soit nécessaire |
$cache = FormateurGroupeColonne::preload(FormateurGroupeColonne::nomEnsembleVersListeColonnes($colonnes), |
$this, |
$ids); |
if($this->format == 'pdf') { |
$pdf = $this->convertirEnPdf($observations); |
$pdf->pdf->Output('etiquettes.pdf', 'I'); |
exit; |
} |
|
// cas XLS et CSV: on peut avoir besoin des champs étendus, des noms communs et des champs baseflor: |
|
// 1) champs étendus |
$gestion_champs_etendus = new GestionChampsEtendus($this->config, 'obs'); |
$champs_supp_par_obs = $gestion_champs_etendus->consulterParLots($ids); |
$colonnes_champs_supp_par_obs = $gestion_champs_etendus->consulterClesParLots($ids); |
|
// 2) nom communs |
// $cache pourrait être utilisé par les fonctions de colonnes |
// * Pour "nom commun", "preload" retourne NULL, car c'est le cache statique de FormateurGroupeColonne |
// qu'il initialise et utilise en interne sans qu'un passage par paramètre ne soit nécessaire |
$cache = FormateurGroupeColonne::preload(FormateurGroupeColonne::nomEnsembleVersListeColonnes($colonnes), |
$this, |
$ids); |
|
// TODO: tous les champs étendus et les paramètres supplémentaires devraient être passés en un seul |
// tableau (et chaque formateur csv, xls etc... pourrait également être dans une classe à part) |
switch($this->format) { |
195,10 → 204,6 |
$xls = $this->convertirEnXls($observations, $colonnes, $colonnes_champs_supp_par_obs, $champs_supp_par_obs); |
$this->envoyerXls($xls); |
break; |
case 'pdf': |
$pdf = $this->convertirEnPdf($observations); |
$this->envoyerPdf($pdf); |
break; |
default: |
} |
} |
233,8 → 238,13 |
|
$groupe_colonnes = FormateurGroupeColonne::nomEnsembleVersListeColonnes($colonnes); |
|
$intitule_champs = array_merge(FormateurGroupeColonne::getIntitulesColonnes($groupe_colonnes), |
array_values($colonnes_supplementaires)); |
$intitule_champs = array_merge(FormateurGroupeColonne::getIntitulesColonnes($groupe_colonnes)); |
// en premier car utilisé génériquement dans getLigneObservation() |
if(strpos($colonnes, 'avance') !== false) { |
$intitule_champs = array_merge($intitule_champs, FormateurGroupeColonne::$baseflor_col); |
} |
// en second car manuellement appellé plus bas, TODO: utiliser l'API du FormateurGroupeColonne |
$intitule_champs = array_merge($intitule_champs, array_values($colonnes_supplementaires)); |
|
// header |
fputcsv($outstream, $intitule_champs, ',', '"'); |
267,9 → 277,15 |
|
$nb_lignes = 1; |
$groupe_colonnes = FormateurGroupeColonne::nomEnsembleVersListeColonnes($colonnes); |
$intitule_champs = array_merge(FormateurGroupeColonne::getIntitulesColonnes($groupe_colonnes), |
array_values($colonnes_supplementaires)); |
|
$intitule_champs = array_merge(FormateurGroupeColonne::getIntitulesColonnes($groupe_colonnes)); |
// en premier car utilisé génériquement dans getLigneObservation() |
if(strpos($colonnes, 'avance') !== false) { |
$intitule_champs = array_merge($intitule_champs, FormateurGroupeColonne::$baseflor_col); |
} |
// en second car manuellement appellé plus bas, TODO: utiliser l'API du FormateurGroupeColonne |
$intitule_champs = array_merge($intitule_champs, array_values($colonnes_supplementaires)); |
|
// header |
$indice = 0; |
foreach ($intitule_champs as &$intitule) { |
300,11 → 316,6 |
return $pdf; |
} |
|
private function envoyerPdf(&$pdf) { |
$pdf->pdf->Output('etiquettes.pdf', 'I'); |
exit;; |
} |
|
static function traiterLigneEtendue(&$ligne, &$colonnes_etendues, $ligne_etendue_aplatie) { |
if(! $colonnes_etendues) return; |
if(! $ligne_etendue_aplatie) return; |
323,7 → 334,7 |
|
$ligne += $ligne_etendue_fmt; |
} |
|
|
static function aplatirChampsEtendus(&$ligne_champs_etendus) { |
$champs_etendus_fmt = array(); |
if(!$ligne_champs_etendus) return $champs_etendus_fmt; |
349,9 → 360,7 |
private function peutExporterObsPrivees($id_utilisateur) { |
$gestion_utilisateur = new User($this->config); |
$utilisateur = $gestion_utilisateur->obtenirIdentiteConnectee(); |
return $utilisateur['connecte'] && |
$utilisateur['id_utilisateur'] != '' && |
$id_utilisateur == $utilisateur['id_utilisateur']; |
return ! empty($utilisateur['id_utilisateur']) && $id_utilisateur == $utilisateur['id_utilisateur']; |
} |
|
static function traiterObsIds($range_param) { |