如何在订单网格上获取发票increment_id? (Magento 1.7)

时间:2013-02-06 10:56:40

标签: magento magento-1.7

我正在尝试从sales_flat_invoice表中获取increment_id以显示在我的订单网格上。

我设法做到了,但之后它只会显示已开发票的订单。

总结起来,我正在尝试做的是创建一个包含发票的increment_id的列(如果订单已开具发票 - 如果没有,则应该为空白。)

使用的代码如下:

在_prepareCollection()中:

protected function _prepareCollection()
{
    $collection = Mage::getResourceModel($this->_getCollectionClass());
    $collection->getSelect()
    ->join(
        array('address' => $collection->getTable("sales/order_address")),
        'main_table.entity_id = address.parent_id AND address.address_type = "shipping"',
        array('postcode')
    );
    //$collection->join('invoice', 'main_table.entity_id = invoice.order_id', 'increment_id as invoice_id');


    $this->setCollection($collection);
    return parent::_prepareCollection();
}

在_prepareColumns()中:

    $this->addColumn('invoice_id', array(
        'header' => 'Faktureret',
        'index' => 'invoice_id',
        'width' => '70px',
        'type' => 'text',
    ));

谢谢,祝你有个美好的一天!

3 个答案:

答案 0 :(得分:1)

如果要在销售订单网格中添加发票ID,则可以在prepareCollection()函数中使用以下代码

$collection->getSelect()->joinLeft('sales_flat_invoice', 'main_table.entity_id = sales_flat_invoice.order_id', 'increment_id as invoice_id');

通过使用以下代码,您可以从销售订单网格中的当前订单ID获取发票ID。 在此之后添加列字段为

$this->addColumn('invoice_id',
        array(
            'header'=> $this->__('Invoice Id'),
            'align' =>'right',
            'type=' => 'text',
            'index' => 'invoice_id',
        )
        );

更多关注我 http://www.webtechnologycodes.com

答案 1 :(得分:0)

您需要进行LEFT JOIN。使用 - > joinLeft。 - >加入对 - > joinInner

的引用

答案 2 :(得分:0)

从订单明细中获取发票详细信息。你可以用

$ _ orders = $ this-> getOrders(); $ _invoices = $ _order-> getInvoiceCollection();