src/AdminBundle/Admin/DCAutoSite/ConfiguratorOfferAdmin.php line 14

Open in your IDE?
  1. <?php
  2. namespace AdminBundle\Admin\DCAutoSite;
  3. use Sonata\AdminBundle\Datagrid\ProxyQueryInterface;
  4. use AdminBundle\Admin\BaseAdmin;
  5. use Sonata\AdminBundle\Datagrid\ListMapper;
  6. use Sonata\AdminBundle\Route\RouteCollection;
  7. use Sonata\AdminBundle\Route\RouteCollectionInterface;
  8. use Sonata\AdminBundle\Show\ShowMapper;
  9. use Symfony\Component\Security\Core\Exception\AccessDeniedException;
  10. class ConfiguratorOfferAdmin extends BaseAdmin
  11. {
  12.     protected $datagridValues = [
  13.         '_page' => 1,
  14.         '_sort_order' => 'DESC',
  15.         '_sort_by' => 'id',
  16.     ];
  17.     /**
  18.      * @param RouteCollectionInterface $collection
  19.      */
  20.     protected function configureRoutes(RouteCollectionInterface $collection): void
  21.     {
  22.         $collection->remove('edit');
  23.         $collection->remove('create');
  24.         $collection->remove('delete');
  25.     }
  26.     /**
  27.      * @param string $context
  28.      * @return ProxyQueryInterface
  29.      */
  30.     public function configureQuery($context 'list'): ProxyQueryInterface
  31.     {
  32.         $user $this->security->getUser();
  33.         $query parent::configureQuery($context);
  34.         $dealer $user->getDealer();
  35.         if(!$dealer) {
  36.             throw new AccessDeniedException();
  37.         }
  38.         $query->andWhere(
  39.             $query->expr()->eq($query->getRootAliases()[0].'.dealer'':dealer')
  40.         );
  41.         $query->setParameter('dealer'$dealer->getId());
  42.         return $query;
  43.     }
  44.     protected function configureShowFields(ShowMapper $show): void
  45.     {
  46.         $show
  47.             ->add('date_create',null, ['label' => 'Дата создания'])
  48.             ->add('name',null, ['label' => 'Имя'])
  49.             ->add('email',null, ['label' => 'E-mail'])
  50.             ->add('phone',null, ['label' => 'Телефон'])
  51.             ->add('vehicle_item.equipment.vehicle.model',null, ['label' => 'Модель'])
  52.             ->add('vehicle_item.equipment',null, ['label' => 'Комплектация'])
  53.             ->add('vehicle_item',null, ['label' => 'Вариация'])
  54.             ->add('color',null, ['label' => 'Цвет'])
  55.             ->add('interier',null, ['label' => 'Цвет'])
  56.             ->add('accessories'null, ['label' => 'Аскессуары'])
  57.             ->add('options'null, ['label' => 'Опции'])
  58.             ->add('total_price'null, ['label' => 'Цена автомобиля''template' => '@AdminBundle/CRUD/price_show.html.twig'])
  59.             ->add('offer_price'null, ['label' => 'Цена предложения с учетом страховки''template' => '@AdminBundle/CRUD/price_show.html.twig'])
  60.             ->add('insuranceArray'null, ['label' => 'Страховка''template' => '@AdminBundle/CRUD/c_insurance_show.html.twig'])
  61.             ->add('creditArray'null, ['label' => 'Кредит''template' => '@AdminBundle/CRUD/c_credit_show.html.twig']);
  62.     }
  63.     /**
  64.      * @param ListMapper $listMapper
  65.      */
  66.     protected function configureListFields(ListMapper $listMapper): void
  67.     {
  68.         $listMapper->addIdentifier('id')
  69.             ->add('date_create',null, ['label' => 'Дата создания'])
  70.             ->add('name',null, ['label' => 'Имя'])
  71.             ->add('email',null, ['label' => 'E-mail'])
  72.             ->add('vehicle_item.equipment.car.model',null, ['label' => 'Модель'])
  73.             ->add('vehicle_item.equipment',null, ['label' => 'Комплектация'])
  74.             ->add('vehicle_item',null, ['label' => 'Вариация'])
  75.             ->add('offer_price',null, ['label' => 'Общая стоимость''template' => '@AdminBundle/CRUD/price.html.twig'])
  76.             ->add('_action','actions',[
  77.                 'label' => 'Действия',
  78.                 'actions' => [
  79.                     'view' => [],
  80.                 ]
  81.             ])
  82.         ;
  83.     }
  84. }