<?php
namespace App\Form;
use App\Entity\Organization;
use App\Entity\UserType;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\EmailType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Validator\Constraints\NotBlank;
use Symfony\Component\Validator\Constraints\Regex;
class OrganizationType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name', null, [
'attr' => [
'placeholder' => 'select.name',
],
'label' => 'Organization.name',
// 'required => true,
'empty_data' => '',
'validation_groups' => ['valid-value'],
])
->add('description',null, [
'attr' => [
'placeholder' => 'select.organizationDescription',
],
// 'required => true,
'validation_groups' => ['valid-value'],
])
->add('userType', EntityType::class, [
'class' => UserType::class,
'query_builder' => function (\App\Repository\UserTypeRepository$er) {
return $er->createQueryBuilder('c')
->orderBy('c.type', 'ASC');
},
'label' => 'Organization.type',
// 'required => true,
'choice_translation_domain' => 'messages',
'validation_groups' => ['valid-value'],
])
->add('cuit', TextType::class, [
'attr' => [
'data-cleave' => json_encode(['blocks' => [2, 8, 1], 'delimiter' => '-']),
'class' => 'form-control',
'placeholder' => '01-12345678-9',
'autocomplete' => 'off',
'maxlength' => 13,
'minlength' => 13,
],
'label' => 'Organization.cuit',
// 'required => true,
'constraints' => [
new Regex('/\d{2}\-\d{8}\-\d/'),
],
'validation_groups' => ['valid-value'],
])
->add('type', TextType::class, [
// 'required => true,
'empty_data' => '',
'validation_groups' => ['valid-value'],
])
->add('email', EmailType::class, [
'required' => false,
'attr' => [
'placeholder' => 'select.organizationEmail',
],
'validation_groups' => ['valid-value'],
])
->add('businessName', TextType::class, [
// 'required => true,
'attr' => [
'placeholder' => 'select.businessName',
],
'validation_groups' => ['valid-value'],
"label" => "Organization.businessName"
])
->add('phone', TextType::class, [
'required' => false,
'attr' => [
'placeholder' => 'select.phone',
],
'label' => 'Organization.phone'
])
->add('activity', null, [
'label' => 'Form.activityLabel',
'attr' => [ 'placeholder' => 'select.activity']
])
->add('address', TextType::class, [
'required' => false,
'attr' => [
'data-selectize'=>'{"valueField":"id","labelField":"name", "searchField":"name", "delimiter": "|"}',
'class' => 'filters selectize geocode','placeholder' => 'select.addressChoice' ],
'label' => 'Form.addressLabel',
])
->add('isProducer', CheckboxType::class, [
'required' => false,
'label' => 'Organization.isProducer',
])
;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'data_class' => Organization::class,
'validation_groups' => ['valid-value'],
]);
}
}