src/DcSiteBundle/Controller/Lexus/FinanceController.php line 81

Open in your IDE?
  1. <?php
  2. namespace DcSiteBundle\Controller\Lexus;
  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 DateTime;
  12. use DcSiteBundle\Entity\Events;
  13. use DcSiteBundle\Model\Form\ServicesOrderForm;
  14. use Doctrine\ORM\EntityManagerInterface;
  15. use InsuranceBundle\Entity\Payouts;
  16. use PortalBundle\Model\SeoMetaTag;
  17. use Symfony\Component\Filesystem\Filesystem;
  18. use Symfony\Component\HttpFoundation\Request;
  19. use Symfony\Component\HttpFoundation\RequestStack;
  20. use Symfony\Component\HttpFoundation\Response;
  21. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  22. use Symfony\Component\Routing\RouterInterface;
  23. use Twig\Environment;
  24. class FinanceController extends BaseController
  25. {
  26.     public function __construct(CoreFormFactory $coreFormFactorySeoMetaTag $seoMetaTagRequestStack $requestStackRouterInterface $routerFormManager $formManagerEntityManagerInterface $emApiServer1C $apiServer1CSessionInterface $sessionFilesystem $filesystemMediaExtensionVidi $mediaExtensionVidiRepository $vehicleRepositoryVehicleFactory $vehicleFactoryEnvironment $twig)
  27.     {
  28.         parent::__construct($coreFormFactory$seoMetaTag$requestStack$router$formManager$em$apiServer1C$session$filesystem$mediaExtensionVidi$vehicleRepository$vehicleFactory$twig);
  29.     }
  30.     public function lexusEasy(): ?Response
  31.     {
  32.         $events $this->em->getRepository(Events::class)->findBy(['dealer' => $this->getDealer()]);
  33.         return $this->baseLexusRender('@DcSite/Lexus/Finance/lexus-easy.html.twig', ['events' => $events]);
  34.     }
  35.     public function corporate(Request $request): ?Response
  36.     {
  37.         return $this->baseLexusRender('@DcSite/Lexus/Finance/corporate-program.html.twig', [
  38.             'serviceOrderForm' => $this->CoreFormFactory()->servicesOrderForm(ServicesOrderForm::CORPORATIVE_PROGRAM$request->getLocale())->createView(),
  39.         ]);
  40.     }
  41.     public function credit(Request $requestViDiWorkerModel $viDiWorkerModel): ?Response
  42.     {
  43.         $departments $viDiWorkerModel->getAllByDealer($this->getDealer(),  $request->getLocale());
  44.         $needDepartment $request->getLocale() == 'ru' 'Отдел продаж' 'Відділ продажу';
  45.         $team array_filter($departments, fn($department) => $department['departmentTitle'] === $needDepartment);
  46.         $form $this->CoreFormFactory()->callMeForm(new Forms(), true);
  47.         $form->get('dealer')->setData($this->getDealer());
  48.         return $this->baseLexusRender('@DcSite/Lexus/Finance/credit.html.twig', [
  49.             'creditForm' =>  $this->CoreFormFactory()->creditForm($this->getDealer())->createView(),
  50.             'brandId' => $this->getDealer()->getBrand()->getId(),
  51.             'dealerId' => $this->getDealer()->getId(),
  52.             'team' => current($team),
  53.             'callMeForm' => $form->createView(),
  54.         ]);
  55.     }
  56.     public function insurance(): ?Response
  57.     {
  58.         $year = (new DateTime())->format('Y');
  59.         $yAmount $this->em->getRepository(Payouts::class)->amountForYear($year);
  60.         if(!$yAmount) {
  61.             $year -= 1;
  62.         }
  63.         $yAmount $this->em->getRepository(Payouts::class)->amountForYear($year);
  64.         return $this->baseLexusRender('@DcSite/Lexus/Finance/insurance.html.twig', [
  65.             'yAmount' => $yAmount,
  66.             'year' => $year,
  67.         ]);
  68.     }
  69.     public function leasing(): ?Response
  70.     {
  71.         return $this->baseLexusRender('@DcSite/Lexus/Finance/leasing.html.twig', [
  72.             'serviceOrderForm' => $this->CoreFormFactory()->servicesOrderForm(ServicesOrderForm::LEASING)->createView(),
  73.             'leasingCalculatorForm' => $this->CoreFormFactory()->leasingForm()->createView(),
  74.         ]);
  75.     }
  76.     public function loyality(): ?Response
  77.     {
  78.         return $this->baseLexusRender('@DcSite/Lexus/Finance/loyality-program.html.twig');
  79.     }
  80.     public function tradein(): ?Response
  81.     {
  82.         return $this->baseLexusRender('@DcSite/Lexus/Finance/trade-in.html.twig');
  83.     }
  84.     //FOR BUSSINES
  85.     public function forBussines(): ?Response
  86.     {
  87.         return $this->baseLexusRender('@DcSite/Lexus/Finance/for-bussines.html.twig', [
  88.             'corpSalesForm' => $this->CoreFormFactory()->corpSalesForm($this->getDealer())->createView()
  89.         ]);
  90.     }
  91.     // Sms landing page
  92.     public function SmsLandingTradeIn(Request $request): ?Response
  93.     {
  94.         if($this->checkSend($request)) {
  95.             return $this->baseLexusRender('@DcSite/Lexus/Finance/sms-landing-vidi-select.html.twig');
  96.         }
  97.         $this->sendSmsLead($request);
  98.         return $this->baseLexusRender('@DcSite/Lexus/Finance/sms-landing-vidi-select.html.twig');
  99.     }
  100. }