src/Form/Type/FormEntrepriseType.php line 21

Open in your IDE?
  1. <?php
  2. namespace App\Form\Type;
  3.  
  4. use App\Entity\FormEntreprise;
  5. use Symfony\Component\Form\AbstractType;
  6. use Symfony\Component\Form\FormBuilderInterface;
  7. use Symfony\Component\OptionsResolver\OptionsResolver;
  8. use Symfony\Bridge\Doctrine\Form\Type\EntityType;
  9. use Symfony\Component\Form\Extension\Core\Type\NumberType;
  10. use Symfony\Component\Form\Extension\Core\Type\TextType;
  11. use Symfony\Component\Form\Extension\Core\Type\DateType;
  12. use Symfony\Component\Form\Extension\Core\Type\TimeType;
  13. use Symfony\Component\Form\Extension\Core\Type\FormType;
  14. use Symfony\Component\Form\Extension\Core\Type\EmailType;
  15. use Symfony\Component\Form\Extension\Core\Type\TelType;
  16. use Symfony\Component\Form\Extension\Core\Type\RangeType;
  17. use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  18. use Symfony\Component\Form\Extension\Core\Type\SubmitType;
  19.  
  20. class FormEntrepriseType extends AbstractType
  21. {
  22.     public function buildForm(FormBuilderInterface $builder, array $options) {
  23.         $builder->add('date'DateType::class, [
  24.                     'widget' => 'single_text',
  25.                     'html5' => false,
  26.                 ])
  27.                 ->add('type'ChoiceType::class, ['label' => "Pour quel type d'événement ?",
  28.                                                          'attr'=>['class'=>'select'],
  29.                                                          'choices' => [
  30.                                                              'Soirée du personnel' => 'Soirée du personnel',
  31.                                                              'Lancement de produit' => 'Lancement de produit',
  32.                                                              'After Work' => 'After Work',
  33.                                                              'Défilé' => 'Défilé',
  34.                                                              'Inauguration' => 'Inauguration',
  35.                                                              'Séminaire' => 'Séminaire',
  36.                                                              'Fashion Shows' => 'Fashion Shows',
  37.                                                              'Happenings' => 'Happenings',
  38.                                                              'Cocktails' => 'Cocktails',
  39.                                                              'Team building' => 'Team building',
  40.                                                              'Gala' => 'Gala',
  41.                                                          ]])
  42.                 ->add('nom_du_lieu'TextType::class, [ 'label' => 'Quel est le nom du lieu ?',
  43.                                                         'attr'=>['class'=>'select'],
  44.                                                         'required' => false
  45.                                                         ])           
  46.                 ->add('adresse_du_lieu'TextType::class, ['label' => "Quelle est l'adresse du lieu de l'événement ?",
  47.                                                            'attr'=>['class'=>'select autocomplete'],
  48.                                                            'required' => false
  49.                                                        ])
  50.                 ->add('heure_debut'TimeType::class, [ 'label' => "A quelle heure commence l'événement ?",
  51.                                                         'input'  => 'datetime',
  52.                                                         'widget' => 'choice',
  53.                                                         ])      
  54.                 ->add('nb_personne'RangeType::class, ['label' => 'Combien de convives sont attendu ?',
  55.                                                         'attr' => [
  56.                                                             'min' => 10,
  57.                                                             'max' => 100,
  58.                                                             'value' => 40]])
  59.                 ->add('nb_partie'ChoiceType::class, ['label' => "En combien de partie va se dérouler l'événement ?",
  60.                                                        'attr'=>['class'=>'select'],
  61.                                                        'choices' => [
  62.                                                             'En une partie dans le même espace' => '1 partie, 1 espace',
  63.                                                             'En une partie dans deux espace différents' => '1 partie, 2 espace',
  64.                                                             'En deux partie dans le même espace' => '2 partie, 1 espace',
  65.                                                             'En deux partie dans deux espace différents' => '2 partie, 2 espace ',
  66.                                                       ]])
  67.                 ->add('format'ChoiceType::class, ['label' => "Quelle est le format de l'événement ?"
  68.                                                     'attr'=>['class'=>'select'],
  69.                                                     'choices' => [
  70.                                                         'Cocktail dinatoire debout' => 'Cocktail dinatoire debout',
  71.                                                         'Assis en mode conférence puis debout' => 'Assis en mode conférence puis debout',
  72.                                                         'Repas assis' => 'Repas assis',
  73.                                                         'Assis en mode conférence' => 'Assis en mode conférence',
  74.                                                     ]])
  75.                 ->add('formule'ChoiceType::class, ['label' => "Choisissez votre formule",
  76.                                                    'multiple' => false,
  77.                                                    'expanded' => true,
  78.                                                    'attr'=>['class'=>'formulaireRadio'],
  79.                                                    'choices' => [
  80.                                                        " " => 'Dj set',
  81.                                                        'dj 2 ' => 'Dj set avec sonorisation',
  82.                                                        'dj 3 ' => 'Dj set avec sonorisation et lumiere',
  83.                                                    ]])
  84.                 ->add('nb_personne_formule'ChoiceType::class, ['label' => "Pour combien de personnes ?",
  85.                                                                 'multiple' => false,
  86.                                                                 'expanded' => true,
  87.                                                                 'required' => false,
  88.                                                                 'attr'=>['class'=>'formulaireRadio'],
  89.                                                                 'choices' => [
  90.                                                                     'Formule 30 personnes' => '30 personnes',
  91.                                                                     'Formule 80 personnes' => '80 personnes',
  92.                                                                     'Formule 120 personnes' => '120 personnes',
  93.                                                                 ]])
  94.                 ->add('duree_formule'ChoiceType::class, ['label' => "Pour quel durée ?",
  95.                                                         'multiple' => false,
  96.                                                         'expanded' => true,
  97.                                                         'attr'=>['class'=>'formulaireRadio'],
  98.                                                         'choices' => [
  99.                                                             'Formule 4H00' => 'Formule 4H00',
  100.                                                             'Formule 5H00' => 'Formule 5H00',
  101.                                                             'Formule 6H00' => 'Formule 6H00',
  102.                                                         ]])
  103.                 ->add('theme'TextType::class, ['label' => "Quel est le thème de l'événement ?",
  104.                                               
  105.                                               'attr'=>['class'=>'select',
  106.                                                        'placeholder' => 'Soirée année 80,'],
  107.                                               'required' => false
  108.                                              ])
  109.                 ->add('public'ChoiceType::class, ['label' => 'Quel publique sera présent ?'
  110.                                              'attr'=>['class'=>'select'],
  111.                                              'choices' => [
  112.                                                  'Mixte' => 'Mixte',
  113.                                                  'Féminin' => 'Féminin',
  114.                                                  'Masculin' => 'Masculin',
  115.                                              ]])
  116.                 ->add('age'RangeType::class, ['label' => "Pour quelle moyenne d'âge ?",
  117.                                                         'attr' => [
  118.                                                             'min' => 18,
  119.                                                             'max' => 90,
  120.                                                             'value' => 18
  121.                                                 ]])
  122.                 ->add('nationalite'ChoiceType::class, ['label' => 'De quelle nationalité ?',
  123.                                                 'multiple'=> true,
  124.                                                 'attr'=>['class'=>'selectpicker','data-style'=>'btn-primary'],
  125.                                                 'choices' => [
  126.                                                     'Français' => 'Français',
  127.                                                     'Anglais' => 'Anglais',
  128.                                                     'Espagnole' => 'Espagnole',
  129.                                                     'Indien' => 'Indien',
  130.                                                     'International' => 'International',
  131.                                                     'Portugais' => 'Portugais',
  132.                                                     'Arabe' => 'Arabe',
  133.                                                     'Russe' => 'Russe',
  134.                                                     'Chinois' => 'Chinois',
  135.                                                     'Italien' => 'Italien',
  136.                                                 ]])
  137.                 ->add('ambiance'ChoiceType::class, ['label' => "Quelle ambiance voulez vous au début de l'événement ?",
  138.                                                 'multiple'=> true,
  139.                                                 'attr'=>['class'=>'selectpicker','data-style'=>'btn-primary'],
  140.                                                 'choices' => [
  141.                                                     'Généraliste' => 'Généraliste',
  142.                                                     'Club' => 'Club',
  143.                                                     'Disco' => 'Disco',
  144.                                                     'Funck' => 'Funck',
  145.                                                     'Soul' => 'Soul',
  146.                                                     'House' => 'House',
  147.                                                     'Electro Pop' => 'Electro Pop',
  148.                                                     'RnB' => 'RnB',
  149.                                                     "Musique d'ambiance" => "Musique d'ambiance",
  150.                                                     'Commercial' => 'Commercial',
  151.                                                     'Reggaeton' => 'Reggaeton',
  152.                                                     'Deep house' => 'Deep house',
  153.                                                     'Tech house' => 'Tech house',
  154.                                                     'Funky house' => 'Funky house',
  155.                                                     'Electro dance music' => 'Electro dance music',
  156.                                                     'Internationale' => 'Internationale',
  157.                                                     'Année 80' => 'Année 80',
  158.                                                     'Motown' => 'Motown',
  159.                                                     'Swing' => 'Swing',
  160.                                                     'Lounge' => 'Lounge',
  161.                                                     'Jazz' => 'Jazz',
  162.                                                     'Je ne souhaite pas de musique' => 'Je ne souhaite pas de musique',
  163.                                                 ]])
  164.                 ->add('ambiance_fin'ChoiceType::class, ['label' => "Quelle ambiance voulez vous à la fin ?",
  165.                                                 'multiple'=> true,
  166.                                                 'attr'=>['class'=>'selectpicker','data-style'=>'btn-primary'],
  167.                                                 'choices' => [
  168.                                                     'Généraliste' => 'Généraliste',
  169.                                                     'Club' => 'Club',
  170.                                                     'Disco' => 'Disco',
  171.                                                     'Funck' => 'Funck',
  172.                                                     'Soul' => 'Soul',
  173.                                                     'House' => 'House',
  174.                                                     'Electro Pop' => 'Electro Pop',
  175.                                                     'RnB' => 'RnB',
  176.                                                     "Musique d'ambiance" => "Musique d'ambiance",
  177.                                                     'Commercial' => 'Commercial',
  178.                                                     'Reggaeton' => 'Reggaeton',
  179.                                                     'Deep house' => 'Deep house',
  180.                                                     'Tech house' => 'Tech house',
  181.                                                     'Funky house' => 'Funky house',
  182.                                                     'Electro dance music' => 'Electro dance music',
  183.                                                     'Internationale' => 'Internationale',
  184.                                                     'Année 80' => 'Année 80',
  185.                                                     'Motown' => 'Motown',
  186.                                                     'Swing' => 'Swing',
  187.                                                     'Lounge' => 'Lounge',
  188.                                                     'Jazz' => 'Jazz',
  189.                                                     'Je ne souhaite pas de musique' => 'Je ne souhaite pas de musique',
  190.                                                 ]])
  191.                 ->add('style_dj'ChoiceType::class, ['label' => "Vous voulez un Dj avec un style plutôt ?",
  192.                                                 'attr'=>['class'=>'select'],
  193.                                                 'choices' => [
  194.                                                     'Jeune et dynamique' => 'Jeune et dynamique',
  195.                                                     'Expérimenté avec de bonnes références (+200€)' => 'Expérimenté avec de bonnes références (+200€)',
  196.                                                     'Moderne et féminin (+100€)' => 'Moderne et féminin (+100€)',
  197.                                                     'Indifférent' => 'Indifférent',
  198.                                                 ]])
  199.                 ->add('vetement_dj'ChoiceType::class, ['label' => "Choisissez le style vestimentaire du DJ",
  200.                                                 'attr'=>['class'=>'select'],
  201.                                                 'choices' => [
  202.                                                     'Smart (Chemise Pantalon)' => 'Smart (Chemise Pantalon)',
  203.                                                     'Summertime time (Tong Short T-shirt)' => 'Summertime time (Tong Short T-shirt)',
  204.                                                     'Décontracté (Polo Jean Basket)' => 'Décontracté (Polo Jean Basket)',
  205.                                                     'Chic (Veste Cravate Pantalon)' => 'Chic (Veste Cravate Pantalon)',
  206.                                                 ]])
  207.                 ->add('repas_dj'ChoiceType::class, ['label' => "Un repas est-il prévu pour le DJ durant l'événement ?",
  208.                                                 'attr'=>['class'=>'select'],
  209.                                                 'choices' => [
  210.                                                     'Oui' => 'Oui',
  211.                                                     'Non' => 'Non',
  212.                                                 ]])
  213.                 ->add('habillage'ChoiceType::class, ['label' => 'Choisissez parmi nos deux habillages que nous fournissions pour la régie et la sonorisation du DJ',
  214.                                                     'attr'=>['class'=>'select'],
  215.                                                     'multiple' => false,
  216.                                                     'expanded' => true,
  217.                                                     'choices' => [
  218.                                                         'White' => 'White',
  219.                                                         'Black' => 'Black',
  220.                                                     ]])
  221.                 ->add('options'ChoiceType::class, ['label' => "Choisissez parmis les options disponibles",
  222.                                                 'attr'=>['class'=>'select'],
  223.                                                 'multiple' => true,
  224.                                                 'expanded' => true,
  225.                                                 'choices' => [
  226.                                                     'Animation photo Booth(+400€)' => 'Animation photo',
  227.                                                     'Karaoké(+400€)' => 'Karaoké',
  228.                                                     'Quizz musical(+700€)' => 'Quizz musical',
  229.                                                     'Projecteur de lumière sur les murs *6 (+100€)' => 'Projecteur de lumière',
  230.                                                 ]])
  231.                 ->add('fonction'ChoiceType::class, ['label' => "Vous êtes ?",
  232.                                                 'attr'=>['class'=>'select'],
  233.                                                 'choices' => [
  234.                                                     "Responsable du projet pour le compte d'un client ?" => 'Responsable du projet',
  235.                                                     "Le client donneur d'ordre" => 'Client',
  236.                                                 ]])
  237.                 ->add('nom_responsable'TextType::class, ['label' => 'Saisissez le nom du responsable du projet',
  238.                                                'attr'=>['class'=>'select'],
  239.                                                'required' => false
  240.                                               ])
  241.                 ->add('email_chef'EmailType::class, ['label' => "Saisissez l'adresse Email du chef de projet",
  242.                                                  'attr'=>['class'=>'select',
  243.                                                  'pattern'=>"[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,}$"],
  244.                                                  'required' => false
  245.                                                 ])
  246.                 ->add('numero_chef'TelType::class, ['label' => 'Saisissez le contact du chef de projet',
  247.                                                     'attr'=>['class'=>'select',
  248.                                                     'placeholder' => 'numéro de téléphone',
  249.                                                     'pattern' => "^((\+\d{1,3}(-| )?\(?\d\)?(-| )?\d{1,5})|(\(?\d{2,6}\)?))(-| )?(\d{3,4})(-| )?(\d{4})(( x| ext)\d{1,5}){0,1}$",
  250.                                                     'maxlength' => '10',
  251.                                                     'minlength' => '10']
  252.                                                    ])
  253.                 ->add('nom'TextType::class, ['label' => 'Saisissez le nom du client',
  254.                                                'attr'=>['class'=>'select'],
  255.                                                'required' => false
  256.                                               ])
  257.                 ->add('numero'TelType::class, ['label' => 'Saisissez le numero de téléphone du client',
  258.                                               'attr'=>['class'=>'select',
  259.                                               'placeholder' => 'numéro de téléphone',
  260.                                               'pattern' => "^((\+\d{1,3}(-| )?\(?\d\)?(-| )?\d{1,5})|(\(?\d{2,6}\)?))(-| )?(\d{3,4})(-| )?(\d{4})(( x| ext)\d{1,5}){0,1}$",
  261.                                               'maxlength' => '10',
  262.                                               'minlength' => '10']
  263.                                              ])
  264.                 ->add('adresse'TextType::class, ['label' => "Saisissez l'adresse du client",
  265.                                              'attr'=>['class'=>'select'],
  266.                                              'required' => false
  267.                                             ])
  268.                 ->add('go',SubmitType::class, ['label'=>'Téléchargez votre devis']);
  269.     }
  270.  
  271.     public function configureOptions(OptionsResolver $resolver) {
  272.         $resolver->setDefaults(array(
  273.             'data_class' => FormEntreprise::class
  274.         ));
  275.     }
  276. }