2012-10-15 87 views
2

我有問題,我如何添加批量操作以在PDF中打印發票。我需要兩個不同的PDF發票(一個是默認的「打印發票」),所以我想添加額外的操作「打印發票2」。我怎樣才能開始打印「打印發票2」?Magento - 爲打印PDF發票添加批量操作

希望有人能幫助!

+0

看看@ http://stackoverflow.com/questions/9981315/magento-add-custom-mass-action-pdf –

回答

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文件。如果您想要一些靈感,標準的批量操作PDF生成器可以在app/code/core/Mage/Adminhtml/Controller/Sales/Invoice.php的129行找到。

+0

我試着照你說的去做,但不是爲我工作。有什麼建議? –

+0

我需要發票網格中的兩個批量操作(銷售>發票,一個是默認的「打印發票」,這是好的,所以我需要第二個「打印發票2」 我已經完成修改app/code /本地/法師/銷售/型號/訂單/ Pdf爲「打印發票」(這是好的)和應用程序/代碼/本地/法師/銷售/型號/訂單/ Pdfn爲「打印發票2」 我有問題,因爲我不知道,如何以及我必須做什麼,「打印發票2」將與本地/法師/銷售/型號/訂單/ Pdfn中的文件一起工作 在我開始修改發票之前,我複製本地/法師/銷售/型號/訂單/ PDF到本地/法師/銷售/型號/訂單/ Pdfn –