<?php
namespace App\Controller;
use App\Repository\EtrMoisRepository;
use App\Repository\InterventionProductionRepository;
use App\Repository\InterventionSavRepository;
use App\Repository\MoisEtrRepository;
use App\Repository\PenaliteRepository;
use App\Repository\SocieteRepository;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\HttpFoundation\Request;
/* Generer des pdf */
use Dompdf\Dompdf;
use Dompdf\Options;
class PrevisionController extends AbstractController
{
#[Route('/prevision/prod/{pdf?}', name: 'app_prevision_prod')]
public function index( InterventionProductionRepository $interventionProductionRepository,SocieteRepository $societeRepository,Request $request,$pdf,MoisEtrRepository $moisEtrRepository, PenaliteRepository $penaliteRepository): Response
{
$mois=(int)$request->query->get('mois');
$annee=(int)$request->query->get('annee');
$moisString = "";
if ($mois >= 1 && $mois <= 9) $moisString = "0" . $mois;
else $moisString = $mois;
$societesArr=[];
//Recuperer les societs
$societes = $societeRepository->findAll();
foreach ($societes as $key => $societe) {
$societesArr[$key]=[$societe->getRaisonSociale(),0];
}
$donnees=[[],[],[],[]];
$donnees=[[],[],[],[]];
$etrsMois = $moisEtrRepository->findEntrepriseByDate($mois, $annee);
foreach ($etrsMois as $etrItem) {
$etr = $etrItem->getEtrProd()->getId();
$etrObj = $etrItem->getEtrProd();
foreach ($societes as $key => $societe) {
if($societe->getId()==$etrObj->getSociete()->getId()){
$calculeBdc = $interventionProductionRepository->findByMontantProd_1($mois, $annee, $etr);
$penalites = $penaliteRepository->findSommePenalites( $etr, $moisString, $annee);
$penalite =$penalites[0]['penalite']!=null ? $penalites[0]['penalite']:0;
$arr=$donnees[$key];
array_push($arr,[$etrObj->getraisonSociale(),$calculeBdc[0]['montant'] + $penalite]);
$donnees[$key]=$arr;
$total=$societesArr[$key][1]+$calculeBdc[0]['montant'] + $penalite;
$societesArr[$key][1]=$total;
}
}
}
// dd($donnees);
if ($pdf == 'pdf') {
// Configure Dompdf according to your needs
$pdfOptions = new Options();
$pdfOptions->set('defaultFont', 'Arial');
// Instantiate Dompdf with our options
$dompdf = new Dompdf($pdfOptions);
// Retrieve the HTML generated in our twig file
$html = $this->renderView('prevision/index.html.twig', [
'moisParam'=>$mois,
'anneeParam'=>$annee,
'pdf'=>'pdf',
'societes'=>$societesArr,
'donnees'=>$donnees,
]);
// Load HTML to Dompdf
$dompdf->loadHtml($html);
// (Optional) Setup the paper size and orientation 'portrait' or 'landscape'
$dompdf->setPaper('A4', 'landscape');
$dompdf->render();
$name = "PrevisionsDeCharge " . $mois . "-" . $annee . ".pdf";
ob_end_clean();
$dompdf->stream($name, [
"Attachment" => true
]);
}
// dd($donnees);
return $this->render('prevision/index.html.twig', [
'moisParam'=>$mois,
'anneeParam'=>$annee,
'pdf'=>'',
'societes'=>$societesArr,
'donnees'=>$donnees,
]);
}
#[Route('/prevision/sav/{pdf?}', name: 'app_prevision_sav')]
public function previsionSav( InterventionSavRepository $interventionSavRepository,
Request $request,
$pdf,
EtrMoisRepository $etrMoisRepository): Response
{
$mois=(int)$request->query->get('mois');
$annee=(int)$request->query->get('annee');
$moisString = "";
if ($mois >= 1 && $mois <= 9) $moisString = "0" . $mois;
else $moisString = $mois;
$donnees=[];
$etrsMois = $etrMoisRepository->findEntrepriseByDate($mois, $annee);
$total=0;
//dd($etrsMois);
foreach ($etrsMois as $etrItem) {
$etr = $etrItem->getEtr()->getId();
$etrObj = $etrItem->getEtr();
$calculeBdc = $interventionSavRepository->findByMontantSav($mois, $annee, $etr);
$total+=$calculeBdc[0]['montant'] ;
array_push($donnees,[$etrObj->getRaisonSociale(),$calculeBdc[0]['montant']]);
}
$societesArr=[];
$societesArr[0]=['SH.COM',$total];
if ($pdf == 'pdf') {
// Configure Dompdf according to your needs
$pdfOptions = new Options();
$pdfOptions->set('defaultFont', 'Arial');
// Instantiate Dompdf with our options
$dompdf = new Dompdf($pdfOptions);
// Retrieve the HTML generated in our twig file
//dd($pdf);
$html = $this->renderView('prevision/index_sav.html.twig', [
'moisParam'=>$mois,
'anneeParam'=>$annee,
'pdf'=>'pdf',
'societes'=>$societesArr,
'donnees'=>$donnees,
]);
// Load HTML to Dompdf
$dompdf->loadHtml($html);
// (Optional) Setup the paper size and orientation 'portrait' or 'landscape'
$dompdf->setPaper('A4', 'landscape');
$dompdf->render();
$name = "PrevisionsDeChargeSav" . $mois . "-" . $annee . ".pdf";
ob_end_clean();
$dompdf->stream($name, [
"Attachment" => true
]);
}
// dd($donnees);
return $this->render('prevision/index_sav.html.twig', [
'moisParam'=>$mois,
'anneeParam'=>$annee,
'pdf'=>'',
'societes'=>$societesArr,
'donnees'=>$donnees,
]);
}
}