Order.php 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Backend\Helper\Dashboard;
  7. use Magento\Framework\App\ObjectManager;
  8. /**
  9. * Adminhtml dashboard helper for orders
  10. *
  11. * @api
  12. * @since 100.0.2
  13. */
  14. class Order extends AbstractDashboard
  15. {
  16. /**
  17. * @var \Magento\Reports\Model\ResourceModel\Order\Collection
  18. */
  19. protected $_orderCollection;
  20. /**
  21. * @var \Magento\Store\Model\StoreManagerInterface
  22. * @since 100.0.6
  23. */
  24. protected $_storeManager;
  25. /**
  26. * @param \Magento\Framework\App\Helper\Context $context
  27. * @param \Magento\Reports\Model\ResourceModel\Order\Collection $orderCollection
  28. * @param \Magento\Store\Model\StoreManagerInterface $storeManager
  29. */
  30. public function __construct(
  31. \Magento\Framework\App\Helper\Context $context,
  32. \Magento\Reports\Model\ResourceModel\Order\Collection $orderCollection,
  33. \Magento\Store\Model\StoreManagerInterface $storeManager = null
  34. ) {
  35. $this->_orderCollection = $orderCollection;
  36. $this->_storeManager = $storeManager ?: ObjectManager::getInstance()
  37. ->get(\Magento\Store\Model\StoreManagerInterface::class);
  38. parent::__construct($context);
  39. }
  40. /**
  41. * @return void
  42. *
  43. * @throws \Magento\Framework\Exception\LocalizedException
  44. * @throws \Magento\Framework\Exception\NoSuchEntityException
  45. */
  46. protected function _initCollection()
  47. {
  48. $isFilter = $this->getParam('store') || $this->getParam('website') || $this->getParam('group');
  49. $this->_collection = $this->_orderCollection->prepareSummary($this->getParam('period'), 0, 0, $isFilter);
  50. if ($this->getParam('store')) {
  51. $this->_collection->addFieldToFilter('store_id', $this->getParam('store'));
  52. } elseif ($this->getParam('website')) {
  53. $storeIds = $this->_storeManager->getWebsite($this->getParam('website'))->getStoreIds();
  54. $this->_collection->addFieldToFilter('store_id', ['in' => implode(',', $storeIds)]);
  55. } elseif ($this->getParam('group')) {
  56. $storeIds = $this->_storeManager->getGroup($this->getParam('group'))->getStoreIds();
  57. $this->_collection->addFieldToFilter('store_id', ['in' => implode(',', $storeIds)]);
  58. } elseif (!$this->_collection->isLive()) {
  59. $this->_collection->addFieldToFilter(
  60. 'store_id',
  61. ['eq' => $this->_storeManager->getStore(\Magento\Store\Model\Store::ADMIN_CODE)->getId()]
  62. );
  63. }
  64. $this->_collection->load();
  65. }
  66. }