src/Controller/HomeController.php line 48

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use Dompdf\Dompdf;
  4. use Dompdf\Options;
  5. use Knp\Snappy\Pdf;
  6. use App\Repository\RoomRepository;
  7. use App\Repository\OfficeRepository;
  8. use App\Repository\CustomerRepository;
  9. use App\Repository\DocumentRepository;
  10. use App\Repository\RoomBookingRepository;
  11. use App\Repository\OfficeBookingRepository;
  12. use Symfony\Component\HttpFoundation\Response;
  13. use Symfony\Component\Routing\Annotation\Route;
  14. use ContainerII4VBkZ\getDocumentRepositoryService;
  15. use Knp\Bundle\SnappyBundle\Snappy\Response\PdfResponse;
  16. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  17. class HomeController extends AbstractController
  18. {
  19.     private $officeRepository;
  20.     private $roomRepository;
  21.     private $customerRepository;
  22.     private $roomBookingRepository;
  23.     private $documentRepository;
  24.     private $officeBookingRepository;
  25.     public function __construct(
  26.         OfficeRepository $officeRepository,
  27.         RoomRepository $roomRepository,
  28.         CustomerRepository $customerRepository,
  29.         RoomBookingRepository $roomBookingRepository,
  30.         DocumentRepository $documentRepository,
  31.         OfficeBookingRepository $officeBookingRepository
  32.     )
  33.     {
  34.         $this->officeRepository $officeRepository;
  35.         $this->roomRepository $roomRepository;
  36.         $this->customerRepository $customerRepository;
  37.         $this->roomBookingRepository $roomBookingRepository;
  38.         $this->documentRepository $documentRepository;
  39.         $this->officeBookingRepository $officeBookingRepository;
  40.     }
  41.     #[Route(path'/'name'homepage')]
  42.     public function index(): Response
  43.     {
  44.         $team $this->getUser()->getTeam();
  45.         $alertOfficeBookings $this->officeBookingRepository->getAlertPaymentTransfert($team) + $this->officeBookingRepository->getAlertPaymentCheck($team);
  46.         $alertRoomBookings $this->roomBookingRepository->getAlertPaymentTransfert($team) + $this->roomBookingRepository->getAlertPaymentCheck($team);
  47.         return $this->render('dashboard.html.twig', [
  48.             'menu' => 'homepage',
  49.             'office' => $this->officeRepository->getNumberOffice($team),
  50.             'room' => $this->roomRepository->getNumberRoom($team),
  51.             'domicilliationCustomer' => 0,
  52.             'customers' => $this->customerRepository->getNumberCustomer($team),
  53.             'domicilliationCustomerRedirection' => 0,
  54.             'domiciliationCustomerScanPro' => 0,
  55.             'alertOfficeCheck' => $this->officeBookingRepository->getAlertPaymentCheck($team),
  56.             'alertOfficeBookings' => $alertOfficeBookings,
  57.             'alertRoomBookings' => $alertRoomBookings
  58.         ]);
  59.     }
  60.     
  61.     #[Route(path'/dom-pdf'name'dom_pdf')]
  62.     public function pdfExempleDom(Pdf $pdf)
  63.     {
  64.         // Configure Dompdf according to your needs
  65.         $pdfOptions = new Options();
  66.         $pdfOptions->setDefaultFont('Roboto');
  67.         $pdfOptions->setIsPhpEnabled(true);
  68.         $pdfOptions->setIsRemoteEnabled(true);
  69.         
  70.         // Instantiate Dompdf with our options
  71.         $dompdf = new Dompdf($pdfOptions);
  72.         
  73.         // Retrieve the HTML generated in our twig file
  74.         $html $this->renderView('pdf/exemple.html.twig', [
  75.             'title' => "Welcome to our PDF Test"
  76.         ]);
  77.         
  78.         // Load HTML to Dompdf
  79.         $dompdf->loadHtml($html);
  80.         
  81.         // (Optional) Setup the paper size and orientation 'portrait' or 'portrait'
  82.         $dompdf->setPaper('A4''portrait');
  83.         // Render the HTML as PDF
  84.         $dompdf->render();
  85.         try {
  86.             
  87.             // Output the generated PDF to Browser (inline view)
  88.             $dompdf->stream("mypdf.pdf", [
  89.                 "Attachment" => false
  90.             ]);
  91.         } catch (\Throwable $th) {
  92.             throw $th;
  93.         }
  94.         
  95.     }
  96.     
  97.     #[Route(path'/exemple-pdf'name'exemple_pdf')]
  98.     public function pdfExemple(Pdf $pdf)
  99.     {
  100.         $header $this->renderView('pdf/header.html.twig', [
  101.             'invoice' => "aaaa",
  102.             'date' => 'aaa',
  103.             'status' => 'aaa',
  104.             'title' => 'test'
  105.         ]);
  106.         $footer $this->renderView('pdf/footer.html.twig');
  107.         $html $this->renderView('pdf/exemple.html.twig', array(
  108.             'some'  => 'aa',
  109.         ));
  110.         $pdf->setOption('footer-center','Page [page]/[topage]');
  111.         $options = [
  112.             'header-html' => $header,
  113.             'margin-top'    => 43,
  114.             'margin-right'  => 0,
  115.             'margin-bottom' => 10,
  116.             'margin-left'   => 0,
  117.         ];
  118.         $filename 'test';
  119.         $pdfFolder $this->getParameter('invoice_directory');
  120.         $pdf->generateFromHtml(
  121.             $html,
  122.             $pdfFolder.'/'.$filename,
  123.             $options
  124.         );
  125.         return $this->file($pdfFolder.'/'.$filename);
  126.         //return new PdfResponse($pdf->getOutputFromHtml($html, $options), 'file.pdf', );
  127.     }
  128. }