src/Form/DonationFormType.php line 20

Open in your IDE?
  1. <?php
  2. namespace App\Form;
  3. use App\Entity\Donation;
  4. use App\Entity\User;
  5. use Symfony\Component\Form\AbstractType;
  6. use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
  7. use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  8. use Symfony\Component\Form\Extension\Core\Type\CountryType;
  9. use Symfony\Component\Form\Extension\Core\Type\EmailType;
  10. use Symfony\Component\Form\Extension\Core\Type\HiddenType;
  11. use Symfony\Component\Form\Extension\Core\Type\PasswordType;
  12. use Symfony\Component\Form\Extension\Core\Type\RepeatedType;
  13. use Symfony\Component\Form\Extension\Core\Type\TelType;
  14. use Symfony\Component\Form\Extension\Core\Type\TextType;
  15. use Symfony\Component\Form\FormBuilderInterface;
  16. use Symfony\Component\OptionsResolver\OptionsResolver;
  17. class DonationFormType extends AbstractType
  18. {
  19.     public function buildForm(FormBuilderInterface $builder, array $options)
  20.     {
  21.         $builder
  22.             ->add('firstName'TextType::class, [
  23.                 'required'   => true,
  24.                 'property_path'=>'orderDetails.orderBillingDetails.firstName'
  25.             ])
  26.             ->add('lastName'TextType::class, [
  27.                 'required'   => true,
  28.                 'property_path'=>'orderDetails.orderBillingDetails.lastName'
  29.             ])
  30.             ->add('organisation'TextType::class, [
  31.                 'required'   => false,
  32.                 'property_path'=>'orderDetails.orderBillingDetails.organisation'
  33.             ])
  34.             ->add('street'TextType::class, [
  35.                 'required'   => true,
  36.                 'property_path'=>'orderDetails.orderBillingDetails.street'
  37.             ])
  38.             ->add('suburb'TextType::class, ['property_path'=>'orderDetails.orderBillingDetails.suburb'])
  39.             ->add('state'TextType::class, ['property_path'=>'orderDetails.orderBillingDetails.state'])
  40.             ->add('country'CountryType::class, [
  41.                     'property_path'=>'orderDetails.orderBillingDetails.country',
  42.                     'empty_data' => null,
  43.                     'required'   => true,
  44.                     'placeholder' => 'Select your country'
  45.                 ]
  46.             )
  47.             ->add('postcode'TextType::class, ['property_path'=>'orderDetails.orderBillingDetails.postcode'])
  48.             ->add('phoneNumber'TextType::class, ['property_path'=>'orderDetails.orderBillingDetails.phoneNumber'])
  49.             ->add('email'EmailType::class, ['property_path'=>'orderDetails.orderBillingDetails.emailAddress'])
  50.             ->add('isOrganisationConsent'ChoiceType::class, [
  51.                 'expanded' => true,
  52.                 'choices' => [
  53.                     'I consent' => true,
  54.                     'I do not consent (this donation will be listed as anonymous)' => false,
  55.                 ]
  56.             ])
  57.             ->add('isContactShared'ChoiceType::class, [
  58.                 'expanded' => true,
  59.                 'choices' => [
  60.                     'I consent' => true,
  61.                     'I do not consent' => false,
  62.                 ]
  63.             ])
  64.             ->add('isNameApproved'ChoiceType::class, [
  65.                 'expanded' => true,
  66.                 'choices' => [
  67.                     'I consent' => true,
  68.                     'I do not consent' => false,
  69.                 ]
  70.             ])
  71.             ->add('isTermsCondition'CheckboxType::class, [
  72.                 'label_attr' => ['class' => 'fw-bold'],
  73.                 '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>',
  74.                 'label_html' => true,
  75.                 'mapped' => false,
  76.             ])
  77.             ->add('isNonFamily'CheckboxType::class, [
  78.                 'label_attr' => ['class' => 'fw-bold'],
  79.                 '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>',
  80.                 'label_html' => true,
  81.                 'mapped' => false
  82.             ])
  83.             ->add('isDisplayOrganisation'CheckboxType::class, [
  84.                 'required'   => false,
  85.                 'label_attr' => ['class' => 'fw-bold'],
  86.                 'label' => 'Display donor organisation on project page and receipt',
  87.                 'label_html' => true,
  88.             ])
  89.             ->add('payframeToken'HiddenType::class, ['property_path'=>'orderDetails.orderBillingDetails.payframeToken'])
  90.             ->add('payframeKey'HiddenType::class, ['property_path'=>'orderDetails.orderBillingDetails.payframeKey'])
  91.             ->add('cardId'HiddenType::class, ['property_path'=>'orderDetails.orderBillingDetails.cardId'])
  92.             ->add('isSavedCreditCard'HiddenType::class, ['property_path'=>'orderDetails.orderBillingDetails.isSavedCreditCard'])
  93.         ;
  94.     }
  95.     public function configureOptions(OptionsResolver $resolver)
  96.     {
  97.         $resolver->setDefaults([
  98.             'csrf_protection' => false,
  99.             'data_class' => Donation::class,
  100.         ]);
  101.     }
  102. }