1

现在在 magento 上,当我将发票打印为 PDF 时,它显示“订单日期”。我们需要将其替换为“发票创建日期”。

你能告诉我该怎么做吗?

谢谢。

4

3 回答 3

1

加载发票

$invoice = Mage::getModel('sales/order_invoice')->loadByIncrementId($invoiceIncrementId);

然后使用获取发票日期

$createdDate = $invoice->getCreatedAt();

并放入 $createdDate 并修改以下代码

$page->drawText(
            Mage::helper('sales')->__('Order Date: ') . Mage::helper('core')->formatDate(
                $order->getCreatedAtStoreDate(), 'medium', false
            ),
            35,
            ($top -= 15),
            'UTF-8'
        );

$page->drawText(
            Mage::helper('sales')->__('Invoice Creation Date: ') . Mage::helper('core')->formatDate(
                $createdDate, 'medium', false
            ),
            35,
            ($top -= 15),
            'UTF-8'
        );

笔记 :-

如果您有同一个订单的多张发票,那么您可以通过以下方式获取所有发票增量 ID

$_invoices = $_order->getInvoiceCollection();
foreach($_invoices as $_invoice){

     $_invoice->getIncrementId() = $_invoice->getIncrementId();
}
于 2013-01-10T20:00:00.973 回答
0

由于 Magento 严格通过 PHP 代码创建订单 PDF(意味着它不使用任何 html->pdf 解析器或任何类似的想法),因此您必须扩展执行此操作的类并相应地对其进行修改。因此,您正在寻找的课程是:

Mage_Sales_Model_Order_Pdf_Invoice

用方法

protected function insertOrder(&$page, $obj, $putOrderId = true)

然后搜索

$page->drawText( Mage::helper('sales')->__('Order Date: ') . Mage::helper('core')->formatDate($order->getCreatedAtStoreDate(), 'medium', false), 35, ($top -= 15), 'UTF-8');

我猜你知道如何用你自己的模块来扩展它。如果没有,该过程在如何在 Magento 中创建简单的“Hello World”模块中进行了描述?.

于 2013-01-10T16:58:06.943 回答
0

我有同样的问题,并在第 132 行将发票日期添加到 app/code/core/Mage/Sales/Model/Order/invoice.php

 /* Add document text and number */
        $this->insertDocumentNumber(
            $page,
            Mage::helper('sales')->__('Invoice # ') . $invoice->getIncrementId()
 .' '.
        Mage::helper('sales')->__('Invoice date: ') . Mage::helper('core')->formatDate(
            $invoice->getCreatedAt(), 'medium', false
        ),
        35,
        ($top -= 15),
        'UTF-8'
        );
于 2014-04-02T09:06:05.240 回答