src/AdminBundle/Admin/Filters/VehicleAutoriaAdmin.php line 13

Open in your IDE?
  1. <?php
  2. namespace AdminBundle\Admin\Filters;
  3. use Sonata\AdminBundle\Datagrid\ProxyQueryInterface;
  4. use AdminBundle\Admin\BaseAdmin;
  5. use Sonata\AdminBundle\Datagrid\DatagridMapper;
  6. use Sonata\AdminBundle\Datagrid\ListMapper;
  7. use Sonata\AdminBundle\Route\RouteCollection;
  8. use Sonata\AdminBundle\Route\RouteCollectionInterface;
  9. use Symfony\Component\Security\Core\Exception\AccessDeniedException;
  10. class VehicleAutoriaAdmin extends BaseAdmin
  11. {
  12.     protected function configureRoutes(RouteCollectionInterface $collection): void
  13.     {
  14.         $collection->remove('create');
  15.     }
  16.     protected function configureDatagridFilters(DatagridMapper $datagridMapper): void
  17.     {
  18.         $datagridMapper
  19.             ->add('created_at''doctrine_orm_date_range', [
  20.                 'label' => 'Дата створення',
  21.                 'field_options_start' => [
  22.                     'format' => 'yyyy-MM-dd',
  23.                     'widget' => 'single_text',
  24.                     'attr' => ['class' => 'datepicker_start']
  25.                 ],
  26.                 'field_options_end' => [
  27.                     'format' => 'yyyy-MM-dd',
  28.                     'widget' => 'single_text',
  29.                     'attr' => ['class' => 'datepicker_end']
  30.                 ]
  31.             ]);
  32.     }
  33.     /**
  34.      * @param string $context
  35.      * @return ProxyQueryInterface
  36.      */
  37.     public function configureQuery($context 'list'): ProxyQueryInterface
  38.     {
  39.         $user $this->getUser();
  40.         $query parent::configureQuery($context);
  41.         $dealer $user->getDealer();
  42.         if(!$dealer) {
  43.             throw new AccessDeniedException();
  44.         }
  45.         $query->where($query->getRootAliases()[0] . '.is_delete is NULL OR ' $query->getRootAliases()[0] . '.is_delete = 0');
  46.         $query->andWhere($query->getRootAliases()[0] . '.state is NULL OR ' $query->getRootAliases()[0] . '.state = 0 OR ' $query->getRootAliases()[0] . '.is_auto_send = 1');
  47.         $query->leftJoin($query->getRootAliases()[0] . '.vehicle_filter''vf');
  48.         $query->andWhere('vf.dealer = :dealer');
  49.         $query->setParameter('dealer'$dealer->getId());
  50.         return $query;
  51.     }
  52.     protected function configureListFields(ListMapper $listMapper): void
  53.     {
  54.         $listMapper->addIdentifier('id')
  55.             ->add('autoria_id',null, ['label' => 'AUTORIA ID'])
  56.             ->add('crm_id',null, ['label' => 'CRM ID'])
  57.             ->add('state'null, ['label' => 'STATE'])
  58.             ->add('_action''actions', [
  59.                 'label' => 'Дія',
  60.                 'actions' => [
  61.                     'edit' => [],
  62.                 ]
  63.             ])
  64.         ;
  65.     }
  66.     protected function configure(): void
  67.     {
  68.         parent::configure(); // TODO: Change the autogenerated stub
  69.         $this->setTemplate('list''@Admin\CRUD\VehicleFilter\autoria-list.html.twig');
  70.     }
  71. }