Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

44 lines
1.3KB

  1. <?php
  2. namespace Lc\CaracoleBundle\Repository\User;
  3. use Lc\CaracoleBundle\Model\Merchant\MerchantInterface;
  4. use Lc\CaracoleBundle\Model\User\UserMerchantInterface;
  5. use Lc\CaracoleBundle\Repository\MerchantStoreTrait;
  6. use Lc\CaracoleBundle\Solver\User\UserMerchantSolver;
  7. use Lc\SovBundle\Model\User\UserInterface;
  8. use Lc\SovBundle\Repository\AbstractStore;
  9. class UserMerchantStore extends AbstractStore
  10. {
  11. use MerchantStoreTrait;
  12. protected UserMerchantRepositoryQuery $query;
  13. protected UserMerchantSolver $userMerchantSolver;
  14. public function __construct(UserMerchantRepositoryQuery $query, UserMerchantSolver $userMerchantSolver)
  15. {
  16. $this->query = $query;
  17. $this->userMerchantSolver = $userMerchantSolver;
  18. }
  19. // getUserMerchant
  20. public function getOneByUser(UserInterface $user, $query = null): UserMerchantInterface
  21. {
  22. $query = $this->createQuery($query);
  23. $query
  24. ->filterByMerchant($this->merchant)
  25. ->filterByUser($user);
  26. return $query->findOne();
  27. }
  28. public function isCreditActiveByUser(UserInterface $user, $query = null): bool
  29. {
  30. $userMerchant = $this->getOneByUser($user, $query);
  31. return $this->userMerchantSolver->isCreditActive($userMerchant);
  32. }
  33. }