| Current Path : /var/www/v3.cesa.co.za/src/UserBundle/Admin/ |
| Current File : /var/www/v3.cesa.co.za/src/UserBundle/Admin/SellerAdmin.php |
<?php
namespace App\UserBundle\Admin;
use Sonata\AdminBundle\Admin\AbstractAdmin;
use Sonata\AdminBundle\Datagrid\ListMapper;
use Sonata\AdminBundle\Datagrid\DatagridMapper;
use Sonata\AdminBundle\Datagrid\ProxyQueryInterface;
use Sonata\AdminBundle\Form\FormMapper;
use Sonata\AdminBundle\Form\Type\AdminType;
use Sonata\AdminBundle\Show\ShowMapper;
use Sonata\AdminBundle\Validator\ErrorElement;
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
use App\UserBundle\Admin\UserListAdmin;
use App\UserBundle\Entity\UserTypes;
use App\UserBundle\Entity\UserTypeTypes;
/**
* Supplier Admin
*
* @author Otto Saayman <otto@igotafrica.com>
* @package UserBundle
* @subpackage Admin
* @version 0.0.1
*/
class SellerAdmin extends UserListAdmin {
protected function generateBaseRouteName(bool $isChildAdmin = false): string
{
return 'seller';
}
protected function generateBaseRoutePattern(bool $isChildAdmin = false): string
{
return 'seller';
}
protected $classnameLabel = 'Sellers';
protected function configureFormFields(FormMapper $formMapper): void {
parent::configureFormFields($formMapper);
$formMapper->remove('user_type_types')
->remove('is_active')->add('is_active', HiddenType::class, array())
->remove('is_super_admin')->add('is_super_admin', HiddenType::class, array())
->add('user_bank_detail', AdminType::class)
->remove('id_number')->add('id_number', HiddenType::class, array())
->remove('id_doc_file_id')->add('id_doc_file_id', HiddenType::class, array())
->remove('referred_by')->add('referred_by', HiddenType::class, array())
->remove('send_doc_reject_notif')
->remove('send_access_level_notif')
->remove('move_to_companies');
}
public function configurePersistentParameters(): array {
if (!$this->getRequest()) {
return array();
}
$systemSettingManager = $this->container->get('system_setting.manager');
return array(
'provider' => $this->getRequest()->get('provider'),
'user_type_id' => $this->getRequest()->get('user_type_id', $systemSettingManager->getSetting('fe_user_type')),
'company_id' => $this->getRequest()->get('company_id', ''),
);
}
public function configureQuery(ProxyQueryInterface $query): ProxyQueryInterface {
// public function createQuery($context = 'list', $utt = null) {
parent::setSellerAccessLevelId($this->getContainer()->get('access_level.manager')->getSellerAccessLevelId());
return parent::createQuery($query);
}
protected function configureDatagridFilters(DatagridMapper $datagridMapper): void {
parent::configureDatagridFilters($datagridMapper);
}
protected function configureListFields(ListMapper $listMapper): void {
parent::configureListFields($listMapper);
// $listMapper;
}
protected function configureShowFields(ShowMapper $show): void {
parent::configureShowFields($show);
}
public function preUpdatePersist($user) {
// echo 'pre update';
// exit;
parent::preUpdatePersist($user);
if (!is_object($user->getUserTypeTypes())) {
$user->setUserTypeTypes($this->getUserTypeTypeId());
}
return $user;
}
public function postUpdatePersist($user) {
parent::postUpdatePersist($user);
parent::getContainer()->get('user_list.manager')->linkAccessLevel($user, array(parent::getContainer()->get('access_level.manager')->getSellerAccessLevelId()));
}
protected function configureSideMenu(\Knp\Menu\ItemInterface $menu, $action, ?\Sonata\AdminBundle\Admin\AdminInterface $childAdmin = null) {
}
/**
* @return UserTypeTypes
*/
public function getUserTypeId() {
$systemSettingManager = parent::getContainer()->get('system_setting.manager');
return $this->getRequest()->get('user_type_id', $systemSettingManager->getSetting('fe_user_type'));
}
/**
* @return UserTypeTypes
*/
public function getUserTypeTypeId() {
return parent::getContainer()->get('user_type_types.manager')->find(parent::getContainer()->get('user_type_types.manager')->getSellerTypeTypeId());
}
}