MagentoのPDF請求書に問題があります。配信に使用したPDF請求書をカスタマイズしたい。したがって、総計価格(総計のみ)のフィールドが1つ必要です。この総計をどうやって取得できますか?
5812 次
1 に答える
2
Magento が PDF に合計を表示する方法は、ショッピング カートとチェックアウト内で行う方法とほとんど同じです。合計の配列を取得し、それらを反復処理して表示します。
私が理解していることから、請求書の PDF に総計のみを表示したいですか?
合計を処理するコードは/app/code/core/Mage/Sales/Order/Pdf/Abstract.php
、 という関数にありますinsertTotals
。
ファイルにAbstract.php
あるため、コードは請求書、クレジットメモなどに使用されるため、/app/code/core/Mage/Sales/Order/Pdf/Invoice.php
ファイルをコピーしてオーバーライドするだけで/app/code/local/Mage/Sales/Order/Pdf/Invoice.php
なく (コアをいじらないでください!)、オーバーライドする必要もあります。関数を使用して、insertTotals
総計データのみを表示します。
public function insertTotals($page, $source){
$order = $source->getOrder();
$totals = $this->_getTotalsList($source);
$lineBlock = array(
'lines' => array(),
'height' => 15
);
foreach ($totals as $total) {
$total->setOrder($order)
->setSource($source);
// only allow Grand Total to be displayed
if ($total->getSourceField() != 'grand_total')
{
continue;
}
if ($total->canDisplay()) {
foreach ($total->getTotalsForDisplay() as $totalData) {
$lineBlock['lines'][] = array(
array(
'text' => $totalData['label'],
'feed' => 475,
'align' => 'right',
'font_size' => $totalData['font_size'],
'font' => 'bold'
),
array(
'text' => $totalData['amount'],
'feed' => 565,
'align' => 'right',
'font_size' => $totalData['font_size'],
'font' => 'bold'
),
);
}
}
}
$page = $this->drawLineBlocks($page, array($lineBlock));
return $page;
}
于 2012-10-09T00:26:24.303 に答える