src/AdminSections/CommissionSystems/CommissionSystemsVoter.php line 13

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace PPAdmin\AdminSections\CommissionSystems;
  3. use PlnaPenezenka\PPSDKBundle\Doctrine\Entity\Administrator;
  4. use PlnaPenezenka\PPSDKBundle\Doctrine\Entity\CommissionSystem;
  5. use PlnaPenezenka\PPSDKBundle\Doctrine\Entity\Common\DefaultEntity;
  6. use PlnaPenezenka\PPSDKBundle\Doctrine\Repository\ShopsRepository;
  7. use PPAdmin\AdminSections\AdminSectionsList;
  8. use PPAdmin\Security\AbstractAdminGridSectionVoter;
  9. use PPAdmin\Security\ManagedWebsResolver;
  10. use Symfony\Contracts\Translation\TranslatorInterface;
  11. class CommissionSystemsVoter extends AbstractAdminGridSectionVoter
  12. {
  13.     function __construct(
  14.         private ShopsRepository $shops_repo,
  15.         ManagedWebsResolver $webs_resolver,
  16.         TranslatorInterface $translator
  17.     ){
  18.         parent::__construct($webs_resolver$translator);
  19.     }
  20.     public static function getSectionIdentifier(): string
  21.     {
  22.         return AdminSectionsList::COMMISSION_SYSTEMS;
  23.     }
  24.     function canDeleteRecord(Administrator $adminDefaultEntity $record): bool
  25.     {
  26.         /** @var $record CommissionSystem */
  27.         return
  28.             parent::canDeleteRecord($admin$record) &&
  29.             $this->shops_repo->count(['commission_system' => $record]) === 0;
  30.     }
  31. }