src/MDS/EventsBundle/Form/ProposalType.php line 24

Open in your IDE?
  1. <?php
  2. namespace App\MDS\EventsBundle\Form;
  3. use App\Entity\Client;
  4. use App\Entity\PresentationMusic;
  5. use App\Entity\SettingsOffice;
  6. use App\Entity\SettingsTeam;
  7. use App\Entity\User;
  8. use App\MDS\EventsBundle\Entity\Proposal;
  9. use Symfony\Bridge\Doctrine\Form\Type\EntityType;
  10. use Symfony\Component\Form\AbstractType;
  11. use Symfony\Component\Form\Extension\Core\Type\HiddenType;
  12. use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
  13. use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  14. use Symfony\Component\Form\Extension\Core\Type\DateType;
  15. use Symfony\Component\Form\Extension\Core\Type\TextareaType;
  16. use Symfony\Component\Form\Extension\Core\Type\TextType;
  17. use Symfony\Component\Form\Extension\Core\Type\IntegerType;
  18. use Symfony\Component\Form\Extension\Core\Type\SubmitType;
  19. use Symfony\Component\Form\FormBuilderInterface;
  20. use Symfony\Component\OptionsResolver\OptionsResolver;
  21. class ProposalType extends AbstractType
  22. {
  23.     /**
  24.      * {@inheritdoc}
  25.      */
  26.     public function buildForm(FormBuilderInterface $builder, array $options)
  27.     {
  28.         $builder
  29.             ->add('contactId'HiddenType::class)
  30.             ->add('clientId'EntityType::class, array(
  31.                 'class' => Client::class,
  32.                 'choice_label' => 'name',
  33.                 'choice_value' => 'id',
  34.                 'expanded' => false,
  35.                 'multiple' => false,
  36.                 'placeholder' => 'Select a Client'))
  37.             ->add('name'TextType::class)
  38.             ->add('title'TextType::class)
  39.             ->add('commission'ChoiceType::class, array(
  40.                 'required' => false,
  41.                 'choices' => array(
  42.                     'National' => 'National',
  43.                     'International' => 'International'
  44.                 ), 'placeholder' => 'Select a Commission'))
  45.             ->add('pax'TextType::class)
  46.             ->add('bedrooms'TextType::class, array(
  47.                 'required' => false,
  48.             ))
  49.             ->add('officeId'EntityType::class, array(
  50.                 'class' => SettingsOffice::class,
  51.                 'choice_label' => 'office',
  52.                 'choice_value' => 'id',
  53.                 'expanded' => false,
  54.                 'multiple' => false,
  55.                 'placeholder' => 'Select a Office'))
  56.             ->add('referenceName'TextType::class, array(
  57.                 'required' => false,
  58.             ))
  59.             ->add('referenceId'TextType::class, array(
  60.                 'required' => false,
  61.             ))
  62. //            ->add('agentId', HiddenType::class)
  63. //            ->add('agentId', EntityType::class, array(
  64. //                'class' => User::class,
  65. //                'choice_label' => 'username',
  66. //                'choice_value' => 'id',
  67. //                'expanded' => false,
  68. //                'multiple' => false,
  69. //                'required' => false,
  70. //                'placeholder' => 'Select a Agent'))
  71.             ->add('teamId'EntityType::class, array(
  72.                 'class' => SettingsTeam::class,
  73.                 'choice_label' => 'team',
  74.                 'choice_value' => 'id',
  75.                 'expanded' => false,
  76.                 'multiple' => false,
  77.                 'required' => false,
  78.                 'placeholder' => 'Select a Team'))
  79.             ->add('agentTwoId'EntityType::class, array(
  80.                 'class' => User::class,
  81.                 'choice_label' => 'username',
  82.                 'choice_value' => 'id',
  83.                 'expanded' => false,
  84.                 'multiple' => true,
  85.                 'required' => false,
  86.                 'placeholder' => 'Select a Agent'))
  87.             ->add('dateProposedAt'DateType::class, array(
  88.                 'widget' => 'single_text',
  89.                 'format' => 'yyyy-MM-dd',
  90.             ))
  91.             ->add('dateEventStarAt'DateType::class, array(
  92.                 'widget' => 'single_text',
  93.                 'format' => 'yyyy-MM-dd',
  94.             ))
  95.             ->add('dateEventEndAt'DateType::class, array(
  96.                 'widget' => 'single_text',
  97.                 'format' => 'yyyy-MM-dd',
  98.             ))
  99.             ->add('daysEmailReminder'TextType::class, array(
  100.                 'required' => false,
  101.             ))
  102.             ->add('language'ChoiceType::class, array(
  103.                 'choices' => array(
  104.                     'CASTELLANO' => 'CASTELLANO',
  105.                     'ENGLISH' => 'ENGLISH',
  106.                     'TURKISH' => 'TURKISH',
  107.                     'RUSSIAN' => 'RUSSIAN',
  108.                     'CHINESE' => 'CHINESE',
  109.                     'PORTUGUESE' => 'PORTUGUESE',
  110.                     'ARAB' => 'ARAB',
  111.                     'ITALIAN' => 'ITALIAN',
  112.                     'KOREAN' => 'KOREAN'
  113.                 ), 'placeholder' => 'Select a language'))
  114.             ->add('includeLogo'CheckboxType::class, array(
  115.                 'required' => false,
  116.             ))
  117.             ->add('versionPpt'CheckboxType::class, array(
  118.                 'required' => false,
  119.             ))
  120.             ->add('versionExcel'CheckboxType::class, array(
  121.                 'required' => false,
  122.             ))
  123.             ->add('versionFlahs'CheckboxType::class, array(
  124.                 'required' => false,
  125.             ))
  126.             ->add('versionWord'CheckboxType::class, array(
  127.                 'required' => false,
  128.             ))
  129.             ->add('briefing'TextareaType::class, array(
  130.                 'required' => false,
  131.             ))
  132.             ->add('datePresentationAt'DateType::class, array(
  133.                 'required' => false,
  134.                 'widget' => 'single_text',
  135.                 'format' => 'yyyy-MM-dd',
  136.             ))
  137. //            ->add('observation', TextareaType::class)
  138.             ->add('status'ChoiceType::class, array(
  139.                 'required' => false,
  140.                 'choices' => array(
  141.                     'Pending' => 'Pending',
  142.                     'Confirmed' => 'Confirmed',
  143.                     'Invoiced' => 'Invoiced',
  144.                     'Canceled' => 'Cancel',
  145.                     'Blocked' => 'Blocked',
  146.                     'Unblocked' => 'Unblocked',
  147.                 ), 'placeholder' => 'Select a Status'))
  148.             ->add('category'ChoiceType::class, array(
  149.                 'choices' => array(
  150.                     'Convención' => 'Convención',
  151.                     'Congreso' => 'Congreso',
  152.                     'Incentivo' => 'Incentivo',
  153.                     'Actividad' => 'Actividad',
  154.                     'Venue' => 'Venue',
  155.                     'Presentación de producto' => 'Presentación de producto',
  156.                 ), 'placeholder' => 'Select a category'))
  157.             ->add('idMusic'EntityType::class, array(
  158.                 'required' => false,
  159.                 'class' => PresentationMusic::class,
  160.                 'choice_label' => 'title',
  161.                 'choice_value' => 'id',
  162.                 'expanded' => false,
  163.                 'multiple' => false,
  164.                 'placeholder' => 'Select the Music'))
  165.             ->add('approximateBilling'IntegerType::class)
  166.             ->add('save'SubmitType::class)
  167.         ;
  168.     }
  169.     
  170.     /**
  171.      * {@inheritdoc}
  172.      */
  173.     public function configureOptions(OptionsResolver $resolver)
  174.     {
  175.         $resolver->setDefaults(array(
  176.             'data_class' => Proposal::class
  177.         ));
  178.     }
  179.     /**
  180.      * {@inheritdoc}
  181.      */
  182.     public function getBlockPrefix()
  183.     {
  184.         return 'proposal';
  185.     }
  186. }