src/Controller/Backoffice/Dossiers/DossiersViewsController.php line 58

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Backoffice\Dossiers;
  3. use App\Entity\Dossiers\Fiches;
  4. use App\Entity\Dossiers\FichesHasGroups;
  5. use App\Entity\Dossiers\Models;
  6. use App\Services\Core\Html2Pdf;
  7. use App\Services\Dossiers;
  8. use Doctrine\ORM\EntityManagerInterface;
  9. use Knp\Component\Pager\PaginatorInterface;
  10. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  11. use Symfony\Component\HttpFoundation\JsonResponse;
  12. use Symfony\Component\HttpFoundation\Request;
  13. use Symfony\Component\HttpFoundation\Response;
  14. use Symfony\Component\HttpFoundation\Session\Session;
  15. class DossiersViewsController extends AbstractController
  16. {
  17.     private $em;
  18.     private $paginator;
  19.     private $dossier;
  20.     private $html2pdf;
  21.     public function __construct(EntityManagerInterface $em,
  22.                                 Dossiers $dossier,
  23.                                 PaginatorInterface $paginator,
  24.                                 Html2Pdf $html2pdf
  25.     ) {
  26.         $this->em $em;
  27.         $this->paginator $paginator;
  28.         $this->dossier $dossier;
  29.         $this->html2pdf $html2pdf;
  30.     }
  31.     /**
  32.      * Lecture d'une fiche
  33.      * @param Request $request
  34.      * @param Fiches $fiche
  35.      * @return mixed
  36.      */
  37.     public function read(Request $requestFiches $fiche)
  38.     {
  39.         $queries $this->em->getRepository(FichesHasGroups::class)->findBy(['fiche' => $fiche->getId()],['sequence' => 'ASC']);
  40.         return $this->render('backoffice/dossiers/views/fiche_read.html.twig',[
  41.             'fiche' => $fiche,
  42.             'queries' => $queries
  43.         ]);
  44.     }
  45.     /**
  46.      * Modifier une fiche
  47.      * @param Request $request
  48.      * @param Fiches $fiche
  49.      * @return mixed
  50.      */
  51.     public function edit(Request $requestFiches $fiche)
  52.     {
  53.         $typeWebsite $_ENV["TYPE_WEBSITE"];
  54.         $queries $this->em->getRepository(FichesHasGroups::class)->findBy(['fiche' => $fiche],['sequence' => 'ASC']);
  55.         $models $this->em->getRepository(Models::class)->findBy(['typeWebsite' => $typeWebsite],['id' => 'DESC']);
  56.         return $this->render('backoffice/dossiers/views/fiche_edit.html.twig',[
  57.             'fiche' => $fiche,
  58.             'models' => $models,
  59.             'queries' => $queries
  60.         ]);
  61.     }
  62.     /**
  63.      * POST - Afficher des informations depuis une variable HTML.
  64.      * @param Request $request
  65.      * @param Dossiers $dossier
  66.      * @param Fiches $fiche
  67.      * @return Response
  68.      */
  69.     public function viewHTML(Request $requestDossiers $dossierFiches $fiche)
  70.     {
  71.         $text $_POST['text'];
  72.         $html $dossier->cleanHTMl($fiche,$text);
  73.         return new Response($html);
  74.     }
  75.     /**
  76.      * GET - Visionner un fichier PDF (en fonction du model)
  77.      * @param Request $request
  78.      * @param Html2Pdf $html2pdf
  79.      * @param Dossiers $dossier
  80.      * @param Fiches $fiche
  81.      * @return Response
  82.      */
  83.     public function readPdf(Request $requestFiches $fiche)
  84.     {
  85.         if($fiche->getModel() == null) {
  86.             return new Response();
  87.         }
  88.         $modelHTML $fiche->getModel()->getHtml();
  89.         $this->html2pdf->create('P','A4','fr',true,'UTF-8',[10,10,10,10]);
  90.         if($modelHTML == null) {
  91.             $html $this->renderView('backoffice/dossiers/views/fiche_pdf.html.twig',['html' => ""]);
  92.             return $this->html2pdf->generatePdf($html,'template');
  93.         }
  94.         $modelHTML $this->dossier->cleanHTML($fiche,$modelHTML);
  95.         $html $this->renderView('backoffice/dossiers/views/fiche_pdf.html.twig',['html' => $modelHTML]);
  96.         $this->html2pdf->generatePdf($html,'template');
  97.         return new Response();
  98.     }
  99. }