src/Controller/PrevisionController.php line 22

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Repository\EtrMoisRepository;
  4. use App\Repository\InterventionProductionRepository;
  5. use App\Repository\InterventionSavRepository;
  6. use App\Repository\MoisEtrRepository;
  7. use App\Repository\PenaliteRepository;
  8. use App\Repository\SocieteRepository;
  9. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  10. use Symfony\Component\HttpFoundation\Response;
  11. use Symfony\Component\Routing\Annotation\Route;
  12. use Symfony\Component\HttpFoundation\Request;
  13. /* Generer des pdf */
  14. use Dompdf\Dompdf;
  15. use Dompdf\Options;
  16. class PrevisionController extends AbstractController
  17. {
  18.     #[Route('/prevision/prod/{pdf?}'name'app_prevision_prod')]
  19.     public function indexInterventionProductionRepository $interventionProductionRepository,SocieteRepository $societeRepository,Request $request,$pdf,MoisEtrRepository $moisEtrRepositoryPenaliteRepository $penaliteRepository): Response
  20.     {
  21.         $mois=(int)$request->query->get('mois');
  22.         $annee=(int)$request->query->get('annee');
  23.         $moisString "";
  24.         if ($mois >= && $mois <= 9$moisString "0" $mois;
  25.         else $moisString =  $mois;
  26.         $societesArr=[];
  27.         //Recuperer les societs
  28.         $societes $societeRepository->findAll();
  29.         foreach ($societes as $key => $societe) {
  30.             $societesArr[$key]=[$societe->getRaisonSociale(),0];
  31.         }
  32.         $donnees=[[],[],[],[]];
  33.         $donnees=[[],[],[],[]];
  34.         $etrsMois $moisEtrRepository->findEntrepriseByDate($mois$annee);
  35.         
  36.         foreach ($etrsMois as $etrItem) {
  37.             $etr    $etrItem->getEtrProd()->getId();
  38.             $etrObj $etrItem->getEtrProd();
  39.             foreach ($societes as $key => $societe) {
  40.                 
  41.                 if($societe->getId()==$etrObj->getSociete()->getId()){
  42.                     $calculeBdc $interventionProductionRepository->findByMontantProd_1($mois$annee$etr);
  43.                     $penalites $penaliteRepository->findSommePenalites$etr$moisString$annee);
  44.                     $penalite =$penalites[0]['penalite']!=null $penalites[0]['penalite']:0;
  45.                     
  46.                     $arr=$donnees[$key];
  47.                     
  48.                     array_push($arr,[$etrObj->getraisonSociale(),$calculeBdc[0]['montant'] + $penalite]);
  49.                     $donnees[$key]=$arr;
  50.                     $total=$societesArr[$key][1]+$calculeBdc[0]['montant'] + $penalite;
  51.                     $societesArr[$key][1]=$total;
  52.                 }
  53.             }
  54.             
  55.         }
  56.         // dd($donnees);
  57.         if ($pdf == 'pdf') {
  58.             // Configure Dompdf according to your needs
  59.             $pdfOptions = new Options();
  60.             $pdfOptions->set('defaultFont''Arial');
  61.             // Instantiate Dompdf with our options
  62.             $dompdf = new Dompdf($pdfOptions);
  63.             // Retrieve the HTML generated in our twig file
  64.             $html $this->renderView('prevision/index.html.twig', [
  65.                 'moisParam'=>$mois,
  66.                 'anneeParam'=>$annee,
  67.                 'pdf'=>'pdf',
  68.                 'societes'=>$societesArr,
  69.                 'donnees'=>$donnees,
  70.             ]);
  71.             // Load HTML to Dompdf
  72.             $dompdf->loadHtml($html);
  73.             // (Optional) Setup the paper size and orientation 'portrait' or 'landscape'
  74.             $dompdf->setPaper('A4''landscape');
  75.             $dompdf->render();
  76.             
  77.             $name "PrevisionsDeCharge " $mois "-" $annee ".pdf";
  78.             
  79.             ob_end_clean();
  80.             $dompdf->stream($name, [
  81.                 "Attachment" => true
  82.             ]);
  83.         }
  84.         // dd($donnees);
  85.         return $this->render('prevision/index.html.twig', [
  86.             'moisParam'=>$mois,
  87.             'anneeParam'=>$annee,
  88.             'pdf'=>'',
  89.             'societes'=>$societesArr,
  90.             'donnees'=>$donnees,
  91.         ]);
  92.     }
  93.     #[Route('/prevision/sav/{pdf?}'name'app_prevision_sav')]
  94.     public function previsionSavInterventionSavRepository $interventionSavRepository,
  95.                                 Request $request,
  96.                                 $pdf,
  97.                                 EtrMoisRepository $etrMoisRepository): Response
  98.     {
  99.         $mois=(int)$request->query->get('mois');
  100.         $annee=(int)$request->query->get('annee');
  101.         $moisString "";
  102.         if ($mois >= && $mois <= 9$moisString "0" $mois;
  103.         else $moisString =  $mois;
  104.         
  105.         $donnees=[];
  106.         $etrsMois $etrMoisRepository->findEntrepriseByDate($mois$annee);
  107.         $total=0;
  108.         //dd($etrsMois);
  109.         foreach ($etrsMois as $etrItem) {
  110.             $etr    $etrItem->getEtr()->getId();
  111.             $etrObj $etrItem->getEtr();
  112.             $calculeBdc $interventionSavRepository->findByMontantSav($mois$annee$etr);
  113.             $total+=$calculeBdc[0]['montant'] ;
  114.             array_push($donnees,[$etrObj->getRaisonSociale(),$calculeBdc[0]['montant']]);
  115.         }
  116.         $societesArr=[];
  117.         $societesArr[0]=['SH.COM',$total];
  118.         
  119.         if ($pdf == 'pdf') {
  120.             // Configure Dompdf according to your needs
  121.             $pdfOptions = new Options();
  122.             $pdfOptions->set('defaultFont''Arial');
  123.             // Instantiate Dompdf with our options
  124.             $dompdf = new Dompdf($pdfOptions);
  125.             // Retrieve the HTML generated in our twig file
  126.             //dd($pdf);
  127.             $html $this->renderView('prevision/index_sav.html.twig', [
  128.                 'moisParam'=>$mois,
  129.                 'anneeParam'=>$annee,
  130.                 'pdf'=>'pdf',
  131.                 'societes'=>$societesArr,
  132.                 'donnees'=>$donnees,
  133.             ]);
  134.             
  135.             // Load HTML to Dompdf
  136.             $dompdf->loadHtml($html);
  137.             // (Optional) Setup the paper size and orientation 'portrait' or 'landscape'
  138.             $dompdf->setPaper('A4''landscape');
  139.             $dompdf->render();
  140.             
  141.             
  142.             $name "PrevisionsDeChargeSav" $mois "-" $annee ".pdf";
  143.             
  144.             ob_end_clean();
  145.             
  146.             
  147.             $dompdf->stream($name, [
  148.                 "Attachment" => true
  149.             ]);
  150.         }
  151.         // dd($donnees);
  152.         return $this->render('prevision/index_sav.html.twig', [
  153.             'moisParam'=>$mois,
  154.             'anneeParam'=>$annee,
  155.             'pdf'=>'',
  156.             'societes'=>$societesArr,
  157.             'donnees'=>$donnees,
  158.         ]);
  159.     }
  160. }