質問があります。請求書をPDFで印刷するための一括アクションを追加するにはどうすればよいですか。2つの異なるPDF請求書(1つはデフォルトの「請求書の印刷」)が必要なので、アクション「請求書2の印刷」を追加したいと思います。「請求書2の印刷」の印刷を開始するにはどうすればよいですか?
誰かが助けてくれることを願っています!
一括アクションを請求書グリッド (管理者の [販売] > [請求書]) に追加すると仮定すると、次の操作を行う必要があります。
クラスを書き直してMage_Adminhtml_Block_Sales_Invoice_Grid
、独自のものに置き換えます。新しいクラスは、独自の拡張機能であり、から継承する必要がありますMage_Adminhtml_Block_Sales_Invoice_Grid
。ブロックを書き換える方法がわからない場合は、このブログ投稿が役立ちます。 注:グリッド ブロックをコピーすることもできますが、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;
}
}
呼び出しの「url」パラメーターはaddItem()
、PDF を生成するための独自のロジックを実装できる独自のコントローラーを指す必要があります。app/code/core/Mage/Adminhtml/Controller/Sales/Invoice.php
インスピレーションが必要な場合は、標準的な質量アクション PDF ジェネレーターが 129 行にあります。