【问题标题】:How to show Invoice Creation Date on Magento如何在 Magento 上显示发票创建日期
【发布时间】:2013-01-10 16:21:32
【问题描述】:

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

你能告诉我怎么做吗?

谢谢。

【问题讨论】:

    标签: magento pdf invoice


    【解决方案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();
    }
    

    【讨论】:

    • 谢谢。我试过了,还有这个替代方法: $invoice = Mage::getModel('sales/order_invoice')->loadByIncrementId($order->getOrderId());但它总是显示今天作为创建日期而不是真正的创建日期......你能帮我吗?谢谢。
    • 你能准确地说出你想在前端还是在管理面板中更改哪个地方
    • @user1916533 我有相同日期的问题,你怎么解决?
    • 我也是,你能告诉我如何解决这个问题吗?
    【解决方案2】:

    由于 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? 中进行了描述。

    【讨论】:

    • 谢谢,你能告诉我具体如何显示发票日期吗?
    【解决方案3】:

    我遇到了同样的问题,并在第 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'
            );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-12-20
      • 1970-01-01
      • 1970-01-01
      • 2012-08-11
      • 2018-09-16
      • 1970-01-01
      • 2013-03-11
      相关资源
      最近更新 更多