【发布时间】:2014-07-22 10:11:22
【问题描述】:
我在销售订单中添加了名为发票的新批量操作。我想在单击此操作时创建发票。当我从列表中选择订单,然后在销售订单操作中选择发票时,我如何获取订单 ID。
我的新批量操作发票显示在操作中,但是当我选择发票操作并提交时,我无法为所选订单开具发票。
app/code/local/MagePsycho/Newmodule/Block/Sales/Order/Grid.php:
<?php
class MagePsycho_Newmodule_Block_Sales_Order_Grid extends Mage_Adminhtml_Block_Sales_Order_Grid
{
protected function _prepareMassaction()
{
parent::_prepareMassaction();
// Append new mass action option
$this->getMassactionBlock()->addItem(
'newmodule',
array('label' => $this->__('New Mass Action Title'),
'url' => $this->getUrl('newmodule/controller/action') //this should be the url where there will be mass operation
)
);
}
}
app/code/local/MagePsycho/Newmodule/etc:-
<global>
<blocks>
<adminhtml>
<rewrite>
<sales_order_grid>MagePsycho_Newmodule_Block_Sales_Order_Grid</sales_order_grid>
</rewrite>
<events>
<core_block_abstract_prepare_layout_before>
<observers>
<newmodule_core_block_abstract_prepare_layout_before>
<class>newmodule/observer</class>
<method>addMassAction</method>
</newmodule_core_block_abstract_prepare_layout_before>
</observers>
</core_block_abstract_prepare_layout_before>
</events>
</adminhtml>
</blocks>
</global>
app/code/local/MagePsycho/Newmodule/Model/Observer.php:-
<?php
class MagePsycho_Newmodule_Model_Observer
{
public function addMassAction($observer)
{
echo 'hello magento';
$block = $observer->getEvent()->getBlock();
if(get_class($block) =='Mage_Adminhtml_Block_Widget_Grid_Massaction'
&& $block->getRequest()->getControllerName() == 'sales_order')
{
$block->addItem('newmodule', array(
'label' => 'New Mass Action Title',
'url' => Mage::app()->getStore()->getUrl('newmodule/controller/action'),
));
}
}
}
我可以做些什么来为我的行为开具发票?
【问题讨论】: