src/Form/VehicleRtsActivitiesType.php line 63
<?php
namespace App\Form;
use App\Entity\Activity;
use App\Entity\VehicleRtsActivitiesInventories;
use App\Entity\VehicleRtsActivityTransports;
use App\Entity\Vehicles;
use App\EventListener\WorkFlowFormSubscriber;
use Doctrine\ORM\EntityManagerInterface as EntityManager;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\DateTimeType;
use Symfony\Component\Form\Extension\Core\Type\FileType;
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\HttpFoundation\RequestStack;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
use Symfony\Component\Workflow\Registry;
use Symfony\Contracts\Translation\TranslatorInterface;
/**
* Class VehicleRtsActivitiesType
* @package App\Form
*/
class VehicleRtsActivitiesType extends AbstractType
{
/**
* @var EntityManager
*/
public $entityManager;
/**
* @var Translator
*/
protected $translator;
/**
* @var Translator
*/
protected $workflowRegistry;
protected \Symfony\Component\HttpFoundation\RequestStack $request;
protected \Doctrine\ORM\EntityManagerInterface $EntityManager;
protected \Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface $tokenStorage;
/**
* VehicleRevokeRequestsType constructor.
* @param Translator|null $translator
*/
public function __construct(Registry $workflowRegistry,RequestStack $request,EntityManager $EntityManager,TokenStorageInterface $tokenStorage, TranslatorInterface $translator= null)
{
$this->translator = $translator;
$this->workflowRegistry = $workflowRegistry;
$this->request = $request;
$this->entityManager = $EntityManager;
$this->tokenStorage = $tokenStorage;
}
/**
* {@inheritdoc}
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('activityDate', DateTimeType::class, array(
'label' => 'Activity Date',
'widget' => 'single_text',
'required' => false,
'html5' => false
))
->add('notes', null, array('label' => 'Notes'));
if ($options['activityType'] == 'Transport_To_Distination') {
$vehicleId = $this->request->getCurrentRequest()->get('vehicleId');
$vehicle = $this->entityManager->getRepository(Vehicles::class)->find($vehicleId);
$receivingAt = $vehicle->getReceivingAt();
$builder->add('activityDestination', DestinationType::class, array(
'label' => false,
'locale' => $options['locale'],
'required' => true,
'vehicleExitDate' => $options['vehicleExitDate'],
'isReturnedInActivity' => $options['isReturnedInActivity'],
'isRepairInActivity' => $options['isRepairInActivity'],
'checkDisable' =>$options['checkDisable'],
'receivingAt' => $receivingAt
));
}
if ($options['activityType'] == 'Transport_And_Store' || $options['activityType'] == 'Store_Only') {
$builder->add('activityStorage', VehicleRtsActivityStorageType::class, array(
'label' => false,
'locale' => $options['locale'],
'required' => true,
'oldWarehouseId' => $options['oldWarehouseId']
));
}
if ($options['activityType'] == 'Transport_To_Distination' || $options['activityType'] == 'Transport_And_Store') {
$builder->add('activityTransport', VehicleRtsActivityTransportsType::class, array(
'label' => false,
'data_class' => VehicleRtsActivityTransports::class,
'locale' => $options['locale'],
'required' => true,
'theEffectiveVat'=> $options['theEffectiveVat']
));
}
if ($options['revokeInventory'] != null) {
$builder->add('activityInventory', VehicleRtsActivitiesInventoriesType::class, array(
'required' => false,
'data_class' => VehicleRtsActivitiesInventories::class,
'label' => false,
'by_reference' => false
))
->add('images', FileType::class, array(
'label' => false,
'multiple' => true,
'required' => false,
'mapped' => false,
'attr' => array('class' => 'images','accept' => 'image/*','multiple' => 'multiple')
))
->add('deletedImageIds', HiddenType::class, array(
'label' => false,
'required' => false,
'mapped' => false,
'attr' => array(
'class' => 'deletedImageIds'
)
))
->add('deletedUploadIds', HiddenType::class, array(
'label' => false,
'required' => false,
'mapped' => false,
'attr' => array(
'class' => 'deletedUploadIds'
)
))
->add('newImages', HiddenType::class, array(
'label' => false,
'required' => false,
'mapped' => false,
'attr' => array(
'class' => 'newImages'
)
));
}
$builder->addEventSubscriber(new WorkFlowFormSubscriber($this->workflowRegistry,$this->request,$this->entityManager,$this->tokenStorage, $this->translator));
}
/**
* {@inheritdoc}
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => Activity::class,
'translation_domain' => 'vehicles',
'locale' => 'en',
'activityType' => '',
'revokeInventory' => null,
'vehicleExitDate' => null,
'isReturnedInActivity' => false,
'isRepairInActivity' => false,
'method' => 'POST', //adding this to allow the controller to explicitly set the form method
'checkDisable' => [],
'oldWarehouseId' => null,
'theEffectiveVat'=> null
));
}
/**
* {@inheritdoc}
*/
public function getBlockPrefix()
{
return 'appbundle_vehiclertsactivities';
}
}