<?php
namespace Backend\Modules\Editions\Domain\Registration;
use Backend\Modules\Editions\Domain\AddressType;
use Common\Form\CollectionType;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
use Symfony\Component\Form\Extension\Core\Type\EmailType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
class RegistrationType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options): void
{
$builder
->add(
'vatNumber',
TextType::class,
[
'label' => 'lbl.Vat',
'required' => false,
'attr' => [
'data-role' => 'vat-field',
],
]
)
->add(
'company',
TextType::class,
[
'label' => 'lbl.Company',
'attr' => [
'data-role' => 'graydonCompany'
],
]
)
->add(
'legalForm',
LegalFormType::class,
[
'label' => 'lbl.LegalForm',
'attr' => [
'data-role' => 'graydonLegalForm'
],
'placeholder' => '',
'required' => false,
]
)
->add(
'address',
AddressType::class,
[
'label' => 'lbl.Address',
]
)
->add(
'membershipNumber',
TextType::class,
[
'label' => 'lbl.MembershipNumber',
'required' => false,
'attr' => [
'data-role' => 'membership-number-field',
'data-is-valid' => 'false',
'data-triggers-price-change' => true,
],
]
)
->add(
'phoneNumber',
TextType::class,
[
'label' => 'lbl.PhoneNumber',
'required' => false,
]
)
->add(
'email',
EmailType::class,
[
'label' => 'lbl.Email',
]
)
->add(
'participants',
CollectionType::class,
[
'label' => 'lbl.Participants',
'entry_type' => ParticipantType::class,
'allow_add' => true,
'allow_delete' => true,
'entry_options' => [
'attr' => [
'data-role' => 'participant-container',
],
],
'add_button_options' => [
'label' => 'lbl.Add',
'attr' => [
'data-triggers-price-change' => true,
],
],
'delete_button_options' => [
'label' => 'lbl.Add',
'attr' => [
'data-triggers-price-change' => true,
],
],
]
)
->add(
'iHaveAPromoCode',
CheckboxType::class,
[
'label' => 'lbl.IHaveAPromoCode',
'required' => false,
'attr' => [
'data-role' => 'promo-code-toggler',
],
'mapped' => false,
]
)
->add(
'promoCode',
TextType::class,
[
'label' => 'lbl.PromoCode',
'required' => false,
'attr' => [
'data-role' => 'promo-code-field',
'data-is-valid' => 'false',
'data-discount' => 0,
'data-triggers-price-change' => true,
]
]
)
->add(
'agreedToTermsAndConditions',
CheckboxType::class,
[
'label' => 'lbl.IAgreeToTermsAndConditions',
]
)
;
}
public function configureOptions(OptionsResolver $resolver): void
{
$resolver->setDefaults(
[
'data_class' => RegistrationDataTransferObject::class,
]
);
}
}