src/Form/VehicleRtsActivityTransportsType.php line 18

  1. <?php
  2. namespace App\Form;
  3. use App\Entity\TransporterDrivers;
  4. use App\Entity\Transporters;
  5. use App\Entity\VehicleRtsActivitiesInvoices;
  6. use Symfony\Bridge\Doctrine\Form\Type\EntityType;
  7. use Symfony\Component\Form\AbstractType;
  8. use Symfony\Component\Form\FormBuilderInterface;
  9. use Symfony\Component\OptionsResolver\OptionsResolver;
  10. use Symfony\Contracts\Translation\TranslatorInterface;
  11. use Doctrine\ORM\EntityRepository;
  12. /**
  13.  * Class VehicleRtsActivityTransportsType
  14.  * @package App\Form
  15.  */
  16. class VehicleRtsActivityTransportsType extends AbstractType
  17. {
  18.     /**
  19.      * @var Translator
  20.      */
  21.     protected $translator;
  22.     /**
  23.      * VehicleRtsActivityTransportsType constructor.
  24.      * @param Translator|null $translator
  25.      */
  26.     public function __construct(TranslatorInterface $translatornull)
  27.     {
  28.         $this->translator $translator;
  29.     }
  30.     /**
  31.      * {@inheritdoc}
  32.      */
  33.     public function buildForm(FormBuilderInterface $builder, array $options)
  34.     {
  35.         $trans                 $this->translator;
  36.         $transporterValidation $trans->trans('you should select a transporter', [], 'validators');
  37.         $builder->add('transporter'EntityType::class, array(
  38.                 'class'        => Transporters::class,
  39.                 'label'        => 'Transporter',
  40.                 'choice_label' => 'name'.ucfirst($options['locale']),
  41.                 'placeholder'  => 'Please Select',
  42.                 'required'     => true,
  43.                 'attr'         => ['validate-msg' => $transporterValidation]
  44.             ))
  45.             ->add('driver'EntityType::class, array(
  46.                 'label'        => 'The Driver',
  47.                 'class'        => TransporterDrivers::class,
  48.                 'query_builder' => function (EntityRepository $er) {
  49.                     return $er->createQueryBuilder('TD')
  50.                         ->where('TD.isActive = 1');
  51.                 },
  52.                 'placeholder'  => 'Please Select',
  53.                 'required'     => false,
  54.                 'choice_label' => function (TransporterDrivers $driver) use ($options) {
  55.                                     if($driver->getIsActive()==1) {
  56.                                         return $driver->getUser()->getUserIdentityInfo()->getName($options['locale']);
  57.                                     }
  58.                 }
  59.             ))
  60.             ->add('rtsInvoice'VehicleRtsActivitiesInvoicesType::class, array(
  61.                 'label'        => false,
  62.                 'data_class'   => VehicleRtsActivitiesInvoices::class,
  63.                 'by_reference' => false,
  64.                 'required'     => true,
  65.                 'theEffectiveVat'=> $options['theEffectiveVat']
  66.             ));
  67.     }
  68.     
  69.     /**
  70.      * {@inheritdoc}
  71.      */
  72.     public function configureOptions(OptionsResolver $resolver)
  73.     {
  74.         $resolver->setDefaults(array(
  75.             'translation_domain' => 'vehicles',
  76.             'locale'             => 'en',
  77.             'theEffectiveVat' => false
  78.         ));
  79.     }
  80.     /**
  81.      * {@inheritdoc}
  82.      */
  83.     public function getBlockPrefix()
  84.     {
  85.         return 'appbundle_vehiclertsactivitytransports';
  86.     }
  87. }