Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 1702 → Rev 1703

/trunk/jrest/services/CelWidgetExport.php
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) {