12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- /**
- * Adminhtml dashboard totals bar
- *
- * @author Magento Core Team <core@magentocommerce.com>
- */
- 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);
- }
- }
|