src/Controller/FactureController.php line 36
<?phpnamespace App\Controller;use App\Entity\Facture;use App\Entity\Camion;use App\Entity\FactureDocument;use App\Entity\User;use App\Entity\FactureMaintenance;use App\Entity\Remorque;use App\Entity\Maintenance;use App\Entity\Divers;use App\Form\FactureType;use App\Form\AnneeType;use App\Repository\FactureDocumentRepository;use App\Repository\FactureMaintenanceRepository;use App\Repository\FactureRepository;use App\Repository\MaintenanceRepository;use App\Repository\MaintenanceTypeRepository;use PhpParser\Node\Expr\AssignOp\Div;use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;use Symfony\Component\HttpFoundation\Request;use Symfony\Component\HttpFoundation\Response;use Symfony\Component\Routing\Annotation\Route;use Doctrine\Persistence\ManagerRegistry;use Symfony\Component\HttpFoundation\JsonResponse;use App\Repository\DocumentationRepository;use App\Service\FactureService;use App\Service\FunctionService;use App\Service\CarteCamionUserService;#[Route('/facture')]class FactureController extends AbstractController{#[Route('/{vehicule}', name: 'app_facture_index', methods: ['GET'])]public function index(FactureRepository $factureRepository,$vehicule,ManagerRegistry $doctrine,DocumentationRepository $documentationRepository, MaintenanceTypeRepository $maintenanceTypeRepository,FactureDocumentRepository $factureDocumentRepository): Response{$em = $doctrine->getManager();/*$path = "../public/upload/facture/";if (file_exists( $path)) {$dossier = Opendir( $path); //Ouverture du dossier.while ($fichier = readdir($dossier)) //On affiche les fichiers les uns après les autres.{if (($fichier != '.') && ($fichier != '..') && ($fichier != '@eaDir')){$exp = explode('.',$fichier);$idFact = $exp[0];$facture = $factureRepository->find($idFact);if(is_object($facture)) {echo $fichier . " " . $facture->getId() . "<br />";if (!file_exists("../public/upload/facture/" . $facture->getDate()->format('Y'))) {mkdir("../public/upload/facture/" . $facture->getDate()->format('Y'), 0777, true);}if (!file_exists("../public/upload/facture/" . $facture->getDate()->format('Y') . '/' . $facture->getDate()->format('m'))) {mkdir("../public/upload/facture/" . $facture->getDate()->format('Y') . '/' . $facture->getDate()->format('m'), 0777, true);}if (!file_exists("../public/upload/facture/" . $facture->getDate()->format('Y') . '/' . $facture->getDate()->format('m') . '/' . $facture->getDate()->format('d'))) {mkdir("../public/upload/facture/" . $facture->getDate()->format('Y') . '/' . $facture->getDate()->format('m') . '/' . $facture->getDate()->format('d'), 0777, true);}if (!file_exists("../public/upload/facture/" . $facture->getDate()->format('Y') . '/' . $facture->getDate()->format('m') . '/' . $facture->getDate()->format('d') . '/' . $facture->getId())) {mkdir("../public/upload/facture/" . $facture->getDate()->format('Y') . '/' . $facture->getDate()->format('m') . '/' . $facture->getDate()->format('d') . '/' . $facture->getId(), 0777, true);}//echo "../public/upload/facture/".$fichier.'<br />';//echo "../public/upload/facture/".$facture->getDate()->format('Y') . '/' . $facture->getDate()->format('m') . '/' . $facture->getDate()->format('d') . '/' . $facture->getId()."/".$facture->getNameFile()."<br />";//var_dump(move_uploaded_file("upload/facture/".$fichier, "upload/facture/".$facture->getDate()->format('Y') . '/' . $facture->getDate()->format('m') . '/' . $facture->getDate()->format('d') . '/' . $facture->getId()."/".$facture->getNameFile()));var_dump(rename("upload/facture/" . $fichier, "upload/facture/" . $facture->getDate()->format('Y') . '/' . $facture->getDate()->format('m') . '/' . $facture->getDate()->format('d') . '/' . $facture->getId() . "/" . $facture->getNameFile()));//$file = $file->move("../public/upload/facture/",$facture->getDate()->format('Y') . '/' . $facture->getDate()->format('m') . '/' . $facture->getDate()->format('d') . '/' . $facture->getId()."/".$facture->getNameFile());//break;$factDoc = new FactureDocument();$factDoc->setNameFile($facture->getNameFile());$factDoc->setFacture($facture);$factureDocumentRepository->save($factDoc, true);$facture->setCreatedAt($facture->getDate());$factureRepository->save($facture, true);}}}}*/$listVehicule = array();$listMaintenanceType = array();$em = $doctrine->getManager();if($vehicule==1){$camionRepo = $em->getRepository(Camion::class);$listVehicule = $camionRepo->findAllCamion($this->getUser()->getSystemeClient())->getQuery()->getResult();$listMaintenanceType = $maintenanceTypeRepository->findBy(array('typeVehicule'=>1));}else if($vehicule == 2){$remorqueRepo = $em->getRepository(Remorque::class);$listVehicule = $remorqueRepo->findAllRemorque($this->getUser()->getSystemeClient())->getQuery()->getResult();$listMaintenanceType = $maintenanceTypeRepository->findBy(array('typeVehicule'=>2));}else if($vehicule == 3){$camionRepo = $em->getRepository(Camion::class);$listVehicule = $camionRepo->findAllVoiture($this->getUser()->getSystemeClient())->getQuery()->getResult();$listMaintenanceType = $maintenanceTypeRepository->findBy(array('typeVehicule'=>3));}else if($vehicule == 4){$diversRepo = $em->getRepository(Divers::class);$listVehicule = $diversRepo->findAllDivers($this->getUser()->getSystemeClient());}$listChauffeur = $em->getRepository(User::class)->findAllChauffeur(1);$docu = $documentationRepository->find(22);return $this->render('facture/index.html.twig', ['docu' => $docu->getText(),'listChauffeur'=>$listChauffeur,'listVehicule'=>$listVehicule,'vehicule' => $vehicule,'listMaintenanceType' => $listMaintenanceType,]);}#[Route('/uploadFile', name: 'app_facture_upload_file', methods: ['POST'])]public function uploadFileAction(Request $request, ManagerRegistry $doctrine, FactureRepository $factureRepository, FactureDocumentRepository $factureDocumentRepository, FactureService $factureService): Response{$em = $doctrine->getManager();$return = array("valide"=>0,'file'=>array('name'=>null),"idFacture"=>null);$file = $request->files->get('file');$typeVehicule = $request->request->get('typeVehicule');$idVehicule = $request->request->get('idVehicule');$idFacture = $request->request->get('idFacture');if($file->isValid()){$listExt = array('pdf','txt','jpg','png','xls','csv','xlsx');if(in_array($file->getClientOriginalExtension(),$listExt)){$filename = str_replace("%", "", $file->getClientOriginalName());//supprime les % car il pse problème à l'affichageif(is_numeric($idFacture)) {//si facture existante$facture = $factureRepository->find($idFacture);}else{//si pas de facture existante, on la créé$facture = new Facture();if ($typeVehicule == 1 || $typeVehicule == 3) {$camionRepo = $em->getRepository(Camion::class);$cam = $camionRepo->find($idVehicule);$facture->setCamion($cam);} else if($typeVehicule == 2) {$remorqueRepo = $em->getRepository(Remorque::class);$rem = $remorqueRepo->find($idVehicule);$facture->setRemorque($rem);} else if($typeVehicule == 4) {$diversRepo = $em->getRepository(Divers::class);$div = $diversRepo->find($idVehicule);$facture->setDivers($div);}$facture->setNameFile($filename);$facture->setDate(new \DateTime());$facture->setCreatedAt(new \DateTime());$facture->setValide(0);$facture->setCourroie(0);$facture->setFiltreAir(0);$facture->setFiltreGO(0);$facture->setFiltreHuile(0);$facture->setVidange(0);$facture->setPrix(0);$facture->setHeureMoteur(0);$factureRepository->save($facture, true);}$idFacture = $facture->getId();$returnData = $factureService->addFacture($file,$idFacture);$return['valide'] = $returnData['valide'];$return['idFacture'] = $returnData['idFacture'];//on test le nom et on rajoute un chiffre si besoin/*$exp = explode('.',$filename);$ext = end($exp);$fileNameSansExt = $exp[0];$filepath = "../public/upload/facture/" . $facture->getCreatedAt()->format('Y') . '/' . $facture->getCreatedAt()->format('m') . '/' . $facture->getCreatedAt()->format('d') . '/' . $facture->getId() . '/';if (file_exists($filepath . $filename)) {$i = 1;while (file_exists($filepath . $filename)) {$filename = $fileNameSansExt . $i . '.' . $ext;$i++;}}//on créé les dossiers si besoinif (!file_exists("../public/upload/facture/" . $facture->getCreatedAt()->format('Y'))) {mkdir("../public/upload/facture/" . $facture->getCreatedAt()->format('Y'), 0777, true);}if (!file_exists("../public/upload/facture/" . $facture->getCreatedAt()->format('Y') . '/' . $facture->getCreatedAt()->format('m'))) {mkdir("../public/upload/facture/" . $facture->getCreatedAt()->format('Y') . '/' . $facture->getCreatedAt()->format('m'), 0777, true);}if (!file_exists("../public/upload/facture/" . $facture->getCreatedAt()->format('Y') . '/' . $facture->getCreatedAt()->format('m') . '/' . $facture->getCreatedAt()->format('d'))) {mkdir("../public/upload/facture/" . $facture->getCreatedAt()->format('Y') . '/' . $facture->getCreatedAt()->format('m') . '/' . $facture->getCreatedAt()->format('d'), 0777, true);}if (!file_exists("../public/upload/facture/" . $facture->getCreatedAt()->format('Y') . '/' . $facture->getCreatedAt()->format('m') . '/' . $facture->getCreatedAt()->format('d') . '/' . $facture->getId())) {mkdir("../public/upload/facture/" . $facture->getCreatedAt()->format('Y') . '/' . $facture->getCreatedAt()->format('m') . '/' . $facture->getCreatedAt()->format('d') . '/' . $facture->getId(), 0777, true);}$file = $file->move("../public/upload/facture/".$facture->getCreatedAt()->format('Y') . '/' . $facture->getCreatedAt()->format('m') . '/' . $facture->getCreatedAt()->format('d') . '/' . $facture->getId().'/',$filename);$factDoc = new FactureDocument();$factDoc->setNameFile($filename);$factDoc->setFacture($facture);$factureDocumentRepository->save($factDoc, true);if(is_object($file)){$return['valide'] = 1;$return['idFacture'] = $facture->getId();}*/}}return new JsonResponse($return);}#[Route('/uploadDataFacture', name: 'app_facture_upload_data_facture', methods: ['POST'])]public function uploadDataFactureAction(Request $request, ManagerRegistry $doctrine, FactureRepository $factureRepository, MaintenanceTypeRepository $maintenanceTypeRepository, MaintenanceRepository $maintenanceRepository, FactureMaintenanceRepository $factureMaintenanceRepository, FactureService $factureService): Response{$em = $doctrine->getManager();$return = array("valide"=>0,"msg"=>"");$idFacture = $request->request->get('idFacture');$typeVehicule = $request->request->get('typeVehicule');$idVehicule = $request->request->get('idVehicule');$fileFacture = $request->files->get('fileFacture');if($idFacture==''){$facture = new Facture();$facture->setNameFile("");$facture->setDate(new \DateTime());$facture->setValide(1);$facture->setCreatedAt(new \DateTime());$factureRepository->save($facture, true);$idFacture = $facture->getId();}$textFacture = $request->request->get('textFacture');$vidangeFT = $request->request->get('vidange');$heureMoteur = $request->request->get('heureMoteur');$prix = $request->request->get('prix');if($vidangeFT=="true"){$vidange = 1;}else{$vidange = 0;}$filtrehuileFT = $request->request->get('filtrehuile');if($filtrehuileFT=="true"){$filtrehuile = 1;}else{$filtrehuile = 0;}$filtreairFT = $request->request->get('filtreair');if($filtreairFT=="true"){$filtreair = 1;}else{$filtreair = 0;}$filtregoFT = $request->request->get('filtrego');if($filtregoFT=="true"){$filtrego = 1;}else{$filtrego = 0;}$courroieFT = $request->request->get('courroie');if($courroieFT=="true"){$courroie = 1;}else{$courroie = 0;}$sinistre = $request->request->get('sinistre');$date = $request->request->get('date');$maintenanceType = array();$data = $request->request->all();if(!empty($data['maintenanceType'])){$maintenanceType = $data['maintenanceType'];}if($idFacture>0){$factureRepo = $em->getRepository(Facture::class);$facture = $factureRepo->find($idFacture);if(is_object($facture)){if($date!='' && $textFacture!=''){if($typeVehicule==1 || $typeVehicule==3){$camionRepo = $em->getRepository(Camion::class);$cam = $camionRepo->find($idVehicule);$facture->setCamion($cam);}else if($typeVehicule==2){$remorqueRepo = $em->getRepository(Remorque::class);$rem = $remorqueRepo->find($idVehicule);$facture->setRemorque($rem);}else if($typeVehicule==4){$diversRepo = $em->getRepository(Divers::class);$div = $diversRepo->find($idVehicule);$facture->setDivers($div);}$dateT = new \DateTime($date);/*if($fileFacture!=null){if($fileFacture->isValid()) {$listExt = array('pdf', 'txt', 'jpg', 'png', 'xls', 'csv', 'xlsx');if (in_array($fileFacture->getClientOriginalExtension(), $listExt)) {$filename = $fileFacture->getClientOriginalName();$facture->setNameFile($filename);$fileFacture->move("../public/upload/facture/",$facture->getId().".".$fileFacture->getClientOriginalExtension());}else{$return['msg'] = "Le type de fichier n'est pas correct, seuls les fichiers pdf, txt, jpg, png, xls, csv ou xlsx sont pris en compte.";}}else{$return['msg'] = "Votre fichier n'est pas valide.";}}*/$facture->setText($textFacture);$facture->setDate($dateT);$facture->setVidange($vidange);$facture->setFiltreHuile($filtrehuile);$facture->setFiltreAir($filtreair);$facture->setFiltreGO($filtrego);$facture->setCourroie($courroie);$facture->setSinistre($sinistre);if($prix==''){$facture->setPrix(0);}else{$facture->setPrix($prix);}if($heureMoteur==''){$facture->setHeureMoteur(0);}else{$facture->setHeureMoteur($heureMoteur);}$facture->setValide(1);$factureRepository->save($facture, true);if(!empty($maintenanceType)){//si c'est une maintenance on rajoute la date dans la maintenanceforeach($maintenanceType as $idMT) {$maintenanceType = $maintenanceTypeRepository->find($idMT);$maintenance = new Maintenance();$maintenance->setDate($dateT);$maintenance->setCommentaire($textFacture);$maintenance->setType($maintenanceType);$maintenance->setSystemeClient($this->getUser()->getSystemeClient());$maintenance->setActif(1);if ($facture->getRemorque() != null) {$maintenance->setRemorque($facture->getRemorque());$maintenance->setCamion(null);} else {$maintenance->setRemorque(null);$maintenance->setCamion($facture->getCamion());}$maintenanceRepository->save($maintenance, true);$factureMaintenance = new FactureMaintenance();$factureMaintenance->setFacture($facture);$factureMaintenance->setMaintenanceType($maintenanceType);$factureMaintenanceRepository->save($factureMaintenance, true);}}$return['valide'] = 1;}else{$return['msg'] = "Les données saisie ne semblent pas corrects";}if($fileFacture!=null){if($fileFacture->isValid()) {$listExt = array('pdf', 'txt', 'jpg', 'png', 'xls', 'csv', 'xlsx');if (in_array($fileFacture->getClientOriginalExtension(), $listExt)) {$factureService->addFacture($fileFacture, $idFacture);}else{$return['msg'] = "Le type de fichier n'est pas correct, seuls les fichiers pdf, txt, jpg, png, xls, csv ou xlsx sont pris en compte.";}}else{$return['msg'] = "Votre fichier n'est pas valide.";}}}else{$return['msg'] = "Aucun document n'a été trouvé";}}else{$return['msg'] = "Aucun document n'a été trouvé";}return new JsonResponse($return);}#[Route('/getListFacture/{idVehicule}/{typeVehicule}', name: 'app_facture_get_list', methods: ['GET'])]public function getListFactureAction(Request $request, $idVehicule, $typeVehicule, ManagerRegistry $doctrine, FactureRepository $factureRepository, FactureDocumentRepository $factureDocumentRepository): Response{$em = $doctrine->getManager();$return = array("valide"=>0,'listeFacture'=>array(),'nomVehicule'=>"",'listChauffeur'=>array());$listChauffeur = array();$listChauffeurBDD = $em->getRepository(User::class)->findAllChauffeur(1);if(!empty($listChauffeurBDD)){foreach($listChauffeurBDD as $chauff){$listChauffeur[] = array('id'=>$chauff->getId(),'nom'=>$chauff->getPrenom().' '.$chauff->getNom());}}//suppression des lignes non terminées$factureRepo = $em->getRepository(Facture::class);$listFac = $factureRepo->findBy(array("valide"=>0));if(!empty($listFac)){foreach($listFac as $fact){$listFactDoc = $factureDocumentRepository->findBy(array('facture'=>$fact));if(!empty($listFactDoc)){foreach($listFactDoc as $factDoc){if(file_exists("../public/upload/facture/".$fact->getCreatedAt()->format('Y') . '/' . $fact->getCreatedAt()->format('m') . '/' . $fact->getCreatedAt()->format('d') . '/' . $fact->getId().'/'.$factDoc->getNameFile())) {unlink("../public/upload/facture/".$fact->getCreatedAt()->format('Y') . '/' . $fact->getCreatedAt()->format('m') . '/' . $fact->getCreatedAt()->format('d') . '/' . $fact->getId().'/'.$factDoc->getNameFile());$factureDocumentRepository->remove($factDoc, true);$factureRepository->remove($fact, true);}}}}}$listFacture = array();if($typeVehicule==1 || $typeVehicule==3){$camionRepo = $em->getRepository(Camion::class);$cam = $camionRepo->find($idVehicule);$listFacture = $factureRepo->findBy(array("camion"=>$cam),array('date'=>'DESC'));$return['nomVehicule'] = $cam->getNom();}else if($typeVehicule==2){$remorqueRepo = $em->getRepository(Remorque::class);$rem = $remorqueRepo->find($idVehicule);$listFacture = $factureRepo->findBy(array("remorque"=>$rem),array('date'=>'DESC'));$return['nomVehicule'] = $rem->getNumero().' / '.$rem->getNom().' / '.$rem->getMarque().' / '.$rem->getCat().' / '.$rem->getReferenceMoteur();}else if($typeVehicule==4){$diversRepo = $em->getRepository(Divers::class);$divers = $diversRepo->find($idVehicule);$listFacture = $factureRepo->findBy(array("divers"=>$divers),array('date'=>'DESC'));$return['nomVehicule'] = $divers->getNom();}if(!empty($listFacture)){foreach($listFacture as $facture){$listFactDoc = $factureDocumentRepository->findBy(array('facture'=>$facture));$listFile = array();if(!empty($listFactDoc)){foreach($listFactDoc as $factDoc){$exp = explode('.',$factDoc->getNameFile());$ext = end($exp);$icon = "<i class=\"fa-regular fa-file fa-2x btn btn-default\"></i>";if($ext=='pdf'){$icon = "<i class=\"fa-solid fa-file-pdf fa-2x btn btn-danger\"></i>";}if($ext=='xls' || $ext=='xlsx'){$icon = "<i class=\"fa-regular fa-file-excel fa-2x btn btn-success\"></i>";}if($ext=='csv'){$icon = "<i class=\"fa-solid fa-file-csv fa-2x btn btn-success\" ></i>";}if($ext=='png' || $ext=='jpg'){$icon = "<i class=\"fa-solid fa-image fa-2x btn btn-info\"></i>";}$listFile[] = array('name'=>$factDoc->getNameFile(), "icon"=>$icon,'ext'=>$ext,'id'=>$factDoc->getId(),'url'=>$facture->getCreatedAt()->format('Y') . '/' . $facture->getCreatedAt()->format('m') . '/' . $facture->getCreatedAt()->format('d') . '/' . $facture->getId().'/'.$factDoc->getNameFile());}}$chauffeurNom = "";$chauffeurId = 0;if($facture->getSinistre()>0) {$chauffeur = $em->getRepository(User::class)->find($facture->getSinistre());if (is_object($chauffeur)) {$chauffeurNom = $chauffeur->getPrenom() . ' ' . $chauffeur->getNom();$chauffeurId = $chauffeur->getId();}}$return['listeFacture'][] = array('id'=>$facture->getId(),'file'=>$listFile,'text'=>$facture->getText(),'date'=>$facture->getDate()->format("d/m/Y"),'dateUS'=>$facture->getDate()->format("Y-m-d"),'vidange'=>$facture->getVidange(),'filtreHuile'=>$facture->getFiltreHuile(),'filtreAir'=>$facture->getFiltreAir(),'filtreGO'=>$facture->getFiltreGO(),'courroie'=>$facture->getCourroie(),'sinistre'=>$chauffeurId,'sinistreNom'=>$chauffeurNom,'prix'=>$facture->getPrix(),'heureMoteur'=>$facture->getHeureMoteur());$return['listChauffeur'] = $listChauffeur;$return['valide'] = 1;}}return new JsonResponse($return);}#[Route('/getDateImmatByTypeVehicule/{idVehicule}/{typeVehicule}', name: 'app_facture_get_date_immat_by_type_vehicule', methods: ['GET'])]public function getDateImmatByTypeVehicule(Request $request, $idVehicule, $typeVehicule, ManagerRegistry $doctrine, FactureRepository $factureRepository): Response{$em = $doctrine->getManager();$return = array("valide"=>0,'dateImmat'=>"",'dateImmatUS'=>"");if($typeVehicule==1 || $typeVehicule==3){$camionRepo = $em->getRepository(Camion::class);$cam = $camionRepo->find($idVehicule);if($cam->getDateImmat()!=null){$return['valide'] = 1;$return['dateImmat'] = $cam->getDateImmat()->format('d/m/Y');$return['dateImmatUS'] = $cam->getDateImmat()->format('Y-m-d');}}else if($typeVehicule==2){$remorqueRepo = $em->getRepository(Remorque::class);$rem = $remorqueRepo->find($idVehicule);if($rem->getDateImmat()!=null){$return['valide'] = 1;$return['dateImmat'] = $rem->getDateImmat()->format('d/m/Y');$return['dateImmatUS'] = $rem->getDateImmat()->format('Y-m-d');}}else if($typeVehicule==4){$return['valide'] = 1;}return new JsonResponse($return);}#[Route('/cout/annuelParChauffeur/', name: 'app_facture_cout_annuel_par_chauffeur', methods: ['GET', 'POST'])]public function coutAnnuelParChauffeur(Request $request,ManagerRegistry $doctrine, DocumentationRepository $documentationRepository,FunctionService $functionService, CarteCamionUserService $carteCamionUserService): Response{$form = $this->createForm(AnneeType::class);$form->handleRequest($request);$em = $doctrine->getManager();$listMois = $functionService->getListMoisString();$tri = "chauffeur";$data = array();$affChauffeur = null;$listCoutRem = array();$listCoutVoit = array();$listCoutChauffeur = array();$listChauffeur = $em->getRepository(User::class)->findAllChauffeur($this->getUser()->getSystemeClient());$annee = date('Y');if ($form->isSubmitted() && $form->isValid()) {$mois_annee = $request->request->all();$annee = $mois_annee['annee']['annee'];$affChauffeur = $mois_annee['affChauffeur'];$tri = $mois_annee['tri'];$factureRepository = $em->getRepository(Facture::class);$list = $factureRepository->findSinistreByYear($annee);if(!empty($listChauffeur)){//on rempli à vide la liste des chauffeursforeach($listChauffeur as $chauffeur){$listCoutChauffeur[$chauffeur->getId()]['chauffeur'] = $chauffeur->getPrenom().' '.$chauffeur->getNom();$listCoutChauffeur[$chauffeur->getId()]['matricule'] = $chauffeur->getMatricule();$listCoutChauffeur[$chauffeur->getId()]['cout'] = 0;}}if(!empty($list)){//on boucle sur la liste des factures avec sinistreforeach($list as $facture){if(isset($listCoutChauffeur[$facture->getSinistre()])){//et on ajoute les prix à chaque chauffeur$listCoutChauffeur[$facture->getSinistre()]['cout'] += $facture->getPrix();}}if($tri=='chauffeur'){$listCoutChauffeur = $functionService->array_msort($listCoutChauffeur, array($tri => SORT_ASC));}else{$listCoutChauffeur = $functionService->array_msort($listCoutChauffeur, array($tri => SORT_DESC));}}}$docu = $documentationRepository->find(53);return $this->render('facture/coutAnnuelParChauffeur.html.twig', ['listMois' => $listMois,'docu' => $docu->getText(),'form' => $form,'data' => $data,'annee' => $annee,'listChauffeur' => $listChauffeur,'listCoutRem' => $listCoutRem,'listCoutVoit' => $listCoutVoit,'listCoutChauffeur' => $listCoutChauffeur,'tri' => $tri,'affChauffeur' => $affChauffeur,]);}#[Route('/new', name: 'app_facture_new', methods: ['GET', 'POST'])]public function new(Request $request, FactureRepository $factureRepository): Response{$facture = new Facture();$form = $this->createForm(FactureType::class, $facture);$form->handleRequest($request);if ($form->isSubmitted() && $form->isValid()) {$facture->setCreatedAt(new \DateTime());$factureRepository->save($facture, true);return $this->redirectToRoute('app_facture_index', [], Response::HTTP_SEE_OTHER);}return $this->renderForm('facture/new.html.twig', ['facture' => $facture,'form' => $form,]);}#[Route('/{id}/edit', name: 'app_facture_edit', methods: ['GET', 'POST'])]public function edit(Request $request, Facture $facture, FactureRepository $factureRepository): Response{$form = $this->createForm(FactureType::class, $facture);$form->handleRequest($request);if ($form->isSubmitted() && $form->isValid()) {$factureRepository->save($facture, true);return $this->redirectToRoute('app_facture_index', [], Response::HTTP_SEE_OTHER);}return $this->renderForm('facture/edit.html.twig', ['facture' => $facture,'form' => $form,]);}#[Route('/{id}', name: 'app_facture_delete', methods: ['POST'])]public function delete(Request $request, Facture $facture, FactureRepository $factureRepository): Response{if ($this->isCsrfTokenValid('delete'.$facture->getId(), $request->request->get('_token'))) {$factureRepository->remove($facture, true);}return $this->redirectToRoute('app_facture_index', [], Response::HTTP_SEE_OTHER);}#[Route('/delete/{id}', name: 'app_facture_delete_facture', methods: ['POST'])]public function deleteFacture(Request $request, Facture $facture, FactureRepository $factureRepository, ManagerRegistry $doctrine, FactureDocumentRepository $factureDocumentRepository): Response{$return = array("valide"=>0);$listDocFacture = $factureDocumentRepository->findBy(array('facture'=>$facture));if(!empty($listDocFacture)){foreach($listDocFacture as $doc){if(file_exists("../public/upload/facture/". $facture->getCreatedAt()->format('Y') . '/' . $facture->getCreatedAt()->format('m') . '/' . $facture->getCreatedAt()->format('d') . '/' . $facture->getId() .'/'.$doc->getNameFile())) {unlink("../public/upload/facture/".$facture->getCreatedAt()->format('Y') . '/' . $facture->getCreatedAt()->format('m') . '/' . $facture->getCreatedAt()->format('d') . '/' . $facture->getId() .'/'.$doc->getNameFile());$factureDocumentRepository->remove($doc, true);}}}$factureRepository->remove($facture, true);$return['valide'] = 1;return new JsonResponse($return);}#[Route('/deleteFactureDoc/{factureDoc}', name: 'app_facture_delete_facture_doc', methods: ['GET'])]public function deleteFactureDoc(Request $request, FactureDocument $factureDoc, FactureRepository $factureRepository, ManagerRegistry $doctrine, FactureDocumentRepository $factureDocumentRepository): Response{$return = array("valide"=>0);$facture = $factureDoc->getFacture();if(is_object($facture)) {$url = $facture->getCreatedAt()->format('Y') . '/' . $facture->getCreatedAt()->format('m') . '/' . $facture->getCreatedAt()->format('d') . '/' . $facture->getId() . '/' . $factureDoc->getNameFile();if ($url != '') {if (file_exists("../public/upload/facture/" . $url)) {unlink("../public/upload/facture/" . $url);$factureDocumentRepository->remove($factureDoc, true);$return['valide'] = 1;}}}return new JsonResponse($return);}}