src/Form/Projets/TacheType.php line 69

Open in your IDE?
  1. <?php
  2. namespace App\Form\Projets;
  3. use App\DataTransformer\Projets\IdToProjetTransformer;
  4. use App\Entity\Clients\Client;
  5. use App\Entity\Projets\Projet;
  6. use App\Entity\Projets\Tache;
  7. use App\Entity\Utilisateur\Contact;
  8. use Symfony\Bridge\Doctrine\Form\Type\EntityType;
  9. use Symfony\Component\Form\AbstractType;
  10. use Symfony\Component\Form\Extension\Core\Type\DateTimeType;
  11. use Symfony\Component\Form\FormBuilderInterface;
  12. use Symfony\Component\Form\FormEvent;
  13. use Symfony\Component\Form\FormEvents;
  14. use Symfony\Component\Form\FormInterface;
  15. use Symfony\Component\OptionsResolver\OptionsResolver;
  16. class TacheType extends AbstractType
  17. {
  18.     public function buildForm(FormBuilderInterface $builder, array $options)
  19.     {
  20.         $builder
  21.             ->add('rapporteurInterne')
  22.             //->add('rapporteurExterne')
  23.             ->add('responsableInterne')
  24.             //->add('responsableExterne')
  25.             ->add('priorite')
  26.             ->add('etat')
  27.             ->add('reference')
  28.             ->add('description')
  29.             //->add('projet')
  30.             ->add('projet'EntityType::class, [
  31.                 'multiple' => false// Wether or not multiple values are allowed (default to false)
  32.                 'class'    => Projet::class,
  33.                 'attr'  => [
  34.                     'class' => 'select2-hidden-accessible',
  35.                 ],
  36.             ])
  37.             ->add('pourcentage')
  38.             ->add('nbHeuresAlloues')
  39.             //->add('nbHeuresRealisees')
  40.             //->add('differenceHeure')
  41.             ->add('libelle')
  42.             //->add('dateMail', DateTimeType::class, array( 'pickerOptions' =>array('autoclose' => true,)))
  43.             ->add('date'DateTimeType::class)
  44.             ->add('dateDebutPrevue'DateTimeType::class)
  45.             //->add('dateDebutRecalee', DateTimeType::class, array( 'pickerOptions' =>array('format' => 'dd/mm/yyyy hh:ii','autoclose' => true,)))
  46.             ->add('dateDebutReelle'DateTimeType::class)
  47.             ->add('dateFinPrevue'DateTimeType::class)
  48.             //->add('dateFinRecalee', DateTimeType::class, array( 'pickerOptions' =>array('format' => 'dd/mm/yyyy hh:ii','autoclose' => true,)))
  49.             ->add('dateFinReelle'DateTimeType::class)
  50.             ->add('budgetAdepenser')
  51.             ->add('budgetDepense');
  52. //        $builder->get('projet')->addModelTransformer(new IdToProjetTransformer($this->entityManager));
  53.         $formModifier = function (FormInterface $formClient $client null) {
  54.             $contacts null === $client ? [] : $client->getContacts();
  55.             $form->add('rapporteurExterne'EntityType::class, [
  56.                 'class'   => Contact::class,
  57.                 //'placeholder' => '',
  58.                 'choices' => $contacts,
  59.             ]);
  60.             $form->add('responsableExterne'EntityType::class, [
  61.                 'class'   => Contact::class,
  62.                 //'placeholder' => '',
  63.                 'choices' => $contacts,
  64.             ]);
  65.         };
  66.         $builder->addEventListener(
  67.             FormEvents::PRE_SET_DATA,
  68.             function (FormEvent $event) use ($formModifier) {
  69.                 // this would be your entity, i.e. SportMeetup
  70.                 $data $event->getData();
  71.                 $client null;
  72.                 if (is_object($data->getProjet()) and is_object($data->getProjet()->getClient())) {
  73.                     $client $data->getProjet()->getClient();
  74.                 }
  75.                 $formModifier($event->getForm(), $client);
  76.             }
  77.         );
  78.     }
  79.     public function configureOptions(OptionsResolver $resolver)
  80.     {
  81.         $resolver->setDefaults([
  82.                                    'data_class' => Tache::class,
  83.                                ]);
  84.     }
  85.     public function getName()
  86.     {
  87.         return 'dtc_projetsbundle_tache';
  88.     }
  89.     public function getBlockPrefix():string
  90.     {
  91.         return 'dtc_projetsbundle_tache';
  92.     }
  93. }