Skip to main content

app/code/local/Gallerypad/Inventory/etc/config.xml

app/code/local/Gallerypad/Inventory/etc/config.xml

app/design/adminhtml/default/default/layout/inventory.xml

app/design/adminhtml/default/default/layout/inventory.xml

app/code/local/Gallerypad/Inventory/Block/Inventory.php

app/code/local/Gallerypad/Inventory/Block/Inventory.php

app/code/local/Gallerypad/Inventory/Block/Adminhtml/Inventory.php (there was confusion in orginial post about Adminhtml or adminhtml, so I've tried both ways)

app/code/local/Gallerypad/Inventory/Block/Adminhtml/Inventory.php

(there was confusion in orginial post about Adminhtml or adminhtml, so I've tried both ways)

app/code/local/Gallerypad/Inventory/Block/Adminhtml/Inventory/Grid.php

app/code/local/Gallerypad/Inventory/Block/Adminhtml/Inventory/Grid.php

app/code/local/Gallerypad/Inventory/etc/config.xml

app/design/adminhtml/default/default/layout/inventory.xml

app/code/local/Gallerypad/Inventory/Block/Inventory.php

app/code/local/Gallerypad/Inventory/Block/Adminhtml/Inventory.php (there was confusion in orginial post about Adminhtml or adminhtml, so I've tried both ways)

app/code/local/Gallerypad/Inventory/Block/Adminhtml/Inventory/Grid.php

app/code/local/Gallerypad/Inventory/etc/config.xml

app/design/adminhtml/default/default/layout/inventory.xml

app/code/local/Gallerypad/Inventory/Block/Inventory.php

app/code/local/Gallerypad/Inventory/Block/Adminhtml/Inventory.php

(there was confusion in orginial post about Adminhtml or adminhtml, so I've tried both ways)

app/code/local/Gallerypad/Inventory/Block/Adminhtml/Inventory/Grid.php

Source Link
lv2fly
  • 141
  • 16

Create custom inventory report

I'm trying to create some custom inventory reports without luck. I started with this tutorial. Creating new completely custom reports

I have followed everything to the letter and started over several times just to be sure I didn't miss something, but still get a blank page. All the files are loading except everything under Block.

There are a few things about the config files I still don't understand, so can someone tell me if everything looks good here:

My Company is Gallerypad and Namespace is Inventory

app/code/local/Gallerypad/Inventory/etc/config.xml

<?xml version="1.0"?>
<config>
    <modules>
        <Gallerypad_Inventory>
            <version>0.1.0</version>
        </Gallerypad_Inventory>
    </modules>

    <admin>
        <routers>
            <inventory>
                <use>admin</use>
                <args>
                    <module>Gallerypad_Inventory</module>
                    <frontName>inventory</frontName>
                </args>
            </inventory>
        </routers>
    </admin>

    <adminhtml>
        <menu>
            <report>
                <children>
                    <inventory translate="title" module="inventory">
                        <title>Inventory Report</title>
                        <action>inventory/adminhtml_inventory</action>
                    </inventory>
                </children>
            </report>
        </menu>
        <acl>
            <resources>
                <all>
                    <title>Allow Everything</title>
                </all>
                <admin>
                    <children>
                        <report>
                            <children>
                                <inventory translate="title" module="inventory">
                                    <title>Inventory Report</title>
                                    <action>inventory/adminhtml_inventory</action>
                                </inventory>
                            </children>
                        </report>
                    </children>
                </admin>
            </resources>
        </acl>
        <layout>
            <updates>
                <inventory>
                    <file>inventory.xml</file>
                </inventory>
            </updates>
        </layout>
    </adminhtml>
    <global>
        <models>
            <inventory>
                <class>Gallerypad_Inventory_Model</class>
                <resourceModel>inventory</resourceModel>
            </inventory>
        </models>
        <resources>
            <inventory_setup>
                <setup>
                    <module>Gallerypad_Inventory</module>
                </setup>
                <connection>
                    <use>core_setup</use>
                </connection>
            </inventory_setup>
            <inventory_write>
                <connection>
                    <use>core_write</use>
                </connection>
            </inventory_write>
            <inventory_read>
                <connection>
                    <use>core_read</use>
                </connection>
            </inventory_read>
        </resources>
        <blocks>
            <inventory>
                <class>Gallerypad_Inventory_Block</class>
            </inventory>
        </blocks>
        <helpers>
            <inventory>
                <class>Gallerypad_Inventory_Helper</class>
            </inventory>
        </helpers>
    </global>
</config>

app/design/adminhtml/default/default/layout/inventory.xml

<?xml version="1.0"?>
<layout version="0.1.0">
    <inventory_adminhtml_inventory_index>
        <reference name="content">
            <block type="inventory/adminhtml_inventory" name="inventory" />
        </reference>
    </inventory_adminhtml_inventory_index>
</layout>

app/code/local/Gallerypad/Inventory/Block/Inventory.php

<?php
class Gallerypad_Inventory_Block_Inventory extends Mage_Core_Block_Template {
    public function _prepareLayout() {
        var_dump(debug_backtrace());
        return parent::_prepareLayout();
    }

    public function getInventory()  {
        if (!$this->hasData('inventory')) 
        {
            $this->setData('inventory', Mage::registry('inventory'));
        }
        return $this->getData('inventory');
    } 
}

app/code/local/Gallerypad/Inventory/Block/Adminhtml/Inventory.php (there was confusion in orginial post about Adminhtml or adminhtml, so I've tried both ways)

<?php
class Gallerypad_Inventory_Block_Adminhtml_Inventory extends Mage_Adminhtml_Block_Widget_Grid_Container {
    public function __construct() {
        $this->_controller = 'adminhtml_inventory';
        $this->_blockGroup = 'inventory';
        $this->_headerText = Mage::helper('inventory')->__('Inventory Report');
        parent::__construct();
        $this->_removeButton('add');
    }
}

app/code/local/Gallerypad/Inventory/Block/Adminhtml/Inventory/Grid.php

<?php
class Gallerypad_Inventory_Block_Adminhtml_Inventory_Grid extends Mage_Adminhtml_Block_Report_Grid {
    public function __construct() {
        parent::__construct();
        $this->setId('inventoryGrid');
        $this->setDefaultSort('created_at');
        $this->setDefaultDir('ASC');
        $this->setSaveParametersInSession(true);
        $this->setSubReportSize(false);
    }

    protected function _prepareCollection() {
        parent::_prepareCollection();
        $this->getCollection()->initReport('inventory/inventory');
        return $this;
    }

    protected function _prepareColumns() {
        $this->addColumn('ordered_qty', array(
            'header'    =>Mage::helper('reports')->__('Quantity Ordered'),
            'align'     =>'right',
            'index'     =>'ordered_qty',
            'total'     =>'sum',
            'type'      =>'number'
        ));
        $this->addColumn('item_id', array(
            'header' => Mage::helper('inventory')->__('Item ID'),
            'align' => 'right',
            'index' => 'item_id',
            'type'  => 'number',
            'total' => 'sum',
        ));
        $this->addExportType('*/*/exportCsv', Mage::helper('inventory')->__('CSV'));
        $this->addExportType('*/*/exportXml', Mage::helper('inventory')->__('XML'));
        return parent::_prepareColumns();
    }

    public function getRowUrl($row) {
        return false;
    }

    public function getReport($from, $to) {
        if ($from == '') {
            $from = $this->getFilter('report_from');
        }
        if ($to == '') {
            $to = $this->getFilter('report_to');
        }
        $totalObj = Mage::getModel('reports/totals');
        $totals = $totalObj->countTotals($this, $from, $to);
        $this->setTotals($totals);
        $this->addGrandTotals($totals);
        return $this->getCollection()->getReport($from, $to);
    }
}

The other parts from the original post seem to be working, so I won't repost. Any help would be very appreciated as I've got over 20 hours trying different things.