src/Form/RequeteDeFinancementAdminType.php line 20

Open in your IDE?
  1. <?php
  2. namespace App\Form;
  3. use App\Entity\Niveau;
  4. use App\Entity\RequeteDeFinancement;
  5. use App\Entity\Status;
  6. use App\Entity\User;
  7. use Symfony\Bridge\Doctrine\Form\Type\EntityType;
  8. use Symfony\Component\Form\AbstractType;
  9. use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  10. use Symfony\Component\Form\Extension\Core\Type\DateType;
  11. use Symfony\Component\Form\Extension\Core\Type\EmailType;
  12. use Symfony\Component\Form\Extension\Core\Type\HiddenType;
  13. use Symfony\Component\Form\Extension\Core\Type\TextareaType;
  14. use Symfony\Component\Form\Extension\Core\Type\TextType;
  15. use Symfony\Component\Form\FormBuilderInterface;
  16. use Symfony\Component\OptionsResolver\OptionsResolver;
  17. class RequeteDeFinancementAdminType extends AbstractType
  18. {
  19.     public function buildForm(FormBuilderInterface $builder, array $options)
  20.     {
  21.         $builder
  22.             ->add('numero',TextType::class,[
  23.                 'required'=>true,
  24.                 'attr'=>[
  25.                     'class' => 'form-control',
  26.                     'hidden'=>false,
  27.                     'readonly' => true,
  28.                 ],
  29.             ])
  30.             ->add('societe',TextType::class,[
  31.                 'required'   => true,
  32.             ])
  33.             ->add('pays',TextType::class,[
  34.                 'required'   => true,
  35.             ])
  36.             ->add('activite',TextType::class,[
  37.                 'required'   => true,
  38.             ])
  39.             ->add('courriel',EmailType::class,[
  40.                 'required'   => true,
  41.             ])
  42.             ->add('dateRemiseDossier',DateType::class,[
  43.                 'required'=>false,
  44.                 'widget' => 'single_text',
  45.                 'format' => 'yyyy-MM-dd',
  46.                 'attr'=>[
  47.                     'class' => 'form-control',
  48.                     'hidden'=>false,
  49.                 ],
  50.                 'placeholder' => [
  51.                     'year' => 'Année''month' => 'Mois''day' => 'Jour',
  52.                     'hour' => 'Hour''minute' => 'Minute''second' => 'Second',
  53.                 ],
  54.             ])
  55.             ->add('contact',TextType::class,[
  56.                 'required'   => true,
  57.             ])
  58.             ->add('secteur',TextType::class,[
  59.                 'required'   => true,
  60.             ])
  61.             ->add('telephone',TextType::class,[
  62.                 'required'   => true,
  63.             ])
  64.             ->add('adresse',TextType::class,[
  65.                 'required'   => true,
  66.             ])
  67.             ->add('dateEstimeDemarrageProjet',DateType::class,[
  68.                 'required'=>true,
  69.                 'widget' => 'single_text',
  70.                 'format' => 'yyyy-MM-dd',
  71.                 'attr'=>[
  72.                     'class' => 'form-control',
  73.                     'hidden'=>false,
  74.                 ],
  75.                 'placeholder' => [
  76.                     'year' => 'Année''month' => 'Mois''day' => 'Jour',
  77.                     'hour' => 'Hour''minute' => 'Minute''second' => 'Second',
  78.                 ],
  79.             ])
  80.             ->add('montantDemande',TextType::class,[
  81.                 'required'   => true,
  82.             ])
  83.             ->add('partVariable',TextType::class,[
  84.                 'required'   => true,
  85.             ])
  86.             ->add('natureInvestissement'ChoiceType::class, [
  87.                 'choices' => [
  88.                     'Création|Creation' => 'Création',
  89.                     'Achat équipement|Equipment purchase' => 'Achat équipement',
  90.                     'F.R' => 'F.R',
  91.                     'B.F.R' => 'B.F.R',
  92.                     'B.C' => 'B.C',
  93.                     'Autre|Other' => 'Autre',
  94.                 ],
  95.             ])
  96.             ->add('note',TextareaType::class,[
  97.                 'required'   => true,
  98.             ])
  99.             ->add('status',EntityType::class, [
  100.                 'class'=>Status::class,
  101.                 'placeholder' => 'Choix',
  102.                 'choice_label'=>'name',
  103.                 'required'=>false,
  104.                 'query_builder' => function ($repository) {
  105.                     return $repository->createQueryBuilder('s')
  106.                         ->where('LOWER(s.formulaire) LIKE :entity_name'// Utilisation de LIKE pour une correspondance approximative
  107.                         ->setParameter('entity_name''%requ%de%financement%'); // Utilisation de % pour faire correspondre n'importe quel caractère (y compris aucun)
  108.                 },
  109.             ])
  110.             ->add('user',EntityType::class, [
  111.                 'class'=>User::class,
  112.                 'placeholder' => 'Choix',
  113.                 'choice_label'=>'name',
  114.                 'required'=>false,
  115.             ])
  116.             ->add('niveau',EntityType::class, [
  117.                 'class'=>Niveau::class,
  118.                 'placeholder' => 'Choix',
  119.                 'choice_label'=>'niveau',
  120.                 'required'=>false,
  121.             ])
  122.         ;
  123.     }
  124.     public function configureOptions(OptionsResolver $resolver)
  125.     {
  126.         $resolver->setDefaults([
  127.             'data_class' => RequeteDeFinancement::class,
  128.         ]);
  129.     }
  130. }