src/Form/DashboardFiltroType.php line 16

Open in your IDE?
  1. <?php
  2. namespace App\Form;
  3. use App\Entity\Unidad;
  4. use Doctrine\ORM\EntityRepository;
  5. use Symfony\Bridge\Doctrine\Form\Type\EntityType;
  6. use Symfony\Component\Form\AbstractType;
  7. use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  8. use Symfony\Component\Form\Extension\Core\Type\DateType;
  9. use Symfony\Component\Form\FormBuilderInterface;
  10. use Symfony\Component\Form\FormEvent;
  11. use Symfony\Component\Form\FormEvents;
  12. use Symfony\Component\OptionsResolver\OptionsResolver;
  13. class DashboardFiltroType extends AbstractType
  14. {
  15.     public function buildForm(FormBuilderInterface $builder, array $options): void
  16.     {
  17.         date_default_timezone_set("America/Mexico_City");
  18.         setlocale(LC_ALL'es_MX');
  19.         $builder
  20.             ->add('date_inicio'DateType::class, [
  21.                 'label' => 'Desde',
  22.                 //'attr' => ['class' => 'form-control'],
  23.                 'required' => true,
  24.                 'widget' => 'single_text',
  25.                 //'format' => 'yyyy-MM-dd',
  26.                 'data' => new \DateTime(date_format(new \DateTime(), 'Y') . '-01-01'),
  27.                 'attr' => ['class' => 'js-datepicker'],
  28.             ])
  29.         ;
  30.         $builder
  31.             ->add('date_fin'DateType::class, [
  32.                 'label' => 'Hasta',
  33.                 //'attr' => ['class' => 'form-control'],
  34.                 'required' => true,
  35.                 'widget' => 'single_text',
  36.                 'format' => 'yyyy-MM-dd',
  37.                 'data' => new \DateTime(),
  38.                 'attr' => ['class' => 'js-datepicker'],
  39.             ])
  40.         ;
  41.         $builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) use ($options) {
  42.             $form $event->getForm();
  43.             if ($options['unidad']) {
  44.                 $form->add('unidad'EntityType::class, [
  45.                     'label' => 'Unidad',
  46.                     'class' => Unidad::class,
  47.                     'placeholder' => 'Todas',
  48.                     'attr' => [
  49.                         'class' => 'form-control'
  50.                     ],
  51.                     /*'query_builder' => function(EntityRepository $entityRepository){
  52.                         return $entityRepository->createQueryBuilder('u')
  53.                             ->orderBy('u.nombre', 'ASC');
  54.                     }*/
  55.                     'query_builder' => function (EntityRepository $er) {
  56.                         return $er->createQueryBuilder('u')
  57.                             ->orderBy('u.nombre''ASC')
  58.                             ;
  59.                     }
  60.                 ]);
  61.             }
  62.         });
  63.     }
  64.     public function configureOptions(OptionsResolver $resolver): void
  65.     {
  66.         $resolver->setDefaults([
  67.             'anios' => '',
  68.             'unidad' => false,
  69.         ]);
  70.     }
  71.     //Para subir formulario
  72. }