src/Form/UserDataType.php line 18

Open in your IDE?
  1. <?php
  2. namespace App\Form;
  3. use Vich\UploaderBundle\Form\Type\VichImageType;
  4. use App\Entity\UserData;
  5. use App\Service\UtilsService;
  6. use Symfony\Component\Form\AbstractType;
  7. use Symfony\Component\Form\FormBuilderInterface;
  8. use Symfony\Component\OptionsResolver\OptionsResolver;
  9. use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  10. use Symfony\Component\Form\Extension\Core\Type\TextType;
  11. use Symfony\Component\Form\Extension\Core\Type\NumberType;
  12. use Symfony\Component\Form\Extension\Core\Type\FileType;
  13. use Symfony\Component\HttpFoundation\File\UploadedFile;
  14. use Symfony\Component\Form\Extension\Core\Type\HiddenType;
  15. class UserDataType extends AbstractType
  16. {
  17.     public function __construct(private UtilsService $utilsService){
  18.     }
  19.     public function buildForm(FormBuilderInterface $builder, array $options): void
  20.     {
  21.         $countries = ['Sélectionnez un pays' => ''] + $this->utilsService->getCountryList();
  22.         $languages = ['Sélectionnez la/les langue(s) parlée(s)' => ''] + $this->utilsService->getOffialLaguageListFormat();
  23.         $builder
  24.             ->add('Status'ChoiceType::class, [
  25.                 'required' => true,
  26.                 'label' => 'Quel est votre statut ?',
  27.                 'choices' => [
  28.                   'SARL'  => 0,
  29.                   'SAS'  => 1,
  30.                   'SA'  => 2,
  31.                   'Association'  => 3,
  32.                   'Autoentrepreneur'  => 4,
  33.                   'Entreprise individuelle'  => 5,
  34.                   'Autre'  => 6
  35.                 ],
  36.                 'placeholder' => null,
  37.             ])
  38.             ->add('Tva',ChoiceType::class, [
  39.                 
  40.                 'required' => true,
  41.                 'label' => 'Est-ce que votre entreprise est assujettie à la TVA ?',
  42.                 'choices' => [
  43.                     'Non' => 0,
  44.                    'Oui' => 1,
  45.                    
  46.                 ],
  47.                 'placeholder' => null,
  48.             ])
  49.             ->add('CompanyName'TextType::class, [
  50.                 'label' => 'Dénomination de votre entreprise',
  51.                 'required' => false,
  52.                 'empty_data' => "",
  53.             ])
  54.             ->add('StateCompany',ChoiceType::class,[
  55.                 'label' => 'Pays de l’entreprise',
  56.                 'choices' => $countries,
  57.                 'required' => true,
  58.             ])
  59.             ->add('Siren'TextType::class, [
  60.                 'label' => 'Numéro SIREN',
  61.                 'required' => false,
  62.             ])
  63.             ->add('city'TextType::class, [
  64.                 'label' => 'Ville',
  65.                 'required' => true,
  66.             ])
  67.             ->add('postalCode'TextType::class, [
  68.                 'label' => 'Code postal',
  69.                 'required' => false,
  70.             ])
  71.             ->add('IntracommunityTva'TextType::class, [
  72.                 'label' => 'Numéro de TVA intracommunautaire',
  73.                 'required' => false,
  74.             ])
  75.             ->add('Address'TextType::class, [
  76.                 'label' => 'Adresse',
  77.             ])
  78.             ->add('Country',ChoiceType::class,[
  79.                 'label' => 'Pays',
  80.                 'choices' => $this->utilsService->getCountryList(),
  81.                 'required' => true,
  82.             ])
  83.             ->add('SpokenLanguages',ChoiceType::class,[
  84.                 'label' => 'Langues parlées',
  85.                 'choices' => $languages,
  86.                 'required' => true,
  87.                 'multiple' => true
  88.             ])
  89.             ->add('RIB'TextType::class, [
  90.                 'label' => 'RIB',
  91.                 'required' => false,
  92.             ])
  93.             ->add('AccountOwner'TextType::class, [
  94.                 'label' => 'Propriétaire du compte',
  95.                 'required' => true,
  96.             ])
  97.             ->add('IBAN'TextType::class, [
  98.                 'label' => 'IBAN',
  99.                 'required' => false,
  100.             ])
  101.             ->add('BicSwift'TextType::class, [
  102.                 'label' => 'BIC/Swift',
  103.                 'required' => false,
  104.             ])
  105.             ->add('VigilanceCertificateFile'FileType::class, [
  106.                 'attr'=>['class'=>'hidden'], 
  107.                 'label' => 'Fournir une attestation de vigilance',
  108.                 'required' => false,
  109.                 'data_class' => UploadedFile::class,
  110.                 'mapped' => false
  111.             ])
  112.             // ->add('VigilanceCertificate', HiddenType::class, [
  113.             //     'label' => '',
  114.             // ])
  115.         ;
  116.     }
  117.     public function configureOptions(OptionsResolver $resolver): void
  118.     {
  119.         $resolver->setDefaults([
  120.             'data_class' => UserData::class,
  121.         ]);
  122.     }
  123. }