src/Service/FoodtruckService.php line 68

Open in your IDE?
  1. <?php
  2. namespace App\Service;
  3. use App\Entity\User;
  4. use App\Entity\Foodtruck;
  5. use App\Entity\Emplacement;
  6. use App\Repository\ServiceRepository;
  7. use App\Repository\CommandeRepository;
  8. use App\Repository\FoodtruckRepository;
  9. use App\Repository\EmplacementRepository;
  10. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  11. class FoodtruckService
  12. {
  13. public function __construct(
  14. private FoodtruckRepository $foodtruckRepository,
  15. private SessionInterface $session,
  16. private EmplacementRepository $emplacementRepository,
  17. private CommandeRepository $commandeRepository,
  18. private ServiceRepository $serviceRepository
  19. )
  20. {}
  21. public function controleFoodtruck($request)
  22. {
  23. //Détecter la route de provenance et charger le foodtruck correspondant en session
  24. $foodtrucks = $this->foodtruckRepository->findAll();
  25. foreach ($foodtrucks as $key => $foodtruck) {
  26. if ($foodtruck->getUrl() !== null AND strpos($foodtruck->getUrl(), $request->server->get('HTTP_HOST')) !== false)
  27. {
  28. $this->addFoodtruckInSession($foodtruck);
  29. return $foodtruck;
  30. }
  31. }
  32. return false;
  33. }
  34. public function controleEmplacement($request)
  35. {
  36. //Détecter la route de provenance et charger le foodtruck correspondant en session
  37. $emplacements = $this->emplacementRepository->findAll();
  38. foreach ($emplacements as $key => $emplacement) {
  39. if ($emplacement->getUrl() !== null AND strpos($emplacement->getUrl(), $request->server->get('HTTP_HOST')) !== false)
  40. {
  41. $this->addEmplacementInSession($emplacement);
  42. return $emplacement;
  43. }
  44. }
  45. return false;
  46. }
  47. public function addFoodtruckInSession($foodtruck)
  48. {
  49. $foodtruck_selected = $this->session->get("foodtruck", Foodtruck::class);
  50. $emplacement_selected = $this->session->get("emplacement", Emplacement::class);
  51. if(is_object($emplacement_selected)){
  52. $this->session->remove("emplacement");
  53. }
  54. $foodtruck_selected = $foodtruck;
  55. $this->session->set("foodtruck", $foodtruck_selected);
  56. }
  57. public function addEmplacementInSession($emplacement)
  58. {
  59. $foodtruck_selected = $this->session->get("foodtruck", Foodtruck::class);
  60. $emplacement_selected = $this->session->get("emplacement", Emplacement::class);
  61. if(!empty($foodtruck_selected)){
  62. $this->session->remove("foodtruck");
  63. }
  64. $emplacement_selected = $emplacement;
  65. $this->session->set("emplacement", $emplacement_selected);
  66. }
  67. public function getClients(Foodtruck $foodtruck)
  68. {
  69. $clients = [];
  70. $services = $foodtruck->getServices();
  71. foreach ($services as $key => $service) {
  72. $commandes = $service->getCommandes();
  73. foreach ($commandes as $key => $commande) {
  74. if(!in_array($commande->getUser(),$clients)){
  75. $clients[] = $commande->getUser();
  76. }
  77. }
  78. }
  79. return $clients;
  80. }
  81. public function getClientCommandes(Foodtruck $foodtruck, User $client)
  82. {
  83. $commandesClient = [];
  84. // $services = $foodtruck->getServices();
  85. $services = $this->serviceRepository->findBy(['foodtruck' => $foodtruck],['date' => 'DESC']);
  86. foreach ($services as $key => $service) {
  87. // $commandes = $service->getCommandes();
  88. $commandes = $this->commandeRepository->findBy(['service' => $service],['date' => 'DESC']);
  89. foreach ($commandes as $key => $commande) {
  90. if($commande->getUser() === $client){
  91. $commandesClient[] = $commande;
  92. }
  93. }
  94. }
  95. return $commandesClient;
  96. }
  97. }