2

MagentoのPDF請求書に問題があります。配信に使用したPDF請求書をカスタマイズしたい。したがって、総計価格(総計のみ)のフィールドが1つ必要です。この総計をどうやって取得できますか?

4

1 に答える 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 に答える