Я хочу создать пользовательский отчет в Magento 1.9 на основе учебника по https://www.atwix.com/magento/simple-products-report/
В этом отчете мне понадобится дополнительный столбец с SUM
из product qty
из другой таблицы в указанном интервале.
Отчет аналогичен отчетам -> Продукт -> Заказчик продуктов.
Я могу выбрать даты (from
и to
), но эти даты недоступны в Frontline_Simpleproductsreport_Block_Report_Product_Inventory
.
В: Как я могу получить даты (from
и to
) в функции 'render'?
Также: есть ли другой подход для расчета суммы на основе диапазонов дат отчета?
Ниже приведены соответствующие части из моей текущей реализации.
/app/code/local/Frontline/Simpleproductsreport/Block/Report/Product/Simplesold/Grid.php
<?php
class Frontline_Simpleproductsreport_Block_Report_Product_Simplesold_Grid extends Mage_Adminhtml_Block_Report_Product_Sold_Grid
{
/**
* Setting up proper product collection name for a report
*
* @return Frontline_Simpleproductsreport_Block_Report_Product_Simplesold_Grid
*/
protected function _prepareCollection()
{
Mage_Adminhtml_Block_Report_Grid::_prepareCollection();
$this->getCollection()
->initReport('frontline_simpleproductsreport/simpleproduct_sold_collection');
return $this;
}
protected function _prepareColumns()
{
$this->addColumn('entity_id', array(
'header' => Mage::helper('reports')->__('ID'),
'index' => 'entity_id',
'align' => 'left'
));
$this->addColumn('name', array(
'header' => Mage::helper('reports')->__('Product Name'),
'index' => 'name',
'align' => 'left'
));
$this->addColumn('ordered_qty', array(
'header' => Mage::helper('reports')->__('Quantity Ordered'),
'index' => 'ordered_qty',
'align' => 'left'
));
$this->addColumn('inventory', array(
'header' => Mage::helper('reports')->__('Inventory'),
'index' => 'inventory',
'align' => 'left',
'renderer' => 'Frontline_Simpleproductsreport_Block_Report_Product_Inventory',
));
return parent::_prepareColumns();
}
}
/app/code/local/Frontline/Simpleproductsreport/Block/Report/Product/Inventory.php
<?php
class Frontline_Simpleproductsreport_Block_Report_Product_Inventory extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract
{
public function render(Varien_Object $row)
{
$movements = Mage::getModel('stockmonitor/stockmovement')->getCollection()
->addFieldToFilter('product_id', $row->getData('entity_id'))
->addFieldToFilter('order_id', 0)
->getColumnValues('qty_change');
return count($movements);
}
}
Заранее спасибо:)