src/DcSiteBundle/Controller/Citroen/ServiceController.php line 131

Open in your IDE?
  1. <?php
  2. namespace DcSiteBundle\Controller\Citroen;
  3. use CoreBundle\Component\CoreFormFactory;
  4. use CoreBundle\Component\FormManager;
  5. use CoreBundle\Entity\Model;
  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\Services\MediaExtensionVidi;
  11. use DcSiteBundle\Entity\Part;
  12. use DcSiteBundle\Services\VehicleService;
  13. use Doctrine\ORM\EntityManagerInterface;
  14. use PortalBundle\Model\SeoMetaTag;
  15. use Symfony\Component\Filesystem\Filesystem;
  16. use Symfony\Component\HttpFoundation\JsonResponse;
  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\HttpKernel\Exception\NotFoundHttpException;
  22. use Symfony\Component\Routing\RouterInterface;
  23. use Twig\Environment;
  24. class ServiceController 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 tiresHotel(): ?Response
  31.     {
  32.         return $this->baseCitroenRender('@DcSite/Citroen/Service/tires-hotel.html.twig',[
  33.             'servicesForm' => $this->CoreFormFactory()->fbDefQuestionForm('Интересует Шинный отель'null,null$this->getDealer())->createView(),
  34.         ]);
  35.     }
  36.     public function paintingTires(): ?Response
  37.     {
  38.         return $this->baseCitroenRender('@DcSite/Citroen/Service/painting-tires.html.twig',[
  39.             'servicesForm' => $this->CoreFormFactory()->fbDefQuestionForm('Интересует Покраска дисков'null,null$this->getDealer())->createView(),
  40.         ]);
  41.     }
  42.     public function bodyRepair(): ?Response
  43.     {
  44.         $repairPhotoForm $this->CoreFormFactory()->repairPhotoForm();
  45.         return $this->baseCitroenRender('@DcSite/Citroen/Service/body-repair.html.twig',[
  46.             'repairPhotoForm' => $repairPhotoForm->createView(),
  47.         ]);
  48.     }
  49.     public function parts(): ?Response
  50.     {
  51.         return $this->baseCitroenRender('@DcSite/Citroen/Service/parts.html.twig', [
  52.             'buyPartsForm' => $this->CoreFormFactory()->buyPartsForm($this->getDealer())->createView(),
  53.             'sparesForm' => $this->CoreFormFactory()->fbDefQuestionForm('Консультация по запасным частям',ViDiDepartmentModel::DEPARTMENT_TYPE_PARTSnull$this->getDealer())->createView(),
  54.         ]);
  55.     }
  56.     public function searchParts(Request $request): JsonResponse
  57.     {
  58.         $query $request->request->get('query');
  59.         $part $this->em->getRepository(Part::class)->findOneBy(['dealer' => $this->getDealer(), 'number' => $query'state' => 1]);
  60.         if(!$part) {
  61.             return new JsonResponse(['success' => false]);
  62.         }
  63.         return new JsonResponse([
  64.             'success' => true,
  65.             'data' => [
  66.                 'price' => $part->getPrice(),
  67.                 'id' => $part->getId(),
  68.                 'title' => $part->getNameByLocale($request->getLocale()),
  69.                 'art' => $part->getNumber(),
  70.                 'count' => $part->getCount(),
  71.             ]
  72.         ]);
  73.     }
  74.     public function warranty(): ?Response
  75.     {
  76.         return $this->baseCitroenRender('@DcSite/Citroen/Service/warranty.html.twig');
  77.     }
  78.     public function orderTo(): ?Response
  79.     {
  80.         return $this->baseCitroenRender('@DcSite/Citroen/Service/order-to.html.twig', [
  81.             'serviceForm' => $this->CoreFormFactory()->serviceForm()->createView(),
  82.             'dealerName' => $this->getDealer()->getBrand()->getName(),
  83.         ]);
  84.     }
  85.     public function fixedСostTo(): ?Response
  86.     {
  87.         return $this->baseCitroenRender('@DcSite/Citroen/Service/fixed-сost-to.html.twig', [
  88.             'serviceForm' => $this->CoreFormFactory()->serviceForm()->createView(),
  89.             'dealerName' => $this->getDealer()->getBrand()->getName(),
  90.         ]);
  91.     }
  92.     public function regulationsTo(VehicleService $vehicleService): ?Response
  93.     {
  94.         $models $vehicleService->getModelsForRegulationsTo($this->getDealer());
  95.         return $this->baseCitroenRender('@DcSite/Citroen/Service/regulations-to.html.twig', [
  96.             'models' => $models,
  97.         ]);
  98.     }
  99.     public function regulationsToModel($model): ?Response
  100.     {
  101.         $model $this->em->getRepository(Model::class)->findOneBy(['url' => $model]);
  102.         if(!$model){
  103.             throw new NotFoundHttpException();
  104.         }
  105.         return $this->baseCitroenRender'@DcSite/Citroen/Service/regulations-to-model.html.twig',[
  106.             'model' => $model->getId(),
  107.             'modelTitle' => $model->getTitle(),
  108.         ]);
  109.     }
  110.     public function extendedWarranty(): ?Response
  111.     {
  112.         return $this->baseCitroenRender('@DcSite/Citroen/ServiceAgreements/extended-warranty.html.twig',[
  113.             'servicesForm' => $this->CoreFormFactory()->fbDefQuestionForm('Розширена гарантія'null,null$this->getDealer())->createView(),
  114.         ]);
  115.     }
  116.     public function extendedWarrantyReplacementParts(): ?Response
  117.     {
  118.         return $this->baseCitroenRender('@DcSite/Citroen/ServiceAgreements/extended-warranty-replacement-parts.html.twig',[
  119.             'servicesForm' => $this->CoreFormFactory()->fbDefQuestionForm('Розширена гарантія + заміна деталей природного зносу'null,null$this->getDealer())->createView(),
  120.         ]);
  121.     }
  122.     public function extendedWarrantyTo(): ?Response
  123.     {
  124.         return $this->baseCitroenRender('@DcSite/Citroen/ServiceAgreements/extended-warranty-to.html.twig',[
  125.             'servicesForm' => $this->CoreFormFactory()->fbDefQuestionForm('Розширена гарантія + заміна деталей природного зносу + то'null,null$this->getDealer())->createView(),
  126.         ]);
  127.     }
  128.     public function extendedWarrantyCitroen(): ?Response
  129.     {
  130.         return $this->baseCitroenRender('@DcSite/Citroen/Service/extended-warranty.html.twig', [
  131.             'servicesForm' => $this->CoreFormFactory()->extendedWarrantyForm()->createView(),
  132.         ]);
  133.     }
  134.     public function modernizationCampaigns(): ?Response
  135.     {
  136.         return $this->baseCitroenRender('@DcSite/Citroen/Service/modernization-campaigns.html.twig');
  137.     }
  138.     public function washingCleaning(): ?Response
  139.     {
  140.         return $this->baseCitroenRender('@DcSite/Citroen/Service/washing-and-dry-cleaning.html.twig');
  141.     }
  142.     public function citroenInstructions(): ?Response
  143.     {
  144.         return $this->baseCitroenRender('@DcSite/Citroen/Service/citroen-instructions.html.twig');
  145.     }
  146.     public function multiConsultationEnter(): ?Response
  147.     {
  148.         return $this->baseCitroenRender('@DcSite/Citroen/Service/consultation.html.twig');
  149.     }
  150.     public function multiConsultationForm(): ?Response
  151.     {
  152.         return $this->baseCitroenRender('@DcSite/Citroen/Service/consultation-form.html.twig');
  153.     }
  154.     public function multiConsultationFormOnline(): ?Response
  155.     {
  156.         return $this->baseCitroenRender('@DcSite/Citroen/Service/consultation-form-online.html.twig');
  157.     }
  158.     public function multiConsultationTestdriveForm(): ?Response
  159.     {
  160.         return $this->baseCitroenRender('@DcSite/Citroen/Service/consultation-testdrive-form.html.twig');
  161.     }
  162.     public function nightServiceAgreement(): ?Response
  163.     {
  164.         return $this->baseCitroenRender('@DcSite/Citroen/Service/night-service-agreement.html.twig', [
  165.             'dealer' => $this->getDealer()
  166.         ]);
  167.     }
  168. }