Loading module/Oscar/src/Oscar/Controller/ConventionModeleEtapeAdministrationController.php +48 −1 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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]); Loading module/Oscar/src/Oscar/Controller/ConventionModeleEtapeAdministrationControllerFactory.php +1 −0 Original line number Diff line number Diff line Loading @@ -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; } Loading module/Oscar/view/oscar/convention-modele-etape-administration/configurer.phtml +14 −0 Original line number Diff line number Diff line Loading @@ -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> Loading
module/Oscar/src/Oscar/Controller/ConventionModeleEtapeAdministrationController.php +48 −1 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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]); Loading
module/Oscar/src/Oscar/Controller/ConventionModeleEtapeAdministrationControllerFactory.php +1 −0 Original line number Diff line number Diff line Loading @@ -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; } Loading
module/Oscar/view/oscar/convention-modele-etape-administration/configurer.phtml +14 −0 Original line number Diff line number Diff line Loading @@ -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>