src/Controller/AccueilController.php line 164
<?phpnamespace App\Controller;use App\Entity\CartePaiement;use App\Entity\ConsommationCamion;use App\Entity\InfoChauffeur;use App\Entity\LavageVehicule;use App\Entity\MessageAccueil;use App\Entity\PeageAutorouteFacturation;use App\Entity\PeageAutorouteJustificatif;use App\Entity\Camion;use App\Entity\User;use App\Entity\TourneeReel;use App\Repository\LavageVehiculeRepository;use App\Repository\RemorqueRepository;use App\Repository\UserRepository;use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;use Symfony\Component\HttpFoundation\Response;use Symfony\Component\Routing\Annotation\Route;use App\Repository\ImportationRepository;use App\Repository\CamionRepository;use Doctrine\Persistence\ManagerRegistry;use App\Service\CarteCamionUserService;use App\Service\MaintenanceService;use App\Service\APISamsaraService;use App\Service\APIDashDocService;class AccueilController extends AbstractController{#[Route('/accueil', name: 'app_accueil')]public function index(ImportationRepository $importationRepository,CamionRepository $camionRepository, ManagerRegistry $doctrine,CarteCamionUserService $carteCamionUserService,MaintenanceService $maintenanceService): Response{if($this->getUser()->getId()==50){return $this->redirectToRoute('app_horaire_exploit_mensuel', [], Response::HTTP_SEE_OTHER);}$em = $doctrine->getManager();$listCamionProb = array();$listCamion = $camionRepository->findCamionProblemeNom($this->getUser()->getSystemeClient());if(!empty($listCamion)){foreach($listCamion as $camion){$listCamionProb[] = $camion;}}$listAJustifier = $em->getRepository(PeageAutorouteJustificatif::class)->findBy(array('valide'=>0));$countJustif = count($listAJustifier);$countFacPeage = 0;$countConso = 0;if(date('d')>16){$dateDeb = new \DateTime(date('Y-m-16'));$dateFin = new \DateTime(date('Y-m-t'));}else{$dateDeb = new \DateTime(date('Y-m-01'));$dateFin = new \DateTime(date('Y-m-15'));}$countFacPeage = $em->getRepository(PeageAutorouteFacturation::class)->getCountEntre2DateSortie($dateDeb,$dateFin);$countConso = $em->getRepository(ConsommationCamion::class)->getCountEntre2DateSortie($dateDeb,$dateFin);$dateJour = new \DateTime();/*$listCarteSansCamion = array();$listCarte = $em->getRepository(CartePaiement::class)->findAll();if(!empty($listCarte)){foreach($listCarte as $carte){$returnCCU = $carteCamionUserService->carteGetUser($carte,$dateJour);$camion = $returnCCU['camion'];if($camion==null){$listCarteSansCamion[] = $carte;}}}*/$listCamionSansUser = array();$listCam = $em->getRepository(Camion::class)->findBy(array('actif'=>1,'systemeClient'=>$this->getUser()->getSystemeClient(),'typeVehicule'=>1));if(!empty($listCam)){foreach($listCam as $camion){$returnCCU = $carteCamionUserService->camionGetUser($camion,$dateJour);$user = $returnCCU['user'];if($user==null){$listCamionSansUser[] = $camion;}}}$listTourneeSansCA = array();$listTourneeSansCMR = array();if($this->getUser()->getSystemeClient()->getId()==1) {$date2W = new \DateTime();$date2W->modify("-2 weeks");$listTourneeBDD = $em->getRepository(TourneeReel::class)->getTourneeReelSansCAPlusAncienQueDate($date2W);if (!empty($listTourneeBDD)) {foreach ($listTourneeBDD as $tournee) {$listTourneeSansCA[$tournee->getId()] = $tournee->getCodeLingevres();}}$listTourneeBDD = $em->getRepository(TourneeReel::class)->getTourneeReelSansCMRPlusAncienQueDate($date2W);if (!empty($listTourneeBDD)) {foreach ($listTourneeBDD as $tournee) {$listTourneeSansCMR[$tournee->getId()] = $tournee->getCodeLingevres();}}}//rappel maintenance$listEchCamUrg = $maintenanceService->getEcheanceUrgente(1,$this->getUser()->getSystemeClient());$listEchRemUrg = $maintenanceService->getEcheanceUrgente(2,$this->getUser()->getSystemeClient());//rappel date permis...$dateFutur = new \DateTime();$dateFutur->modify('+3 month');$listDatePermis = $em->getRepository(InfoChauffeur::class)->getInfoChaffeurAvantDate($dateFutur,'dateValidPermis');$listDateValidFCO = $em->getRepository(InfoChauffeur::class)->getInfoChaffeurAvantDate($dateFutur,'dateValidFCO');$listDateVisiteMedicale = $em->getRepository(InfoChauffeur::class)->getInfoChaffeurAvantDate($dateFutur,'dateVisiteMedicale');$listDateValidCartConduc = $em->getRepository(InfoChauffeur::class)->getInfoChaffeurAvantDate($dateFutur,'dateValidCartConduc');$date3Week = new \DateTime();$date3Week->modify('-3 weeks');$listMsg = $em->getRepository(MessageAccueil::class)->getMessageAccueilFromDate($date3Week);return $this->render('accueil/index.html.twig', ['controller_name' => 'AccueilController','listCamionProb'=>$listCamionProb,'countJustif'=>$countJustif,'countFacPeage'=>$countFacPeage,'countConso'=>$countConso,'dateDeb'=>$dateDeb,'dateFin'=>$dateFin,//'listCarteSansCamion'=>$listCarteSansCamion,'listCamionSansUser'=>$listCamionSansUser,'countEchCamUrg'=>$listEchCamUrg['nbrVehiConcern'],'countEchRemUrg'=>$listEchRemUrg['nbrVehiConcern'],'listTourneeSansCA'=>$listTourneeSansCA,'listTourneeSansCMR'=>$listTourneeSansCMR,'listDatePermis'=>$listDatePermis,'listDateValidFCO'=>$listDateValidFCO,'listDateVisiteMedicale'=>$listDateVisiteMedicale,'listDateValidCartConduc'=>$listDateValidCartConduc,'listMsg'=>$listMsg]);}#[Route('/', name: 'app_accueil2')]public function index2(ImportationRepository $importationRepository,CamionRepository $camionRepository, ManagerRegistry $doctrine,CarteCamionUserService $carteCamionUserService,MaintenanceService $maintenanceService): Response{if($this->getUser()->getId()==50){return $this->redirectToRoute('app_horaire_exploit_mensuel', [], Response::HTTP_SEE_OTHER);}$em = $doctrine->getManager();$listCamionProb = array();$listCamion = $camionRepository->findCamionProblemeNom($this->getUser()->getSystemeClient());if(!empty($listCamion)){foreach($listCamion as $camion){$listCamionProb[] = $camion;}}$listAJustifier = $em->getRepository(PeageAutorouteJustificatif::class)->findBy(array('valide'=>0));$countJustif = count($listAJustifier);$countFacPeage = 0;$countConso = 0;if(date('d')>16){$dateDeb = new \DateTime(date('Y-m-16'));$dateFin = new \DateTime(date('Y-m-t'));}else{$dateDeb = new \DateTime(date('Y-m-01'));$dateFin = new \DateTime(date('Y-m-15'));}$countFacPeage = $em->getRepository(PeageAutorouteFacturation::class)->getCountEntre2DateSortie($dateDeb,$dateFin);$countConso = $em->getRepository(ConsommationCamion::class)->getCountEntre2DateSortie($dateDeb,$dateFin);$dateJour = new \DateTime();/*$listCarteSansCamion = array();$listCarte = $em->getRepository(CartePaiement::class)->findAll();if(!empty($listCarte)){foreach($listCarte as $carte){$returnCCU = $carteCamionUserService->carteGetUser($carte,$dateJour);$camion = $returnCCU['camion'];if($camion==null){$listCarteSansCamion[] = $carte;}}}*/$listCamionSansUser = array();$listCam = $em->getRepository(Camion::class)->findBy(array('actif'=>1,'systemeClient'=>$this->getUser()->getSystemeClient(),'typeVehicule'=>1));if(!empty($listCam)){foreach($listCam as $camion){$returnCCU = $carteCamionUserService->camionGetUser($camion,$dateJour);$user = $returnCCU['user'];if($user==null){$listCamionSansUser[] = $camion;}}}$listTourneeSansCA = array();$listTourneeSansCMR = array();if($this->getUser()->getSystemeClient()->getId()==1) {$date2W = new \DateTime();$date2W->modify("-2 weeks");$listTourneeBDD = $em->getRepository(TourneeReel::class)->getTourneeReelSansCAPlusAncienQueDate($date2W);if (!empty($listTourneeBDD)) {foreach ($listTourneeBDD as $tournee) {$listTourneeSansCA[$tournee->getId()] = $tournee->getCodeLingevres();}}$listTourneeBDD = $em->getRepository(TourneeReel::class)->getTourneeReelSansCMRPlusAncienQueDate($date2W);if (!empty($listTourneeBDD)) {foreach ($listTourneeBDD as $tournee) {$listTourneeSansCMR[$tournee->getId()] = $tournee->getCodeLingevres();}}}//rappel maintenance$listEchCamUrg = $maintenanceService->getEcheanceUrgente(1,$this->getUser()->getSystemeClient());$listEchRemUrg = $maintenanceService->getEcheanceUrgente(2,$this->getUser()->getSystemeClient());//rappel date permis...$dateFutur = new \DateTime();$dateFutur->modify('+3 month');$listDatePermis = $em->getRepository(InfoChauffeur::class)->getInfoChaffeurAvantDate($dateFutur,'dateValidPermis');$listDateValidFCO = $em->getRepository(InfoChauffeur::class)->getInfoChaffeurAvantDate($dateFutur,'dateValidFCO');$listDateVisiteMedicale = $em->getRepository(InfoChauffeur::class)->getInfoChaffeurAvantDate($dateFutur,'dateVisiteMedicale');$listDateValidCartConduc = $em->getRepository(InfoChauffeur::class)->getInfoChaffeurAvantDate($dateFutur,'dateValidCartConduc');$date3Week = new \DateTime();$date3Week->modify('-3 weeks');$listMsg = $em->getRepository(MessageAccueil::class)->getMessageAccueilFromDate($date3Week);return $this->render('accueil/index.html.twig', ['controller_name' => 'AccueilController','listCamionProb'=>$listCamionProb,'countJustif'=>$countJustif,'countFacPeage'=>$countFacPeage,'countConso'=>$countConso,'dateDeb'=>$dateDeb,'dateFin'=>$dateFin,//'listCarteSansCamion'=>$listCarteSansCamion,'listCamionSansUser'=>$listCamionSansUser,'countEchCamUrg'=>$listEchCamUrg['nbrVehiConcern'],'countEchRemUrg'=>$listEchRemUrg['nbrVehiConcern'],'listTourneeSansCA'=>$listTourneeSansCA,'listTourneeSansCMR'=>$listTourneeSansCMR,'listDatePermis'=>$listDatePermis,'listDateValidFCO'=>$listDateValidFCO,'listDateVisiteMedicale'=>$listDateVisiteMedicale,'listDateValidCartConduc'=>$listDateValidCartConduc,'listMsg'=>$listMsg]);}#[Route('/getNbrPassageCaen', name: 'app_getNbrPassageCaen')]public function getNbrPassageCaen(ImportationRepository $importationRepository, ManagerRegistry $doctrine,APISamsaraService $APISamsaraService): Response{$APISamsaraService->getNbrPassageCaen();}#[Route('/generer_lavage', name: 'app_generer_lavage')]public function genererLavage(ImportationRepository $importationRepository,RemorqueRepository $remorqueRepository, ManagerRegistry $doctrine, UserRepository $userRepository, LavageVehiculeRepository $lavageVehiculeRepository): Response{$listRem = $remorqueRepository->findAllRemorque($this->getUser()->getSystemeClient())->getQuery()->getResult();$listChauffeur = array();$listChauffeurBDD = $userRepository->findAllChauffeur($this->getUser()->getSystemeClient());foreach($listChauffeurBDD as $chauf){$listChauffeur[$chauf->getId()] = $chauf;}$startDate = new \DateTime();$startDate->modify('-10 months');foreach ($listRem as $rem) {echo "Remorque: " . $rem->getNumero() . " - Date: " . $startDate->format('d/m/Y') . "<br>";// Boucle pour générer les dates jusqu'à aujourd’huiwhile ($startDate < new \DateTime()) {// Ajouter entre 12 et 15 jours$daysToAdd = rand(12, 15);$startDate->modify("+$daysToAdd days");if($startDate->format('w')==0){$startDate->modify("+1 days");}// Vérifier qu'on ne dépasse pas la date d'aujourd'huiif ($startDate > new \DateTime()) {break;}if (rand(1, 15) === 1) {echo "<br />";} else {// Choix du chauffeur : environ 1 fois sur 2, ce sera l'ID 50if (rand(0, 1) === 0 && isset($listChauffeur[50])) {$selectedChauffeur = $listChauffeur[50];} else {// Prendre un chauffeur au hasard parmi la liste (hors ID 50 si possible)$filteredChauffeurs = array_filter($listChauffeur, fn($id) => $id !== 50, ARRAY_FILTER_USE_KEY);// Si la liste filtrée est vide (par exemple, si seul l'ID 50 existe), on le prend quand mêmeif (!empty($filteredChauffeurs)) {$selectedChauffeur = $filteredChauffeurs[array_rand($filteredChauffeurs)];} else {$selectedChauffeur = $listChauffeur[50]; // Fallback si 50 est le seul dispo}}echo "Chauffeur sélectionné : " . $selectedChauffeur->getId();echo "Remorque: " . $rem->getNumero() . " - Date: " . $startDate->format('d/m/Y') . "<br>";$lavage = new LavageVehicule();$lavage->setCreated(new \DateTime());$lavage->setRemorque($rem);$lavage->setCamion(null);$lavage->setUser($selectedChauffeur);$lavage->setDate($startDate);$lavage->setSystemeClient($this->getUser()->getSystemeClient());$lavage->setExterieur(1);$lavage->setInterieur(1);$lavage->setDesinfection(0);$lavageVehiculeRepository->save($lavage, true);}}// Remettre la date de départ à 8 mois avant pour la prochaine remorque$startDate = new \DateTime();$startDate->modify('-10 months');}foreach ($listRem as $rem) {echo "Remorque: ".$rem->getNumero()." - Date: " . $startDate->format('d/m/Y') . "<br>";// Boucle pour générer les dates jusqu'à aujourd’huiwhile ($startDate < new \DateTime()) {$daysToAdd = rand(28, 32);$startDate->modify("+$daysToAdd days");if($startDate->format('w')==0){$startDate->modify("+1 days");}// Vérifier qu'on ne dépasse pas la date d'aujourd'huiif ($startDate > new \DateTime()) {break;}if (rand(1, 15) === 1) {echo "<br />";} else {// Choix du chauffeur : environ 1 fois sur 2, ce sera l'ID 50if (rand(0, 1) === 0 && isset($listChauffeur[50])) {$selectedChauffeur = $listChauffeur[50];} else {// Prendre un chauffeur au hasard parmi la liste (hors ID 50 si possible)$filteredChauffeurs = array_filter($listChauffeur, fn($id) => $id !== 50, ARRAY_FILTER_USE_KEY);// Si la liste filtrée est vide (par exemple, si seul l'ID 50 existe), on le prend quand mêmeif (!empty($filteredChauffeurs)) {$selectedChauffeur = $filteredChauffeurs[array_rand($filteredChauffeurs)];} else {$selectedChauffeur = $listChauffeur[50]; // Fallback si 50 est le seul dispo}}echo "Chauffeur sélectionné : " . $selectedChauffeur->getId();echo "Remorque: " . $rem->getNumero() . " - Date: " . $startDate->format('d/m/Y') . "<br>";$lavage2 = new LavageVehicule();$lavage2->setCreated(new \DateTime());$lavage2->setRemorque($rem);$lavage2->setCamion(null);$lavage2->setUser($selectedChauffeur);$lavage2->setDate($startDate);$lavage2->setSystemeClient($this->getUser()->getSystemeClient());$lavage2->setExterieur(0);$lavage2->setInterieur(0);$lavage2->setDesinfection(1);$lavageVehiculeRepository->save($lavage2,true);}}// Remettre la date de départ à 8 mois avant pour la prochaine remorque$startDate = new \DateTime();$startDate->modify('-10 months');}}#[Route('/test', name: 'app_test')]public function test(ImportationRepository $importationRepository,ManagerRegistry $doctrine, APIDashDocService $APIDashDocService, APISamsaraService $APISamsaraService): Response{//$APISamsaraService->alerteMailTpsTravSiPlusLimite(new \DateTime('2025-05-12'));$APISamsaraService->calculKmTracteur(1,new \DateTime('2025-09-09'));$APIDashDocService->importDashDocTelephone(1);/*$url = "https://api.dashdoc.eu/api/v4/manager-truckers/";//$url = "https://api.dashdoc.eu/api/v4/manager-truckers/32305029";//$url = "https://api.dashdoc.eu/api/v4/vehicles/";$token = "92a9bdfe6ffd8d9a2977a6be680017f26798218a"; // replace with your token$ch = curl_init($url);curl_setopt($ch, CURLOPT_CAINFO, "C:/php/cacert.pem"); // path to your filecurl_setopt_array($ch, [CURLOPT_RETURNTRANSFER => true,CURLOPT_HTTPHEADER => ["Authorization: Token $token"]]);$response = curl_exec($ch);if (curl_errno($ch)) {echo "cURL error: " . curl_error($ch);} else {$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);if ($httpcode === 200) {$data = json_decode($response, true);$em = $doctrine->getManager();$userRepo = $em->getRepository(User::class);if (isset($data['results'])) {foreach ($data['results'] as $trucker) {$exp = explode(' ',$trucker['display_name']);if(!empty($exp)){$phone = str_replace('+33','0',$trucker['phone_number']);$nom = $exp[0];$prenom = $exp[1];$user = $userRepo->findOneBy(array('nom'=>$nom,'prenom'=>$prenom));if(is_object($user)){echo $user->getId().' '.$user->getNom().' '.$user->getPrenom().'<br />';$user->setTelephonePro($phone);$userRepo->save($user,true);}}}}} else {echo "HTTP code: $httpcode\n";echo "Response: $response\n";}}curl_close($ch);*/}}