src/Admin/DiarioObraAdmin.php line 17

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\Form\Type\ModelType;
  9. use Sonata\AdminBundle\Show\ShowMapper;
  10. use Sonata\Form\Type\DatePickerType;
  11. use Sonata\Form\Type\DateTimePickerType;
  12. use Symfony\Component\Form\Extension\Core\Type\DateTimeType;
  13. final class DiarioObraAdmin extends BaseAdmin
  14. {
  15.     protected function configureDatagridFilters(DatagridMapper $datagridMapper): void
  16.     {
  17.         $datagridMapper
  18.             ->add('id')
  19.             ->add('responsavel_nome','doctrine_orm_callback',[
  20.                 'label'=>'Responsável',
  21.                 'callback'   => array($this'filterResponsavel'),
  22.             ])
  23.             ->add('dataHoraInicio')
  24.             ->add('horaInicioAlmoco')
  25.             ->add('horaFimAlmoco')
  26.             ->add('horaFimDiaria')
  27.             ->add('memorial')
  28.             ;
  29.     }
  30.     
  31.     public function filterResponsavel($queryBuilder$alias$field$value)
  32.     {
  33.         if (!$value['value']) {
  34.             return;
  35.         }
  36.         $value mb_strtolower($value['value']);
  37.         $queryBuilder
  38.             ->andWhere("UNACCENT(LOWER($alias.responsavel_nome)) LIKE UNACCENT(:responsavel_nome)" )
  39.             ->setParameter('responsavel_nome'"%$value%");
  40.         return true;
  41.     }
  42.     protected function configureListFields(ListMapper $listMapper): void
  43.     {
  44.         $listMapper
  45.             ->add('ordemServico.proposta.numeroFormatado'null, ['label'=>'Ordem de Serviço'])
  46.             ->add('responsavel_nome'null, ['label'=>'Responsável'])
  47.             ->add('dataHoraInicio'null, ['label'=>'Início'])
  48.             ->add('horaFimDiaria'null, ['label'=>'Fim'])
  49.             ->add('_action'null, [
  50.                 'actions' => [
  51.                     'show' => [],
  52.                     'edit' => [],
  53.                     'delete' => [],
  54.                 ],
  55.             ]);
  56.     }
  57.     protected function configureFormFields(FormMapper $formMapper): void
  58.     {
  59.         $formMapper
  60.             ->add('ordemServico'ModelType::class, [
  61.                 'placeholder' => '-- Selecione --',
  62.                 'label' => 'Ordem de Serviço',
  63.                 //'property' => 'id',
  64.                 'required' => true,
  65.                 'expanded' => false,
  66.                 'multiple' => false,
  67.                 'btn_add'  => false,
  68.             ])
  69.             ->add('servico'ModelType::class, [
  70.                 'placeholder' => '-- Selecione --',
  71.                 'label' => 'Serviço',
  72.                 //'property' => 'id',
  73.                 'required' => true,
  74.                 'expanded' => false,
  75.                 'multiple' => false,
  76.                 'btn_add'  => false,
  77.             ])
  78.             ->add('responsavel_nome')
  79.             ->add('dataHoraInicio'DatePickerType::class,['label'=>'Início da diária''required'=>true])
  80.             ->add('horaInicioAlmoco'DateTimePickerType::class,['dp_use_seconds'=>false'format'=>"HH:mm"'label'=>'Início do almoço''dp_pick_date' => false])
  81.             ->add('horaFimAlmoco'DateTimePickerType::class,['dp_use_seconds'=>false,'format'=>"HH:mm"'label'=>'Fim do almoço''dp_pick_date' => false])
  82.             ->add('horaFimDiaria'DateTimePickerType::class,['dp_use_seconds'=>false'format'=>"HH:mm"'label'=>'Fim da diária''dp_pick_date' => false])
  83.             ->add('memorial')
  84.             ;
  85.     }
  86.     protected function configureShowFields(ShowMapper $showMapper): void
  87.     {
  88.         $showMapper
  89.             ->add('id')
  90.             ->add('responsavel_nome')
  91.             ->add('dataHoraInicio')
  92.             ->add('horaInicioAlmoco')
  93.             ->add('horaFimAlmoco')
  94.             ->add('horaFimDiaria')
  95.             ->add('memorial')
  96.             ;
  97.     }
  98.     public function prePersist($object)
  99.     {
  100.         $object->setCadastradoPor($this->getUserLogado());
  101.         $object->setCreatedAt(new \DateTime('now'));
  102.         $object->setUpdatedAt(new \DateTime('now'));
  103.         parent::prePersist($object); // TODO: Change the autogenerated stub
  104.     }
  105.     public function preUpdate($object)
  106.     {
  107.         $object->setUpdatedAt(new \DateTime('now'));
  108.         parent::preUpdate($object); // TODO: Change the autogenerated stub
  109.     }
  110. }