use Setono\SyliusStockMovementPlugin\Filter\FilterInterface;
12
13
class StockMovementProvider implements StockMovementProviderInterface
14
{
15
/** @var FilterInterface[] */
16
protected $filters = [];
17
18
/** @var EntityRepository */
19
private $repository;
20
21
public function __construct(EntityRepository $repository)
22
{
23
$this->repository = $repository;
24
}
25
26
public function addFilter(FilterInterface $filter): void
27
{
28
$this->filters[] = $filter;
29
}
30
31
public function getStockMovements(): Generator
32
{
33
$qb = $this->repository->createQueryBuilder('o');
34
35
foreach ($this->filters as $filter) {
36
$filter->filter($qb);
37
}
38
39
// Use output walkers option in DoctrineORMAdapter should be false as it affects performance greatly. (see https://github.com/Sylius/Sylius/issues/3775)
40
$paginator = new Pagerfanta(new DoctrineORMAdapter($qb, false, false));