src/Form/Type/Quote/QuoteRequestType.php line 71
<?phpnamespace App\Form\Type\Quote;use App\Entity\Quote\QuoteRequest;use App\Entity\Taxonomy\Taxon;use App\Form\EventSubscriber\Quote\CustomerSubscriber;use App\Repository\Addressing\CountryRepository;use App\Repository\Product\ProductMesurementUnitRepository;use Doctrine\DBAL\Types\IntegerType;use Doctrine\ORM\EntityRepository;use Symfony\Bridge\Doctrine\Form\Type\EntityType;use Symfony\Component\Form\AbstractType;use Symfony\Component\Form\FormBuilderInterface;use Symfony\Component\OptionsResolver\OptionsResolver;use Symfony\Component\Form\Extension\Core\Type\ChoiceType;use Symfony\Component\Form\Extension\Core\Type\TextType;use Symfony\Component\Form\Extension\Core\Type\CollectionType;use Symfony\Component\Form\Extension\Core\Type\CountryType;use Symfony\Component\Form\Extension\Core\Type\EmailType;use Symfony\Component\Form\Extension\Core\Type\NumberType;use Symfony\Component\Form\Extension\Core\Type\TelType;use Symfony\Component\Form\Extension\Core\Type\TextareaType;use Symfony\Component\Form\FormEvent;use Symfony\Component\Form\FormEvents;use Symfony\Component\HttpFoundation\RequestStack;use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;use Symfony\Contracts\Translation\TranslatorInterface;class QuoteRequestType extends AbstractType{private $unitRepository;private $translator;private $tokenStorage;private $request;public function __construct(RequestStack $request, ProductMesurementUnitRepository $unitRepository, TranslatorInterface $translator, TokenStorageInterface $tokenStorageInterface){$this->unitRepository = $unitRepository;$this->translator = $translator;$this->tokenStorage = $tokenStorageInterface;$this->request = $request->getCurrentRequest();}public function buildForm(FormBuilderInterface $builder, array $options){$builder->add('sample',null,['required' => false, 'label'=>'app.ui.sample_needed'])->add('note', TextareaType::class, ['required' => false, 'attr' => ['rows' => 6]])->add('quantity', NumberType::class, ['required' => true, 'label' => 'app.ui.quantity'])->add('country', CountryType::class, ['label' => 'app.ui.country', 'placeholder' => 'app.ui.country'])->add('company', TextType::class, ['required' => true, 'label' => 'app.ui.company'])->add('companyWebsite', TextType::class, ['required' => false, 'label' => 'app.ui.company_website'])->add('companyAddress', TextType::class, ['required' => true, 'label' => 'app.ui.company_address']);$builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) {$product = $event->getData();$form = $event->getForm();if ($this->request->query->get('sample') == null) {$form->add('quantity', NumberType::class, ['required' => true, 'label' => 'app.ui.quantity']);}if ($this->request->query->get('product') == null) {$form->add('taxon', EntityType::class, ['label' => 'Style','class' => Taxon::class,'multiple' => false,'expanded' => true,'required' => true,'query_builder' => function (EntityRepository $er) {return $er->createQueryBuilder('a')->innerJoin('a.parent', 'b')->andWhere('b.code = :code')->setParameter('code', 'category');},'choice_label' => function (Taxon $entity) {return sprintf('%s', $entity->getName());}])->add('files', CollectionType::class, array('entry_type' => QuoteRequestFileType::class,'allow_add' => false,'allow_delete' => false))// ->add('attributes', CollectionType::class, array(// 'entry_type' => RequestForQuoteAttributeItemType::class,// 'allow_add' => false,// 'allow_delete' => false// ))->add('options', CollectionType::class, array('entry_type' => QuoteRequestOptionType::class,'allow_add' => false,'allow_delete' => false))->add('dimensions', TextType::class, ['required' => true, 'label' => 'app.ui.dimensions']);}if (!$this->tokenStorage->getToken()) {$form->add('email', EmailType::class, ['required' => true, 'label' => 'app.ui.email'])->add('firstname', TextType::class, ['required' => true, 'label' => 'app.ui.firstname'])->add('lastname', TextType::class, ['required' => true, 'label' => 'app.ui.lastname'])->add('phoneNumber', TelType::class, ['required' => false, 'label' => 'app.ui.phone_number']);}else{}});}public function configureOptions(OptionsResolver $resolver){$resolver->setDefaults(['data_class' => QuoteRequest::class,]);}}