src/DcSiteBundle/Controller/LandRover/FinanceController.php line 87

Open in your IDE?
  1. <?php
  2. namespace DcSiteBundle\Controller\LandRover;
  3. use CoreBundle\Component\CoreFormFactory;
  4. use CoreBundle\Component\FormManager;
  5. use CoreBundle\Entity\Forms;
  6. use CoreBundle\Factory\Vehicle as VehicleFactory;
  7. use CoreBundle\Model\Api\OnlineService\ApiServer1C;
  8. use CoreBundle\Model\Vehicles\Repository;
  9. use CoreBundle\Model\ViDiWorkerModel;
  10. use CoreBundle\Services\MediaExtensionVidi;
  11. use DcSiteBundle\Model\Form\ServicesOrderForm;
  12. use DcSiteBundle\Services\RentVehicleService;
  13. use Doctrine\ORM\EntityManagerInterface;
  14. use PortalBundle\Model\SeoMetaTag;
  15. use Symfony\Component\Filesystem\Filesystem;
  16. use Symfony\Component\HttpFoundation\Request;
  17. use Symfony\Component\HttpFoundation\RequestStack;
  18. use Symfony\Component\HttpFoundation\Response;
  19. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  20. use Symfony\Component\Routing\RouterInterface;
  21. use Twig\Environment;
  22. class FinanceController extends BaseController
  23. {
  24.     private RentVehicleService $rentVehicleService;
  25.     public function __construct(CoreFormFactory $coreFormFactorySeoMetaTag $seoMetaTagRequestStack $requestStackRouterInterface $routerFormManager $formManagerEntityManagerInterface $emApiServer1C $apiServer1CSessionInterface $sessionFilesystem $filesystemMediaExtensionVidi $mediaExtensionVidiRepository $vehicleRepositoryVehicleFactory $vehicleFactoryEnvironment $twigRentVehicleService $rentVehicleService)
  26.     {
  27.         $this->rentVehicleService $rentVehicleService;
  28.         parent::__construct($coreFormFactory$seoMetaTag$requestStack$router$formManager$em$apiServer1C$session$filesystem$mediaExtensionVidi$vehicleRepository$vehicleFactory$twig);
  29.     }
  30.     public function credit(Request $requestViDiWorkerModel $viDiWorkerModel): ?Response
  31.     {
  32.         $departments $viDiWorkerModel->getAllByDealer($this->getDealer(), $request->getLocale());
  33.         $needDepartment $request->getLocale() == 'ru' 'Отдел продаж' 'Відділ продажу';
  34.         $team array_filter($departments, fn($department) => $department['departmentTitle'] === $needDepartment);
  35.         $form $this->CoreFormFactory()
  36.             ->callMeForm(new Forms(), true);
  37.         $form->get('dealer')->setData($this->getDealer());
  38.         return $this->baseLandRoverRender('@DcSite/LandRover/Finance/credit.html.twig', [
  39.             'creditForm' => $this->CoreFormFactory()->creditForm($this->getDealer())->createView(),
  40.             'brandId' => $this->getDealer()->getBrand()->getId(),
  41.             'dealerId' => $this->getDealer()->getId(),
  42.             'team' => current($team),
  43.             'callMeForm' => $form->createView(),
  44.         ]);
  45.     }
  46.     public function insurance(): ?Response
  47.     {
  48.         return $this->baseLandRoverRender('@DcSite/LandRover/Finance/insurance.html.twig');
  49.     }
  50.     public function lizing(Request $request): ?Response
  51.     {
  52.         return $this->baseLandRoverRender('@DcSite/LandRover/Finance/lising.html.twig', [
  53.             'serviceOrderForm' => $this->CoreFormFactory()->servicesOrderForm(ServicesOrderForm::LEASING$request->getLocale())->createView(),
  54.             'leasingCalculatorForm' => $this->CoreFormFactory()->leasingForm()->createView(),
  55.         ]);
  56.     }
  57.     public function tradeIn(): ?Response
  58.     {
  59.         return $this->baseLandRoverRender('@DcSite/LandRover/Finance/trade-in.html.twig');
  60.     }
  61.     public function airport(Request $request): ?Response
  62.     {
  63.         return $this->baseLandRoverRender('@DcSite/LandRover/Finance/airport-service.html.twig', [
  64.             'serviceOrderForm' => $this->CoreFormFactory()->servicesOrderForm(ServicesOrderForm::AIRPORT_SERVICE$request->getLocale())->createView(),
  65.         ]);
  66.     }
  67.     public function corporateSales(Request $request): ?Response
  68.     {
  69.         return $this->baseLandRoverRender('@DcSite/LandRover/Finance/corporate-sales.html.twig', [
  70.             'serviceOrderForm' => $this->CoreFormFactory()->servicesOrderForm(ServicesOrderForm::CORPORATIVE_PROGRAM$request->getLocale())->createView(),
  71.         ]);
  72.     }
  73.     public function selectPage(): ?Response
  74.     {
  75.         return $this->baseLandRoverRender('@DcSite/LandRover/Finance/vidi-select.html.twig');
  76.     }
  77.     public function approvedPage(): ?Response
  78.     {
  79.         return $this->baseLandRoverRender('@DcSite/LandRover/Finance/approved.html.twig');
  80.     }
  81.     public function rentPage(): ?Response
  82.     {
  83.         $rentVehicles $this->rentVehicleService->getRentVehicleByDealer($this->getDealer());
  84.         return $this->baseLandRoverRender('@DcSite/LandRover/Finance/land-rover-rent.html.twig', [
  85.             'rentVehicles' => $rentVehicles,
  86.             'rentForm' => $this->CoreFormFactory()->rentForm($this->getDealer(), nulltrue)->createView(),
  87.         ]);
  88.     }
  89.     //FOR BUSSINES
  90.     public function forBussines(): ?Response
  91.     {
  92.         return $this->baseLandRoverRender('@DcSite/LandRover/Finance/for-bussines.html.twig', [
  93.             'corpSalesForm' => $this->CoreFormFactory()->corpSalesForm($this->getDealer())->createView()
  94.         ]);
  95.     }
  96.     //landing page
  97.     public function landingTradeIn(): ?Response
  98.     {
  99.         return $this->baseLandRoverRender('@DcSite/LandRover/Finance/landing-trade-in.html.twig');
  100.     }
  101.     public function landingSelectPage(): ?Response
  102.     {
  103.         return $this->baseLandRoverRender('@DcSite/LandRover/Finance/landing-vidi-select.html.twig');
  104.     }
  105.     // Sms landing page
  106.     public function SmsLandingTradeIn(Request $request): ?Response
  107.     {
  108.         if ($this->checkSend($request)) {
  109.             return $this->baseLandRoverRender('@DcSite/LandRover/Finance/sms-landing-vidi-select.html.twig');
  110.         }
  111.         $this->sendSmsLead($request);
  112.         return $this->baseLandRoverRender('@DcSite/LandRover/Finance/sms-landing-vidi-select.html.twig');
  113.     }
  114. }