<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Sales\Model\ResourceModel\Report\Collection; /** * Report collection abstract model * * @author Magento Core Team <core@magentocommerce.com> */ class AbstractCollection extends \Magento\Reports\Model\ResourceModel\Report\Collection\AbstractCollection { /** * Order status * * @var string */ protected $_orderStatus = null; /** * @param \Magento\Framework\Data\Collection\EntityFactory $entityFactory * @param \Psr\Log\LoggerInterface $logger * @param \Magento\Framework\Data\Collection\Db\FetchStrategyInterface $fetchStrategy * @param \Magento\Framework\Event\ManagerInterface $eventManager * @param \Magento\Sales\Model\ResourceModel\Report $resource * @param \Magento\Framework\DB\Adapter\AdapterInterface $connection */ public function __construct( \Magento\Framework\Data\Collection\EntityFactory $entityFactory, \Psr\Log\LoggerInterface $logger, \Magento\Framework\Data\Collection\Db\FetchStrategyInterface $fetchStrategy, \Magento\Framework\Event\ManagerInterface $eventManager, \Magento\Sales\Model\ResourceModel\Report $resource, \Magento\Framework\DB\Adapter\AdapterInterface $connection = null ) { parent::__construct($entityFactory, $logger, $fetchStrategy, $eventManager, $connection, $resource); $this->setModel(\Magento\Reports\Model\Item::class); } /** * Set status filter * * @param string $orderStatus * @return $this */ public function addOrderStatusFilter($orderStatus) { $this->_orderStatus = $orderStatus; return $this; } /** * Apply order status filter * * @return $this */ protected function _applyOrderStatusFilter() { if ($this->_orderStatus === null) { return $this; } $orderStatus = $this->_orderStatus; if (!is_array($orderStatus)) { $orderStatus = [$orderStatus]; } $this->getSelect()->where('order_status IN(?)', $orderStatus); return $this; } /** * Order status filter is custom for this collection * * @return $this */ protected function _applyCustomFilter() { return $this->_applyOrderStatusFilter(); } }