<?php
namespace App\Form;
use App\Entity\Donation;
use App\Entity\User;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\CountryType;
use Symfony\Component\Form\Extension\Core\Type\EmailType;
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
use Symfony\Component\Form\Extension\Core\Type\PasswordType;
use Symfony\Component\Form\Extension\Core\Type\RepeatedType;
use Symfony\Component\Form\Extension\Core\Type\TelType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
class DonationFormType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('firstName', TextType::class, [
'required' => true,
'property_path'=>'orderDetails.orderBillingDetails.firstName'
])
->add('lastName', TextType::class, [
'required' => true,
'property_path'=>'orderDetails.orderBillingDetails.lastName'
])
->add('organisation', TextType::class, [
'required' => false,
'property_path'=>'orderDetails.orderBillingDetails.organisation'
])
->add('street', TextType::class, [
'required' => true,
'property_path'=>'orderDetails.orderBillingDetails.street'
])
->add('suburb', TextType::class, ['property_path'=>'orderDetails.orderBillingDetails.suburb'])
->add('state', TextType::class, ['property_path'=>'orderDetails.orderBillingDetails.state'])
->add('country', CountryType::class, [
'property_path'=>'orderDetails.orderBillingDetails.country',
'empty_data' => null,
'required' => true,
'placeholder' => 'Select your country'
]
)
->add('postcode', TextType::class, ['property_path'=>'orderDetails.orderBillingDetails.postcode'])
->add('phoneNumber', TextType::class, ['property_path'=>'orderDetails.orderBillingDetails.phoneNumber'])
->add('email', EmailType::class, ['property_path'=>'orderDetails.orderBillingDetails.emailAddress'])
->add('isOrganisationConsent', ChoiceType::class, [
'expanded' => true,
'choices' => [
'I consent' => true,
'I do not consent (this donation will be listed as anonymous)' => false,
]
])
->add('isContactShared', ChoiceType::class, [
'expanded' => true,
'choices' => [
'I consent' => true,
'I do not consent' => false,
]
])
->add('isNameApproved', ChoiceType::class, [
'expanded' => true,
'choices' => [
'I consent' => true,
'I do not consent' => false,
]
])
->add('isTermsCondition', CheckboxType::class, [
'label_attr' => ['class' => 'fw-bold'],
'label' => 'I have read and agree to the website <a href="https://documentaryaustralia.com.au/terms-and-conditions" target="_blank">terms and conditions</a> <span class="text-danger">*</span>',
'label_html' => true,
'mapped' => false,
])
->add('isNonFamily', CheckboxType::class, [
'label_attr' => ['class' => 'fw-bold'],
'label' => 'In submitting this form, I acknowledge that I am not a family member, partner or spouse of the filmmaker/s of my preferred project (PROJECT named above), and that I do not stand to gain any material benefit as a result of the film being made. Please note donations are tax-deductible for Australian taxpayers only. <span class="text-danger">*</span>',
'label_html' => true,
'mapped' => false
])
->add('isDisplayOrganisation', CheckboxType::class, [
'required' => false,
'label_attr' => ['class' => 'fw-bold'],
'label' => 'Display donor organisation on project page and receipt',
'label_html' => true,
])
->add('payframeToken', HiddenType::class, ['property_path'=>'orderDetails.orderBillingDetails.payframeToken'])
->add('payframeKey', HiddenType::class, ['property_path'=>'orderDetails.orderBillingDetails.payframeKey'])
->add('cardId', HiddenType::class, ['property_path'=>'orderDetails.orderBillingDetails.cardId'])
->add('isSavedCreditCard', HiddenType::class, ['property_path'=>'orderDetails.orderBillingDetails.isSavedCreditCard'])
;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'csrf_protection' => false,
'data_class' => Donation::class,
]);
}
}