| Server IP : 213.186.33.4 / Your IP : 216.73.216.193 Web Server : Apache System : Linux webm006.cluster103.gra.hosting.ovh.net 5.15.206-ovh-vps-grsec-zfs-classid #1 SMP Fri May 15 02:41:25 UTC 2026 x86_64 User : awebpaca ( 35430) PHP Version : 8.5.0 Disable Function : _dyuweyrj4,_dyuweyrj4r,dl MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/a/w/e/awebpaca/boutiques/app/code/core/Mage/Adminhtml/Block/Report/Grid/ |
Upload File : |
<?php
/**
* Magento
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/osl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@magentocommerce.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade Magento to newer
* versions in the future. If you wish to customize Magento for your
* needs please refer to http://www.magentocommerce.com for more information.
*
* @category Mage
* @package Mage_Adminhtml
* @copyright Copyright (c) 2010 Magento Inc. (http://www.magentocommerce.com)
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
*/
class Mage_Adminhtml_Block_Report_Grid_Abstract extends Mage_Adminhtml_Block_Widget_Grid
{
protected $_resourceCollectionName = '';
protected $_currentCurrencyCode = null;
protected $_storeIds = array();
protected $_aggregatedColumns = null;
public function __construct()
{
parent::__construct();
$this->setFilterVisibility(false);
$this->setPagerVisibility(false);
$this->setUseAjax(false);
if (isset($this->_columnGroupBy)) {
$this->isColumnGrouped($this->_columnGroupBy, true);
}
$this->setEmptyCellLabel(Mage::helper('reports')->__('No records found for this period.'));
}
public function getResourceCollectionName()
{
return $this->_resourceCollectionName;
}
public function getCollection()
{
if (is_null($this->_collection)) {
$this->setCollection(Mage::getModel('reports/grouped_collection'));
}
return $this->_collection;
}
protected function _getAggregatedColumns()
{
if (is_null($this->_aggregatedColumns)) {
foreach ($this->getColumns() as $column) {
if (!is_array($this->_aggregatedColumns)) {
$this->_aggregatedColumns = array();
}
if ($column->hasTotal()) {
$this->_aggregatedColumns[$column->getId()] = "{$column->getTotal()}({$column->getIndex()})";
}
}
}
return $this->_aggregatedColumns;
}
/**
* Add column to grid
* Overriden to add support for visibility_filter column option
* It stands for conditional visibility of the column depending on filter field values
* Value of visibility_filter supports (filter_field_name => filter_field_value) pairs
*
* @param string $columnId
* @param array $column
* @return Mage_Adminhtml_Block_Report_Grid_Abstract
*/
public function addColumn($columnId, $column)
{
if (is_array($column) && array_key_exists('visibility_filter', $column)) {
$filterData = $this->getFilterData();
$visibilityFilter = $column['visibility_filter'];
if (!is_array($visibilityFilter)) {
$visibilityFilter = array($visibilityFilter);
}
foreach ($visibilityFilter as $k => $v) {
if (is_int($k)) {
$filterFieldId = $v;
$filterFieldValue = true;
} else {
$filterFieldId = $k;
$filterFieldValue = $v;
}
if (!$filterData->hasData($filterFieldId) || $filterData->getData($filterFieldId) != $filterFieldValue) {
return $this; // don't add column
}
}
}
return parent::addColumn($columnId, $column);
}
protected function _prepareCollection()
{
$filterData = $this->getFilterData();
if ($filterData->getData('from') == null || $filterData->getData('to') == null) {
$this->setCountTotals(false);
$this->setCountSubTotals(false);
return parent::_prepareCollection();
}
$resourceCollection = Mage::getResourceModel($this->getResourceCollectionName())
->setPeriod($filterData->getData('period_type'))
->setDateRange($filterData->getData('from', null), $filterData->getData('to', null))
->addStoreFilter(explode(',', $filterData->getData('store_ids')))
->addOrderStatusFilter($filterData->getData('order_statuses'))
->setAggregatedColumns($this->_getAggregatedColumns());
if ($this->_isExport) {
$this->setCollection($resourceCollection);
return $this;
}
if ($filterData->getData('show_empty_rows', false)) {
Mage::helper('reports')->prepareIntervalsCollection(
$this->getCollection(),
$filterData->getData('from', null),
$filterData->getData('to', null),
$filterData->getData('period_type')
);
}
if ($this->getCountSubTotals()) {
$this->getSubTotals();
}
if ($this->getCountTotals()) {
$totalsCollection = Mage::getResourceModel($this->getResourceCollectionName())
->setPeriod($filterData->getData('period_type'))
->setDateRange($filterData->getData('from', null), $filterData->getData('to', null))
->addStoreFilter(explode(',', $filterData->getData('store_ids')))
->addOrderStatusFilter($filterData->getData('order_statuses'))
->setAggregatedColumns($this->_getAggregatedColumns())
->isTotals(true);
foreach ($totalsCollection as $item) {
$this->setTotals($item);
break;
}
}
$this->getCollection()->setColumnGroupBy($this->_columnGroupBy);
$this->getCollection()->setResourceCollection($resourceCollection);
return parent::_prepareCollection();
}
public function getCountTotals()
{
if (!$this->getTotals()) {
$filterData = $this->getFilterData();
$totalsCollection = Mage::getResourceModel($this->getResourceCollectionName())
->setPeriod($filterData->getData('period_type'))
->setDateRange($filterData->getData('from', null), $filterData->getData('to', null))
->addStoreFilter(explode(',', $filterData->getData('store_ids')))
->addOrderStatusFilter($filterData->getData('order_statuses'))
->setAggregatedColumns($this->_getAggregatedColumns())
->isTotals(true);
if (count($totalsCollection->getItems()) < 1 || !$filterData->getData('from')) {
$this->setTotals(new Varien_Object());
} else {
foreach ($totalsCollection->getItems() as $item) {
$this->setTotals($item);
break;
}
}
}
return parent::getCountTotals();
}
public function getSubTotals()
{
$filterData = $this->getFilterData();
$subTotalsCollection = Mage::getResourceModel($this->getResourceCollectionName())
->setPeriod($filterData->getData('period_type'))
->setDateRange($filterData->getData('from', null), $filterData->getData('to', null))
->addStoreFilter(explode(',', $filterData->getData('store_ids')))
->addOrderStatusFilter($filterData->getData('order_statuses'))
->setAggregatedColumns($this->_getAggregatedColumns())
->isSubTotals(true);
$this->setSubTotals($subTotalsCollection->getItems());
return parent::getSubTotals();
}
public function setStoreIds($storeIds)
{
$this->_storeIds = $storeIds;
return $this;
}
public function getCurrentCurrencyCode()
{
if (is_null($this->_currentCurrencyCode)) {
$this->_currentCurrencyCode = (count($this->_storeIds) > 0)
? Mage::app()->getStore(array_shift($this->_storeIds))->getBaseCurrencyCode()
: Mage::app()->getStore()->getBaseCurrencyCode();
}
return $this->_currentCurrencyCode;
}
}