src/Form/FilterType.php line 28

Open in your IDE?
  1. <?php
  2. namespace App\Form;
  3. use App\Entity\CancelReason;
  4. use App\Entity\Client;
  5. use App\Entity\Contract;
  6. use App\Entity\Intervenant;
  7. use App\Entity\Product;
  8. use App\Entity\RDV;
  9. use App\Entity\RDVProduct;
  10. use App\Entity\Salon;
  11. use App\Entity\Site;
  12. use Doctrine\ORM\EntityRepository;
  13. use Symfony\Bridge\Doctrine\Form\Type\EntityType;
  14. use Symfony\Component\Form\AbstractType;
  15. use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
  16. use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  17. use Symfony\Component\Form\Extension\Core\Type\DateTimeType;
  18. use Symfony\Component\Form\Extension\Core\Type\DateType;
  19. use Symfony\Component\Form\Extension\Core\Type\EmailType;
  20. use Symfony\Component\Form\Extension\Core\Type\HiddenType;
  21. use Symfony\Component\Form\Extension\Core\Type\TextareaType;
  22. use Symfony\Component\Form\Extension\Core\Type\TextType;
  23. use Symfony\Component\Form\FormBuilderInterface;
  24. use Symfony\Component\OptionsResolver\OptionsResolver;
  25. class FilterType extends AbstractType
  26. {
  27.     public function buildForm(FormBuilderInterface $builder, array $options)
  28.     {
  29.         $builder
  30.             ->add('intervenant',EntityType::class, [
  31.                 'label' => 'Choisir un intervenant',
  32.                 'placeholder' => 'Choisir un intervenant',
  33.                 'class' => Intervenant::class,
  34.                 'required' => false,
  35.                 'attr'=> [
  36.                     'placeholder' => 'Choisir un intervenant',
  37.                 ],
  38.                 'label_attr' => array('class' => ''),
  39.                 'choice_label' => function (Intervenant $intervenant) {
  40.                     return $intervenant->getLastname() . ' ' $intervenant->getFirstname();
  41.                 },
  42.             ])
  43.             ->add('site',EntityType::class, [
  44.                 'label' => 'Choisir un site',
  45.                 'placeholder' => 'Choisir un site',
  46.                 'class' => Site::class,
  47.                 'required' => false,
  48.                 'attr'=> [
  49.                     'placeholder' => 'Choisir un site',
  50.                 ],
  51.                 'label_attr' => array('class' => ''),
  52.             ])
  53.             ->add('client',TextType::class, [
  54.                 'label' => 'Entrer un client',
  55.                 'data' => $options['client'],
  56.                 'required' => false,
  57.                 'attr'=> [
  58.                     'placeholder' => 'Entrer un client',
  59.                 ],
  60.                 'label_attr' => array('class' => ''),
  61.             ])
  62.             ->add('start',TextType::class, [
  63.                 'label' => 'Date de début',
  64.                 'required' => false,
  65.                 'attr'=> [
  66.                     'placeholder' => 'Date de début',
  67.                 ],
  68.                 'label_attr' => array('class' => ''),
  69.             ])
  70.             ->add('end',TextType::class, [
  71.                 'label' => 'Date de fin',
  72.                 'required' => false,
  73.                 'attr'=> [
  74.                     'placeholder' => 'Date de fin',
  75.                 ],
  76.                 'label_attr' => array('class' => ''),
  77.             ])
  78.             ->add('salon',EntityType::class, [
  79.                 'class' => Salon::class,
  80.                 'label' => 'Salon',
  81.                 'required' => false,
  82.                 'attr'=> [
  83.                     'placeholder' => 'Salon',
  84.                 ],
  85.                 'label_attr' => array('class' => ''),
  86.             ])
  87.             ->add('status'ChoiceType::class, [
  88.                   'label' => 'Statut',
  89.                 'required' => false,
  90.                 'placeholder' => 'Choisir un statut',
  91.                 'data' => $options['status'],
  92.                   'multiple' => true,
  93.                   'choices'=> [
  94.                       'Planifié' => RDV::STATUS_PLANIFIER,
  95.                       'Replanifié' => RDV::STATUS_REPLANIFIER,
  96.                       'Facturé' => RDV::STATUS_FACTURER,
  97.                       'Facture annulée' => RDV::STATUS_FACTURE_ANNULER,
  98.                       'Annulé' => RDV::STATUS_ANNULER,
  99.                       'Validé' => RDV::STATUS_VALIDATED,
  100.                   ]
  101.               ])
  102. //
  103. //                ->add('cancelReason', EntityType::class, [
  104. //                    'label' => 'Choisir un motif d\'annulation',
  105. //                    'class' => CancelReason::class,
  106. //                    'placeholder' => 'Choisir un motif d\'annulation',
  107. //                    'required' => false,
  108. //                    'attr'=> [
  109. //                        'placeholder' => 'Choisir un motif d\'annulation',
  110. //                    ],
  111. //                    'label_attr' => array('class' => ''),
  112. //            ]);
  113.         ;
  114.     }
  115.     public function configureOptions(OptionsResolver $resolver)
  116.     {
  117.         $resolver->setDefaults([
  118.             'status' => null,
  119.             'client' => null,
  120.         ]);
  121.     }
  122. }