src/DcSiteBundle/Controller/Peugeot/FinanceController.php line 83

Open in your IDE?
  1. <?php
  2. namespace DcSiteBundle\Controller\Peugeot;
  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 Doctrine\ORM\EntityManagerInterface;
  12. use PortalBundle\Model\SeoMetaTag;
  13. use Symfony\Component\Filesystem\Filesystem;
  14. use Symfony\Component\HttpFoundation\Request;
  15. use Symfony\Component\HttpFoundation\RequestStack;
  16. use Symfony\Component\HttpFoundation\Response;
  17. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  18. use Symfony\Component\Routing\RouterInterface;
  19. use Twig\Environment;
  20. class FinanceController extends BaseController
  21. {
  22.     public function __construct(CoreFormFactory $coreFormFactorySeoMetaTag $seoMetaTagRequestStack $requestStackRouterInterface $routerFormManager $formManagerEntityManagerInterface $emApiServer1C $apiServer1CSessionInterface $sessionFilesystem $filesystemMediaExtensionVidi $mediaExtensionVidiRepository $vehicleRepositoryVehicleFactory $vehicleFactoryEnvironment $twig)
  23.     {
  24.         parent::__construct($coreFormFactory$seoMetaTag$requestStack$router$formManager$em$apiServer1C$session$filesystem$mediaExtensionVidi$vehicleRepository$vehicleFactory$twig);
  25.     }
  26.     public function airport(): ?Response
  27.     {
  28.         return $this->basePeugeotRender('@DcSite/Peugeot/Finance/airport.html.twig', [
  29.             'servicesForm' => $this->CoreFormFactory()->fbDefQuestionForm('Интересует Аєропорт сервис'nullnull$this->getDealer())->createView(),
  30.         ]);
  31.     }
  32.     public function credit(Request $requestViDiWorkerModel $viDiWorkerModel): ?Response
  33.     {
  34.         $departments $viDiWorkerModel->getAllByDealer($this->getDealer(), $request->getLocale());
  35.         $needDepartment $request->getLocale() == 'ru' 'Отдел продаж' 'Відділ продажу';
  36.         $team array_filter($departments, fn($department) => $department['departmentTitle'] === $needDepartment);
  37.         $form $this->CoreFormFactory()
  38.             ->callMeForm(new Forms(), true);
  39.         $form->get('dealer')->setData($this->getDealer());
  40.         return $this->basePeugeotRender('@DcSite/Peugeot/Finance/credit.html.twig', [
  41.             'creditForm' => $this->CoreFormFactory()->creditForm($this->getDealer())->createView(),
  42.             'brandId' => $this->getDealer()->getBrand()->getId(),
  43.             'dealerId' => $this->getDealer()->getId(),
  44.             'team' => current($team),
  45.             'callMeForm' => $form->createView()
  46.         ]);
  47.     }
  48.     public function tradeIn(): ?Response
  49.     {
  50.         return $this->basePeugeotRender('@DcSite/Peugeot/Finance/trade-in.html.twig');
  51.     }
  52.     public function insurance(): ?Response
  53.     {
  54.         return $this->basePeugeotRender('@DcSite/Peugeot/Finance/insurance.html.twig');
  55.     }
  56.     public function leasing(): ?Response
  57.     {
  58.         return $this->basePeugeotRender('@DcSite/Peugeot/Finance/leasing.html.twig', [
  59.             'servicesForm' => $this->CoreFormFactory()->fbDefQuestionForm('Интересует Лизинг'nullnull$this->getDealer())->createView(),
  60.             'leasingCalculatorForm' => $this->CoreFormFactory()->leasingForm()->createView()
  61.         ]);
  62.     }
  63.     //Корпоративным клиентам OLD
  64.     public function fleetManagement(): ?Response
  65.     {
  66.         return $this->basePeugeotRender('@DcSite/Peugeot/Finance/fleet-management.html.twig', [
  67.             'servicesForm' => $this->CoreFormFactory()->fbDefQuestionForm('Интересует Управление автопарком'nullnull$this->getDealer())->createView(),
  68.         ]);
  69.     }
  70.     public function conversionProgram(): ?Response
  71.     {
  72.         return $this->basePeugeotRender('@DcSite/Peugeot/Finance/conversion-program.html.twig', [
  73.             'servicesForm' => $this->CoreFormFactory()->fbDefQuestionForm('Интересует Программа переоборудования'nullnull$this->getDealer())->createView(),
  74.         ]);
  75.     }
  76.     public function programForEmployees(): ?Response
  77.     {
  78.         return $this->basePeugeotRender('@DcSite/Peugeot/Finance/program-for-employees.html.twig', [
  79.             'servicesForm' => $this->CoreFormFactory()->fbDefQuestionForm('Интересует Партнерская программа для сотрудников'nullnull$this->getDealer())->createView(),
  80.         ]);
  81.     }
  82.     public function buyBack(): ?Response
  83.     {
  84.         return $this->basePeugeotRender('@DcSite/Peugeot/Finance/buy-back.html.twig', [
  85.             'servicesForm' => $this->CoreFormFactory()->fbDefQuestionForm('Выкуп автопарка - услуга buy back'nullnull$this->getDealer())->createView(),
  86.         ]);
  87.     }
  88.     public function selectPage(): ?Response
  89.     {
  90.         return $this->basePeugeotRender('@DcSite/Peugeot/Finance/vidi-select.html.twig');
  91.     }
  92.     //FOR BUSSINES
  93.     public function forBussines(): ?Response
  94.     {
  95.         return $this->basePeugeotRender('@DcSite/Peugeot/Finance/for-bussines.html.twig', [
  96.             'corpSalesForm' => $this->CoreFormFactory()->corpSalesForm($this->getDealer())->createView()
  97.         ]);
  98.     }
  99.     //landing page
  100.     public function landingTradeIn(): ?Response
  101.     {
  102.         return $this->basePeugeotRender('@DcSite/Peugeot/Finance/landing-trade-in.html.twig');
  103.     }
  104.     public function landingSelectPage(): ?Response
  105.     {
  106.         return $this->basePeugeotRender('@DcSite/Peugeot/Finance/landing-vidi-select.html.twig');
  107.     }
  108.     // Sms landing page
  109.     public function SmsLandingTradeIn(Request $request): ?Response
  110.     {
  111.         if ($this->checkSend($request)) {
  112.             return $this->basePeugeotRender('@DcSite/Peugeot/Finance/sms-landing-vidi-select.html.twig');
  113.         }
  114.         $this->sendSmsLead($request);
  115.         return $this->basePeugeotRender('@DcSite/Peugeot/Finance/sms-landing-vidi-select.html.twig');
  116.     }
  117. }