如何在Magento上显示发票创建日期

时间:2013-01-10 16:21:33

标签: magento pdf invoice

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

你能告诉我怎么做吗?

感谢。

3 个答案:

答案 0 :(得分: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();
}

答案 1 :(得分: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');

我猜你知道如何使用自己的模块扩展它。如果没有,则在How to create a simple 'Hello World' module in Magento?中描述该过程。

答案 2 :(得分: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'
        );