src/Form/VehiclesSearchType.php line 81
<?php
namespace App\Form;
use App\Entity\PanelLetters;
use App\Entity\VehicleClients;
use App\Entity\VehicleMakers;
use App\Entity\VehicleModels;
use App\Entity\VehicleRegistrationTypes;
use App\Entity\Vehicles;
use App\Entity\Warehouses;
use App\Service\VehicleHelper;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Contracts\Translation\TranslatorInterface;
/**
* Class VehiclesSearchType
* @package App\Form
*/
class VehiclesSearchType extends AbstractType
{
/**
* @var Translator
*/
protected $translator;
/**
* AuctionVehiclesBiddingType constructor.
* @param Translator|null $translator
*/
public function __construct(TranslatorInterface $translator= null)
{
$this->translator = $translator;
}
/**
* {@inheritdoc}
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$locale = $options['data']['locale'];
$em = $options['data']['em'];
$vehicleHelper = new VehicleHelper();
$builder->setMethod('GET')
->add('vehicleNumber', TextType::class, [
'required' => false,
'label' => 'Vehicle Number',
'translation_domain' => 'vehicles'
])
->add('panelNumbers', TextType::class, [
'required' => false,
'label' => 'Plate Number',
'translation_domain' => 'vehicles',
'attr' => [ 'minlength' => 1,'maxlength' => 4]
])
->add('panelLetter1', EntityType::class, array(
'required' => false,
'class' => PanelLetters::class,
'choice_label' => function (PanelLetters $panelLetters) {
return $panelLetters->getLetterAr() .'-' . $panelLetters->getLetterEn();
},
'placeholder' => 'Please Select',
'attr' => ['validate-msg' => '']
))
->add('panelLetter2', EntityType::class, array(
'required' => false,
'class' => PanelLetters::class,
'choice_label' => function (PanelLetters $panelLetters) {
return $panelLetters->getLetterAr() .'-' . $panelLetters->getLetterEn();
},
'placeholder' => 'Please Select',
'attr' => ['validate-msg' => '']
))
->add('panelLetter3', EntityType::class, array(
'class' => PanelLetters::class,
'choice_label' => function (PanelLetters $panelLetters) {
return $panelLetters->getLetterAr() .'-' . $panelLetters->getLetterEn();
},
'placeholder' => 'Please Select',
'required' => false,
'attr' => ['validate-msg' => '']
))
->add('maker', EntityType::class, [
'class' => VehicleMakers::class,
'label' => 'Vehicle Maker',
'choice_label' => 'name'.ucfirst($locale),
'placeholder' => 'Please Select',
'mapped' => false,
'required' => false,
'translation_domain' => 'vehicles'
])
->add('model', EntityType::class, [
'required' => false,
'label' => 'Vehicle Model',
'class' => VehicleModels::class,
'choice_label' => 'name'.ucfirst($locale),
'placeholder' => 'Please Select',
'attr' => ['disabled' => 'disabled'],
'translation_domain' => 'vehicles'
])
->add('beneficiary', TextType::class, [
'required' => false,
'label' => 'Beneficiary',
'translation_domain' => 'vehicles',
/* 'placeholder' => 'Please Select',
'class' => VehicleClients::class,
'query_builder' => function () use($em) {
$repository = $em->getRepository(VehicleClients::class);
return $repository->getVehicleClientsListQB();
},
'choice_label' => function (VehicleClients $client) use ($locale) {
if ($client->getUser()) {
return $client->getUser()->getUserIdentityInfo()->getName($locale);
} else {
return $client->getCompany()->getCompanyRegistration()->getName($locale);
}
}*/
])
->add('registrationType', EntityType::class, [
'required' => false,
'label' => 'Plate Type',
'class' => VehicleRegistrationTypes::class,
'choice_label' => 'name'.ucfirst($locale),
'placeholder' => 'Please Select',
'translation_domain' => 'vehicles'
])
->add('registrationSerialNumber', TextType::class, [
'required' => false,
'label' => 'Sequence Number',
'translation_domain' => 'vehicles'
])
->add('lastStorage', EntityType::class, [
'required' => false,
'label' => 'Last Store Place',
'class' => Warehouses::class,
'choice_label' => 'name',
'placeholder' => 'Please Select',
'translation_domain' => 'vehicles'
])
->add('vinNumber', TextType::class, [
'required' => false,
'label' => 'Vehicle VIN',
'translation_domain' => 'vehicles'
])
->add('beneficiaryVehicleNumber', TextType::class, [
'required' => false,
'label' => 'Beneficiary Vehicle No',
'translation_domain' => 'vehicles'
])
->add('vehicleSaleOfferability', ChoiceType::class, [
'required' => false,
'label' => 'vehicle sale readiness',
'translation_domain' => 'vehicles',
'choices' => Vehicles::SALE_OFFERABILITY,
'placeholder' => 'pleaseSelect'
])
->add('noEstimation', CheckboxType::class, [
'required' => false,
'label' => 'vehicles no estimation',
'translation_domain' => 'vehicles'
])
->add('VehicleLocationState', ChoiceType::class, [
'required' => false,
'label' => 'Vehicle Location State',
'translation_domain' => 'vehicles',
'choices' => Vehicles::Vehicle_Location_State,
'placeholder' => 'Please Select'
])
->add('VehicleSaleState', ChoiceType::class, [
'required' => false,
'label' => 'Vehicle Sale State',
'translation_domain' => 'vehicles',
'choices' => Vehicles::Vehicle_Sale_State,
'placeholder' => 'Please Select'
])
->add('VehicleOTState', ChoiceType::class, [
'required' => false,
'label' => 'Vehicle OT State',
'translation_domain' => 'vehicles',
'choices' => Vehicles::Vehicle_OT_State,
'placeholder' => 'Please Select'
])
->add('VehicleExitState', ChoiceType::class, [
'required' => false,
'label' => 'Vehicle Exit',
'translation_domain' => 'vehicles',
'choices' => Vehicles::Vehicle_Exit_State,
'placeholder' => 'Please Select'
])
->add('manufacturingYear', ChoiceType::class, array(
'label' => 'Made Year',
'choices' => $vehicleHelper->getYears(1950),
'placeholder' => 'Please Select',
'required' => false
))
;
}
/**
* {@inheritdoc}
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'translation_domain' => 'vehicles',
'locale' => 'en',
'maker' => ''
));
}
/**
* {@inheritdoc}
*/
public function getBlockPrefix()
{
return 'app_vehiclesSearch';
}
}