<?phpnamespace App\Controller\Backoffice\Dossiers;use App\Entity\Dossiers\Fiches;use App\Entity\Dossiers\FichesHasGroups;use App\Entity\Dossiers\Models;use App\Services\Core\Html2Pdf;use App\Services\Dossiers;use Doctrine\ORM\EntityManagerInterface;use Knp\Component\Pager\PaginatorInterface;use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;use Symfony\Component\HttpFoundation\JsonResponse;use Symfony\Component\HttpFoundation\Request;use Symfony\Component\HttpFoundation\Response;use Symfony\Component\HttpFoundation\Session\Session;class DossiersViewsController extends AbstractController{ private $em; private $paginator; private $dossier; private $html2pdf; public function __construct(EntityManagerInterface $em, Dossiers $dossier, PaginatorInterface $paginator, Html2Pdf $html2pdf ) { $this->em = $em; $this->paginator = $paginator; $this->dossier = $dossier; $this->html2pdf = $html2pdf; } /** * Lecture d'une fiche * @param Request $request * @param Fiches $fiche * @return mixed */ public function read(Request $request, Fiches $fiche) { $queries = $this->em->getRepository(FichesHasGroups::class)->findBy(['fiche' => $fiche->getId()],['sequence' => 'ASC']); return $this->render('backoffice/dossiers/views/fiche_read.html.twig',[ 'fiche' => $fiche, 'queries' => $queries ]); } /** * Modifier une fiche * @param Request $request * @param Fiches $fiche * @return mixed */ public function edit(Request $request, Fiches $fiche) { $typeWebsite = $_ENV["TYPE_WEBSITE"]; $queries = $this->em->getRepository(FichesHasGroups::class)->findBy(['fiche' => $fiche],['sequence' => 'ASC']); $models = $this->em->getRepository(Models::class)->findBy(['typeWebsite' => $typeWebsite],['id' => 'DESC']); return $this->render('backoffice/dossiers/views/fiche_edit.html.twig',[ 'fiche' => $fiche, 'models' => $models, 'queries' => $queries ]); } /** * POST - Afficher des informations depuis une variable HTML. * @param Request $request * @param Dossiers $dossier * @param Fiches $fiche * @return Response */ public function viewHTML(Request $request, Dossiers $dossier, Fiches $fiche) { $text = $_POST['text']; $html = $dossier->cleanHTMl($fiche,$text); return new Response($html); } /** * GET - Visionner un fichier PDF (en fonction du model) * @param Request $request * @param Html2Pdf $html2pdf * @param Dossiers $dossier * @param Fiches $fiche * @return Response */ public function readPdf(Request $request, Fiches $fiche) { if($fiche->getModel() == null) { return new Response(); } $modelHTML = $fiche->getModel()->getHtml(); $this->html2pdf->create('P','A4','fr',true,'UTF-8',[10,10,10,10]); if($modelHTML == null) { $html = $this->renderView('backoffice/dossiers/views/fiche_pdf.html.twig',['html' => ""]); return $this->html2pdf->generatePdf($html,'template'); } $modelHTML = $this->dossier->cleanHTML($fiche,$modelHTML); $html = $this->renderView('backoffice/dossiers/views/fiche_pdf.html.twig',['html' => $modelHTML]); $this->html2pdf->generatePdf($html,'template'); return new Response(); }}