src/Flexy/FrontBundle/Themes/CoWorking/Form/RegistrationCustomerFormType.php line 23

  1. <?php
  2. namespace App\Flexy\FrontBundle\Themes\CoWorking\Form;
  3. use App\Entity\User;
  4. use App\Flexy\ShopBundle\Entity\Customer\Customer;
  5. use Symfony\Component\Form\AbstractType;
  6. use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
  7. use Symfony\Component\Form\Extension\Core\Type\PasswordType;
  8. use Symfony\Component\Form\FormBuilderInterface;
  9. use Symfony\Component\OptionsResolver\OptionsResolver;
  10. use Symfony\Component\Validator\Constraints\IsTrue;
  11. use Symfony\Component\Validator\Constraints\Length;
  12. use Symfony\Component\Validator\Constraints\NotBlank;
  13. use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  14. use Symfony\Component\Form\Extension\Core\Type\DateType;
  15. use Symfony\Component\Form\Extension\Core\Type\EmailType;
  16. use Symfony\Component\Form\Extension\Core\Type\FileType;
  17. use Symfony\Component\Validator\Constraints\Email;
  18. use Vich\UploaderBundle\Form\Type\VichFileType;
  19. use Symfony\Component\Form\Extension\Core\Type\TextType;
  20. class RegistrationCustomerFormType extends AbstractType
  21. {
  22.     public function buildForm(FormBuilderInterface $builder, array $options): void
  23.     {
  24.         $builder
  25.             //->add('description')
  26.             ->add('customerGroup',null,[ 
  27.                 "required"=>true,
  28.                 "label"=>"Vous etes un client ",
  29.                 'expanded' => true,
  30.                 'multiple' => false,
  31.                 "row_attr"=>["class"=>"col-md-12"]
  32.             ])
  33.             ->add('email',EmailType::class,
  34.             [
  35.                 "required"=> true,
  36.                 'constraints' => [new Email()]
  37.             ])
  38.             ->add('user'UserPasswordFormType::class, [
  39.                 
  40.                 
  41.             ])
  42.             //->add('createdAt')
  43.             ->add('firstName')
  44.             ->add('lastName')
  45.             ->add('address',null,["required"=> true])
  46.             ->add('phone')
  47.             ->add('companyName')  
  48.             ->add('dateOfBirth',DateType::class, ['required'=>false,
  49.             'widget' => 'single_text'])
  50.             ->add('gender'ChoiceType::class, [  
  51.             'choices'  => [     
  52.                    'Male'=> 'male',
  53.                    'Female'=> 'female',
  54.                         
  55.                ],]) 
  56.             ->add('addressIndication')
  57.             ->add('city',null,["required"=> true])
  58.             ->add('postCode')
  59.             ->add('Raison_sociale')
  60.             ->add('Ice')
  61.             ->add('sector_activity'ChoiceType::class, [
  62.                 'choices' => [
  63.                     'Industrie Manufacturière' => 'industrie',
  64.                     'Construction' => 'construction',
  65.                     'Commerce et Réparation' => 'commerce',
  66.                     'Transports et Entreposage' => 'transports',
  67.                     'Hébergement et Restauration' => 'hebergement',
  68.                     'Information et Communication' => 'information',
  69.                     'Activités Financières et d’Assurance' => 'finances',
  70.                     'Activités Immobilières' => 'immobilier',
  71.                     'Services Professionnels, Scientifiques et Techniques' => 'services_pro',
  72.                     'Administration Publique' => 'administration',
  73.                     'Éducation' => 'education',
  74.                     'Santé Humaine et Action Sociale' => 'sante',
  75.                     'Arts, Spectacles et Activités Récréatives' => 'arts',
  76.                     'Agriculture, Sylviculture, Pêche' => 'agriculture',
  77.                     'Autres Activités de Services' => 'autres',
  78.                 ],
  79.                 'placeholder' => 'Sélectionnez un secteur d\'activité',
  80.                 'required' => true,
  81.             ])
  82.             
  83.             ->add('job'ChoiceType::class, [
  84.                 'choices' => [
  85.                     'Entrepreneur' => 'Entrepreneur',
  86.                     'Auto-entrepreneur' => 'Auto-entrepreneur',
  87.                     'Salarié xc' => 'Salarié xc',
  88.                     'Salarié-cadre' => 'Salarié-cadre',
  89.                     'Fonctionnaire' => 'Fonctionnaire',
  90.                     'Freelance' => 'Freelance',
  91.                     'Profession libérale' => 'Profession libérale',
  92.                     'Chef d\'entreprise' => 'Chef d\'entreprise',
  93.                     'Étudiant' => 'Étudiant',
  94.                     'Stagiaire' => 'Stagiaire',
  95.                     'Retraité' => 'Retraité',
  96.                      
  97.                 ],
  98.                 'placeholder' => 'Sélectionnez votre poste Vous êtes :',
  99.                 'required' => true,
  100.             ])
  101.             ->add('Adresse')
  102.             ->add('imageRCFile'VichFileType::class, [
  103.                 'required' => false,
  104.                 'allow_delete' => true,
  105.                 'delete_label' => '...',
  106.                 'download_uri' => '...',
  107.                 'download_label' => '...',
  108.                 'asset_helper' => true,
  109.             ])
  110.             ->add('imageIFFile'VichFileType::class, [
  111.                 'required' => false,
  112.                 'allow_delete' => true,
  113.                 'delete_label' => '...',
  114.                 'download_uri' => '...',
  115.                 'download_label' => '...',
  116.                 'asset_helper' => true,
  117.             ])
  118.             ->add('imageCinRecto'VichFileType::class, [
  119.                 'required' => true,
  120.                 'allow_delete' => true,
  121.                 'delete_label' => '...',
  122.                 'download_uri' => '...',
  123.                 'download_label' => '...',
  124.                 'asset_helper' => true,
  125.             ])
  126.             ->add('imageCinVerso'VichFileType::class, [
  127.                 'required' => true,
  128.                 'allow_delete' => true,
  129.                 'delete_label' => '...',
  130.                 'download_uri' => '...',
  131.                 'download_label' => '...',
  132.                 'asset_helper' => true,
  133.             ])
  134.             
  135.             //->add('customerGroup')
  136.             
  137.             
  138.             ->add("canReceiveMails")
  139.             ->add("canReceiveSms")
  140.             ->add("can_accept_community")
  141.             ->add('agreeTerms'CheckboxType::class, [
  142.                  //"label"=>'J’accepte les CGV et la Grille tarifaire <span class="required">*</span>',
  143.                 'label_html' => true,
  144.                 'mapped' => false,
  145.                 'constraints' => [
  146.                     new IsTrue([
  147.                         'message' => 'You should agree to our terms.',
  148.                     ]),
  149.                 ],
  150.             ])
  151.             ->add('sponsorshipCode',null,["label"=>"Code Parrainage"])
  152.         ;
  153.     }
  154.     public function configureOptions(OptionsResolver $resolver): void
  155.     {
  156.         $resolver->setDefaults([
  157.             'data_class' => Customer::class,
  158.         ]);
  159.     }
  160. }