<?php declare(strict_types=1);
namespace PPAdmin\AdminSections\CommissionSystems;
use PlnaPenezenka\PPSDKBundle\Doctrine\Entity\Administrator;
use PlnaPenezenka\PPSDKBundle\Doctrine\Entity\CommissionSystem;
use PlnaPenezenka\PPSDKBundle\Doctrine\Entity\Common\DefaultEntity;
use PlnaPenezenka\PPSDKBundle\Doctrine\Repository\ShopsRepository;
use PPAdmin\AdminSections\AdminSectionsList;
use PPAdmin\Security\AbstractAdminGridSectionVoter;
use PPAdmin\Security\ManagedWebsResolver;
use Symfony\Contracts\Translation\TranslatorInterface;
class CommissionSystemsVoter extends AbstractAdminGridSectionVoter
{
function __construct(
private ShopsRepository $shops_repo,
ManagedWebsResolver $webs_resolver,
TranslatorInterface $translator
){
parent::__construct($webs_resolver, $translator);
}
public static function getSectionIdentifier(): string
{
return AdminSectionsList::COMMISSION_SYSTEMS;
}
function canDeleteRecord(Administrator $admin, DefaultEntity $record): bool
{
/** @var $record CommissionSystem */
return
parent::canDeleteRecord($admin, $record) &&
$this->shops_repo->count(['commission_system' => $record]) === 0;
}
}