src/DcSiteBundle/Controller/Nissan/CarInStockController.php line 35

Open in your IDE?
  1. <?php
  2. namespace DcSiteBundle\Controller\Nissan;
  3. use CoreBundle\Component\CoreFormFactory;
  4. use CoreBundle\Component\FormManager;
  5. use CoreBundle\Entity\Forms;
  6. use CoreBundle\Factory\InStockVehicle;
  7. use CoreBundle\Factory\Vehicle as VehicleFactory;
  8. use CoreBundle\Model\Api\OnlineService\ApiServer1C;
  9. use CoreBundle\Model\Vehicles\Repository;
  10. use CoreBundle\Services\MediaExtensionVidi;
  11. use DcSiteBundle\Services\CarInStockService;
  12. use Doctrine\ORM\EntityManagerInterface;
  13. use PortalBundle\Model\SeoMetaTag;
  14. use Symfony\Component\Filesystem\Filesystem;
  15. use Symfony\Component\HttpFoundation\Request;
  16. use Symfony\Component\HttpFoundation\RequestStack;
  17. use Symfony\Component\HttpFoundation\Response;
  18. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  19. use Symfony\Component\Routing\RouterInterface;
  20. use Twig\Environment;
  21. class CarInStockController extends BaseController
  22. {
  23.     private CarInStockService $carInStockService;
  24.     public function __construct(CarInStockService $carInStockServiceCoreFormFactory $coreFormFactorySeoMetaTag $seoMetaTagRequestStack $requestStackRouterInterface $routerFormManager $formManagerEntityManagerInterface $emApiServer1C $apiServer1CSessionInterface $sessionFilesystem $filesystemMediaExtensionVidi $mediaExtensionVidiRepository $vehicleRepositoryVehicleFactory $vehicleFactoryEnvironment $twig)
  25.     {
  26.         $this->carInStockService $carInStockService;
  27.         parent::__construct($coreFormFactory$seoMetaTag$requestStack$router$formManager$em$apiServer1C$session$filesystem$mediaExtensionVidi$vehicleRepository$vehicleFactory$twig);
  28.     }
  29.     public function index(Request $request): ?Response
  30.     {
  31.         $vehicles $this->carInStockService->getCarInStockByDealer(
  32.             $this->getDealer(),
  33.             null,
  34.             $request->getLocale()
  35.         );
  36.         $this->carInStockService->sortVehicleByDealer($vehicles$this->getDealer()->getUniqueId());
  37.         return $this->baseNissanRender('@DcSite/Nissan/Car/cars-in-stock.html.twig', ['vehicles' => $vehicles]);
  38.     }
  39.     public function car(Request $requestInStockVehicle $inStockVehicle)
  40.     {
  41.         $CarModel $inStockVehicle->createByUrl($request->get('url'), $this->getDealer());
  42.         if (!$CarModel) {
  43.             $CarModel $inStockVehicle->createByUrl($request->get('url'), $this->getDealer(), false);
  44.             if ($CarModel) {
  45.                 return $this->redirectToRoute('nissan_one_car', ['car' => $CarModel->getVehicle()->getUrl(), 'category' => $CarModel->getCategory()->getUrl()], 301);
  46.             } else {
  47.                 return $this->redirectToRoute('nissan_car_stock', [], 301);
  48.             }
  49.         }
  50.         $options $CarModel->getOptions($request->getLocale());
  51.         $form $this->CoreFormFactory()
  52.             ->callMeForm(new Forms(), true);
  53.         $form->get('dealer')->setData($this->getDealer());
  54.         return $this->baseNissanRender('@DcSite/Nissan/Car/cars-in-stock-card.html.twig', [
  55.             'model' => $CarModel,
  56.             'options' => $options,
  57.             'buyInStockForm' => $this->CoreFormFactory()->buyInStockForm(null$CarModel->getInStockEntity())->createView(),
  58.             'structuredCarData' => $this->getCarStructuredDataCarInStock($request$CarModel),
  59.             'callMeForm' => $form->createView(),
  60.         ]);
  61.     }
  62. }