<?php
namespace App\Form;
use App\Entity\Adresse;
use Captcha\Bundle\CaptchaBundle\Form\Type\CaptchaType;
use Captcha\Bundle\CaptchaBundle\Validator\Constraints\ValidCaptcha;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\DateType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
use Symfony\Component\Validator\Constraints\NotBlank;
class AdresseFacturationAbonnementType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$adresseExist = isset($options['adresseExist'])?$options['adresseExist']:null;
$firstName = $adresseExist ? $adresseExist->getFirstname():null;
$lastName = $adresseExist ? $adresseExist->getLastname():null;
$conpany = $adresseExist ? $adresseExist->getConpany():null;
$email = $adresseExist ? $adresseExist->getEmail():null;
$phone = $adresseExist ? $adresseExist->getPhone():null;
$adresse = null;
if($adresseExist){
if(method_exists($adresseExist,'getAdresse')){
$adresse = $adresseExist->getAdresse();
}else{
$adresse = $adresseExist->getAddress();
}
}
$city = $adresseExist ? $adresseExist->getCity():null;
$codePostal = $adresseExist ? $adresseExist->getCodePostal():null;
$batiment = $adresseExist ? $adresseExist->getBatiment():null;
$lat = $adresseExist ? $adresseExist->getLat():null;
$longi = $adresseExist ? $adresseExist->getLongi():null;
$country = $adresseExist ? $adresseExist->getCountry():null;
$user = isset($options['user']) ? $options['user'] :null;
$builder
->add('firstname',TextType::class,array(
'required' => true,
'data' => $firstName,
'attr' => array(
'placeholder' => 'Nom'
)
))
->add('lastname',TextType::class,array(
'required' => true,
'data' => $lastName,
'attr' => array(
'placeholder' => 'Prénom'
)
))
->add('conpany',TextType::class,array(
'required' => false,
'data' => $conpany,
'attr' => array(
'placeholder' => 'Nom de l\'entreprise'
)
))
->add('phone',TextType::class,array(
'data' => $phone,
'required' => false
))
->add('email',TextType::class,array(
'required' => true,
'data' => $email,
'attr' => array(
'placeholder' => 'Adresse mail'
)
))
->add('adresse',TextType::class,array(
'required' => true,
'data' => $adresse,
'attr' => array(
'placeholder' => 'Adresse'
)
))
->add('city',TextType::class,array(
'required' => true,
'data' => $city,
'attr' => array(
'placeholder' => 'Ville'
)
))
->add('codePostal',TextType::class,array(
'required' => true,
'data' => $codePostal,
'attr' => array(
'placeholder' => 'Code Postal'
)
))
->add('batiment',TextType::class,array(
'required' => false,
'data' => $batiment,
'attr' => array(
'placeholder' => 'Complément d\'adresse'
)
))
->add('lat',HiddenType::class,array('data' => $lat))
->add('longi',HiddenType::class,array('data' => $longi))
->add('country',HiddenType::class,array('data' => $country))
->add('secteurActivite', ChoiceType::class, [
'choices' => [
'Technologie' => 'Technologie',
'Agroalimentaire' => 'Agroalimentaire',
'Textile' => 'Textile',
'Finance et assurance' => 'Finance et assurance',
'Energie' => 'Energie',
'Service' => 'Service',
'Education' => 'Education',
'Santé' => 'Santé',
'Formation' => 'Formation',
'Hotellerie restauration' => 'Hotellerie restauration',
'Autres' => 'Autres'
],
// 'placeholder' => 'Technologie',
])
->add('captchaCode', CaptchaType::class, array(
'captchaConfig' => 'ExampleCaptcha',
'label' => 'Retype the characters from the picture',
'constraints' => [ new ValidCaptcha(['message' => 'Captcha invalide.'])]
))
;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'data_class' => Adresse::class,
'adresseExist' => null,
'allow_extra_fields' => true
]);
}
}