*/ namespace Magento\Backend\Block\Dashboard; class Totals extends \Magento\Backend\Block\Dashboard\Bar { /** * @var string */ protected $_template = 'Magento_Backend::dashboard/totalbar.phtml'; /** * @var \Magento\Framework\Module\Manager */ protected $_moduleManager; /** * @param \Magento\Backend\Block\Template\Context $context * @param \Magento\Reports\Model\ResourceModel\Order\CollectionFactory $collectionFactory * @param \Magento\Framework\Module\Manager $moduleManager * @param array $data */ public function __construct( \Magento\Backend\Block\Template\Context $context, \Magento\Reports\Model\ResourceModel\Order\CollectionFactory $collectionFactory, \Magento\Framework\Module\Manager $moduleManager, array $data = [] ) { $this->_moduleManager = $moduleManager; parent::__construct($context, $collectionFactory, $data); } /** * @return $this|void */ protected function _prepareLayout() { if (!$this->_moduleManager->isEnabled('Magento_Reports')) { return $this; } $isFilter = $this->getRequest()->getParam( 'store' ) || $this->getRequest()->getParam( 'website' ) || $this->getRequest()->getParam( 'group' ); $period = $this->getRequest()->getParam('period', '24h'); /* @var $collection \Magento\Reports\Model\ResourceModel\Order\Collection */ $collection = $this->_collectionFactory->create()->addCreateAtPeriodFilter( $period )->calculateTotals( $isFilter ); if ($this->getRequest()->getParam('store')) { $collection->addFieldToFilter('store_id', $this->getRequest()->getParam('store')); } else { if ($this->getRequest()->getParam('website')) { $storeIds = $this->_storeManager->getWebsite($this->getRequest()->getParam('website'))->getStoreIds(); $collection->addFieldToFilter('store_id', ['in' => $storeIds]); } else { if ($this->getRequest()->getParam('group')) { $storeIds = $this->_storeManager->getGroup($this->getRequest()->getParam('group'))->getStoreIds(); $collection->addFieldToFilter('store_id', ['in' => $storeIds]); } elseif (!$collection->isLive()) { $collection->addFieldToFilter( 'store_id', ['eq' => $this->_storeManager->getStore(\Magento\Store\Model\Store::ADMIN_CODE)->getId()] ); } } } $collection->load(); $totals = $collection->getFirstItem(); $this->addTotal(__('Revenue'), $totals->getRevenue()); $this->addTotal(__('Tax'), $totals->getTax()); $this->addTotal(__('Shipping'), $totals->getShipping()); $this->addTotal(__('Quantity'), $totals->getQuantity() * 1, true); } }