<?php
namespace App\MDS\EventsBundle\Form;
use App\Entity\Client;
use App\Entity\PresentationMusic;
use App\Entity\SettingsOffice;
use App\Entity\SettingsTeam;
use App\Entity\User;
use App\MDS\EventsBundle\Entity\Proposal;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\DateType;
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\IntegerType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
class ProposalType extends AbstractType
{
/**
* {@inheritdoc}
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('contactId', HiddenType::class)
->add('clientId', EntityType::class, array(
'class' => Client::class,
'choice_label' => 'name',
'choice_value' => 'id',
'expanded' => false,
'multiple' => false,
'placeholder' => 'Select a Client'))
->add('name', TextType::class)
->add('title', TextType::class)
->add('commission', ChoiceType::class, array(
'required' => false,
'choices' => array(
'National' => 'National',
'International' => 'International'
), 'placeholder' => 'Select a Commission'))
->add('pax', TextType::class)
->add('bedrooms', TextType::class, array(
'required' => false,
))
->add('officeId', EntityType::class, array(
'class' => SettingsOffice::class,
'choice_label' => 'office',
'choice_value' => 'id',
'expanded' => false,
'multiple' => false,
'placeholder' => 'Select a Office'))
->add('referenceName', TextType::class, array(
'required' => false,
))
->add('referenceId', TextType::class, array(
'required' => false,
))
// ->add('agentId', HiddenType::class)
// ->add('agentId', EntityType::class, array(
// 'class' => User::class,
// 'choice_label' => 'username',
// 'choice_value' => 'id',
// 'expanded' => false,
// 'multiple' => false,
// 'required' => false,
// 'placeholder' => 'Select a Agent'))
->add('teamId', EntityType::class, array(
'class' => SettingsTeam::class,
'choice_label' => 'team',
'choice_value' => 'id',
'expanded' => false,
'multiple' => false,
'required' => false,
'placeholder' => 'Select a Team'))
->add('agentTwoId', EntityType::class, array(
'class' => User::class,
'choice_label' => 'username',
'choice_value' => 'id',
'expanded' => false,
'multiple' => true,
'required' => false,
'placeholder' => 'Select a Agent'))
->add('dateProposedAt', DateType::class, array(
'widget' => 'single_text',
'format' => 'yyyy-MM-dd',
))
->add('dateEventStarAt', DateType::class, array(
'widget' => 'single_text',
'format' => 'yyyy-MM-dd',
))
->add('dateEventEndAt', DateType::class, array(
'widget' => 'single_text',
'format' => 'yyyy-MM-dd',
))
->add('daysEmailReminder', TextType::class, array(
'required' => false,
))
->add('language', ChoiceType::class, array(
'choices' => array(
'CASTELLANO' => 'CASTELLANO',
'ENGLISH' => 'ENGLISH',
'TURKISH' => 'TURKISH',
'RUSSIAN' => 'RUSSIAN',
'CHINESE' => 'CHINESE',
'PORTUGUESE' => 'PORTUGUESE',
'ARAB' => 'ARAB',
'ITALIAN' => 'ITALIAN',
'KOREAN' => 'KOREAN'
), 'placeholder' => 'Select a language'))
->add('includeLogo', CheckboxType::class, array(
'required' => false,
))
->add('versionPpt', CheckboxType::class, array(
'required' => false,
))
->add('versionExcel', CheckboxType::class, array(
'required' => false,
))
->add('versionFlahs', CheckboxType::class, array(
'required' => false,
))
->add('versionWord', CheckboxType::class, array(
'required' => false,
))
->add('briefing', TextareaType::class, array(
'required' => false,
))
->add('datePresentationAt', DateType::class, array(
'required' => false,
'widget' => 'single_text',
'format' => 'yyyy-MM-dd',
))
// ->add('observation', TextareaType::class)
->add('status', ChoiceType::class, array(
'required' => false,
'choices' => array(
'Pending' => 'Pending',
'Confirmed' => 'Confirmed',
'Invoiced' => 'Invoiced',
'Canceled' => 'Cancel',
'Blocked' => 'Blocked',
'Unblocked' => 'Unblocked',
), 'placeholder' => 'Select a Status'))
->add('category', ChoiceType::class, array(
'choices' => array(
'Convención' => 'Convención',
'Congreso' => 'Congreso',
'Incentivo' => 'Incentivo',
'Actividad' => 'Actividad',
'Venue' => 'Venue',
'Presentación de producto' => 'Presentación de producto',
), 'placeholder' => 'Select a category'))
->add('idMusic', EntityType::class, array(
'required' => false,
'class' => PresentationMusic::class,
'choice_label' => 'title',
'choice_value' => 'id',
'expanded' => false,
'multiple' => false,
'placeholder' => 'Select the Music'))
->add('approximateBilling', IntegerType::class)
->add('save', SubmitType::class)
;
}
/**
* {@inheritdoc}
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => Proposal::class
));
}
/**
* {@inheritdoc}
*/
public function getBlockPrefix()
{
return 'proposal';
}
}