src/Form/DistributionCartType.php line 36

Open in your IDE?
  1. <?php
  2. namespace App\Form;
  3. use App\Entity\Distribution;
  4. use App\Entity\DistributionCart;
  5. use App\Entity\DistributionFlyerQty;
  6. use App\Entity\Orders;
  7. use Symfony\Component\Form\AbstractType;
  8. use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  9. use Symfony\Component\Form\Extension\Core\Type\DateType;
  10. use Symfony\Component\Form\Extension\Core\Type\TextType;
  11. use Symfony\Component\Form\FormBuilderInterface;
  12. use Symfony\Component\OptionsResolver\OptionsResolver;
  13. use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
  14. use Symfony\Bridge\Doctrine\Form\Type\EntityType;
  15. use Doctrine\ORM\EntityRepository;
  16. use Symfony\Component\Form\Extension\Core\Type\HiddenType;
  17. use Symfony\Component\Form\FormEvent;
  18. use Symfony\Component\Form\FormEvents;
  19. use Symfony\Contracts\Translation\TranslatorInterface;
  20. class DistributionCartType extends AbstractType
  21. {
  22.     private $trans;
  23.     public function __construct(
  24.         TranslatorInterface $trans
  25.     ) {
  26.         $this->trans $trans;
  27.     }
  28.     public function buildForm(FormBuilderInterface $builder, array $options)
  29.     {
  30.         $builder
  31.             ->add('qty'EntityType::class, [
  32.                 'class' => DistributionFlyerQty::class,
  33.                 'choice_label' => function(DistributionFlyerQty $qty$key$value) {
  34.                     return $qty->getQty(). 'H';
  35.                 },
  36.                 'query_builder' => function (EntityRepository $er) {
  37.                     return $er->createQueryBuilder('u')
  38.                         ->andWhere('u.isDeleted is null or u.isDeleted = 0')
  39.                         ->orderBy('u.id''DESC');
  40.                 },
  41.                 'expanded' => true,
  42.                 'multiple' => false,
  43.                 'required' => true
  44.             ])
  45.             ->add('adresse',TextType::class,array('required' => true))
  46.             ->add('codePostal',HiddenType::class)
  47.            ->add('lat',HiddenType::class)
  48.             ->add('longi',HiddenType::class)
  49.             ->add('zonechalandise'ChoiceType::class, [
  50.                 'choices' => [
  51.                     '100 m' => '0.1',
  52.                     '200 m' => '0.2',
  53.                     '500 m' => '0.5',
  54.                     '1 km' => '1'
  55.                 ],
  56.                 'expanded' => false,
  57.                 'multiple' => false
  58.             ])
  59.             ->add('nbrPersonne'ChoiceType::class, [
  60.                 'choices' => [
  61.                     '1' => '1',
  62.                     '2' => '2',
  63.                     '3' => '3',
  64.                     '4' => '4'
  65.                 ],
  66.                 'expanded' => true,
  67.                 'multiple' => false,
  68.                 'required' => true
  69.             ])
  70.             ->add('ditribution_flyers'ChoiceType::class, [
  71.                 'choices' => [
  72.                     'Sur des pares brises' => 'Sur des pares brises',
  73.                     'Affichage sauvage dans une rue ou un quartier' => 'Affichage sauvage dans une rue ou un quartier',
  74.                     'Distribution de main à main'=> 'Distribution de main à main',
  75. //                    'Dans les boites aux lettres'=> 'Dans les boites aux lettres'
  76.                 ],
  77.                 'expanded' => true,
  78.                 'multiple' => false,
  79.                 'required' => true
  80.             ])
  81.             ->add('datestart'DateType::class, [
  82.                 'widget' => 'single_text',
  83.                 'attr' => ['class' => 'js-datepicker-front'],
  84.                 'format' => 'yyyy/MM/dd',
  85.                 'html5' => false,
  86.                 'empty_data' => null,
  87.                 'required' => true
  88.             ])
  89.             ->add('dateEnd'DateType::class, [
  90.                 'widget' => 'single_text',
  91.                 'attr' => ['class' => 'js-datepicker-front'],
  92.                 'format' => 'yyyy/MM/dd',
  93.                 'html5' => false,
  94.                 'empty_data' => null,
  95.                 'required' => true
  96.             ])
  97.             ->add('commentaire',TextType::class,array('required' => false))
  98.             ->add('isCopees',ChoiceType::class,array(
  99.                 'required' => true,
  100.                 'label'    => $this->trans->trans('Avez-vous produit vos flyers chez Copees ?'),
  101.                 'choices' => [
  102.                     'Oui' => 1,
  103.                     'Non'=> 0,
  104.                 ],
  105.                 'expanded' => true,
  106.                 'multiple' => false,
  107.                 '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.'),
  108.             ))
  109.         ;
  110.     }
  111.     public function configureOptions(OptionsResolver $resolver)
  112.     {
  113.         $resolver->setDefaults([
  114.             'data_class' => DistributionCart::class,
  115.             'edit' => null,
  116.         ]);
  117.     }
  118. }