src/DcSiteBundle/Controller/Ford/FinanceController.php line 67

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