src/Controller/PdfOutputController.php line 727

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  4. use Symfony\Component\HttpFoundation\Response;
  5. use Symfony\Component\Routing\Annotation\Route;
  6. use Symfony\Bundle\FrameworkBundle\Controller\Controller;
  7. use App\Repository\EtrMoisRepository;
  8. use App\Repository\EtrRepository;
  9. use App\Repository\EtrProdRepository;
  10. use App\Repository\InterventionProductionRepository;
  11. use App\Repository\InterventionSavRepository;
  12. use App\Repository\MoisEtrRepository;
  13. use App\Repository\PenaliteRepository;
  14. use Symfony\Component\HttpFoundation\Request;
  15. use Dompdf\Dompdf;
  16. use Dompdf\Options;
  17. use ZipArchive;
  18. use Symfony\Component\Finder\Finder;
  19. // Include PhpSpreadsheet required namespaces
  20. use Symfony\Component\HttpFoundation\ResponseHeaderBag;
  21. use PhpOffice\PhpSpreadsheet\Spreadsheet;
  22. use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
  23. use \PHPExcel_Style_Fill;
  24. class PdfOutputController extends AbstractController
  25. {
  26.     #[Route('/tousPdf'name'tous_pdf')]
  27.     public function tousPdf(Request $requestEtrRepository $etrRepositoryInterventionSavRepository $interventionSavRepository): Response
  28.     {
  29.         $img    "/assets/media/logos/logo.png";
  30.         $mois   = (int)$request->get("mois");
  31.         $annee  = (int)$request->get("annee");
  32.         $etr    = (int)$request->get("etr");
  33.         $dateCommande $request->get("dateCommande");
  34.         $etrObj $etrRepository->findOneBy(['id' => $etr]);
  35.         $dateCommande \DateTime::createFromFormat('d.m.Y',  $dateCommande)->format('d/m/Y');
  36.         $files =  glob($this->getParameter('kernel.project_dir') . '/public/exportation/*');
  37.         foreach ($files as $file)
  38.             if (is_file($file)) unlink($file);
  39.         if ($request->get("bonDeCommande")) {
  40.             $pdfOptions = new Options();
  41.             $pdfOptions->set('defaultFont''sans serif');
  42.             $dompdf = new Dompdf($pdfOptions);
  43.             $calculeBdc $interventionSavRepository->findByMontantSav($mois$annee$etr);
  44.             $html $this->renderView('pdf_output/bdc.html.twig', [
  45.                 'mois' => $mois,
  46.                 'annee' => $annee,
  47.                 'etr' => $etrObj,
  48.                 'calculeBdc' => $calculeBdc,
  49.                 'dateCommande' => $dateCommande
  50.             ]);
  51.             $fileName "SH" $mois $annee "-" substr($etrObj->getraisonSociale(), 03) . $mois "SAV";
  52.             $path $this->getParameter('kernel.project_dir') . '/public/exportation/';
  53.             if (!file_exists($path)) {
  54.                 mkdir($path0777true);
  55.             }
  56.             $dompdf->loadHtml($html);
  57.             $dompdf->setPaper('A4''portrait');
  58.             $dompdf->render();
  59.             $output $dompdf->output();
  60.             $publicDirectory $path;
  61.             $pdfFilepath =  $publicDirectory '/' preg_replace('/[^A-Za-z0-9\-]/'''$fileName) . '.pdf';
  62.             file_put_contents($pdfFilepath$output);
  63.         }
  64.         if ($request->get("listeDesInteventions")) {
  65.             $interventionSav $interventionSavRepository->findByAttachementsDetaillesJoints($mois$annee$etr);
  66.             $spreadsheet = new Spreadsheet();
  67.             $interventionSav $interventionSavRepository->findByAttachementsDetaillesJoints($mois$annee$etr);
  68.             $sheet $spreadsheet->getActiveSheet();
  69.             $sheet->setCellValue('A1''Commande Achat N° : ' "SH" $mois $annee "-" substr($etrObj->getraisonSociale(), 03) . $mois "SAV");
  70.             $sheet->setCellValue('A2''N° Réf Fournisseur : ' substr($etrObj->getRaisonSociale(), 03) . "-SAV");
  71.             $sheet->setCellValue('A3''Date Commande : ' $dateCommande);
  72.             $sheet->setCellValue('A5''Adresse Facturation :');
  73.             $sheet->setCellValue('A6''SH.COM');
  74.             $sheet->setCellValue('A7''78711 MANTES LA VILLE');
  75.             $sheet->setCellValue('A8''2 ALLEE DE CHANTEREINE');
  76.             $sheet->setCellValue('A9''Tél : 01.75.74.90.16');
  77.             $sheet->setCellValue('A10''Siret 84843876800022');
  78.             $sheet->setCellValue('F5''Adresse Fournisseur :');
  79.             $sheet->setCellValue('F6'$etrObj->getRaisonSociale());
  80.             $sheet->setCellValue('F7'$etrObj->getAdresse());
  81.             $sheet->setCellValue('F8'$etrObj->getVoie());
  82.             $sheet->setCellValue('F9'$etrObj->getSiret());
  83.             $spreadsheet->getActiveSheet()->getStyle('A1')->getFill()->getStartColor()->setARGB('FF4F81BD');
  84.             $spreadsheet->getActiveSheet()->getStyle('A2')->getFill()->getStartColor()->setARGB('FF4F81BD');
  85.             $spreadsheet->getActiveSheet()->getStyle('A3')->getFill()->getStartColor()->setARGB('FF4F81BD');
  86.             $spreadsheet->getActiveSheet()->getStyle('A5')->getFill()->getStartColor()->setARGB('FF4F81BD');
  87.             $spreadsheet->getActiveSheet()->getStyle('A6')->getFill()->getStartColor()->setARGB('FF4F81BD');
  88.             $spreadsheet->getActiveSheet()->getStyle('A7')->getFill()->getStartColor()->setARGB('FF4F81BD');
  89.             $spreadsheet->getActiveSheet()->getStyle('A8')->getFill()->getStartColor()->setARGB('FF4F81BD');
  90.             $spreadsheet->getActiveSheet()->getStyle('A9')->getFill()->getStartColor()->setARGB('FF4F81BD');
  91.             $spreadsheet->getActiveSheet()->getStyle('F5')->getFill()->getStartColor()->setARGB('FF4F81BD');
  92.             $spreadsheet->getActiveSheet()->getStyle('F6')->getFill()->getStartColor()->setARGB('FF4F81BD');
  93.             $spreadsheet->getActiveSheet()->getStyle('F7')->getFill()->getStartColor()->setARGB('FF4F81BD');
  94.             $spreadsheet->getActiveSheet()->getStyle('F8')->getFill()->getStartColor()->setARGB('FF4F81BD');
  95.             $spreadsheet->getActiveSheet()->getStyle('F9')->getFill()->getStartColor()->setARGB('FF4F81BD');
  96.             $spreadsheet->getActiveSheet()->getStyle('A1')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  97.             $spreadsheet->getActiveSheet()->getStyle('A2')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  98.             $spreadsheet->getActiveSheet()->getStyle('A3')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  99.             $spreadsheet->getActiveSheet()->getStyle('A5')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  100.             $spreadsheet->getActiveSheet()->getStyle('A6')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  101.             $spreadsheet->getActiveSheet()->getStyle('A7')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  102.             $spreadsheet->getActiveSheet()->getStyle('A8')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  103.             $spreadsheet->getActiveSheet()->getStyle('A9')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  104.             $spreadsheet->getActiveSheet()->getStyle('F5')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  105.             $spreadsheet->getActiveSheet()->getStyle('F6')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  106.             $spreadsheet->getActiveSheet()->getStyle('F7')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  107.             $spreadsheet->getActiveSheet()->getStyle('F8')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  108.             $spreadsheet->getActiveSheet()->getStyle('F9')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  109.             $sheet->setTitle("Liste des interventions");
  110.             $sheet->setCellValue('A11''InterventionID');
  111.             $sheet->setCellValue('B11''dpt');
  112.             $sheet->setCellValue('C11''NRO');
  113.             $sheet->setCellValue('D11''jeton');
  114.             $sheet->setCellValue('E11''etat');
  115.             $sheet->setCellValue('F11''RDV');
  116.             $sheet->setCellValue('G11''type');
  117.             $sheet->setCellValue('H11''date');
  118.             $sheet->setCellValue('I11''TechIdent');
  119.             $sheet->setCellValue('J11''BoiteIdent');
  120.             $sheet->setCellValue('K11''Entit');
  121.             $sheet->setCellValue('L11''Zone');
  122.             $sheet->setCellValue('M11''type');
  123.             $sheet->setCellValue('N11''Article');
  124.             $sheet->setCellValue('O11''Pu');
  125.             $sheet->setCellValue('P11''Qte');
  126.             $sheet->setCellValue('Q11''Montant');
  127.             $sheet->fromArray($interventionSavNULL'A12');
  128.             $writer = new Xlsx($spreadsheet);
  129.             $publicDirectory $this->getParameter('kernel.project_dir') . '/public/exportation';
  130.             $fileName "SH" $mois $annee "-" substr($etrObj->getraisonSociale(), 03) . $mois "SAV_liste_des_interventions.xlsx";
  131.             $excelFilepath =  $publicDirectory '/' $fileName;
  132.             $writer->save($excelFilepath);
  133.         }
  134.         if ($request->get("syntheseDesInteventions")) {
  135.             $pdfOptions = new Options();
  136.             $pdfOptions->set('defaultFont''sans serif');
  137.             $dompdf = new Dompdf($pdfOptions);
  138.             $calculeBdc $interventionSavRepository->findByMontantSav($mois$annee$etr);
  139.             $suiviBdc  $interventionSavRepository->findBySuiviBdcSst($mois$annee$etr);
  140.             $suiviBdcTotal $interventionSavRepository->findBySuiviBdcTotal($mois$annee$etr);
  141.             $html $this->renderView('pdf_output/synthese_des_interventions.html.twig', [
  142.                 'suiviBdc' => $suiviBdc,
  143.                 'suiviBdcTotal' => $suiviBdcTotal,
  144.                 'mois' => $mois,
  145.                 'annee' => $annee,
  146.                 'etr' => $etrObj,
  147.                 'calculeBdc' => $calculeBdc,
  148.                 'dateCommande' => $dateCommande
  149.             ]);
  150.             $fileName "SH" $mois $annee "-" substr($etrObj->getraisonSociale(), 03) . $mois "SAV_synthese_des_interventions";
  151.             $path "SH" $mois $annee "-" substr($etrObj->getraisonSociale(), 03) . $mois "SAV";
  152.             $path $this->getParameter('kernel.project_dir') . '/public/exportation/';
  153.             if (!file_exists($path)) {
  154.                 mkdir($path0777true);
  155.             }
  156.             $dompdf->loadHtml($html);
  157.             $dompdf->setPaper('A4''landscape');
  158.             $dompdf->render();
  159.             $output $dompdf->output();
  160.             $publicDirectory $path;
  161.             $pdfFilepath =  $publicDirectory '/' preg_replace('/[^A-Za-z0-9\-]/'''$fileName) . '.pdf';
  162.             file_put_contents($pdfFilepath$output);
  163.             unset($files$pdfOptions$dompdf$html$fileName$path$output$pdfFilepath);
  164.         }
  165.         //die();
  166.         $zip = new ZipArchive();
  167.         $finder = new Finder();
  168.         $finder->files()->in($publicDirectory);
  169.         $zipName "SH" $mois $annee "-" substr($etrObj->getraisonSociale(), 03) . $mois "SAV.zip";
  170.         $zipName $this->getParameter('kernel.project_dir') . '/public/exportation/' $zipName;
  171.         foreach ($finder as $file) {
  172.             if ($zip->open($zipName\ZipArchive::CREATE) !== true) {
  173.                 throw new FileException('Zip file could not be created/opened.');
  174.             }
  175.             $zip->addFile($file->getRealpath(), basename($file->getRealpath()));
  176.             if (!$zip->close()) {
  177.                 throw new FileException('Zip file could not be closed.');
  178.             }
  179.         }
  180.         unset($zip$finder);
  181.         return $this->file($zipName);
  182.     }
  183.     public function modalGestionDesOutputs()
  184.     {
  185.         return $this->render('pdf_output/modal_gestion_des_outputs.html.twig');
  186.     }
  187.     public function modalGestionDesOutputsProd()
  188.     {
  189.         return $this->render('pdf_output_prod/modal_gestion_des_outputs.html.twig');
  190.     }
  191.     #[Route('/GestionDesOutputs'name'Gestion_des_outputs'methods: ['POST'"GET"])]
  192.     public function GestionDesOutputs(Request $requestInterventionSavRepository $interventionSavRepositoryEtrMoisRepository $etrMoisRepository): Response
  193.     {
  194.         $img    "/assets/media/logos/logo.png";
  195.         $mois   = (int)$request->get("mois");
  196.         $annee  = (int)$request->get("annee");
  197.         $dateCommande $request->get("dateCommande");
  198.         //$dateCommande = \DateTime::createFromFormat('d.m.Y',  $dateCommande)->format('d/m/Y');
  199.         $etrsMois $etrMoisRepository->findEntrepriseByDate($mois$annee);
  200.         $files =  glob($this->getParameter('kernel.project_dir') . '/public/exportation/*');
  201.         foreach ($files as $file)
  202.             if (is_file($file)) unlink($file);
  203.         foreach ($etrsMois as $etrItem) {
  204.             $etr    $etrItem->getEtr()->getId();
  205.             $etrObj $etrItem->getEtr();
  206.             if ($request->get("bonDeCommande")) {
  207.                 $pdfOptions = new Options();
  208.                 $pdfOptions->set('defaultFont''sans serif');
  209.                 $dompdf = new Dompdf($pdfOptions);
  210.                 $calculeBdc $interventionSavRepository->findByMontantSav($mois$annee$etr);
  211.                 $html $this->renderView('pdf_output/bdc.html.twig', [
  212.                     'mois' => $mois,
  213.                     'annee' => $annee,
  214.                     'etr' => $etrObj,
  215.                     'calculeBdc' => $calculeBdc,
  216.                     'dateCommande' => $dateCommande
  217.                 ]);
  218.                 $fileName "SH" $mois $annee "-" substr($etrObj->getraisonSociale(), 03) . $mois "SAV";
  219.                 $path $this->getParameter('kernel.project_dir') . '/public/exportation/';
  220.                 if (!file_exists($path)) {
  221.                     mkdir($path0777true);
  222.                 }
  223.                 $dompdf->loadHtml($html);
  224.                 $dompdf->setPaper('A4''portrait');
  225.                 $dompdf->render();
  226.                 $output $dompdf->output();
  227.                 $publicDirectory $path;
  228.                 $pdfFilepath =  $publicDirectory '/' preg_replace('/[^A-Za-z0-9\-]/'''$fileName) . '.pdf';
  229.                 file_put_contents($pdfFilepath$output);
  230.             }
  231.             if ($request->get("listeDesInteventions")) {
  232.                 $interventionSav $interventionSavRepository->findByAttachementsDetaillesJoints($mois$annee$etr);
  233.                 $spreadsheet = new Spreadsheet();
  234.                 $interventionSav $interventionSavRepository->findByAttachementsDetaillesJoints($mois$annee$etr);
  235.                 $sheet $spreadsheet->getActiveSheet();
  236.                 $sheet->setCellValue('A1''Commande Achat N° : ' "SH" $mois $annee "-" substr($etrObj->getraisonSociale(), 03) . $mois "SAV");
  237.                 $sheet->setCellValue('A2''N° Réf Fournisseur : ' substr($etrObj->getRaisonSociale(), 03) . "-SAV");
  238.                 $sheet->setCellValue('A3''Date Commande : ' $dateCommande);
  239.                 $sheet->setCellValue('A5''Adresse Facturation :');
  240.                 $sheet->setCellValue('A6''SH.COM');
  241.                 $sheet->setCellValue('A7''78711 MANTES LA VILLE');
  242.                 $sheet->setCellValue('A8''2 ALLEE DE CHANTEREINE');
  243.                 $sheet->setCellValue('A9''Tél : 01.75.74.90.16');
  244.                 $sheet->setCellValue('A10''Siret 84843876800022');
  245.                 $sheet->setCellValue('F5''Adresse Fournisseur :');
  246.                 $sheet->setCellValue('F6'$etrObj->getRaisonSociale());
  247.                 $sheet->setCellValue('F7'$etrObj->getAdresse());
  248.                 $sheet->setCellValue('F8'$etrObj->getVoie());
  249.                 $sheet->setCellValue('F9'$etrObj->getSiret());
  250.                 $spreadsheet->getActiveSheet()->getStyle('A1')->getFill()->getStartColor()->setARGB('FF4F81BD');
  251.                 $spreadsheet->getActiveSheet()->getStyle('A2')->getFill()->getStartColor()->setARGB('FF4F81BD');
  252.                 $spreadsheet->getActiveSheet()->getStyle('A3')->getFill()->getStartColor()->setARGB('FF4F81BD');
  253.                 $spreadsheet->getActiveSheet()->getStyle('A5')->getFill()->getStartColor()->setARGB('FF4F81BD');
  254.                 $spreadsheet->getActiveSheet()->getStyle('A6')->getFill()->getStartColor()->setARGB('FF4F81BD');
  255.                 $spreadsheet->getActiveSheet()->getStyle('A7')->getFill()->getStartColor()->setARGB('FF4F81BD');
  256.                 $spreadsheet->getActiveSheet()->getStyle('A8')->getFill()->getStartColor()->setARGB('FF4F81BD');
  257.                 $spreadsheet->getActiveSheet()->getStyle('A9')->getFill()->getStartColor()->setARGB('FF4F81BD');
  258.                 $spreadsheet->getActiveSheet()->getStyle('F5')->getFill()->getStartColor()->setARGB('FF4F81BD');
  259.                 $spreadsheet->getActiveSheet()->getStyle('F6')->getFill()->getStartColor()->setARGB('FF4F81BD');
  260.                 $spreadsheet->getActiveSheet()->getStyle('F7')->getFill()->getStartColor()->setARGB('FF4F81BD');
  261.                 $spreadsheet->getActiveSheet()->getStyle('F8')->getFill()->getStartColor()->setARGB('FF4F81BD');
  262.                 $spreadsheet->getActiveSheet()->getStyle('F9')->getFill()->getStartColor()->setARGB('FF4F81BD');
  263.                 $spreadsheet->getActiveSheet()->getStyle('A1')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  264.                 $spreadsheet->getActiveSheet()->getStyle('A2')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  265.                 $spreadsheet->getActiveSheet()->getStyle('A3')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  266.                 $spreadsheet->getActiveSheet()->getStyle('A5')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  267.                 $spreadsheet->getActiveSheet()->getStyle('A6')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  268.                 $spreadsheet->getActiveSheet()->getStyle('A7')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  269.                 $spreadsheet->getActiveSheet()->getStyle('A8')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  270.                 $spreadsheet->getActiveSheet()->getStyle('A9')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  271.                 $spreadsheet->getActiveSheet()->getStyle('F5')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  272.                 $spreadsheet->getActiveSheet()->getStyle('F6')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  273.                 $spreadsheet->getActiveSheet()->getStyle('F7')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  274.                 $spreadsheet->getActiveSheet()->getStyle('F8')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  275.                 $spreadsheet->getActiveSheet()->getStyle('F9')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  276.                 $sheet->setTitle("Liste des interventions");
  277.                 $sheet->setCellValue('A11''InterventionID');
  278.                 $sheet->setCellValue('B11''dpt');
  279.                 $sheet->setCellValue('C11''NRO');
  280.                 $sheet->setCellValue('D11''jeton');
  281.                 $sheet->setCellValue('E11''etat');
  282.                 $sheet->setCellValue('F11''RDV');
  283.                 $sheet->setCellValue('G11''type');
  284.                 $sheet->setCellValue('H11''date');
  285.                 $sheet->setCellValue('I11''TechIdent');
  286.                 $sheet->setCellValue('J11''BoiteIdent');
  287.                 $sheet->setCellValue('K11''Entit');
  288.                 $sheet->setCellValue('L11''Zone');
  289.                 $sheet->setCellValue('M11''type');
  290.                 $sheet->setCellValue('N11''Article');
  291.                 $sheet->setCellValue('O11''Pu');
  292.                 $sheet->setCellValue('P11''Qte');
  293.                 $sheet->setCellValue('Q11''Montant');
  294.                 $sheet->fromArray($interventionSavNULL'A12');
  295.                 $writer = new Xlsx($spreadsheet);
  296.                 $publicDirectory $this->getParameter('kernel.project_dir') . '/public/exportation';
  297.                 $fileName "SH" $mois $annee "-" substr($etrObj->getraisonSociale(), 03) . $mois "SAV_liste_des_interventions.xlsx";
  298.                 $excelFilepath =  $publicDirectory '/' $fileName;
  299.                 $writer->save($excelFilepath);
  300.             }
  301.             if ($request->get("syntheseDesInteventions")) {
  302.                 $pdfOptions = new Options();
  303.                 $pdfOptions->set('defaultFont''sans serif');
  304.                 $dompdf = new Dompdf($pdfOptions);
  305.                 $calculeBdc $interventionSavRepository->findByMontantSav($mois$annee$etr);
  306.                 $suiviBdc  $interventionSavRepository->findBySuiviBdcSst($mois$annee$etr);
  307.                 $suiviBdcTotal $interventionSavRepository->findBySuiviBdcTotal($mois$annee$etr);
  308.                 $html $this->renderView('pdf_output/synthese_des_interventions.html.twig', [
  309.                     'suiviBdc' => $suiviBdc,
  310.                     'suiviBdcTotal' => $suiviBdcTotal,
  311.                     'mois' => $mois,
  312.                     'annee' => $annee,
  313.                     'etr' => $etrObj,
  314.                     'calculeBdc' => $calculeBdc,
  315.                     'dateCommande' => $dateCommande
  316.                 ]);
  317.                 $fileName "SH" $mois $annee "-" substr($etrObj->getraisonSociale(), 03) . $mois "SAV_synthese_des_interventions";
  318.                 $path "SH" $mois $annee "-" substr($etrObj->getraisonSociale(), 03) . $mois "SAV";
  319.                 $path $this->getParameter('kernel.project_dir') . '/public/exportation/';
  320.                 if (!file_exists($path)) {
  321.                     mkdir($path0777true);
  322.                 }
  323.                 $dompdf->loadHtml($html);
  324.                 $dompdf->setPaper('A4''landscape');
  325.                 $dompdf->render();
  326.                 $output $dompdf->output();
  327.                 $publicDirectory $path;
  328.                 $pdfFilepath =  $publicDirectory '/' preg_replace('/[^A-Za-z0-9\-]/'''$fileName) . '.pdf';
  329.                 file_put_contents($pdfFilepath$output);
  330.             }
  331.         }
  332.         $zip = new ZipArchive();
  333.         $finder = new Finder();
  334.         $finder->files()->in($publicDirectory);
  335.         $zipName "SH" $mois $annee "-" substr($etrObj->getraisonSociale(), 03) . $mois "SAV.zip";
  336.         $zipName $this->getParameter('kernel.project_dir') . '/public/exportation/' $zipName;
  337.         foreach ($finder as $file) {
  338.             if ($zip->open($zipName\ZipArchive::CREATE) !== true) {
  339.                 throw new FileException('Zip file could not be created/opened.');
  340.             }
  341.             $zip->addFile($file->getRealpath(), basename($file->getRealpath()));
  342.             if (!$zip->close()) {
  343.                 throw new FileException('Zip file could not be closed.');
  344.             }
  345.         }
  346.         return $this->file($zipName);
  347.     }
  348.     #[Route('/GestionDesOutputsProd'name'Gestion_des_outputs_prod'methods: ['POST'"GET"])]
  349.     public function GestionDesOutputsProd(Request $requestInterventionProductionRepository $interventionProductionRepositoryMoisEtrRepository $moisEtrRepositoryPenaliteRepository $penaliteRepository): Response
  350.     {
  351.         $mois   = (int)$request->get("mois");
  352.         $annee  = (int)$request->get("annee");
  353.         $dateCommande $request->get("dateCommande");
  354.         $etrsMois $moisEtrRepository->findEntrepriseByDate($mois$annee);
  355.         $publicDirectory $this->getParameter('kernel.project_dir') . '/public/exportation';
  356.         $files =  glob($this->getParameter('kernel.project_dir') . '/public/exportation/*');
  357.         foreach ($files as $file)
  358.             if (is_file($file)) unlink($file);
  359.         foreach ($etrsMois as $etrItem) {
  360.             $etr    $etrItem->getEtrProd()->getId();
  361.             $etrObj $etrItem->getEtrProd();
  362.             if ($request->get("bonDeCommande")) {
  363.                 $pdfOptions = new Options();
  364.                 $pdfOptions->set('defaultFont''sans serif');
  365.                 $dompdf = new Dompdf($pdfOptions);
  366.                 if ($etrObj->getSociete()) {
  367.                     $imagedata file_get_contents($etrObj->getSociete()->getIcon());
  368.                     $base64 base64_encode($imagedata);
  369.                 }
  370.                 $calculeBdc $interventionProductionRepository->findByMontantProd($mois$annee$etr);
  371.                 $moisString "";
  372.                 if ($mois >= && $mois <= 9$moisString "0" $mois;
  373.                 else $moisString =  $mois;
  374.                 $penalites $penaliteRepository->findBy(["etrProd" => $etrObj"mois" => $moisString"annee" => $annee]);
  375.                 $montantPenaliteTotal 0;
  376.                 // dd($calculeBdc);
  377.                 foreach ($penalites as $p) {
  378.                     $montantPenaliteTotal += $p->getPenalite();
  379.                 }
  380.                 $html $this->renderView('pdf_output_prod/bdc.html.twig', [
  381.                     'mois' => $mois,
  382.                     'annee' => $annee,
  383.                     'etr' => $etrObj,
  384.                     'calculeBdc' => $calculeBdc,
  385.                     'penalites' => $montantPenaliteTotal,
  386.                     'dateCommande' => $dateCommande,
  387.                     'base64' => $base64
  388.                 ]);
  389.                 $fileName "PROD" $mois $annee "-" substr($etrObj->getraisonSociale(), 03) . $mois "PROD";
  390.                 $path $this->getParameter('kernel.project_dir') . '/public/exportation/';
  391.                 if (!file_exists($path)) {
  392.                     mkdir($path0777true);
  393.                 }
  394.                 $dompdf->loadHtml($html);
  395.                 $dompdf->setPaper('A4''portrait');
  396.                 $dompdf->render();
  397.                 $output $dompdf->output();
  398.                 $publicDirectory $path;
  399.                 $pdfFilepath =  $publicDirectory '/' preg_replace('/[^A-Za-z0-9\-]/'''$fileName) . '.pdf';
  400.                 file_put_contents($pdfFilepath$output);
  401.             }
  402.             if ($request->get("listeDesInteventions")) {
  403.                 $interventionProd $interventionProductionRepository->findByAttachementsDetaillesJoints($mois$annee$etr);
  404.                 $spreadsheet = new Spreadsheet();
  405.                 $sheet $spreadsheet->getActiveSheet();
  406.                 $sheet->setCellValue('A1''Commande Achat N° : ' .  substr($etrObj->getSociete()->getraisonSociale(), 02) .  $mois $annee "-" substr($etrObj->getraisonSociale(), 03) . $mois);
  407.                 $sheet->setCellValue('A2''N° Réf Fournisseur : ' substr($etrObj->getRaisonSociale(), 03) . "-FTH");
  408.                 $sheet->setCellValue('A3''Date Commande : ' $dateCommande);
  409.                 $sheet->setCellValue('A5''Adresse Facturation :');
  410.                 $sheet->setCellValue('A6'$etrObj->getSociete()->getraisonSociale());
  411.                 $sheet->setCellValue('A7'$etrObj->getSociete()->getvoie());
  412.                 $sheet->setCellValue('A8'$etrObj->getSociete()->getadresse());
  413.                 if($etrObj->getSociete()->getraisonSociale()=='BTELECOM'){
  414.                     $sheet->setCellValue('A9''Siret 53051610300021');
  415.                 }
  416.                 
  417.                 $sheet->setCellValue('F5''Adresse Fournisseur :');
  418.                 $sheet->setCellValue('F6'$etrObj->getRaisonSociale());
  419.                 $sheet->setCellValue('F7'$etrObj->getAdresse());
  420.                 $sheet->setCellValue('F8'$etrObj->getVoie());
  421.                 $sheet->setCellValue('F9'$etrObj->getSiret());
  422.                 $spreadsheet->getActiveSheet()->getStyle('A1')->getFill()->getStartColor()->setARGB('FF4F81BD');
  423.                 $spreadsheet->getActiveSheet()->getStyle('A2')->getFill()->getStartColor()->setARGB('FF4F81BD');
  424.                 $spreadsheet->getActiveSheet()->getStyle('A3')->getFill()->getStartColor()->setARGB('FF4F81BD');
  425.                 $spreadsheet->getActiveSheet()->getStyle('A5')->getFill()->getStartColor()->setARGB('FF4F81BD');
  426.                 $spreadsheet->getActiveSheet()->getStyle('A6')->getFill()->getStartColor()->setARGB('FF4F81BD');
  427.                 $spreadsheet->getActiveSheet()->getStyle('A7')->getFill()->getStartColor()->setARGB('FF4F81BD');
  428.                 $spreadsheet->getActiveSheet()->getStyle('A8')->getFill()->getStartColor()->setARGB('FF4F81BD');
  429.                 $spreadsheet->getActiveSheet()->getStyle('A9')->getFill()->getStartColor()->setARGB('FF4F81BD');
  430.                 $spreadsheet->getActiveSheet()->getStyle('F5')->getFill()->getStartColor()->setARGB('FF4F81BD');
  431.                 $spreadsheet->getActiveSheet()->getStyle('F6')->getFill()->getStartColor()->setARGB('FF4F81BD');
  432.                 $spreadsheet->getActiveSheet()->getStyle('F7')->getFill()->getStartColor()->setARGB('FF4F81BD');
  433.                 $spreadsheet->getActiveSheet()->getStyle('F8')->getFill()->getStartColor()->setARGB('FF4F81BD');
  434.                 $spreadsheet->getActiveSheet()->getStyle('F9')->getFill()->getStartColor()->setARGB('FF4F81BD');
  435.                 $spreadsheet->getActiveSheet()->getStyle('A1')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  436.                 $spreadsheet->getActiveSheet()->getStyle('A2')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  437.                 $spreadsheet->getActiveSheet()->getStyle('A3')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  438.                 $spreadsheet->getActiveSheet()->getStyle('A5')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  439.                 $spreadsheet->getActiveSheet()->getStyle('A6')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  440.                 $spreadsheet->getActiveSheet()->getStyle('A7')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  441.                 $spreadsheet->getActiveSheet()->getStyle('A8')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  442.                 $spreadsheet->getActiveSheet()->getStyle('A9')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  443.                 $spreadsheet->getActiveSheet()->getStyle('F5')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  444.                 $spreadsheet->getActiveSheet()->getStyle('F6')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  445.                 $spreadsheet->getActiveSheet()->getStyle('F7')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  446.                 $spreadsheet->getActiveSheet()->getStyle('F8')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  447.                 $spreadsheet->getActiveSheet()->getStyle('F9')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  448.                 $sheet->setTitle("Liste des interventions");
  449.                 $sheet->setCellValue('A11''jeton_rc');
  450.                 $sheet->setCellValue('B11''code_du_departement_abonne');
  451.                 $sheet->setCellValue('C11''nom_du_departement_abonne');
  452.                 $sheet->setCellValue('D11''code_de_la_commune_abonne');
  453.                 $sheet->setCellValue('E11''nom_de_la_commune_abonne');
  454.                 $sheet->setCellValue('F11''zone');
  455.                 $sheet->setCellValue('G11''technologie');
  456.                 $sheet->setCellValue('H11''nom_du_nro');
  457.                 $sheet->setCellValue('I11''operateur_immeuble');
  458.                 $sheet->setCellValue('J11''type_de_pbo');
  459.                 $sheet->setCellValue('K11''type_de_pto');
  460.                 $sheet->setCellValue('L11''intevention_id');
  461.                 $sheet->setCellValue('M11''type_intervention');
  462.                 $sheet->setCellValue('N11''date_intervention');
  463.                 $sheet->setCellValue('O11''nom_du_prestataire');
  464.                 $sheet->setCellValue('P11''login_technicien');
  465.                 $sheet->setCellValue('Q11''tech_id');
  466.                 $sheet->setCellValue('R11''code_du_debriefing');
  467.                 $sheet->setCellValue('S11''libelle_du_debriefing');
  468.                 $sheet->setCellValue('T11''reference_de_article');
  469.                 $sheet->setCellValue('U11''pu');
  470.                 $sheet->setCellValue('V11''qte');
  471.                 $sheet->setCellValue('W11''montant');
  472.                 $sheet->setCellValue('X11''commentaire');
  473.                 $sheet->setCellValue('Y11''raison_sociale');
  474.                 $sheet->setCellValue('Z11''article_etr');
  475.                 //$sheet->setCellValue('AA11', 'ecart');
  476.                 $sheet->setCellValue('AA11''pv_type');
  477.                 $sheet->fromArray($interventionProdNULL'A12');
  478.                 $writer = new Xlsx($spreadsheet);
  479.                 $publicDirectory $this->getParameter('kernel.project_dir') . '/public/exportation';
  480.                 $fileName "PROD" $mois $annee "-" substr($etrObj->getraisonSociale(), 03) . $mois "PROD_liste_des_interventions.xlsx";
  481.                 $excelFilepath =  $publicDirectory '/' $fileName;
  482.                 $writer->save($excelFilepath);
  483.             }
  484.             if ($request->get("penalites")) {
  485.                 $spreadsheet = new Spreadsheet();
  486.                 $sheet $spreadsheet->getActiveSheet();
  487.                 $sheet->setCellValue('A1''Commande Achat N° : ' .  substr($etrObj->getSociete()->getraisonSociale(), 02) .  $mois $annee "-" substr($etrObj->getraisonSociale(), 03) . $mois);
  488.                 $sheet->setCellValue('A2''N° Réf Fournisseur : ' substr($etrObj->getRaisonSociale(), 03) . "-FTH");
  489.                 $sheet->setCellValue('A3''Date Commande : ' $dateCommande);
  490.                 $sheet->setCellValue('A5''Adresse Facturation :');
  491.                 $sheet->setCellValue('A6'$etrObj->getSociete()->getraisonSociale());
  492.                 $sheet->setCellValue('A7'$etrObj->getSociete()->getvoie());
  493.                 $sheet->setCellValue('A8'$etrObj->getSociete()->getadresse());
  494.                 if($etrObj->getSociete()->getraisonSociale()=='BTELECOM'){
  495.                     $sheet->setCellValue('A9''Siret 53051610300021');
  496.                 }
  497.                 $sheet->setCellValue('F5''Adresse Fournisseur :');
  498.                 $sheet->setCellValue('F6'$etrObj->getRaisonSociale());
  499.                 $sheet->setCellValue('F7'$etrObj->getAdresse());
  500.                 $sheet->setCellValue('F8'$etrObj->getVoie());
  501.                 $sheet->setCellValue('F9'$etrObj->getSiret());
  502.                 $spreadsheet->getActiveSheet()->getStyle('A1')->getFill()->getStartColor()->setARGB('FF4F81BD');
  503.                 $spreadsheet->getActiveSheet()->getStyle('A2')->getFill()->getStartColor()->setARGB('FF4F81BD');
  504.                 $spreadsheet->getActiveSheet()->getStyle('A3')->getFill()->getStartColor()->setARGB('FF4F81BD');
  505.                 $spreadsheet->getActiveSheet()->getStyle('A5')->getFill()->getStartColor()->setARGB('FF4F81BD');
  506.                 $spreadsheet->getActiveSheet()->getStyle('A6')->getFill()->getStartColor()->setARGB('FF4F81BD');
  507.                 $spreadsheet->getActiveSheet()->getStyle('A7')->getFill()->getStartColor()->setARGB('FF4F81BD');
  508.                 $spreadsheet->getActiveSheet()->getStyle('A8')->getFill()->getStartColor()->setARGB('FF4F81BD');
  509.                 $spreadsheet->getActiveSheet()->getStyle('A9')->getFill()->getStartColor()->setARGB('FF4F81BD');
  510.                 $spreadsheet->getActiveSheet()->getStyle('F5')->getFill()->getStartColor()->setARGB('FF4F81BD');
  511.                 $spreadsheet->getActiveSheet()->getStyle('F6')->getFill()->getStartColor()->setARGB('FF4F81BD');
  512.                 $spreadsheet->getActiveSheet()->getStyle('F7')->getFill()->getStartColor()->setARGB('FF4F81BD');
  513.                 $spreadsheet->getActiveSheet()->getStyle('F8')->getFill()->getStartColor()->setARGB('FF4F81BD');
  514.                 $spreadsheet->getActiveSheet()->getStyle('F9')->getFill()->getStartColor()->setARGB('FF4F81BD');
  515.                 $spreadsheet->getActiveSheet()->getStyle('A1')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  516.                 $spreadsheet->getActiveSheet()->getStyle('A2')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  517.                 $spreadsheet->getActiveSheet()->getStyle('A3')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  518.                 $spreadsheet->getActiveSheet()->getStyle('A5')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  519.                 $spreadsheet->getActiveSheet()->getStyle('A6')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  520.                 $spreadsheet->getActiveSheet()->getStyle('A7')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  521.                 $spreadsheet->getActiveSheet()->getStyle('A8')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  522.                 $spreadsheet->getActiveSheet()->getStyle('A9')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  523.                 $spreadsheet->getActiveSheet()->getStyle('F5')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  524.                 $spreadsheet->getActiveSheet()->getStyle('F6')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  525.                 $spreadsheet->getActiveSheet()->getStyle('F7')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  526.                 $spreadsheet->getActiveSheet()->getStyle('F8')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  527.                 $spreadsheet->getActiveSheet()->getStyle('F9')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  528.                 $sheet->setTitle("Liste des penalités");
  529.                 $sheet->setCellValue('A11''login_Technicien');
  530.                 $sheet->setCellValue('B11''Technicien');
  531.                 $sheet->setCellValue('C11''RC');
  532.                 $sheet->setCellValue('D11''Anomalie');
  533.                 $sheet->setCellValue('E11''Date rdv');
  534.                 $sheet->setCellValue('F11''Penalité');
  535.                 $sheet->setCellValue('G11''Mois');
  536.                 $sheet->setCellValue('H11''Année');
  537.                 $penalites $penaliteRepository->findByCretiriaPenalites($mois$annee$etrObj->getId());
  538.                 $sheet->fromArray($penalitesNULL'A12');
  539.                 $writer = new Xlsx($spreadsheet);
  540.                 $publicDirectory $this->getParameter('kernel.project_dir') . '/public/exportation';
  541.                 $fileName "PROD" $mois $annee "-" substr($etrObj->getraisonSociale(), 03) . $mois "PROD_liste_des_penalités.xlsx";
  542.                 $excelFilepath =  $publicDirectory '/' $fileName;
  543.                 $writer->save($excelFilepath);
  544.             }
  545.             //prod
  546.             if ($request->get("syntheseDesInteventions")) {
  547.                 $pdfOptions = new Options();
  548.                 $pdfOptions->set('defaultFont''sans serif');
  549.                 $dompdf = new Dompdf($pdfOptions);
  550.                 $suiviBdc  $interventionProductionRepository->findBySuiviBdcProd($mois$annee$etr);
  551.                 if ($etrObj->getSociete()) {
  552.                     $imagedata file_get_contents($etrObj->getSociete()->getIcon());
  553.                     $base64 base64_encode($imagedata);
  554.                 }
  555.                 $html $this->renderView('pdf_output_prod/synthese_des_interventions.html.twig', [
  556.                     'suiviBdc' => $suiviBdc,
  557.                     'mois' => $mois,
  558.                     'annee' => $annee,
  559.                     'etr' => $etrObj,
  560.                     'base64' => $base64,
  561.                     'dateCommande' => $dateCommande
  562.                 ]);
  563.                 $fileName "PROD" $mois $annee "-" substr($etrObj->getraisonSociale(), 03) . $mois "PROD_synthese_des_interventions";
  564.                 $path "PROD" $mois $annee "-" substr($etrObj->getraisonSociale(), 03) . $mois "PROD";
  565.                 $path $this->getParameter('kernel.project_dir') . '/public/exportation/';
  566.                 if (!file_exists($path)) {
  567.                     mkdir($path0777true);
  568.                 }
  569.                 $dompdf->loadHtml($html);
  570.                 $dompdf->setPaper('A4''landscape');
  571.                 $dompdf->render();
  572.                 $output $dompdf->output();
  573.                 $publicDirectory $path;
  574.                 $pdfFilepath =  $publicDirectory '/' preg_replace('/[^A-Za-z0-9\-]/'''$fileName) . '.pdf';
  575.                 file_put_contents($pdfFilepath$output);
  576.                 unset($files$pdfOptions$dompdf$html$fileName$path$output$pdfFilepath);
  577.             }
  578.         }
  579.         $zip = new ZipArchive();
  580.         $finder = new Finder();
  581.         $finder->files()->in($publicDirectory);
  582.         $zipName "SH" $mois $annee "-" substr($etrObj->getraisonSociale(), 03) . $mois "PROD.zip";
  583.         $zipName $this->getParameter('kernel.project_dir') . '/public/exportation/' $zipName;
  584.         foreach ($finder as $file) {
  585.             if ($zip->open($zipName\ZipArchive::CREATE) !== true) {
  586.                 throw new FileException('Zip file could not be created/opened.');
  587.             }
  588.             $zip->addFile($file->getRealpath(), basename($file->getRealpath()));
  589.             if (!$zip->close()) {
  590.                 throw new FileException('Zip file could not be closed.');
  591.             }
  592.         }
  593.         unset($zip$finder);
  594.         return $this->file($zipName);
  595.     }
  596.     function rrmdir($dir)
  597.     {
  598.         if (is_dir($dir))
  599.         {
  600.         $objects scandir($dir);
  601.         foreach ($objects as $object)
  602.         {
  603.         if ($object != '.' && $object != '..')
  604.         {
  605.             if (filetype($dir.'/'.$object) == 'dir') {$this->rrmdir($dir.'/'.$object);}
  606.             else {unlink($dir.'/'.$object);}
  607.         }
  608.         }
  609.         reset($objects);
  610.         rmdir($dir);
  611.         }
  612.     }
  613.     #[Route('/ram'name'ram')]
  614.     public function ar(){
  615.         $memory_limit ini_get('memory_limit');
  616.         if (preg_match('/^(\d+)(.)$/'$memory_limit$matches)) {
  617.             if ($matches[2] == 'M') {
  618.                 $memory_limit $matches[1] * 1024 1024// nnnM -> nnn MB
  619.             } else if ($matches[2] == 'K') {
  620.                 $memory_limit $matches[1] * 1024// nnnK -> nnn KB
  621.             }
  622.         }
  623.         $ok = ($memory_limit >= 64 1024 1024); // at least 64M?
  624.         echo '<phpmem>';
  625.         echo '<val>' $memory_limit '</val>';
  626.         echo '<ok>' . ($ok 0) . '</ok>';
  627.         echo '</phpmem>';
  628.         die();
  629.     } 
  630.     #[Route('/tousPdfProd'name'tous_pdf_prod')]
  631.     public function tousPdfProd(Request $requestEtrProdRepository $etrProdRepositoryInterventionProductionRepository $interventionProductionRepositoryPenaliteRepository $penaliteRepository): Response
  632.     {
  633.         //$this->rrmdir(dirname(__FILE__) . "/../../var");
  634.         $img    "/assets/media/logos/logo.png";
  635.         $mois   = (int)$request->get("mois");
  636.         $annee  = (int)$request->get("annee");
  637.         $etr    = (int)$request->get("etr");
  638.         $dateCommande $request->get("dateCommande");
  639.         $etrObj $etrProdRepository->findOneBy(['id' => $etr]);
  640.         $dateCommande \DateTime::createFromFormat('d.m.Y',  $dateCommande)->format('d/m/Y');
  641.         $base64 "";
  642.         if (is_null($etrObj->getSociete())) {
  643.             $imagedata file_get_contents($etrObj->getSociete()->getIcon());
  644.             $base64 base64_encode($imagedata);
  645.         }
  646.         $files =  glob($this->getParameter('kernel.project_dir') . '/public/exportation/*');
  647.         foreach ($files as $file)
  648.             if (is_file($file)) unlink($file);
  649.         if ($request->get("bonDeCommande")) {
  650.             $pdfOptions = new Options();
  651.             $pdfOptions->set('defaultFont''sans serif');
  652.             $dompdf = new Dompdf($pdfOptions);
  653.             $calculeBdc $interventionProductionRepository->findByMontantProd($mois$annee$etr);
  654.             $moisString "";
  655.             if ($mois >= && $mois <= 9$moisString "0" $mois;
  656.             else $moisString =  $mois;
  657.             $penalites $penaliteRepository->findBy(["etrProd" => $etrObj"mois" => $moisString"annee" => $annee]);
  658.             $montantPenaliteTotal 0;
  659.             foreach ($penalites as $p) {
  660.                 $montantPenaliteTotal += $p->getPenalite();
  661.             }
  662.             if ($etrObj->getSociete()) {
  663.                 $imagedata file_get_contents($etrObj->getSociete()->getIcon());
  664.                 $base64 base64_encode($imagedata);
  665.             }
  666.             $html $this->renderView('pdf_output_prod/bdc.html.twig', [
  667.                 'mois' => $mois,
  668.                 'annee' => $annee,
  669.                 'etr' => $etrObj,
  670.                 'calculeBdc' => $calculeBdc,
  671.                 'penalites' => $montantPenaliteTotal,
  672.                 'dateCommande' => $dateCommande,
  673.                 'base64' => $base64
  674.             ]);
  675.             $fileName "PROD" $mois $annee "-" substr($etrObj->getraisonSociale(), 03) . $mois "PROD";
  676.             $path $this->getParameter('kernel.project_dir') . '/public/exportation/';
  677.             if (!file_exists($path)) {
  678.                 mkdir($path0777true);
  679.             }
  680.             $dompdf->loadHtml($html);
  681.             $dompdf->setPaper('A4''portrait');
  682.             $dompdf->render();
  683.             $output $dompdf->output();
  684.             $publicDirectory $path;
  685.             $pdfFilepath =  $publicDirectory '/' preg_replace('/[^A-Za-z0-9\-]/'''$fileName) . '.pdf';
  686.             file_put_contents($pdfFilepath$output);
  687.         }
  688.         if ($request->get("listeDesInteventions")) {
  689.             $interventionProd $interventionProductionRepository->findByAttachementsDetaillesJoints($mois$annee$etr);
  690.             $spreadsheet = new Spreadsheet();
  691.             $sheet $spreadsheet->getActiveSheet();
  692.             $sheet->setCellValue('A1''Commande Achat N° : ' .  substr($etrObj->getSociete()->getraisonSociale(), 02) .  $mois $annee "-" substr($etrObj->getraisonSociale(), 03) . $mois);
  693.             $sheet->setCellValue('A2''N° Réf Fournisseur : ' substr($etrObj->getRaisonSociale(), 03) . "-FTH");
  694.             $sheet->setCellValue('A3''Date Commande : ' $dateCommande);
  695.             $sheet->setCellValue('A5''Adresse Facturation :');
  696.             $sheet->setCellValue('A6'$etrObj->getSociete()->getraisonSociale());
  697.             $sheet->setCellValue('A7'$etrObj->getSociete()->getvoie());
  698.             $sheet->setCellValue('A8'$etrObj->getSociete()->getadresse());
  699.             if($etrObj->getSociete()->getraisonSociale()=='BTELECOM'){
  700.                 $sheet->setCellValue('A9''Siret 53051610300021');
  701.             }
  702.             $sheet->setCellValue('F5''Adresse Fournisseur :');
  703.             $sheet->setCellValue('F6'$etrObj->getRaisonSociale());
  704.             $sheet->setCellValue('F7'$etrObj->getAdresse());
  705.             $sheet->setCellValue('F8'$etrObj->getVoie());
  706.             $sheet->setCellValue('F9'$etrObj->getSiret());
  707.             $spreadsheet->getActiveSheet()->getStyle('A1')->getFill()->getStartColor()->setARGB('FF4F81BD');
  708.             $spreadsheet->getActiveSheet()->getStyle('A2')->getFill()->getStartColor()->setARGB('FF4F81BD');
  709.             $spreadsheet->getActiveSheet()->getStyle('A3')->getFill()->getStartColor()->setARGB('FF4F81BD');
  710.             $spreadsheet->getActiveSheet()->getStyle('A5')->getFill()->getStartColor()->setARGB('FF4F81BD');
  711.             $spreadsheet->getActiveSheet()->getStyle('A6')->getFill()->getStartColor()->setARGB('FF4F81BD');
  712.             $spreadsheet->getActiveSheet()->getStyle('A7')->getFill()->getStartColor()->setARGB('FF4F81BD');
  713.             $spreadsheet->getActiveSheet()->getStyle('A8')->getFill()->getStartColor()->setARGB('FF4F81BD');
  714.             $spreadsheet->getActiveSheet()->getStyle('A9')->getFill()->getStartColor()->setARGB('FF4F81BD');
  715.             $spreadsheet->getActiveSheet()->getStyle('F5')->getFill()->getStartColor()->setARGB('FF4F81BD');
  716.             $spreadsheet->getActiveSheet()->getStyle('F6')->getFill()->getStartColor()->setARGB('FF4F81BD');
  717.             $spreadsheet->getActiveSheet()->getStyle('F7')->getFill()->getStartColor()->setARGB('FF4F81BD');
  718.             $spreadsheet->getActiveSheet()->getStyle('F8')->getFill()->getStartColor()->setARGB('FF4F81BD');
  719.             $spreadsheet->getActiveSheet()->getStyle('F9')->getFill()->getStartColor()->setARGB('FF4F81BD');
  720.             $spreadsheet->getActiveSheet()->getStyle('A1')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  721.             $spreadsheet->getActiveSheet()->getStyle('A2')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  722.             $spreadsheet->getActiveSheet()->getStyle('A3')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  723.             $spreadsheet->getActiveSheet()->getStyle('A5')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  724.             $spreadsheet->getActiveSheet()->getStyle('A6')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  725.             $spreadsheet->getActiveSheet()->getStyle('A7')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  726.             $spreadsheet->getActiveSheet()->getStyle('A8')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  727.             $spreadsheet->getActiveSheet()->getStyle('A9')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  728.             $spreadsheet->getActiveSheet()->getStyle('F5')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  729.             $spreadsheet->getActiveSheet()->getStyle('F6')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  730.             $spreadsheet->getActiveSheet()->getStyle('F7')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  731.             $spreadsheet->getActiveSheet()->getStyle('F8')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  732.             $spreadsheet->getActiveSheet()->getStyle('F9')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  733.             $sheet->setTitle("Liste des interventions");
  734.             $sheet->setCellValue('A11''jeton_rc');
  735.             $sheet->setCellValue('B11''code_du_departement_abonne');
  736.             $sheet->setCellValue('C11''nom_du_departement_abonne');
  737.             $sheet->setCellValue('D11''code_de_la_commune_abonne');
  738.             $sheet->setCellValue('E11''nom_de_la_commune_abonne');
  739.             $sheet->setCellValue('F11''zone');
  740.             $sheet->setCellValue('G11''technologie');
  741.             $sheet->setCellValue('H11''nom_du_nro');
  742.             $sheet->setCellValue('I11''operateur_immeuble');
  743.             $sheet->setCellValue('J11''type_de_pbo');
  744.             $sheet->setCellValue('K11''type_de_pto');
  745.             $sheet->setCellValue('L11''intevention_id');
  746.             $sheet->setCellValue('M11''type_intervention');
  747.             $sheet->setCellValue('N11''date_intervention');
  748.             $sheet->setCellValue('O11''nom_du_prestataire');
  749.             $sheet->setCellValue('P11''login_technicien');
  750.             $sheet->setCellValue('Q11''tech_id');
  751.             $sheet->setCellValue('R11''code_du_debriefing');
  752.             $sheet->setCellValue('S11''libelle_du_debriefing');
  753.             $sheet->setCellValue('T11''reference_de_article');
  754.             $sheet->setCellValue('U11''pu');
  755.             $sheet->setCellValue('V11''qte');
  756.             $sheet->setCellValue('W11''montant');
  757.             $sheet->setCellValue('X11''commentaire');
  758.             $sheet->setCellValue('Y11''raison_sociale');
  759.             $sheet->setCellValue('Z11''article_etr');
  760.             //$sheet->setCellValue('AA11', 'ecart');
  761.             $sheet->setCellValue('AA11''pv_type');
  762.             $sheet->fromArray($interventionProdNULL'A12');
  763.             $writer = new Xlsx($spreadsheet);
  764.             $publicDirectory $this->getParameter('kernel.project_dir') . '/public/exportation';
  765.             $fileName "PROD" $mois $annee "-" substr($etrObj->getraisonSociale(), 03) . $mois "PROD_liste_des_interventions.xlsx";
  766.             $excelFilepath =  $publicDirectory '/' $fileName;
  767.             $writer->save($excelFilepath);
  768.         }
  769.         if ($request->get("penalites")) {
  770.             $spreadsheet = new Spreadsheet();
  771.             $sheet $spreadsheet->getActiveSheet();
  772.             $sheet->setCellValue('A1''Commande Achat N° : ' .  substr($etrObj->getSociete()->getraisonSociale(), 02) .  $mois $annee "-" substr($etrObj->getraisonSociale(), 03) . $mois);
  773.             $sheet->setCellValue('A2''N° Réf Fournisseur : ' substr($etrObj->getRaisonSociale(), 03) . "-FTH");
  774.             $sheet->setCellValue('A3''Date Commande : ' $dateCommande);
  775.             $sheet->setCellValue('A5''Adresse Facturation :');
  776.             $sheet->setCellValue('A6'$etrObj->getSociete()->getraisonSociale());
  777.             $sheet->setCellValue('A7'$etrObj->getSociete()->getvoie());
  778.             $sheet->setCellValue('A8'$etrObj->getSociete()->getadresse());
  779.             if($etrObj->getSociete()->getraisonSociale()=='BTELECOM'){
  780.                 $sheet->setCellValue('A9''Siret 53051610300021');
  781.             }
  782.             $sheet->setCellValue('F5''Adresse Fournisseur :');
  783.             $sheet->setCellValue('F6'$etrObj->getRaisonSociale());
  784.             $sheet->setCellValue('F7'$etrObj->getAdresse());
  785.             $sheet->setCellValue('F8'$etrObj->getVoie());
  786.             $sheet->setCellValue('F9'$etrObj->getSiret());
  787.             $spreadsheet->getActiveSheet()->getStyle('A1')->getFill()->getStartColor()->setARGB('FF4F81BD');
  788.             $spreadsheet->getActiveSheet()->getStyle('A2')->getFill()->getStartColor()->setARGB('FF4F81BD');
  789.             $spreadsheet->getActiveSheet()->getStyle('A3')->getFill()->getStartColor()->setARGB('FF4F81BD');
  790.             $spreadsheet->getActiveSheet()->getStyle('A5')->getFill()->getStartColor()->setARGB('FF4F81BD');
  791.             $spreadsheet->getActiveSheet()->getStyle('A6')->getFill()->getStartColor()->setARGB('FF4F81BD');
  792.             $spreadsheet->getActiveSheet()->getStyle('A7')->getFill()->getStartColor()->setARGB('FF4F81BD');
  793.             $spreadsheet->getActiveSheet()->getStyle('A8')->getFill()->getStartColor()->setARGB('FF4F81BD');
  794.             $spreadsheet->getActiveSheet()->getStyle('A9')->getFill()->getStartColor()->setARGB('FF4F81BD');
  795.             $spreadsheet->getActiveSheet()->getStyle('F5')->getFill()->getStartColor()->setARGB('FF4F81BD');
  796.             $spreadsheet->getActiveSheet()->getStyle('F6')->getFill()->getStartColor()->setARGB('FF4F81BD');
  797.             $spreadsheet->getActiveSheet()->getStyle('F7')->getFill()->getStartColor()->setARGB('FF4F81BD');
  798.             $spreadsheet->getActiveSheet()->getStyle('F8')->getFill()->getStartColor()->setARGB('FF4F81BD');
  799.             $spreadsheet->getActiveSheet()->getStyle('F9')->getFill()->getStartColor()->setARGB('FF4F81BD');
  800.             $spreadsheet->getActiveSheet()->getStyle('A1')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  801.             $spreadsheet->getActiveSheet()->getStyle('A2')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  802.             $spreadsheet->getActiveSheet()->getStyle('A3')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  803.             $spreadsheet->getActiveSheet()->getStyle('A5')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  804.             $spreadsheet->getActiveSheet()->getStyle('A6')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  805.             $spreadsheet->getActiveSheet()->getStyle('A7')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  806.             $spreadsheet->getActiveSheet()->getStyle('A8')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  807.             $spreadsheet->getActiveSheet()->getStyle('A9')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  808.             $spreadsheet->getActiveSheet()->getStyle('F5')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  809.             $spreadsheet->getActiveSheet()->getStyle('F6')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  810.             $spreadsheet->getActiveSheet()->getStyle('F7')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  811.             $spreadsheet->getActiveSheet()->getStyle('F8')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  812.             $spreadsheet->getActiveSheet()->getStyle('F9')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
  813.             $sheet->setTitle("Liste des penalités");
  814.             $sheet->setCellValue('A11''login_Technicien');
  815.             $sheet->setCellValue('B11''Technicien');
  816.             $sheet->setCellValue('C11''RC');
  817.             $sheet->setCellValue('D11''Anomalie');
  818.             $sheet->setCellValue('E11''Date rdv');
  819.             $sheet->setCellValue('F11''Penalité');
  820.             $sheet->setCellValue('G11''Mois');
  821.             $sheet->setCellValue('H11''Année');
  822.             $penalites $penaliteRepository->findByCretiriaPenalites($mois$annee$etrObj->getId());
  823.             $sheet->fromArray($penalitesNULL'A12');
  824.             $writer = new Xlsx($spreadsheet);
  825.             $publicDirectory $this->getParameter('kernel.project_dir') . '/public/exportation';
  826.             $fileName "PROD" $mois $annee "-" substr($etrObj->getraisonSociale(), 03) . $mois "PROD_liste_des_penalités.xlsx";
  827.             $excelFilepath =  $publicDirectory '/' $fileName;
  828.             $writer->save($excelFilepath);
  829.         }
  830.         //prod
  831.         if ($request->get("syntheseDesInteventions")) {
  832.             $pdfOptions = new Options();
  833.             $pdfOptions->set('defaultFont''sans serif');
  834.             $dompdf = new Dompdf($pdfOptions);
  835.             $suiviBdc  $interventionProductionRepository->findBySuiviBdcProd($mois$annee$etr);
  836.             if ($etrObj->getSociete()) {
  837.                 $imagedata file_get_contents($etrObj->getSociete()->getIcon());
  838.                 $base64 base64_encode($imagedata);
  839.             }
  840.             $html $this->renderView('pdf_output_prod/synthese_des_interventions.html.twig', [
  841.                 'suiviBdc' => $suiviBdc,
  842.                 'mois' => $mois,
  843.                 'annee' => $annee,
  844.                 'etr' => $etrObj,
  845.                 'base64' => $base64,
  846.                 'dateCommande' => $dateCommande
  847.             ]);
  848.             $fileName "PROD" $mois $annee "-" substr($etrObj->getraisonSociale(), 03) . $mois "PROD_synthese_des_interventions";
  849.             $path "PROD" $mois $annee "-" substr($etrObj->getraisonSociale(), 03) . $mois "PROD";
  850.             $path $this->getParameter('kernel.project_dir') . '/public/exportation/';
  851.             if (!file_exists($path)) {
  852.                 mkdir($path0777true);
  853.             }
  854.             $dompdf->loadHtml($html);
  855.             $dompdf->setPaper('A4''landscape');
  856.             $dompdf->render();
  857.             $output $dompdf->output();
  858.             $publicDirectory $path;
  859.             $pdfFilepath =  $publicDirectory '/' preg_replace('/[^A-Za-z0-9\-]/'''$fileName) . '.pdf';
  860.             file_put_contents($pdfFilepath$output);
  861.             unset($files$pdfOptions$dompdf$html$fileName$path$output$pdfFilepath);
  862.         }
  863.         $zip = new ZipArchive();
  864.         $finder = new Finder();
  865.         $finder->files()->in($publicDirectory);
  866.         $zipName "SH" $mois $annee "-" substr($etrObj->getraisonSociale(), 03) . $mois "PROD.zip";
  867.         $zipName $this->getParameter('kernel.project_dir') . '/public/exportation/' $zipName;
  868.         foreach ($finder as $file) {
  869.             if ($zip->open($zipName\ZipArchive::CREATE) !== true) {
  870.                 throw new FileException('Zip file could not be created/opened.');
  871.             }
  872.             $zip->addFile($file->getRealpath(), basename($file->getRealpath()));
  873.             if (!$zip->close()) {
  874.                 throw new FileException('Zip file could not be closed.');
  875.             }
  876.         }
  877.         unset($zip$finder);
  878.         return $this->file($zipName);
  879.     }
  880. }