<?php
namespace App\Form;
use App\Entity\CancelReason;
use App\Entity\Client;
use App\Entity\Contract;
use App\Entity\Intervenant;
use App\Entity\Product;
use App\Entity\RDV;
use App\Entity\RDVProduct;
use App\Entity\Salon;
use App\Entity\Site;
use Doctrine\ORM\EntityRepository;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\DateTimeType;
use Symfony\Component\Form\Extension\Core\Type\DateType;
use Symfony\Component\Form\Extension\Core\Type\EmailType;
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
class FilterType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('intervenant',EntityType::class, [
'label' => 'Choisir un intervenant',
'placeholder' => 'Choisir un intervenant',
'class' => Intervenant::class,
'required' => false,
'attr'=> [
'placeholder' => 'Choisir un intervenant',
],
'label_attr' => array('class' => ''),
'choice_label' => function (Intervenant $intervenant) {
return $intervenant->getLastname() . ' ' . $intervenant->getFirstname();
},
])
->add('site',EntityType::class, [
'label' => 'Choisir un site',
'placeholder' => 'Choisir un site',
'class' => Site::class,
'required' => false,
'attr'=> [
'placeholder' => 'Choisir un site',
],
'label_attr' => array('class' => ''),
])
->add('client',TextType::class, [
'label' => 'Entrer un client',
'data' => $options['client'],
'required' => false,
'attr'=> [
'placeholder' => 'Entrer un client',
],
'label_attr' => array('class' => ''),
])
->add('start',TextType::class, [
'label' => 'Date de début',
'required' => false,
'attr'=> [
'placeholder' => 'Date de début',
],
'label_attr' => array('class' => ''),
])
->add('end',TextType::class, [
'label' => 'Date de fin',
'required' => false,
'attr'=> [
'placeholder' => 'Date de fin',
],
'label_attr' => array('class' => ''),
])
->add('salon',EntityType::class, [
'class' => Salon::class,
'label' => 'Salon',
'required' => false,
'attr'=> [
'placeholder' => 'Salon',
],
'label_attr' => array('class' => ''),
])
->add('status', ChoiceType::class, [
'label' => 'Statut',
'required' => false,
'placeholder' => 'Choisir un statut',
'data' => $options['status'],
'multiple' => true,
'choices'=> [
'Planifié' => RDV::STATUS_PLANIFIER,
'Replanifié' => RDV::STATUS_REPLANIFIER,
'Facturé' => RDV::STATUS_FACTURER,
'Facture annulée' => RDV::STATUS_FACTURE_ANNULER,
'Annulé' => RDV::STATUS_ANNULER,
'Validé' => RDV::STATUS_VALIDATED,
]
])
//
// ->add('cancelReason', EntityType::class, [
// 'label' => 'Choisir un motif d\'annulation',
// 'class' => CancelReason::class,
// 'placeholder' => 'Choisir un motif d\'annulation',
// 'required' => false,
// 'attr'=> [
// 'placeholder' => 'Choisir un motif d\'annulation',
// ],
// 'label_attr' => array('class' => ''),
// ]);
;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'status' => null,
'client' => null,
]);
}
}