<?php
namespace App\Form;
use App\Entity\Distribution;
use App\Entity\DistributionCart;
use App\Entity\DistributionFlyerQty;
use App\Entity\Orders;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\DateType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Doctrine\ORM\EntityRepository;
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
use Symfony\Component\Form\FormEvent;
use Symfony\Component\Form\FormEvents;
use Symfony\Contracts\Translation\TranslatorInterface;
class DistributionCartType extends AbstractType
{
private $trans;
public function __construct(
TranslatorInterface $trans
) {
$this->trans = $trans;
}
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('qty', EntityType::class, [
'class' => DistributionFlyerQty::class,
'choice_label' => function(DistributionFlyerQty $qty, $key, $value) {
return $qty->getQty(). 'H';
},
'query_builder' => function (EntityRepository $er) {
return $er->createQueryBuilder('u')
->andWhere('u.isDeleted is null or u.isDeleted = 0')
->orderBy('u.id', 'DESC');
},
'expanded' => true,
'multiple' => false,
'required' => true
])
->add('adresse',TextType::class,array('required' => true))
->add('codePostal',HiddenType::class)
->add('lat',HiddenType::class)
->add('longi',HiddenType::class)
->add('zonechalandise', ChoiceType::class, [
'choices' => [
'100 m' => '0.1',
'200 m' => '0.2',
'500 m' => '0.5',
'1 km' => '1'
],
'expanded' => false,
'multiple' => false
])
->add('nbrPersonne', ChoiceType::class, [
'choices' => [
'1' => '1',
'2' => '2',
'3' => '3',
'4' => '4'
],
'expanded' => true,
'multiple' => false,
'required' => true
])
->add('ditribution_flyers', ChoiceType::class, [
'choices' => [
'Sur des pares brises' => 'Sur des pares brises',
'Affichage sauvage dans une rue ou un quartier' => 'Affichage sauvage dans une rue ou un quartier',
'Distribution de main à main'=> 'Distribution de main à main',
// 'Dans les boites aux lettres'=> 'Dans les boites aux lettres'
],
'expanded' => true,
'multiple' => false,
'required' => true
])
->add('datestart', DateType::class, [
'widget' => 'single_text',
'attr' => ['class' => 'js-datepicker-front'],
'format' => 'yyyy/MM/dd',
'html5' => false,
'empty_data' => null,
'required' => true
])
->add('dateEnd', DateType::class, [
'widget' => 'single_text',
'attr' => ['class' => 'js-datepicker-front'],
'format' => 'yyyy/MM/dd',
'html5' => false,
'empty_data' => null,
'required' => true
])
->add('commentaire',TextType::class,array('required' => false))
->add('isCopees',ChoiceType::class,array(
'required' => true,
'label' => $this->trans->trans('Avez-vous produit vos flyers chez Copees ?'),
'choices' => [
'Oui' => 1,
'Non'=> 0,
],
'expanded' => true,
'multiple' => false,
'help' => $this->trans->trans('Vous avez produit vos flyers chez un autre imprimeur, un coursier Copees passera gratuitement les récupérer avant la distribution. Un account manager vous contactera pour prendre rendez-vous.'),
))
;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'data_class' => DistributionCart::class,
'edit' => null,
]);
}
}