/** * @return array */ public function toOptionArray() { $statuses = $this->_stateStatuses ? $this->_orderConfig->getStateStatuses($this->_stateStatuses) : $this->_orderConfig->getStatuses(); $options = [['value' => '', 'label' => __(self::UNDEFINED_OPTION_LABEL)]]; foreach ($statuses as $code => $label) { $options[] = ['value' => $code, 'label' => $label]; } return $options; }
/** * @return array */ public function toOptionArray() { $statuses = $this->_stateStatuses ? $this->_orderConfig->getStateStatuses($this->_stateStatuses) : $this->_orderConfig->getStatuses(); $options = [['value' => '', 'label' => __('-- Please Select --')]]; foreach ($statuses as $code => $label) { $options[] = ['value' => $code, 'label' => $label]; } return $options; }
/** * Calculate lifitime sales * * @param int $isFilter * @return $this */ public function calculateSales($isFilter = 0) { $statuses = $this->_orderConfig->getStateStatuses(\Magento\Sales\Model\Order::STATE_CANCELED); if (empty($statuses)) { $statuses = [0]; } $adapter = $this->getConnection(); if ($this->_scopeConfig->getValue('sales/dashboard/use_aggregated_data', \Magento\Store\Model\ScopeInterface::SCOPE_STORE)) { $this->setMainTable('sales_order_aggregated_created'); $this->removeAllFieldsFromSelect(); $averageExpr = $adapter->getCheckSql('SUM(main_table.orders_count) > 0', 'SUM(main_table.total_revenue_amount)/SUM(main_table.orders_count)', 0); $this->getSelect()->columns(['lifetime' => 'SUM(main_table.total_revenue_amount)', 'average' => $averageExpr]); if (!$isFilter) { $this->addFieldToFilter('store_id', ['eq' => $this->_storeManager->getStore(\Magento\Store\Model\Store::ADMIN_CODE)->getId()]); } $this->getSelect()->where('main_table.order_status NOT IN(?)', $statuses); } else { $this->setMainTable('sales_order'); $this->removeAllFieldsFromSelect(); $expr = $this->_getSalesAmountExpression(); if ($isFilter == 0) { $expr = '(' . $expr . ') * main_table.base_to_global_rate'; } $this->getSelect()->columns(['lifetime' => "SUM({$expr})", 'average' => "AVG({$expr})"])->where('main_table.status NOT IN(?)', $statuses)->where('main_table.state NOT IN(?)', [\Magento\Sales\Model\Order::STATE_NEW, \Magento\Sales\Model\Order::STATE_PENDING_PAYMENT]); } return $this; }