<?php
namespace App\Form;
use App\Entity\Client;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\EmailType;
use Symfony\Component\Form\Extension\Core\Type\UrlType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
class ClientType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('raisonsociale', TextType::class, [
'label' => 'Raison Sociale',
'attr' => ['placeholder' => 'Tech Innovations SAS'],
])
->add('siret', TextType::class, [
'label' => 'SIRET',
'attr' => ['placeholder' => '123 456 789 00012'],
])
->add('siteweb', UrlType::class, [
'label' => 'Site Web',
'attr' => ['placeholder' => 'www.techinnovations.fr'],
'required' => false,
])
->add('telephone', TextType::class, [
'label' => 'Téléphone',
'attr' => ['placeholder' => '01 23 45 67 89'],
// 'required' => false,
])
->add('civilite', ChoiceType::class, [
'label' => 'Civilité',
'choices' => [
'M.' => 'M.',
'Mme' => 'Mme',
'Autre' => 'Autre',
],
'attr' => ['placeholder' => 'Monsieur/Madame'],
'required' => false,
])
->add('nom', TextType::class, [
'label' => 'Nom',
'attr' => ['placeholder' => 'Dupont'],
])
->add('prenom', TextType::class, [
'label' => 'Prénom',
'attr' => ['placeholder' => 'Pierre'],
])
->add('telephonecontact', TextType::class, [
'label' => 'Téléphone de contact',
'attr' => ['placeholder' => '06 12 34 56 78'],
'required' => false,
])
->add('mail', EmailType::class, [
'label' => 'E-mail',
'attr' => ['placeholder' => 'pierre.dupont@techinnovations.fr'],
])
->add('adresse', TextType::class, [
'label' => 'Adresse',
'attr' => ['placeholder' => '15 Rue de l\'Innovation'],
])
->add('complementadresse', TextType::class, [
'label' => 'Complément d\'adresse',
'attr' => ['placeholder' => 'Bâtiment A, 3ème étage'],
'required' => false,
])
->add('ville', TextType::class, [
'label' => 'Ville',
'attr' => ['placeholder' => 'Paris'],
])
->add('cp', TextType::class, [
'label' => 'Code Postal',
'attr' => ['placeholder' => '75001'],
])
->add('pays', TextType::class, [
'label' => 'Pays',
'attr' => ['placeholder' => 'France'],
]);
// Only add the ID field if include_id is true
if ($options['include_id'] ?? true) {
$builder->add('id', HiddenType::class, [
'mapped' => false,
'attr' => ['id' => 'client_id']
]);
}
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'data_class' => Client::class,
'include_id' => true,
]);
}
}