src/AutomarketBundle/Controller/ServicesController.php line 28

Open in your IDE?
  1. <?php
  2. namespace AutomarketBundle\Controller;
  3. use AutomarketBundle\Services\CatalogService;
  4. use AutomarketBundle\Services\MainService;
  5. use CoreBundle\Component\CoreFormFactory;
  6. use CoreBundle\Entity\Forms;
  7. use CoreBundle\Entity\Vehicles\Vehicle;
  8. use CoreBundle\Factory\Vehicle as VehicleFactory;
  9. use CoreBundle\Model\ViDiDepartmentModel;
  10. use DcSiteBundle\Model\CreditModel;
  11. use Doctrine\ORM\EntityManagerInterface;
  12. use PortalBundle\Model\SeoMetaTag;
  13. use PortalBundle\Services\DepartmentService;
  14. use Symfony\Component\HttpFoundation\JsonResponse;
  15. use Symfony\Component\HttpFoundation\Request;
  16. use Symfony\Component\HttpFoundation\RequestStack;
  17. use Symfony\Component\HttpFoundation\Response;
  18. use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
  19. class ServicesController extends MainController
  20. {
  21.     private DepartmentService $departmentService;
  22.     private VehicleFactory $factoryVehicle;
  23.     private CreditModel $creditModel;
  24.     public function __construct(CoreFormFactory   $coreFormFactoryRequestStack $requestStackEntityManagerInterface $em,
  25.                                 SeoMetaTag        $seoMetaTagCatalogService $catalogServiceMainService $mainService,
  26.                                 DepartmentService $departmentServiceVehicleFactory $factoryVehicle,
  27.                                 CreditModel       $creditModel)
  28.     {
  29.         parent::__construct($coreFormFactory$requestStack$em$seoMetaTag$catalogService$mainService);
  30.         $this->departmentService $departmentService;
  31.         $this->factoryVehicle $factoryVehicle;
  32.         $this->creditModel $creditModel;
  33.     }
  34.     public function creditInit(Request $request): JsonResponse
  35.     {
  36.         $vehicleId $request->request->get('vehicleId');
  37.         if (!$vehicleId) {
  38.             throw new NotFoundHttpException();
  39.         }
  40.         $vehicle $this->em->getRepository(Vehicle::class)->find($vehicleId);
  41.         $vehicleModel $this->factoryVehicle->createByEntity($vehicle);
  42.         $programs $this->creditModel->findCreditInDb($vehicleModel->getDealer(), $vehicleModel);
  43.         return $this->json($programs);
  44.     }
  45.     public function credit(Request $request): Response
  46.     {
  47.         $form $this->CoreFormFactory()
  48.             ->callMeForm(new Forms(), true);
  49.         $form->get('dealer')->setData($this->getDealer());
  50.         $dealer $this->getDealer();
  51.         return $this->baseAutomarketRender('@Automarket/Services/credit.html.twig', [
  52.             'dealerId' => $dealer->getId(),
  53.             'dealer' => $dealer,
  54.             'creditForm' => $this->CoreFormFactory()->creditForm($dealer)->createView(),
  55.             'callMeForm' => $form->createView(),
  56.             'callMeFormBottom' => $form->createView(),
  57.             'financialConsultants' => $this->departmentService->getWorkersOfDepartment($dealer->getId(), ViDiDepartmentModel::DEPARTMENT_TYPE_FINANCE$request->getLocale()),
  58.             'feedbackForm' => $this->CoreFormFactory()->fbDefQuestionForm('Запрос консультации о кредите'ViDiDepartmentModel::DEPARTMENT_TYPE_SALEnull$this->getDealer())->createView(),
  59.         ]);
  60.     }
  61.     public function insurance(): Response
  62.     {
  63.         return $this->baseAutomarketRender('@Automarket/Services/insurance.html.twig', [
  64.             'kascoForm' => $this->CoreFormFactory()->orderCascoForm()->createView(),
  65.         ]);
  66.     }
  67.     public function forBusiness(): Response
  68.     {
  69.         return $this->baseAutomarketRender('@Automarket/Services/for-business.html.twig', [
  70.             'corpSalesForm' => $this->CoreFormFactory()->corpSalesForm($this->getDealer())->createView()
  71.         ]);
  72.     }
  73. }