<?php
namespace App\Form;
use App\Entity\NewsLetterControl;
use App\Entity\User;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\EntityRepository;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Symfony\Component\Form\Extension\Core\Type\EmailType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\DateType;
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
class ClientContactType extends AbstractType
{
/**
* {@inheritdoc}
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('picture', HiddenType::class)
->add('clientId', HiddenType::class)
->add('position', TextType::class)
->add('department', TextType::class)
->add('name', TextType::class)
->add('lastName', TextType::class)
->add('email', EmailType::class)
->add('phone', TextType::class)
->add('mobile', TextType::class)
->add('birthday', DateType::class, array(
'widget' => 'single_text',
'format' => 'yyyy-MM-dd',
))
// ->add('assignedAgent', EntityType::class, array(
// 'class' => User::class,
// 'query_builder' => function(EntityRepository $userRepository) {
// $qb = $userRepository->createQueryBuilder('u')
// ->andWhere('u.userrol = :rol')
// ->setParameters(array('rol'=> 5, 'rol' => 21));
// return $qb->orderBy('u.name', 'ASC');
// },
// 'choice_label' => 'name',
// 'choice_value' => 'id',
// 'expanded' => false,
// 'multiple' => false,
// 'placeholder' => 'Select a Commercial'))
// ->add('assignedAgent', ChoiceType::class, array(
// 'choice_label' => 'fullName',
// 'choice_value' => 'id',
// 'placeholder' => 'Select a Commercial'))
->add('assignedAgent', EntityType::class, array(
'required' => true,
'choice_label' => 'fullName',
'choice_value' => 'id',
// 'multiple' => 'true',
// 'mapped' => true,
'query_builder' => function(EntityRepository $userRepository) {
$esto = array(
"19" => "19",
"21" => "21",
"5" => "5",
);
$qb = $userRepository->createQueryBuilder('u')
// ->andWhere('u.status = :myStatus')
->andWhere('u.status in (:status)')
// ->setParameter('myStatus', HolidaySummaryConstants::FILTER_USER_BY_STATUS)
->setParameter('status', 1);
// ->setParameter('userrol', 5);
return $qb->orderBy('u.name', 'ASC');
},
'class' => User::class,
))
->add('typeclient', ChoiceType::class, array(
'choices' => array(
'Business Travel' => 'Business Travel',
'MICE' => 'MICE',
'BT & MICE' => 'BT & MICE'
), 'placeholder' => 'Select a Type Client'))
->add('newsletter', EntityType::class, array(
'class' => NewsLetterControl::class,
'choice_label' => 'name',
'choice_value' => 'id',
'expanded' => false,
'multiple' => true,
'placeholder' => 'Select a newsletter'))
->add('situation', ChoiceType::class, array(
'choices' => array(
'SCOPE' => 'SCOPE',
'TRACING' => 'TRACING',
'PRESENTATION' => 'PRESENTATION',
'PRESENTATION SEND' => 'PRESENTATION SEND',
'PENDING OFFER' => 'PENDING OFFER',
'OFFER SENT' => 'OFFER SENT',
'PRESENTED OFFER' => 'PRESENTED OFFER',
'OFFER DISCARDED' => 'OFFER DISCARDED',
'OFFERED DISCARDED TRACKING' => 'OFFERED DISCARDED TRACKING',
'CLIENT' => 'CLIENT',
'CLIENT LOST' => 'CLIENT LOST',
), 'placeholder' => 'Select a situation'))
->add('status', ChoiceType::class, array(
'choices' => array(
'NO CLIENT' => array(
'NEW OPPORTUNITY' => 'NEW OPPORTUNITY',
'FIRST CONTACT' => 'FIRST CONTACT',
'PROPOSAL' => 'PROPOSAL',
'NEGOTIATION' => 'NEGOTIATION',
'WIN OPPORTUNITY' => 'WIN OPPORTUNITY',
'LOST OPPORTUNITY' => 'LOST OPPORTUNITY',
),
'CLIENT' => array(
'FOLLOW UP' => 'FOLLOW UP',
'INCIDENCE' => 'INCIDENCE',
'RISK/RFP' => 'RISK/RFP',
'CLIENT LOST' => 'CLIENT LOST'
),
), 'placeholder' => 'Select a situation'))
->add('save', SubmitType::class)
;
}
/**
* {@inheritdoc}
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'App\entity\ClientContact'
));
}
/**
* {@inheritdoc}
*/
public function getBlockPrefix()
{
return 'contact';
}
}