<?php
namespace App\Form;
use Vich\UploaderBundle\Form\Type\VichImageType;
use App\Entity\UserData;
use App\Service\UtilsService;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\NumberType;
use Symfony\Component\Form\Extension\Core\Type\FileType;
use Symfony\Component\HttpFoundation\File\UploadedFile;
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
class UserDataType extends AbstractType
{
public function __construct(private UtilsService $utilsService){
}
public function buildForm(FormBuilderInterface $builder, array $options): void
{
$countries = ['Sélectionnez un pays' => ''] + $this->utilsService->getCountryList();
$languages = ['Sélectionnez la/les langue(s) parlée(s)' => ''] + $this->utilsService->getOffialLaguageListFormat();
$builder
->add('Status', ChoiceType::class, [
'required' => true,
'label' => 'Quel est votre statut ?',
'choices' => [
'SARL' => 0,
'SAS' => 1,
'SA' => 2,
'Association' => 3,
'Autoentrepreneur' => 4,
'Entreprise individuelle' => 5,
'Autre' => 6
],
'placeholder' => null,
])
->add('Tva',ChoiceType::class, [
'required' => true,
'label' => 'Est-ce que votre entreprise est assujettie à la TVA ?',
'choices' => [
'Non' => 0,
'Oui' => 1,
],
'placeholder' => null,
])
->add('CompanyName', TextType::class, [
'label' => 'Dénomination de votre entreprise',
'required' => false,
'empty_data' => "",
])
->add('StateCompany',ChoiceType::class,[
'label' => 'Pays de l’entreprise',
'choices' => $countries,
'required' => true,
])
->add('Siren', TextType::class, [
'label' => 'Numéro SIREN',
'required' => false,
])
->add('city', TextType::class, [
'label' => 'Ville',
'required' => true,
])
->add('postalCode', TextType::class, [
'label' => 'Code postal',
'required' => false,
])
->add('IntracommunityTva', TextType::class, [
'label' => 'Numéro de TVA intracommunautaire',
'required' => false,
])
->add('Address', TextType::class, [
'label' => 'Adresse',
])
->add('Country',ChoiceType::class,[
'label' => 'Pays',
'choices' => $this->utilsService->getCountryList(),
'required' => true,
])
->add('SpokenLanguages',ChoiceType::class,[
'label' => 'Langues parlées',
'choices' => $languages,
'required' => true,
'multiple' => true
])
->add('RIB', TextType::class, [
'label' => 'RIB',
'required' => false,
])
->add('AccountOwner', TextType::class, [
'label' => 'Propriétaire du compte',
'required' => true,
])
->add('IBAN', TextType::class, [
'label' => 'IBAN',
'required' => false,
])
->add('BicSwift', TextType::class, [
'label' => 'BIC/Swift',
'required' => false,
])
->add('VigilanceCertificateFile', FileType::class, [
'attr'=>['class'=>'hidden'],
'label' => 'Fournir une attestation de vigilance',
'required' => false,
'data_class' => UploadedFile::class,
'mapped' => false
])
// ->add('VigilanceCertificate', HiddenType::class, [
// 'label' => '',
// ])
;
}
public function configureOptions(OptionsResolver $resolver): void
{
$resolver->setDefaults([
'data_class' => UserData::class,
]);
}
}