src/Admin/PatrimonioAdmin.php line 18

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Admin;
  4. use Sonata\AdminBundle\Admin\AbstractAdmin;
  5. use Sonata\AdminBundle\Datagrid\DatagridMapper;
  6. use Sonata\AdminBundle\Datagrid\ListMapper;
  7. use Sonata\AdminBundle\Form\FormMapper;
  8. use Sonata\AdminBundle\Show\ShowMapper;
  9. use Sonata\Form\Type\DatePickerType;
  10. use Sonata\AdminBundle\Route\RouteCollection;
  11. use Symfony\Component\Form\Extension\Core\Type\MoneyType;
  12. use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  13. use App\Enums\TipoEquipamentoEnum;
  14. final class PatrimonioAdmin extends BaseAdmin
  15. {
  16.     protected $datagridValues = [
  17.         '_page'         => 1,
  18.         '_sort_order'   => 'DESC',
  19.         '_sort_by'      => 'createdAt',
  20.         '_per_page'     => 1000
  21.     ];
  22.     
  23.     protected function configureRoutes(RouteCollection $collection)
  24.     {
  25.         //$collection->remove('create');
  26.     }
  27.     
  28.     public function prePersist($object)
  29.     {
  30.         if($object->getQuantidade()==''){
  31.             $object->setQuantidade(1);
  32.         }
  33.         
  34.         $object->setFranquia($this->getUserLogado()->getFranquia());
  35.         $object->setCreatedAt(new \DateTime('now'));
  36.         parent::prePersist($object); // TODO: Change the autogenerated stub
  37.     }
  38.     protected function configureDatagridFilters(DatagridMapper $datagridMapper): void
  39.     {
  40.         $datagridMapper
  41.             ->add('tipo','doctrine_orm_callback',  array(
  42.                 'label' => 'Tipo',
  43.                 'callback' => function($queryBuilder$alias$field$value) {
  44.                     if (!$value['value']) {
  45.                         return;
  46.                     }
  47.                     $queryBuilder->andWhere($alias.'.tipo = :tipo');
  48.                     $queryBuilder->setParameter('tipo',$value['value']);
  49.                     return true;
  50.                 }
  51.             ), ChoiceType::class, array(
  52.                 'choices' => TipoEquipamentoEnum::getAssociatedValues()
  53.             ))
  54.             ->add('codigoBarras'null, ['label'=>'Código de barras'])
  55.             ->add('titulo',null, ['label'=>'Título'])
  56.             ->add('marca',null, ['label'=>'Marca'])
  57.             ->add('modelo',null, ['label'=>'Modelo'])
  58.             ->add('numeroSerie',null, ['label'=>'Número de Série'])
  59.             ->add('unidadeMedida',null, ['label'=>'Unidade de Medida'])
  60.             ->add('classe',null, ['label'=>'Classe'])
  61.             //->add('proximaCalibracao', null, ['label'=>'Data próxima calibragem'])
  62.             ->add('descricao',null, ['label'=>'Descrição'])
  63.             ;
  64.     }
  65.     protected function configureListFields(ListMapper $listMapper): void
  66.     {
  67.         $listMapper
  68.             ->add('codigoBarras'null, ['label'=>'Código de barras'])
  69.             ->add('quantidade',null, ['label'=>'Quantidade'])
  70.             ->add('titulo',null, ['label'=>'Título'])
  71.             ->add('marca',null, ['label'=>'Marca'])
  72.             ->add('modelo',null, ['label'=>'Modelo'])
  73.             //->add('proximaCalibracao', null, ['label'=>'Data próxima calibragem'])
  74.             //->add('dataUltimaCalibragem', null, ['label'=>'Data última calibragem'])
  75.             ->add('_action'null, [
  76.                 'actions' => [
  77.                     'show' => [],
  78.                     'edit' => [],
  79.                     'delete' => [],
  80.                 ],
  81.             ]);
  82.     }
  83.     protected function configureFormFields(FormMapper $formMapper): void
  84.     {
  85.         
  86.         $formMapper
  87.             ->add('tipo'ChoiceType::class, [
  88.                 'choices' => TipoEquipamentoEnum::getAssociatedValues()
  89.             ])
  90.             ->add('quantidade',null, ['label'=>'Quantidade'])
  91.             ->add('codigoBarras'null, ['label'=>'Código de barras'])
  92.             ->add('titulo',null, ['label'=>'Título'])
  93.             ->add('marca',null, ['label'=>'Marca'])
  94.             ->add('modelo',null, ['label'=>'Modelo'])
  95.             ->add('numeroSerie',null, ['label'=>'Número de Série'])
  96.             //->add('classe',null, ['label'=>'Classe'])
  97.             
  98.             ->add('unidadeMedida',null, ['label'=>'Unidade de Medida'])
  99.             ->add('capacidadeMinima',null, ['label'=>'Capacidade Mínima'])
  100.             ->add('capacidadeMaxima',null, ['label'=>'Capacidade Máxima'])
  101.             ->add('resolucao',null, ['label'=>'Resolução'])
  102.             // ->add('capacidadeMinima', MoneyType::class, [
  103.             //     'label' => 'Capacidade Mínima',
  104.             //     'currency' => 'BRL',
  105.             //     'grouping' => false,
  106.             //     'required' => false
  107.             // ])
  108.             
  109.             // ->add('capacidadeMaxima', MoneyType::class, [
  110.             //     'label' => 'Capacidade Máxima',
  111.             //     'currency' => 'BRL',
  112.             //     'grouping' => false,
  113.             //     'required' => false
  114.             // ])
  115.             
  116.             // ->add('resolucao', MoneyType::class, [
  117.             //     'label' => 'Resolução',
  118.             //     'currency' => 'BRL',
  119.             //     'grouping' => false,
  120.             //     'required' => false
  121.             // ])
  122.             ->add('descricao',null, ['label'=>'Descrição'])
  123.             //->add('quantidade', null, ['label'=>'Quantidade', 'attr'=>['disabled'=>true]])
  124.             //->add('dataUltimaCalibragem', DatePickerType::class,['label'=>'Data última calibragem', 'required'=>false])
  125.             //->add('proximaCalibracao', DatePickerType::class,['label'=>'Data ultima calibragem', 'required'=>false])
  126.             ;
  127.     }
  128.     protected function configureShowFields(ShowMapper $showMapper): void
  129.     {
  130.         $showMapper
  131.             ->add('id'null, ['label'=>'Código do sistema'])
  132.             ->add('codigoBarras'null, ['label'=>'Código de barras'])
  133.             ->add('titulo',null, ['label'=>'Título'])
  134.             ->add('marca',null, ['label'=>'Marca'])
  135.             ->add('modelo',null, ['label'=>'Modelo'])
  136.             ->add('numeroSerie',null, ['label'=>'Número de Série'])
  137.             ->add('classe',null, ['label'=>'Classe'])
  138.             
  139.             ->add('unidadeMedida',null, ['label'=>'Unidade de Medida'])
  140.             ->add('capacidadeMinima',null, ['label'=>'Capacidade Mínima'])
  141.             ->add('capacidadeMaxima',null, ['label'=>'Capacidade Máxima'])
  142.             ->add('resolucao',null, ['label'=>'Resolução'])
  143.             
  144.             ->add('descricao',null, ['label'=>'Descrição'])
  145.             ->add('proximaCalibracao'null, ['label'=>'Data próxima calibragem'])
  146.             ->add('dataUltimaCalibragem'null, ['label'=>'Data última calibragem'])
  147.             ->add('createdAt'null, ['label'=>'Data do cadastro'])
  148.             ;
  149.     }
  150. }