You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

87 lines
2.2KB

  1. <?php
  2. namespace Lc\CaracoleBundle\Repository\Reduction;
  3. use Lc\CaracoleBundle\Repository\MerchantStoreTrait;
  4. use Lc\CaracoleBundle\Repository\SectionStoreTrait;
  5. use Lc\SovBundle\Model\User\UserInterface;
  6. use Lc\CaracoleBundle\Repository\AbstractStore;
  7. use Lc\SovBundle\Repository\RepositoryQueryInterface;
  8. class ReductionCreditStore extends AbstractStore
  9. {
  10. use MerchantStoreTrait;
  11. protected ReductionCreditRepositoryQuery $query;
  12. public function __construct(
  13. ReductionCreditRepositoryQuery $query
  14. ) {
  15. $this->query = $query;
  16. }
  17. public function orderByDefault(RepositoryQueryInterface $query): RepositoryQueryInterface
  18. {
  19. $query->orderBy('id');
  20. return $query;
  21. }
  22. public function filtersDefault(RepositoryQueryInterface $query): RepositoryQueryInterface
  23. {
  24. $this->addFilterByMerchantRequired($query);
  25. $query->filterIsOnlineAndOffline();
  26. return $query;
  27. }
  28. public function relationsDefault(RepositoryQueryInterface $query): RepositoryQueryInterface
  29. {
  30. return $query;
  31. }
  32. // findReductionCreditsByUser
  33. public function getByTypeAndUser(string $type, UserInterface $user, $query = null)
  34. {
  35. $query = $this->createDefaultQuery($query);
  36. $query
  37. ->filterByType($type)
  38. ->filterByUser($user);
  39. return $query->find();
  40. }
  41. // findReductionGiftToUseByUser
  42. public function getReductionGiftToUseByUser(UserInterface $user, $query = null)
  43. {
  44. $query = $this->createDefaultQuery($query);
  45. $query->filterByUser($user);
  46. return $query->find();
  47. }
  48. // findReductionGiftOwnedByUser
  49. public function getReductionGiftOwnedByUser(UserInterface $user, $query = null)
  50. {
  51. $query = $this->createDefaultQuery($query);
  52. $query
  53. ->filterByOwner($user)
  54. ->filterInactive();
  55. return $query->find();
  56. }
  57. // findReductionGiftOwnedActiveByUser
  58. public function getReductionGiftOwnedActiveByUser(UserInterface $user, $query = null)
  59. {
  60. $query = $this->createDefaultQuery($query);
  61. $query
  62. ->filterByOwner($user)
  63. ->filterActive();
  64. return $query->find();
  65. }
  66. }