1

我正在尝试从 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',
    ));

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

4

3 回答 3

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',
        大批(
            'header'=> $this->__('Invoice Id'),
            '对齐' =>'正确',
            '类型=' => '文本',
            'index' => 'invoice_id',
        )
        );

有关更多信息,请在 http://www.webtechnologycodes.com上关注我

于 2014-01-21T05:54:05.797 回答
0

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

于 2013-02-06T11:14:48.010 回答
0

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

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

于 2013-07-19T06:03:39.613 回答