Commit db6166c9 authored by Laurent Lecluse's avatar Laurent Lecluse
Browse files

Ajout de la possibilité de customiser en PHP un export CSV pour des besoins complexes

parent ef1937e4
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -5330,6 +5330,17 @@
          'default' => '1',
          'commentaire' => NULL,
        ),
        'CSV_TRAITEMENT' => 
        array (
          'name' => 'CSV_TRAITEMENT',
          'type' => 'CLOB',
          'length' => 0,
          'scale' => NULL,
          'precision' => NULL,
          'nullable' => true,
          'default' => NULL,
          'commentaire' => NULL,
        ),
      ),
    ),
    'ETAT_VOLUME_HORAIRE' => 
+5 −5
Original line number Diff line number Diff line
@@ -380,6 +380,11 @@ class EtatSortie
     */
    public function getCsvTraitement()
    {
        $fichierGenerique = getcwd() . '/' . $this->csvTraitement;
        if (file_exists($fichierGenerique)) {
            $this->csvTraitement = substr(file_get_contents($fichierGenerique), 5);
        }

        return $this->csvTraitement;
    }

@@ -392,11 +397,6 @@ class EtatSortie
     */
    public function setCsvTraitement($csvTraitement): EtatSortie
    {
        $fichierGenerique = getcwd() . '/' . $this->csvTraitement;
        if (file_exists($fichierGenerique)) {
            $this->csvTraitement = substr(file_get_contents($fichierGenerique), 5);
        }

        $this->csvTraitement = $csvTraitement;

        return $this;
+4 −2
Original line number Diff line number Diff line
@@ -99,13 +99,14 @@ class EtatSortieService extends AbstractEntityService
            throw new \Exception('Fichier modèle au format OpenDocument non fourni dans l\'état de sortie "' . $etatSortie->getLibelle() . '"');
        }

        $entityManager = $this->getEntityManager();
        $data          = $this->generateData($etatSortie, $filtres);
        $role          = $this->getServiceContext()->getSelectedIdentityRole(); // à fournir à l'évaluateur...

        if (trim($etatSortie->getPdfTraitement())) {
            $__PHP__CODE__TRAITEMENT__ = $etatSortie->getPdfTraitement();
            // Isolation de traitement pour éviter tout débordement...
            $traitement = function () use ($document, $etatSortie, $data, $filtres, $role, $options, $__PHP__CODE__TRAITEMENT__) {
            $traitement = function () use ($document, $etatSortie, $data, $filtres, $entityManager, $role, $options, $__PHP__CODE__TRAITEMENT__) {
                eval($__PHP__CODE__TRAITEMENT__);

                return $data;
@@ -131,6 +132,7 @@ class EtatSortieService extends AbstractEntityService
    {
        $csv = new CsvModel();

        $entityManager = $this->getEntityManager();
        $data          = $this->generateData($etatSortie, $filtres);
        $role          = $this->getServiceContext()->getSelectedIdentityRole(); // à fournir à l'évaluateur...

@@ -138,7 +140,7 @@ class EtatSortieService extends AbstractEntityService
        if (trim($etatSortie->getCsvTraitement())) {
            $__PHP__CODE__TRAITEMENT__ = $etatSortie->getCsvTraitement();
            // Isolation de traitement pour éviter tout débordement...
            $traitement = function () use ($csv, $etatSortie, $data, $filtres, $role, $options, $__PHP__CODE__TRAITEMENT__) {
            $traitement = function () use ($csv, $etatSortie, $data, $filtres, $entityManager, $role, $options, $__PHP__CODE__TRAITEMENT__) {
                eval($__PHP__CODE__TRAITEMENT__);

                return $data;