src/DcSiteBundle/Form/TradeInType.php line 34

Open in your IDE?
  1. <?php
  2. namespace DcSiteBundle\Form;
  3. use CoreBundle\Entity\Forms;
  4. use CoreBundle\Entity\Vehicles\Vehicle;
  5. use CoreBundle\Form\CoreFormsType;
  6. use DcSiteBundle\Form\Transformer\TradeInDataFormTransformer;
  7. use DcSiteBundle\Form\Type\GaClientIdType;
  8. use Doctrine\ORM\EntityRepository;
  9. use Symfony\Bridge\Doctrine\Form\Type\EntityType;
  10. use Symfony\Component\Form\AbstractType;
  11. use Symfony\Component\Form\Extension\Core\Type\TextareaType;
  12. use Symfony\Component\Form\Extension\Core\Type\TextType;
  13. use Symfony\Component\Form\FormBuilderInterface;
  14. use Symfony\Component\Form\Extension\Core\Type\EmailType;
  15. use Symfony\Component\Form\FormEvent;
  16. use Symfony\Component\Form\FormEvents;
  17. use Symfony\Component\OptionsResolver\OptionsResolver;
  18. use Symfony\Contracts\Translation\TranslatorInterface;
  19. class TradeInType extends CoreFormsType
  20. {
  21.     public function buildForm(FormBuilderInterface $builder, array $options)
  22.     {
  23.         parent::buildForm($builder,$options);
  24.         /** @var TranslatorInterface $Translator */
  25.         $Translator $options['translator'];
  26.         $Dealer $options['dealer'];
  27.         $builder
  28.             ->add('model'EntityType::class, ['label' => false,
  29.                     'class' => Vehicle::class,
  30.                     'mapped' => false,
  31.                     'query_builder' => fn(EntityRepository $repo) => $repo->createQueryBuilder('c')
  32.                         ->where('c.dealer = :dealer and c.state = :state')
  33.                         ->setParameters(['dealer' => $Dealer'state' => 1]),
  34.                     'attr' => ['class' => 'js-trade-in-f-model''required' => false]]
  35.             )
  36.             ->add('user_brand'TextType::class, ['mapped' => false,'label' => false'attr' => ['placeholder' => $Translator->trans('form.brand',[],'dc_base')]])
  37.             ->add('user_model'TextType::class, ['mapped' => false,'label' => false'attr' => ['placeholder' => $Translator->trans('form.model',[],'dc_base')]])
  38.             ->add('year'TextType::class, ['mapped' => false,'label' => false'attr' => ['placeholder' => $Translator->trans('form.year',[],'dc_base')]])
  39.             ->add('drive_count'TextType::class, ['mapped' => false,'label' => false'attr' => ['placeholder' => $Translator->trans('form.drive_count',[],'dc_base')]])
  40.             ->add('body'TextType::class, ['mapped' => false,'label' => false'attr' => ['placeholder' => $Translator->trans('form.body',[],'dc_base')], 'required' => false])
  41.             ->add('color'TextType::class, ['mapped' => false,'label' => false'attr' => ['placeholder' => $Translator->trans('form.color',[],'dc_base')], 'required' => false])
  42.             ->add('engine'TextType::class, ['mapped' => false,'label' => false'attr' => ['placeholder' => $Translator->trans('form.engine',[],'dc_base')], 'required' => false])
  43.             ->add('volume'TextType::class, ['mapped' => false,'label' => false'attr' => ['placeholder' => $Translator->trans('form.volume',[],'dc_base')], 'required' => false])
  44.             ->add('kpp'TextType::class, ['mapped' => false,'label' => false'attr' => ['placeholder' => $Translator->trans('form.kpp',[],'dc_base')], 'required' => false])
  45.             ->add('drive_type'TextType::class, ['mapped' => false,'label' => false'attr' => ['placeholder' => $Translator->trans('form.drive_type',[],'dc_base')], 'required' => false])
  46.             ->add('air'TextType::class, ['mapped' => false,'label' => false'attr' => ['placeholder' => $Translator->trans('form.air',[],'dc_base')], 'required' => false])
  47.             ->add('salon'TextType::class, ['mapped' => false,'label' => false'attr' => ['placeholder' => $Translator->trans('form.salon',[],'dc_base')], 'required' => false])
  48.             ->add('comment'TextareaType::class, ['mapped' => false,'label' => false'attr' => ['placeholder' => $Translator->trans('form.comment',[],'dc_base')], 'required' => false])
  49.         ;
  50.         $builder->addEventListener(FormEvents::SUBMIT, function (FormEvent $event): void {
  51.             (new TradeInDataFormTransformer($event))->transform();
  52.         });
  53.     }
  54.     public function configureOptions(OptionsResolver $resolver)
  55.     {
  56.         parent::configureOptions($resolver);
  57.         $resolver->setDefault('captcha_type','trade_in_form')
  58.             ->setRequired('dealer')
  59.         ;
  60.     }
  61. }