<?php
namespace AdminBundle\Admin;
use CoreBundle\Entity\Vehicles\Vehicle;
use Sonata\AdminBundle\Datagrid\ListMapper;
use Sonata\AdminBundle\Form\FormMapper;
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
class CreditProgramAdmin extends BaseAdmin
{
public function prePersist($object): void
{
$object->setState((int)$object->getState());
parent::prePersist($object);
}
/**
* @param $object
*/
public function preUpdate($object): void
{
$object->setState((int)$object->getState());
parent::preUpdate($object);
}
/**
* @param FormMapper $formMapper
*/
protected function configureFormFields(FormMapper $formMapper): void
{
$User = $this->getUser();
$queryBuilder = $this->getModelManager()
->getEntityManager(Vehicle::class)
->createQueryBuilder('v')
->select('v')
->from('CoreBundle:Vehicles\Vehicle','v')
->where('v.is_used = 0');
$formMapper
->with(' ', ['class' => 'col-lg-6'])
->add('minAvance', null, ['label' => 'Мінімальний перший пнесок'])
->add('maxTerm', null, ['label' => 'Максимальний строк кредитування'])
->add('maxAmount', null, ['label' => 'Максимальна сума кредиту'])
->add('addit_payment', null, ['label' => 'Інші витрати (сумма)'])
->add('addit_payment_comment', null, ['label' => 'Інші витрати (комментар)'])
->add('casco_payment_0', null, ['label' => 'Каско 0%'])
->add('casco_payment_05', null, ['label' => 'Каско 0.5%'])
->add('casco_payment_1', null, ['label' => 'Каско 1%'])
->add('state', CheckboxType::class, ['label' => 'Активна', 'required' => false])
->add('for_used', CheckboxType::class, ['label' => 'Для авто з пробігом', 'required' => false])
->end()
->with(' ', ['class' => 'col-lg-6'])
->add('bank', null, ['label' => 'Назва банку'])
->add('title_ru', null, ['label' => 'Назва кредитної програми (RU)'])
->add('title_ua', null, ['label' => 'Назва кредитної програм (UA)'])
->add('dealer', null, ['label' => 'Дилери'])
->add('vehicles', null, ['label' => 'Автомобілі', 'query_builder' => $queryBuilder],['admin_code' => 'admin.vehicles.passenger_vehicle'])
->add('params', HiddenType::class, ['label' => false, 'attr' => ['class' => 'js-program-params']])
->end();
}
/**
* @param ListMapper $listMapper
*/
protected function configureListFields(ListMapper $listMapper): void
{
$listMapper->addIdentifier('id')
->add('bank',null, ['label' => 'Банк'])
->add('title_ua',null, ['label' => 'Назва програми'])
->add('state', ChoiceType::class, ['label' => 'Активна', 'editable' => true, 'choices' => [
1 => 'Так',
0 => 'Ні',
]])
->add('_action', 'actions', [
'label' => 'Дії',
'actions' => [
'edit' => [],
]
])
;
}
protected function configure(): void
{
parent::configure(); // TODO: Change the autogenerated stub
$this->setTemplate('edit', '@Admin/credit/credit.html.twig');
}
}