src/DcSiteBundle/Controller/Peugeot/ServiceController.php line 111

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\Model;
  6. use CoreBundle\Entity\Post;
  7. use CoreBundle\Factory\Vehicle as VehicleFactory;
  8. use CoreBundle\Model\Api\OnlineService\ApiServer1C;
  9. use CoreBundle\Model\Vehicles\Repository;
  10. use CoreBundle\Model\ViDiDepartmentModel;
  11. use CoreBundle\Services\MediaExtensionVidi;
  12. use DcSiteBundle\Entity\Part;
  13. use DcSiteBundle\Services\VehicleService;
  14. use Doctrine\ORM\EntityManagerInterface;
  15. use PortalBundle\Model\SeoMetaTag;
  16. use Symfony\Component\Filesystem\Filesystem;
  17. use Symfony\Component\HttpFoundation\JsonResponse;
  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\HttpKernel\Exception\NotFoundHttpException;
  23. use Symfony\Component\Routing\RouterInterface;
  24. use Twig\Environment;
  25. class ServiceController extends BaseController
  26. {
  27.     public function __construct(CoreFormFactory $coreFormFactorySeoMetaTag $seoMetaTagRequestStack $requestStackRouterInterface $routerFormManager $formManagerEntityManagerInterface $emApiServer1C $apiServer1CSessionInterface $sessionFilesystem $filesystemMediaExtensionVidi $mediaExtensionVidiRepository $vehicleRepositoryVehicleFactory $vehicleFactoryEnvironment $twig)
  28.     {
  29.         parent::__construct($coreFormFactory$seoMetaTag$requestStack$router$formManager$em$apiServer1C$session$filesystem$mediaExtensionVidi$vehicleRepository$vehicleFactory$twig);
  30.     }
  31.     public function paintingTires(): ?Response
  32.     {
  33.         return $this->basePeugeotRender(
  34.             '@DcSite/Peugeot/Service/painting-tires.html.twig',
  35.             [
  36.                 'servicesForm' =>
  37.                     $this->CoreFormFactory()
  38.                         ->fbDefQuestionForm(
  39.                             'Интересует Покраска дисков',
  40.                             null,
  41.                             null,
  42.                             $this->getDealer())->createView(),
  43.             ]
  44.         );
  45.     }
  46.     public function tiresHotel(): ?Response
  47.     {
  48.         return $this->basePeugeotRender('@DcSite/Peugeot/Service/tires-hotel.html.twig', [
  49.                 'servicesForm' =>
  50.                     $this->CoreFormFactory()
  51.                         ->fbDefQuestionForm(
  52.                             'Интересует Шинный отель',
  53.                             null,
  54.                             null,
  55.                             $this->getDealer())->createView(),
  56.             ]
  57.         );
  58.     }
  59.     public function bodyRepair(): ?Response
  60.     {
  61.         $repairPhotoForm $this->CoreFormFactory()->repairPhotoForm();
  62.         return $this->basePeugeotRender('@DcSite/Peugeot/Service/body-repair.html.twig', [
  63.             'repairPhotoForm' => $repairPhotoForm->createView(),
  64.         ]);
  65.     }
  66.     public function parts(): ?Response
  67.     {
  68.         //TODO remove magic numbers
  69.         $actions $this->em->getRepository(Post::class)->findBy(['id' => ['692']]);
  70.         return $this->basePeugeotRender('@DcSite/Peugeot/Service/parts.html.twig', [
  71.                 'buyPartsForm' => $this->CoreFormFactory()->buyPartsForm($this->getDealer())->createView(),
  72.                 'actions' => $actions,
  73.                 'sparesForm' =>
  74.                     $this->CoreFormFactory()
  75.                         ->fbDefQuestionForm(
  76.                             'Консультация по запасным частям',
  77.                             ViDiDepartmentModel::DEPARTMENT_TYPE_PARTS,
  78.                             null,
  79.                             $this->getDealer())->createView(),
  80.             ]
  81.         );
  82.     }
  83.     public function searchParts(Request $request): JsonResponse
  84.     {
  85.         $query $request->request->get('query');
  86.         $part $this->em->getRepository(Part::class)->findOneBy(['dealer' => $this->getDealer(), 'number' => $query'state' => 1]);
  87.         if (!$part) {
  88.             return new JsonResponse(['success' => false]);
  89.         }
  90.         return new JsonResponse([
  91.             'success' => true,
  92.             'data' => [
  93.                 'price' => $part->getPrice(),
  94.                 'id' => $part->getId(),
  95.                 'title' => $part->getNameByLocale($request->getLocale()),
  96.                 'art' => $part->getNumber(),
  97.                 'count' => $part->getCount(),
  98.             ]
  99.         ]);
  100.     }
  101.     public function warranty(): ?Response
  102.     {
  103.         return $this->basePeugeotRender('@DcSite/Peugeot/Service/warranty.html.twig');
  104.     }
  105.     public function regulations(): ?Response
  106.     {
  107.         return $this->basePeugeotRender('@DcSite/Peugeot/Service/regulations.html.twig', [
  108.             'serviceForm' => $this->CoreFormFactory()->serviceForm()->createView()
  109.         ]);
  110.     }
  111.     public function orderTo(): ?Response
  112.     {
  113.         return $this->basePeugeotRender('@DcSite/Peugeot/Service/order-to.html.twig', [
  114.             'dealerName' => $this->getDealer()->getBrand()->getName()
  115.         ]);
  116.     }
  117.     public function fixedСostTo(): ?Response
  118.     {
  119.         return $this->basePeugeotRender('@DcSite/Peugeot/Service/fixed-cost-to.html.twig', [
  120.             'dealerName' => $this->getDealer()->getBrand()->getName()
  121.         ]);
  122.     }
  123.     public function regulationsTo(VehicleService $vehicleService): ?Response
  124.     {
  125.         $models $vehicleService->getModelsForRegulationsTo($this->getDealer());
  126.         return $this->basePeugeotRender('@DcSite/Peugeot/Service/regulations-to.html.twig', [
  127.             'models' => $models,
  128.         ]);
  129.     }
  130.     public function regulationsToModel($model): ?Response
  131.     {
  132.         $model $this->em->getRepository(Model::class)->findOneBy(['url' => $model]);
  133.         if (!$model) {
  134.             throw new NotFoundHttpException();
  135.         }
  136.         return $this->basePeugeotRender('@DcSite/Peugeot/Service/regulations-to-model.html.twig', [
  137.             'model' => $model->getId(),
  138.             'modelTitle' => $model->getTitle(),
  139.         ]);
  140.     }
  141.     public function extendedWarranty(): ?Response
  142.     {
  143.         return $this->basePeugeotRender('@DcSite/Peugeot/ServiceAgreements/extended-warranty.html.twig', [
  144.             'servicesForm' => $this->CoreFormFactory()->fbDefQuestionForm('Розширена гарантія'nullnull$this->getDealer())->createView(),
  145.         ]);
  146.     }
  147.     public function extendedWarrantyReplacementParts(): ?Response
  148.     {
  149.         return $this->basePeugeotRender('@DcSite/Peugeot/ServiceAgreements/extended-warranty-replacement-parts.html.twig', [
  150.             'servicesForm' => $this->CoreFormFactory()->fbDefQuestionForm('Розширена гарантія + заміна деталей природного зносу'nullnull$this->getDealer())->createView(),
  151.         ]);
  152.     }
  153.     public function extendedWarrantyTo(): ?Response
  154.     {
  155.         return $this->basePeugeotRender('@DcSite/Peugeot/ServiceAgreements/extended-warranty-to.html.twig', [
  156.             'servicesForm' => $this->CoreFormFactory()->fbDefQuestionForm('Розширена гарантія + заміна деталей природного зносу + то'nullnull$this->getDealer())->createView(),
  157.         ]);
  158.     }
  159.     public function extendedWarrantyPeugeot(): ?Response
  160.     {
  161.         return $this->basePeugeotRender('@DcSite/Peugeot/Service/extended-warranty.html.twig', [
  162.             'servicesForm' => $this->CoreFormFactory()->extendedWarrantyForm()->createView(),
  163.         ]);
  164.     }
  165.     public function multiConsultationEnter(): ?Response
  166.     {
  167.         return $this->basePeugeotRender('@DcSite/Peugeot/Service/consultation.html.twig');
  168.     }
  169.     public function multiConsultationForm(): ?Response
  170.     {
  171.         return $this->basePeugeotRender('@DcSite/Peugeot/Service/consultation-form.html.twig');
  172.     }
  173.     public function multiConsultationFormOnline(): ?Response
  174.     {
  175.         return $this->basePeugeotRender('@DcSite/Peugeot/Service/consultation-form-online.html.twig');
  176.     }
  177.     public function multiConsultationTestdriveForm(): ?Response
  178.     {
  179.         return $this->basePeugeotRender('@DcSite/Peugeot/Service/consultation-testdrive-form.html.twig');
  180.     }
  181.     public function operatingInstructions(): ?Response
  182.     {
  183.         return $this->basePeugeotRender('@DcSite/Peugeot/Service/operating-instructions.html.twig');
  184.     }
  185.     public function nightServiceAgreement(): ?Response
  186.     {
  187.         return $this->basePeugeotRender('@DcSite/Peugeot/Service/night-service-agreement.html.twig', [
  188.             'dealer' => $this->getDealer()
  189.         ]);
  190.     }
  191. }