<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use App\Repository\EtrMoisRepository;
use App\Repository\EtrRepository;
use App\Repository\EtrProdRepository;
use App\Repository\InterventionProductionRepository;
use App\Repository\InterventionSavRepository;
use App\Repository\MoisEtrRepository;
use App\Repository\PenaliteRepository;
use Symfony\Component\HttpFoundation\Request;
use Dompdf\Dompdf;
use Dompdf\Options;
use ZipArchive;
use Symfony\Component\Finder\Finder;
// Include PhpSpreadsheet required namespaces
use Symfony\Component\HttpFoundation\ResponseHeaderBag;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
use \PHPExcel_Style_Fill;
class PdfOutputController extends AbstractController
{
#[Route('/tousPdf', name: 'tous_pdf')]
public function tousPdf(Request $request, EtrRepository $etrRepository, InterventionSavRepository $interventionSavRepository): Response
{
$img = "/assets/media/logos/logo.png";
$mois = (int)$request->get("mois");
$annee = (int)$request->get("annee");
$etr = (int)$request->get("etr");
$dateCommande = $request->get("dateCommande");
$etrObj = $etrRepository->findOneBy(['id' => $etr]);
$dateCommande = \DateTime::createFromFormat('d.m.Y', $dateCommande)->format('d/m/Y');
$files = glob($this->getParameter('kernel.project_dir') . '/public/exportation/*');
foreach ($files as $file)
if (is_file($file)) unlink($file);
if ($request->get("bonDeCommande")) {
$pdfOptions = new Options();
$pdfOptions->set('defaultFont', 'sans serif');
$dompdf = new Dompdf($pdfOptions);
$calculeBdc = $interventionSavRepository->findByMontantSav($mois, $annee, $etr);
$html = $this->renderView('pdf_output/bdc.html.twig', [
'mois' => $mois,
'annee' => $annee,
'etr' => $etrObj,
'calculeBdc' => $calculeBdc,
'dateCommande' => $dateCommande
]);
$fileName = "SH" . $mois . $annee . "-" . substr($etrObj->getraisonSociale(), 0, 3) . $mois . "SAV";
$path = $this->getParameter('kernel.project_dir') . '/public/exportation/';
if (!file_exists($path)) {
mkdir($path, 0777, true);
}
$dompdf->loadHtml($html);
$dompdf->setPaper('A4', 'portrait');
$dompdf->render();
$output = $dompdf->output();
$publicDirectory = $path;
$pdfFilepath = $publicDirectory . '/' . preg_replace('/[^A-Za-z0-9\-]/', '', $fileName) . '.pdf';
file_put_contents($pdfFilepath, $output);
}
if ($request->get("listeDesInteventions")) {
$interventionSav = $interventionSavRepository->findByAttachementsDetaillesJoints($mois, $annee, $etr);
$spreadsheet = new Spreadsheet();
$interventionSav = $interventionSavRepository->findByAttachementsDetaillesJoints($mois, $annee, $etr);
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('A1', 'Commande Achat N° : ' . "SH" . $mois . $annee . "-" . substr($etrObj->getraisonSociale(), 0, 3) . $mois . "SAV");
$sheet->setCellValue('A2', 'N° Réf Fournisseur : ' . substr($etrObj->getRaisonSociale(), 0, 3) . "-SAV");
$sheet->setCellValue('A3', 'Date Commande : ' . $dateCommande);
$sheet->setCellValue('A5', 'Adresse Facturation :');
$sheet->setCellValue('A6', 'SH.COM');
$sheet->setCellValue('A7', '78711 MANTES LA VILLE');
$sheet->setCellValue('A8', '2 ALLEE DE CHANTEREINE');
$sheet->setCellValue('A9', 'Tél : 01.75.74.90.16');
$sheet->setCellValue('A10', 'Siret 84843876800022');
$sheet->setCellValue('F5', 'Adresse Fournisseur :');
$sheet->setCellValue('F6', $etrObj->getRaisonSociale());
$sheet->setCellValue('F7', $etrObj->getAdresse());
$sheet->setCellValue('F8', $etrObj->getVoie());
$sheet->setCellValue('F9', $etrObj->getSiret());
$spreadsheet->getActiveSheet()->getStyle('A1')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('A2')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('A3')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('A5')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('A6')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('A7')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('A8')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('A9')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('F5')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('F6')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('F7')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('F8')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('F9')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('A1')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('A2')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('A3')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('A5')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('A6')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('A7')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('A8')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('A9')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('F5')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('F6')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('F7')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('F8')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('F9')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$sheet->setTitle("Liste des interventions");
$sheet->setCellValue('A11', 'InterventionID');
$sheet->setCellValue('B11', 'dpt');
$sheet->setCellValue('C11', 'NRO');
$sheet->setCellValue('D11', 'jeton');
$sheet->setCellValue('E11', 'etat');
$sheet->setCellValue('F11', 'RDV');
$sheet->setCellValue('G11', 'type');
$sheet->setCellValue('H11', 'date');
$sheet->setCellValue('I11', 'TechIdent');
$sheet->setCellValue('J11', 'BoiteIdent');
$sheet->setCellValue('K11', 'Entit');
$sheet->setCellValue('L11', 'Zone');
$sheet->setCellValue('M11', 'type');
$sheet->setCellValue('N11', 'Article');
$sheet->setCellValue('O11', 'Pu');
$sheet->setCellValue('P11', 'Qte');
$sheet->setCellValue('Q11', 'Montant');
$sheet->fromArray($interventionSav, NULL, 'A12');
$writer = new Xlsx($spreadsheet);
$publicDirectory = $this->getParameter('kernel.project_dir') . '/public/exportation';
$fileName = "SH" . $mois . $annee . "-" . substr($etrObj->getraisonSociale(), 0, 3) . $mois . "SAV_liste_des_interventions.xlsx";
$excelFilepath = $publicDirectory . '/' . $fileName;
$writer->save($excelFilepath);
}
if ($request->get("syntheseDesInteventions")) {
$pdfOptions = new Options();
$pdfOptions->set('defaultFont', 'sans serif');
$dompdf = new Dompdf($pdfOptions);
$calculeBdc = $interventionSavRepository->findByMontantSav($mois, $annee, $etr);
$suiviBdc = $interventionSavRepository->findBySuiviBdcSst($mois, $annee, $etr);
$suiviBdcTotal = $interventionSavRepository->findBySuiviBdcTotal($mois, $annee, $etr);
$html = $this->renderView('pdf_output/synthese_des_interventions.html.twig', [
'suiviBdc' => $suiviBdc,
'suiviBdcTotal' => $suiviBdcTotal,
'mois' => $mois,
'annee' => $annee,
'etr' => $etrObj,
'calculeBdc' => $calculeBdc,
'dateCommande' => $dateCommande
]);
$fileName = "SH" . $mois . $annee . "-" . substr($etrObj->getraisonSociale(), 0, 3) . $mois . "SAV_synthese_des_interventions";
$path = "SH" . $mois . $annee . "-" . substr($etrObj->getraisonSociale(), 0, 3) . $mois . "SAV";
$path = $this->getParameter('kernel.project_dir') . '/public/exportation/';
if (!file_exists($path)) {
mkdir($path, 0777, true);
}
$dompdf->loadHtml($html);
$dompdf->setPaper('A4', 'landscape');
$dompdf->render();
$output = $dompdf->output();
$publicDirectory = $path;
$pdfFilepath = $publicDirectory . '/' . preg_replace('/[^A-Za-z0-9\-]/', '', $fileName) . '.pdf';
file_put_contents($pdfFilepath, $output);
unset($files, $pdfOptions, $dompdf, $html, $fileName, $path, $output, $pdfFilepath);
}
//die();
$zip = new ZipArchive();
$finder = new Finder();
$finder->files()->in($publicDirectory);
$zipName = "SH" . $mois . $annee . "-" . substr($etrObj->getraisonSociale(), 0, 3) . $mois . "SAV.zip";
$zipName = $this->getParameter('kernel.project_dir') . '/public/exportation/' . $zipName;
foreach ($finder as $file) {
if ($zip->open($zipName, \ZipArchive::CREATE) !== true) {
throw new FileException('Zip file could not be created/opened.');
}
$zip->addFile($file->getRealpath(), basename($file->getRealpath()));
if (!$zip->close()) {
throw new FileException('Zip file could not be closed.');
}
}
unset($zip, $finder);
return $this->file($zipName);
}
public function modalGestionDesOutputs()
{
return $this->render('pdf_output/modal_gestion_des_outputs.html.twig');
}
public function modalGestionDesOutputsProd()
{
return $this->render('pdf_output_prod/modal_gestion_des_outputs.html.twig');
}
#[Route('/GestionDesOutputs', name: 'Gestion_des_outputs', methods: ['POST', "GET"])]
public function GestionDesOutputs(Request $request, InterventionSavRepository $interventionSavRepository, EtrMoisRepository $etrMoisRepository): Response
{
$img = "/assets/media/logos/logo.png";
$mois = (int)$request->get("mois");
$annee = (int)$request->get("annee");
$dateCommande = $request->get("dateCommande");
//$dateCommande = \DateTime::createFromFormat('d.m.Y', $dateCommande)->format('d/m/Y');
$etrsMois = $etrMoisRepository->findEntrepriseByDate($mois, $annee);
$files = glob($this->getParameter('kernel.project_dir') . '/public/exportation/*');
foreach ($files as $file)
if (is_file($file)) unlink($file);
foreach ($etrsMois as $etrItem) {
$etr = $etrItem->getEtr()->getId();
$etrObj = $etrItem->getEtr();
if ($request->get("bonDeCommande")) {
$pdfOptions = new Options();
$pdfOptions->set('defaultFont', 'sans serif');
$dompdf = new Dompdf($pdfOptions);
$calculeBdc = $interventionSavRepository->findByMontantSav($mois, $annee, $etr);
$html = $this->renderView('pdf_output/bdc.html.twig', [
'mois' => $mois,
'annee' => $annee,
'etr' => $etrObj,
'calculeBdc' => $calculeBdc,
'dateCommande' => $dateCommande
]);
$fileName = "SH" . $mois . $annee . "-" . substr($etrObj->getraisonSociale(), 0, 3) . $mois . "SAV";
$path = $this->getParameter('kernel.project_dir') . '/public/exportation/';
if (!file_exists($path)) {
mkdir($path, 0777, true);
}
$dompdf->loadHtml($html);
$dompdf->setPaper('A4', 'portrait');
$dompdf->render();
$output = $dompdf->output();
$publicDirectory = $path;
$pdfFilepath = $publicDirectory . '/' . preg_replace('/[^A-Za-z0-9\-]/', '', $fileName) . '.pdf';
file_put_contents($pdfFilepath, $output);
}
if ($request->get("listeDesInteventions")) {
$interventionSav = $interventionSavRepository->findByAttachementsDetaillesJoints($mois, $annee, $etr);
$spreadsheet = new Spreadsheet();
$interventionSav = $interventionSavRepository->findByAttachementsDetaillesJoints($mois, $annee, $etr);
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('A1', 'Commande Achat N° : ' . "SH" . $mois . $annee . "-" . substr($etrObj->getraisonSociale(), 0, 3) . $mois . "SAV");
$sheet->setCellValue('A2', 'N° Réf Fournisseur : ' . substr($etrObj->getRaisonSociale(), 0, 3) . "-SAV");
$sheet->setCellValue('A3', 'Date Commande : ' . $dateCommande);
$sheet->setCellValue('A5', 'Adresse Facturation :');
$sheet->setCellValue('A6', 'SH.COM');
$sheet->setCellValue('A7', '78711 MANTES LA VILLE');
$sheet->setCellValue('A8', '2 ALLEE DE CHANTEREINE');
$sheet->setCellValue('A9', 'Tél : 01.75.74.90.16');
$sheet->setCellValue('A10', 'Siret 84843876800022');
$sheet->setCellValue('F5', 'Adresse Fournisseur :');
$sheet->setCellValue('F6', $etrObj->getRaisonSociale());
$sheet->setCellValue('F7', $etrObj->getAdresse());
$sheet->setCellValue('F8', $etrObj->getVoie());
$sheet->setCellValue('F9', $etrObj->getSiret());
$spreadsheet->getActiveSheet()->getStyle('A1')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('A2')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('A3')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('A5')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('A6')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('A7')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('A8')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('A9')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('F5')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('F6')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('F7')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('F8')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('F9')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('A1')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('A2')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('A3')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('A5')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('A6')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('A7')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('A8')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('A9')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('F5')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('F6')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('F7')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('F8')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('F9')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$sheet->setTitle("Liste des interventions");
$sheet->setCellValue('A11', 'InterventionID');
$sheet->setCellValue('B11', 'dpt');
$sheet->setCellValue('C11', 'NRO');
$sheet->setCellValue('D11', 'jeton');
$sheet->setCellValue('E11', 'etat');
$sheet->setCellValue('F11', 'RDV');
$sheet->setCellValue('G11', 'type');
$sheet->setCellValue('H11', 'date');
$sheet->setCellValue('I11', 'TechIdent');
$sheet->setCellValue('J11', 'BoiteIdent');
$sheet->setCellValue('K11', 'Entit');
$sheet->setCellValue('L11', 'Zone');
$sheet->setCellValue('M11', 'type');
$sheet->setCellValue('N11', 'Article');
$sheet->setCellValue('O11', 'Pu');
$sheet->setCellValue('P11', 'Qte');
$sheet->setCellValue('Q11', 'Montant');
$sheet->fromArray($interventionSav, NULL, 'A12');
$writer = new Xlsx($spreadsheet);
$publicDirectory = $this->getParameter('kernel.project_dir') . '/public/exportation';
$fileName = "SH" . $mois . $annee . "-" . substr($etrObj->getraisonSociale(), 0, 3) . $mois . "SAV_liste_des_interventions.xlsx";
$excelFilepath = $publicDirectory . '/' . $fileName;
$writer->save($excelFilepath);
}
if ($request->get("syntheseDesInteventions")) {
$pdfOptions = new Options();
$pdfOptions->set('defaultFont', 'sans serif');
$dompdf = new Dompdf($pdfOptions);
$calculeBdc = $interventionSavRepository->findByMontantSav($mois, $annee, $etr);
$suiviBdc = $interventionSavRepository->findBySuiviBdcSst($mois, $annee, $etr);
$suiviBdcTotal = $interventionSavRepository->findBySuiviBdcTotal($mois, $annee, $etr);
$html = $this->renderView('pdf_output/synthese_des_interventions.html.twig', [
'suiviBdc' => $suiviBdc,
'suiviBdcTotal' => $suiviBdcTotal,
'mois' => $mois,
'annee' => $annee,
'etr' => $etrObj,
'calculeBdc' => $calculeBdc,
'dateCommande' => $dateCommande
]);
$fileName = "SH" . $mois . $annee . "-" . substr($etrObj->getraisonSociale(), 0, 3) . $mois . "SAV_synthese_des_interventions";
$path = "SH" . $mois . $annee . "-" . substr($etrObj->getraisonSociale(), 0, 3) . $mois . "SAV";
$path = $this->getParameter('kernel.project_dir') . '/public/exportation/';
if (!file_exists($path)) {
mkdir($path, 0777, true);
}
$dompdf->loadHtml($html);
$dompdf->setPaper('A4', 'landscape');
$dompdf->render();
$output = $dompdf->output();
$publicDirectory = $path;
$pdfFilepath = $publicDirectory . '/' . preg_replace('/[^A-Za-z0-9\-]/', '', $fileName) . '.pdf';
file_put_contents($pdfFilepath, $output);
}
}
$zip = new ZipArchive();
$finder = new Finder();
$finder->files()->in($publicDirectory);
$zipName = "SH" . $mois . $annee . "-" . substr($etrObj->getraisonSociale(), 0, 3) . $mois . "SAV.zip";
$zipName = $this->getParameter('kernel.project_dir') . '/public/exportation/' . $zipName;
foreach ($finder as $file) {
if ($zip->open($zipName, \ZipArchive::CREATE) !== true) {
throw new FileException('Zip file could not be created/opened.');
}
$zip->addFile($file->getRealpath(), basename($file->getRealpath()));
if (!$zip->close()) {
throw new FileException('Zip file could not be closed.');
}
}
return $this->file($zipName);
}
#[Route('/GestionDesOutputsProd', name: 'Gestion_des_outputs_prod', methods: ['POST', "GET"])]
public function GestionDesOutputsProd(Request $request, InterventionProductionRepository $interventionProductionRepository, MoisEtrRepository $moisEtrRepository, PenaliteRepository $penaliteRepository): Response
{
$mois = (int)$request->get("mois");
$annee = (int)$request->get("annee");
$dateCommande = $request->get("dateCommande");
$etrsMois = $moisEtrRepository->findEntrepriseByDate($mois, $annee);
$publicDirectory = $this->getParameter('kernel.project_dir') . '/public/exportation';
$files = glob($this->getParameter('kernel.project_dir') . '/public/exportation/*');
foreach ($files as $file)
if (is_file($file)) unlink($file);
foreach ($etrsMois as $etrItem) {
$etr = $etrItem->getEtrProd()->getId();
$etrObj = $etrItem->getEtrProd();
if ($request->get("bonDeCommande")) {
$pdfOptions = new Options();
$pdfOptions->set('defaultFont', 'sans serif');
$dompdf = new Dompdf($pdfOptions);
if ($etrObj->getSociete()) {
$imagedata = file_get_contents($etrObj->getSociete()->getIcon());
$base64 = base64_encode($imagedata);
}
$calculeBdc = $interventionProductionRepository->findByMontantProd($mois, $annee, $etr);
$moisString = "";
if ($mois >= 1 && $mois <= 9) $moisString = "0" . $mois;
else $moisString = $mois;
$penalites = $penaliteRepository->findBy(["etrProd" => $etrObj, "mois" => $moisString, "annee" => $annee]);
$montantPenaliteTotal = 0;
// dd($calculeBdc);
foreach ($penalites as $p) {
$montantPenaliteTotal += $p->getPenalite();
}
$html = $this->renderView('pdf_output_prod/bdc.html.twig', [
'mois' => $mois,
'annee' => $annee,
'etr' => $etrObj,
'calculeBdc' => $calculeBdc,
'penalites' => $montantPenaliteTotal,
'dateCommande' => $dateCommande,
'base64' => $base64
]);
$fileName = "PROD" . $mois . $annee . "-" . substr($etrObj->getraisonSociale(), 0, 3) . $mois . "PROD";
$path = $this->getParameter('kernel.project_dir') . '/public/exportation/';
if (!file_exists($path)) {
mkdir($path, 0777, true);
}
$dompdf->loadHtml($html);
$dompdf->setPaper('A4', 'portrait');
$dompdf->render();
$output = $dompdf->output();
$publicDirectory = $path;
$pdfFilepath = $publicDirectory . '/' . preg_replace('/[^A-Za-z0-9\-]/', '', $fileName) . '.pdf';
file_put_contents($pdfFilepath, $output);
}
if ($request->get("listeDesInteventions")) {
$interventionProd = $interventionProductionRepository->findByAttachementsDetaillesJoints($mois, $annee, $etr);
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('A1', 'Commande Achat N° : ' . substr($etrObj->getSociete()->getraisonSociale(), 0, 2) . $mois . $annee . "-" . substr($etrObj->getraisonSociale(), 0, 3) . $mois);
$sheet->setCellValue('A2', 'N° Réf Fournisseur : ' . substr($etrObj->getRaisonSociale(), 0, 3) . "-FTH");
$sheet->setCellValue('A3', 'Date Commande : ' . $dateCommande);
$sheet->setCellValue('A5', 'Adresse Facturation :');
$sheet->setCellValue('A6', $etrObj->getSociete()->getraisonSociale());
$sheet->setCellValue('A7', $etrObj->getSociete()->getvoie());
$sheet->setCellValue('A8', $etrObj->getSociete()->getadresse());
if($etrObj->getSociete()->getraisonSociale()=='BTELECOM'){
$sheet->setCellValue('A9', 'Siret 53051610300021');
}
$sheet->setCellValue('F5', 'Adresse Fournisseur :');
$sheet->setCellValue('F6', $etrObj->getRaisonSociale());
$sheet->setCellValue('F7', $etrObj->getAdresse());
$sheet->setCellValue('F8', $etrObj->getVoie());
$sheet->setCellValue('F9', $etrObj->getSiret());
$spreadsheet->getActiveSheet()->getStyle('A1')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('A2')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('A3')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('A5')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('A6')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('A7')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('A8')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('A9')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('F5')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('F6')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('F7')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('F8')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('F9')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('A1')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('A2')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('A3')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('A5')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('A6')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('A7')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('A8')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('A9')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('F5')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('F6')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('F7')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('F8')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('F9')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$sheet->setTitle("Liste des interventions");
$sheet->setCellValue('A11', 'jeton_rc');
$sheet->setCellValue('B11', 'code_du_departement_abonne');
$sheet->setCellValue('C11', 'nom_du_departement_abonne');
$sheet->setCellValue('D11', 'code_de_la_commune_abonne');
$sheet->setCellValue('E11', 'nom_de_la_commune_abonne');
$sheet->setCellValue('F11', 'zone');
$sheet->setCellValue('G11', 'technologie');
$sheet->setCellValue('H11', 'nom_du_nro');
$sheet->setCellValue('I11', 'operateur_immeuble');
$sheet->setCellValue('J11', 'type_de_pbo');
$sheet->setCellValue('K11', 'type_de_pto');
$sheet->setCellValue('L11', 'intevention_id');
$sheet->setCellValue('M11', 'type_intervention');
$sheet->setCellValue('N11', 'date_intervention');
$sheet->setCellValue('O11', 'nom_du_prestataire');
$sheet->setCellValue('P11', 'login_technicien');
$sheet->setCellValue('Q11', 'tech_id');
$sheet->setCellValue('R11', 'code_du_debriefing');
$sheet->setCellValue('S11', 'libelle_du_debriefing');
$sheet->setCellValue('T11', 'reference_de_article');
$sheet->setCellValue('U11', 'pu');
$sheet->setCellValue('V11', 'qte');
$sheet->setCellValue('W11', 'montant');
$sheet->setCellValue('X11', 'commentaire');
$sheet->setCellValue('Y11', 'raison_sociale');
$sheet->setCellValue('Z11', 'article_etr');
//$sheet->setCellValue('AA11', 'ecart');
$sheet->setCellValue('AA11', 'pv_type');
$sheet->fromArray($interventionProd, NULL, 'A12');
$writer = new Xlsx($spreadsheet);
$publicDirectory = $this->getParameter('kernel.project_dir') . '/public/exportation';
$fileName = "PROD" . $mois . $annee . "-" . substr($etrObj->getraisonSociale(), 0, 3) . $mois . "PROD_liste_des_interventions.xlsx";
$excelFilepath = $publicDirectory . '/' . $fileName;
$writer->save($excelFilepath);
}
if ($request->get("penalites")) {
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('A1', 'Commande Achat N° : ' . substr($etrObj->getSociete()->getraisonSociale(), 0, 2) . $mois . $annee . "-" . substr($etrObj->getraisonSociale(), 0, 3) . $mois);
$sheet->setCellValue('A2', 'N° Réf Fournisseur : ' . substr($etrObj->getRaisonSociale(), 0, 3) . "-FTH");
$sheet->setCellValue('A3', 'Date Commande : ' . $dateCommande);
$sheet->setCellValue('A5', 'Adresse Facturation :');
$sheet->setCellValue('A6', $etrObj->getSociete()->getraisonSociale());
$sheet->setCellValue('A7', $etrObj->getSociete()->getvoie());
$sheet->setCellValue('A8', $etrObj->getSociete()->getadresse());
if($etrObj->getSociete()->getraisonSociale()=='BTELECOM'){
$sheet->setCellValue('A9', 'Siret 53051610300021');
}
$sheet->setCellValue('F5', 'Adresse Fournisseur :');
$sheet->setCellValue('F6', $etrObj->getRaisonSociale());
$sheet->setCellValue('F7', $etrObj->getAdresse());
$sheet->setCellValue('F8', $etrObj->getVoie());
$sheet->setCellValue('F9', $etrObj->getSiret());
$spreadsheet->getActiveSheet()->getStyle('A1')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('A2')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('A3')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('A5')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('A6')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('A7')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('A8')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('A9')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('F5')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('F6')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('F7')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('F8')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('F9')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('A1')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('A2')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('A3')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('A5')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('A6')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('A7')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('A8')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('A9')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('F5')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('F6')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('F7')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('F8')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('F9')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$sheet->setTitle("Liste des penalités");
$sheet->setCellValue('A11', 'login_Technicien');
$sheet->setCellValue('B11', 'Technicien');
$sheet->setCellValue('C11', 'RC');
$sheet->setCellValue('D11', 'Anomalie');
$sheet->setCellValue('E11', 'Date rdv');
$sheet->setCellValue('F11', 'Penalité');
$sheet->setCellValue('G11', 'Mois');
$sheet->setCellValue('H11', 'Année');
$penalites = $penaliteRepository->findByCretiriaPenalites($mois, $annee, $etrObj->getId());
$sheet->fromArray($penalites, NULL, 'A12');
$writer = new Xlsx($spreadsheet);
$publicDirectory = $this->getParameter('kernel.project_dir') . '/public/exportation';
$fileName = "PROD" . $mois . $annee . "-" . substr($etrObj->getraisonSociale(), 0, 3) . $mois . "PROD_liste_des_penalités.xlsx";
$excelFilepath = $publicDirectory . '/' . $fileName;
$writer->save($excelFilepath);
}
//prod
if ($request->get("syntheseDesInteventions")) {
$pdfOptions = new Options();
$pdfOptions->set('defaultFont', 'sans serif');
$dompdf = new Dompdf($pdfOptions);
$suiviBdc = $interventionProductionRepository->findBySuiviBdcProd($mois, $annee, $etr);
if ($etrObj->getSociete()) {
$imagedata = file_get_contents($etrObj->getSociete()->getIcon());
$base64 = base64_encode($imagedata);
}
$html = $this->renderView('pdf_output_prod/synthese_des_interventions.html.twig', [
'suiviBdc' => $suiviBdc,
'mois' => $mois,
'annee' => $annee,
'etr' => $etrObj,
'base64' => $base64,
'dateCommande' => $dateCommande
]);
$fileName = "PROD" . $mois . $annee . "-" . substr($etrObj->getraisonSociale(), 0, 3) . $mois . "PROD_synthese_des_interventions";
$path = "PROD" . $mois . $annee . "-" . substr($etrObj->getraisonSociale(), 0, 3) . $mois . "PROD";
$path = $this->getParameter('kernel.project_dir') . '/public/exportation/';
if (!file_exists($path)) {
mkdir($path, 0777, true);
}
$dompdf->loadHtml($html);
$dompdf->setPaper('A4', 'landscape');
$dompdf->render();
$output = $dompdf->output();
$publicDirectory = $path;
$pdfFilepath = $publicDirectory . '/' . preg_replace('/[^A-Za-z0-9\-]/', '', $fileName) . '.pdf';
file_put_contents($pdfFilepath, $output);
unset($files, $pdfOptions, $dompdf, $html, $fileName, $path, $output, $pdfFilepath);
}
}
$zip = new ZipArchive();
$finder = new Finder();
$finder->files()->in($publicDirectory);
$zipName = "SH" . $mois . $annee . "-" . substr($etrObj->getraisonSociale(), 0, 3) . $mois . "PROD.zip";
$zipName = $this->getParameter('kernel.project_dir') . '/public/exportation/' . $zipName;
foreach ($finder as $file) {
if ($zip->open($zipName, \ZipArchive::CREATE) !== true) {
throw new FileException('Zip file could not be created/opened.');
}
$zip->addFile($file->getRealpath(), basename($file->getRealpath()));
if (!$zip->close()) {
throw new FileException('Zip file could not be closed.');
}
}
unset($zip, $finder);
return $this->file($zipName);
}
function rrmdir($dir)
{
if (is_dir($dir))
{
$objects = scandir($dir);
foreach ($objects as $object)
{
if ($object != '.' && $object != '..')
{
if (filetype($dir.'/'.$object) == 'dir') {$this->rrmdir($dir.'/'.$object);}
else {unlink($dir.'/'.$object);}
}
}
reset($objects);
rmdir($dir);
}
}
#[Route('/ram', name: 'ram')]
public function ar(){
$memory_limit = ini_get('memory_limit');
if (preg_match('/^(\d+)(.)$/', $memory_limit, $matches)) {
if ($matches[2] == 'M') {
$memory_limit = $matches[1] * 1024 * 1024; // nnnM -> nnn MB
} else if ($matches[2] == 'K') {
$memory_limit = $matches[1] * 1024; // nnnK -> nnn KB
}
}
$ok = ($memory_limit >= 64 * 1024 * 1024); // at least 64M?
echo '<phpmem>';
echo '<val>' . $memory_limit . '</val>';
echo '<ok>' . ($ok ? 1 : 0) . '</ok>';
echo '</phpmem>';
die();
}
#[Route('/tousPdfProd', name: 'tous_pdf_prod')]
public function tousPdfProd(Request $request, EtrProdRepository $etrProdRepository, InterventionProductionRepository $interventionProductionRepository, PenaliteRepository $penaliteRepository): Response
{
//$this->rrmdir(dirname(__FILE__) . "/../../var");
$img = "/assets/media/logos/logo.png";
$mois = (int)$request->get("mois");
$annee = (int)$request->get("annee");
$etr = (int)$request->get("etr");
$dateCommande = $request->get("dateCommande");
$etrObj = $etrProdRepository->findOneBy(['id' => $etr]);
$dateCommande = \DateTime::createFromFormat('d.m.Y', $dateCommande)->format('d/m/Y');
$base64 = "";
if (is_null($etrObj->getSociete())) {
$imagedata = file_get_contents($etrObj->getSociete()->getIcon());
$base64 = base64_encode($imagedata);
}
$files = glob($this->getParameter('kernel.project_dir') . '/public/exportation/*');
foreach ($files as $file)
if (is_file($file)) unlink($file);
if ($request->get("bonDeCommande")) {
$pdfOptions = new Options();
$pdfOptions->set('defaultFont', 'sans serif');
$dompdf = new Dompdf($pdfOptions);
$calculeBdc = $interventionProductionRepository->findByMontantProd($mois, $annee, $etr);
$moisString = "";
if ($mois >= 1 && $mois <= 9) $moisString = "0" . $mois;
else $moisString = $mois;
$penalites = $penaliteRepository->findBy(["etrProd" => $etrObj, "mois" => $moisString, "annee" => $annee]);
$montantPenaliteTotal = 0;
foreach ($penalites as $p) {
$montantPenaliteTotal += $p->getPenalite();
}
if ($etrObj->getSociete()) {
$imagedata = file_get_contents($etrObj->getSociete()->getIcon());
$base64 = base64_encode($imagedata);
}
$html = $this->renderView('pdf_output_prod/bdc.html.twig', [
'mois' => $mois,
'annee' => $annee,
'etr' => $etrObj,
'calculeBdc' => $calculeBdc,
'penalites' => $montantPenaliteTotal,
'dateCommande' => $dateCommande,
'base64' => $base64
]);
$fileName = "PROD" . $mois . $annee . "-" . substr($etrObj->getraisonSociale(), 0, 3) . $mois . "PROD";
$path = $this->getParameter('kernel.project_dir') . '/public/exportation/';
if (!file_exists($path)) {
mkdir($path, 0777, true);
}
$dompdf->loadHtml($html);
$dompdf->setPaper('A4', 'portrait');
$dompdf->render();
$output = $dompdf->output();
$publicDirectory = $path;
$pdfFilepath = $publicDirectory . '/' . preg_replace('/[^A-Za-z0-9\-]/', '', $fileName) . '.pdf';
file_put_contents($pdfFilepath, $output);
}
if ($request->get("listeDesInteventions")) {
$interventionProd = $interventionProductionRepository->findByAttachementsDetaillesJoints($mois, $annee, $etr);
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('A1', 'Commande Achat N° : ' . substr($etrObj->getSociete()->getraisonSociale(), 0, 2) . $mois . $annee . "-" . substr($etrObj->getraisonSociale(), 0, 3) . $mois);
$sheet->setCellValue('A2', 'N° Réf Fournisseur : ' . substr($etrObj->getRaisonSociale(), 0, 3) . "-FTH");
$sheet->setCellValue('A3', 'Date Commande : ' . $dateCommande);
$sheet->setCellValue('A5', 'Adresse Facturation :');
$sheet->setCellValue('A6', $etrObj->getSociete()->getraisonSociale());
$sheet->setCellValue('A7', $etrObj->getSociete()->getvoie());
$sheet->setCellValue('A8', $etrObj->getSociete()->getadresse());
if($etrObj->getSociete()->getraisonSociale()=='BTELECOM'){
$sheet->setCellValue('A9', 'Siret 53051610300021');
}
$sheet->setCellValue('F5', 'Adresse Fournisseur :');
$sheet->setCellValue('F6', $etrObj->getRaisonSociale());
$sheet->setCellValue('F7', $etrObj->getAdresse());
$sheet->setCellValue('F8', $etrObj->getVoie());
$sheet->setCellValue('F9', $etrObj->getSiret());
$spreadsheet->getActiveSheet()->getStyle('A1')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('A2')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('A3')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('A5')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('A6')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('A7')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('A8')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('A9')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('F5')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('F6')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('F7')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('F8')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('F9')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('A1')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('A2')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('A3')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('A5')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('A6')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('A7')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('A8')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('A9')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('F5')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('F6')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('F7')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('F8')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('F9')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$sheet->setTitle("Liste des interventions");
$sheet->setCellValue('A11', 'jeton_rc');
$sheet->setCellValue('B11', 'code_du_departement_abonne');
$sheet->setCellValue('C11', 'nom_du_departement_abonne');
$sheet->setCellValue('D11', 'code_de_la_commune_abonne');
$sheet->setCellValue('E11', 'nom_de_la_commune_abonne');
$sheet->setCellValue('F11', 'zone');
$sheet->setCellValue('G11', 'technologie');
$sheet->setCellValue('H11', 'nom_du_nro');
$sheet->setCellValue('I11', 'operateur_immeuble');
$sheet->setCellValue('J11', 'type_de_pbo');
$sheet->setCellValue('K11', 'type_de_pto');
$sheet->setCellValue('L11', 'intevention_id');
$sheet->setCellValue('M11', 'type_intervention');
$sheet->setCellValue('N11', 'date_intervention');
$sheet->setCellValue('O11', 'nom_du_prestataire');
$sheet->setCellValue('P11', 'login_technicien');
$sheet->setCellValue('Q11', 'tech_id');
$sheet->setCellValue('R11', 'code_du_debriefing');
$sheet->setCellValue('S11', 'libelle_du_debriefing');
$sheet->setCellValue('T11', 'reference_de_article');
$sheet->setCellValue('U11', 'pu');
$sheet->setCellValue('V11', 'qte');
$sheet->setCellValue('W11', 'montant');
$sheet->setCellValue('X11', 'commentaire');
$sheet->setCellValue('Y11', 'raison_sociale');
$sheet->setCellValue('Z11', 'article_etr');
//$sheet->setCellValue('AA11', 'ecart');
$sheet->setCellValue('AA11', 'pv_type');
$sheet->fromArray($interventionProd, NULL, 'A12');
$writer = new Xlsx($spreadsheet);
$publicDirectory = $this->getParameter('kernel.project_dir') . '/public/exportation';
$fileName = "PROD" . $mois . $annee . "-" . substr($etrObj->getraisonSociale(), 0, 3) . $mois . "PROD_liste_des_interventions.xlsx";
$excelFilepath = $publicDirectory . '/' . $fileName;
$writer->save($excelFilepath);
}
if ($request->get("penalites")) {
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('A1', 'Commande Achat N° : ' . substr($etrObj->getSociete()->getraisonSociale(), 0, 2) . $mois . $annee . "-" . substr($etrObj->getraisonSociale(), 0, 3) . $mois);
$sheet->setCellValue('A2', 'N° Réf Fournisseur : ' . substr($etrObj->getRaisonSociale(), 0, 3) . "-FTH");
$sheet->setCellValue('A3', 'Date Commande : ' . $dateCommande);
$sheet->setCellValue('A5', 'Adresse Facturation :');
$sheet->setCellValue('A6', $etrObj->getSociete()->getraisonSociale());
$sheet->setCellValue('A7', $etrObj->getSociete()->getvoie());
$sheet->setCellValue('A8', $etrObj->getSociete()->getadresse());
if($etrObj->getSociete()->getraisonSociale()=='BTELECOM'){
$sheet->setCellValue('A9', 'Siret 53051610300021');
}
$sheet->setCellValue('F5', 'Adresse Fournisseur :');
$sheet->setCellValue('F6', $etrObj->getRaisonSociale());
$sheet->setCellValue('F7', $etrObj->getAdresse());
$sheet->setCellValue('F8', $etrObj->getVoie());
$sheet->setCellValue('F9', $etrObj->getSiret());
$spreadsheet->getActiveSheet()->getStyle('A1')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('A2')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('A3')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('A5')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('A6')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('A7')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('A8')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('A9')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('F5')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('F6')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('F7')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('F8')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('F9')->getFill()->getStartColor()->setARGB('FF4F81BD');
$spreadsheet->getActiveSheet()->getStyle('A1')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('A2')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('A3')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('A5')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('A6')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('A7')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('A8')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('A9')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('F5')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('F6')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('F7')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('F8')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$spreadsheet->getActiveSheet()->getStyle('F9')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID);
$sheet->setTitle("Liste des penalités");
$sheet->setCellValue('A11', 'login_Technicien');
$sheet->setCellValue('B11', 'Technicien');
$sheet->setCellValue('C11', 'RC');
$sheet->setCellValue('D11', 'Anomalie');
$sheet->setCellValue('E11', 'Date rdv');
$sheet->setCellValue('F11', 'Penalité');
$sheet->setCellValue('G11', 'Mois');
$sheet->setCellValue('H11', 'Année');
$penalites = $penaliteRepository->findByCretiriaPenalites($mois, $annee, $etrObj->getId());
$sheet->fromArray($penalites, NULL, 'A12');
$writer = new Xlsx($spreadsheet);
$publicDirectory = $this->getParameter('kernel.project_dir') . '/public/exportation';
$fileName = "PROD" . $mois . $annee . "-" . substr($etrObj->getraisonSociale(), 0, 3) . $mois . "PROD_liste_des_penalités.xlsx";
$excelFilepath = $publicDirectory . '/' . $fileName;
$writer->save($excelFilepath);
}
//prod
if ($request->get("syntheseDesInteventions")) {
$pdfOptions = new Options();
$pdfOptions->set('defaultFont', 'sans serif');
$dompdf = new Dompdf($pdfOptions);
$suiviBdc = $interventionProductionRepository->findBySuiviBdcProd($mois, $annee, $etr);
if ($etrObj->getSociete()) {
$imagedata = file_get_contents($etrObj->getSociete()->getIcon());
$base64 = base64_encode($imagedata);
}
$html = $this->renderView('pdf_output_prod/synthese_des_interventions.html.twig', [
'suiviBdc' => $suiviBdc,
'mois' => $mois,
'annee' => $annee,
'etr' => $etrObj,
'base64' => $base64,
'dateCommande' => $dateCommande
]);
$fileName = "PROD" . $mois . $annee . "-" . substr($etrObj->getraisonSociale(), 0, 3) . $mois . "PROD_synthese_des_interventions";
$path = "PROD" . $mois . $annee . "-" . substr($etrObj->getraisonSociale(), 0, 3) . $mois . "PROD";
$path = $this->getParameter('kernel.project_dir') . '/public/exportation/';
if (!file_exists($path)) {
mkdir($path, 0777, true);
}
$dompdf->loadHtml($html);
$dompdf->setPaper('A4', 'landscape');
$dompdf->render();
$output = $dompdf->output();
$publicDirectory = $path;
$pdfFilepath = $publicDirectory . '/' . preg_replace('/[^A-Za-z0-9\-]/', '', $fileName) . '.pdf';
file_put_contents($pdfFilepath, $output);
unset($files, $pdfOptions, $dompdf, $html, $fileName, $path, $output, $pdfFilepath);
}
$zip = new ZipArchive();
$finder = new Finder();
$finder->files()->in($publicDirectory);
$zipName = "SH" . $mois . $annee . "-" . substr($etrObj->getraisonSociale(), 0, 3) . $mois . "PROD.zip";
$zipName = $this->getParameter('kernel.project_dir') . '/public/exportation/' . $zipName;
foreach ($finder as $file) {
if ($zip->open($zipName, \ZipArchive::CREATE) !== true) {
throw new FileException('Zip file could not be created/opened.');
}
$zip->addFile($file->getRealpath(), basename($file->getRealpath()));
if (!$zip->close()) {
throw new FileException('Zip file could not be closed.');
}
}
unset($zip, $finder);
return $this->file($zipName);
}
}