我有疑问,如何添加批量操作以PDF格式打印发票。我需要两个不同的PDF发票(一个是默认的“打印发票”),所以我想添加额外的操作“打印发票2”。如何开始打印“打印发票2”?
希望有人可以提供帮助!
答案 0 :(得分:3)
假设您要将批量操作添加到发票网格(管理员中的销售>发票),您需要执行以下操作:
重写Mage_Adminhtml_Block_Sales_Invoice_Grid
类并将其替换为您自己的类。您的新课程应该在其自己的扩展中,并从Mage_Adminhtml_Block_Sales_Invoice_Grid
继承。如果你不确定如何重写一个块,this blog post should help你就出来了。 注意:您可以将网格块复制到app/code/local/
,但这会让Magento升级变得困难。更好的方法是重写并覆盖尽可能少的功能。
您的班级应该提供自己的_prepareMassaction
功能,然后添加新动作。以下代码(虽然完全未经测试)应该这样做:
class MyNamspace_Extension_Block_Adminhtml_Invoice_Grid extends Mage_Adminhtml_Block_Sales_Invoice_Grid {
protected function _prepareMassaction() {
parent::_prepareMassaction();
$this->getMassactionBlock()->addItem('pdfinvoices_order2', array(
'label'=> Mage::helper('myextension')->__('PDF Invoices2'),
'url' => $this->getUrl('myroute/mycontroller/myaction'),
));
return $this;
}
}
addItem()
调用中的“url”参数应指向您自己的控制器,您可以在其中实现自己的逻辑以生成PDF。如果你想要一些灵感,可以在第{129行app/code/core/Mage/Adminhtml/Controller/Sales/Invoice.php
找到标准的质量动作PDF生成器。