*/ class Mage_Sales_Model_Resource_Report_Invoiced_Collection_Order extends Mage_Sales_Model_Resource_Report_Collection_Abstract { /** * Period format * * @var string */ protected $_periodFormat; /** * Columns for select * * @var array */ protected $_selectedColumns = array(); /** * Initialize custom resource model * */ public function __construct() { parent::_construct(); $this->setModel('adminhtml/report_item'); $this->_resource = Mage::getResourceModel('sales/report')->init('sales/invoiced_aggregated_order'); $this->setConnection($this->getResource()->getReadConnection()); } /** * Retrieve columns for select * * @return array */ protected function _getSelectedColumns() { $adapter = $this->getConnection(); if ('month' == $this->_period) { $this->_periodFormat = $adapter->getDateFormatSql('period', '%Y-%m'); } elseif ('year' == $this->_period) { $this->_periodFormat = $adapter->getDateExtractSql('period', Varien_Db_Adapter_Interface::INTERVAL_YEAR); } else { $this->_periodFormat = $adapter->getDateFormatSql('period', '%Y-%m-%d'); } if (!$this->isTotals()) { $this->_selectedColumns = array( 'period' => $this->_periodFormat, 'orders_count' => 'SUM(orders_count)', 'orders_invoiced' => 'SUM(orders_invoiced)', 'invoiced' => 'SUM(invoiced)', 'invoiced_captured' => 'SUM(invoiced_captured)', 'invoiced_not_captured' => 'SUM(invoiced_not_captured)' ); } if ($this->isTotals()) { $this->_selectedColumns = $this->getAggregatedColumns(); } return $this->_selectedColumns; } /** * Add selected data * * @return Mage_Sales_Model_Resource_Report_Invoiced_Collection_Order */ protected function _initSelect() { $this->getSelect()->from($this->getResource()->getMainTable() , $this->_getSelectedColumns()); if (!$this->isTotals()) { $this->getSelect()->group($this->_periodFormat); $this->getSelect()->having('SUM(orders_count) > 0'); } return $this; } }