Commit 5f03b5f9 authored by Jean-Baptiste Oellers's avatar Jean-Baptiste Oellers
Browse files

Ajout du fichier de la convention

parent 2c18af29
Loading
Loading
Loading
Loading
+48 −1
Original line number Diff line number Diff line
@@ -2,8 +2,9 @@

namespace Oscar\Controller;

class ConventionModeleEtapeAdministrationController extends AbstractOscarController
class ConventionModeleEtapeAdministrationController extends AbstractOscarController implements \Oscar\Traits\UseOscarConfigurationService
{
    use \Oscar\Traits\UseOscarConfigurationServiceTrait;

    /** @var \Oscar\Service\ConventionModeleEtapeService */
    public $conventionModeleEtapeService;
@@ -67,6 +68,52 @@ class ConventionModeleEtapeAdministrationController extends AbstractOscarControl
                return $this->getResponseNotFound("L'information à saisir pour l'étape de saisie du modèle de convention n'a pas été trouvée.");
            }
            $this->conventionModeleEtapeService->ajouterInformationReponse($conventionModeleEtapeInformation, $this->params()->fromPost('reponse'), $this->getCurrentPerson());

        } else if ($this->params()->fromPost('action') == "téléverser_fichier") {



            $originalFilename = $_FILES['file']['name'];
            $slugify = new \Cocur\Slugify\Slugify();
            $renamed = sprintf(
                "oscar-jb-%s",
                $slugify->slugify($originalFilename)
            );

            $destination = $this->getOscarConfigurationService()->getDocumentDropLocation();
            $mimes = $this->getOscarConfigurationService()->getDocumentExtensions();

            $uploader = new \Oscar\Strategy\Upload\FileUploadStandard();
            $uploader->setDestination($destination)
                ->setFilename($renamed)
                ->setMimesAllowed($mimes);
            $uploader->updoad($_FILES['file']);

            // $html_tmp = '/tmp' . DIRECTORY_SEPARATOR . uniqid('htmltmp_') . '.html';
            // $pdf_path = $this->getOscarConfigurationService()->getDocumentDropLocation() . DIRECTORY_SEPARATOR . $renamed;
    

            // $html = $this->getConventionHtml($formulaire->getTexteConvention(), $this->params()->fromPost('dateStart'), $this->params()->fromPost('dateEnd'), $this->params()->fromPost('amount'), $this->params()->fromPost('partenaire'));

            // if (!file_put_contents($html_tmp, $html)) {
            //     throw new OscarException("Impossible de créer le fichier temporaire '$html_tmp'");
            // }
        
            // $cmd = sprintf(
            //     'export QT_QPA_FONTDIR=%s && export QT_QPA_PLATFORM=offscreen && wkhtmltopdf -O portrait %s %s',
            //     '',
            //     $html_tmp,
            //     $pdf_path
            // );
            // $done = false;
            // if (shell_exec($cmd) === false) {
            //     unlink($html_tmp);
            //     throw new OscarException("Impossible de créer le fichier PDF");
            // }
            // unlink($html_tmp);
            
            // $fileSize = filesize($pdf_path);

        }

        return $this->redirect()->toRoute('administration/conventionModeles/configurer/etapes/configurer', ['id' => $conventionModele->id, 'idEtape' => $conventionModeleEtape->id]);
+1 −0
Original line number Diff line number Diff line
@@ -14,6 +14,7 @@ class ConventionModeleEtapeAdministrationControllerFactory implements FactoryInt
        $c = new ConventionModeleEtapeAdministrationController();
        $c->setEntityManager($container->get(EntityManager::class));
        $c->setOscarUserContextService($container->get(OscarUserContext::class));
        $c->setOscarConfigurationService($container->get(\Oscar\Service\OscarConfigurationService::class));
        $c->conventionModeleEtapeService = $container->get(\Oscar\Service\ConventionModeleEtapeService::class);
        return $c;
    }
+14 −0
Original line number Diff line number Diff line
@@ -73,4 +73,18 @@
      </ul>
    </form>
  </div>

  <div style="margin-bottom: 4rem; background-color: white; border-radius: 1rem; padding: 1rem; margin-top: 1rem;">
    <h2 style="margin-bottom: 2rem;">📄 Document de la convention</h2>

    <form action="" method="post" enctype="multipart/form-data">
      <input type="hidden" name="action" value="téléverser_fichier">
      <div>
        <label for="file">Fichier</label>
        <input type="file" name="file" id="file" />
      </div>
      <input type="submit" value="📤 Téléverser le fichier">
    </form>

  </div>
</div>