【发布时间】:2013-01-10 16:21:32
【问题描述】:
现在在 magento 上,当我将发票打印为 PDF 时,它显示“订单日期”。我们需要将其替换为“发票创建日期”。
你能告诉我怎么做吗?
谢谢。
【问题讨论】:
现在在 magento 上,当我将发票打印为 PDF 时,它显示“订单日期”。我们需要将其替换为“发票创建日期”。
你能告诉我怎么做吗?
谢谢。
【问题讨论】:
通过以下方式加载发票
$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();
}
【讨论】:
由于 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');
我猜你知道如何用你自己的模块来扩展它。如果没有,该过程在How to create a simple 'Hello World' module in Magento? 中进行了描述。
【讨论】:
我遇到了同样的问题,并在第 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'
);
【讨论】: