我正在尝试从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',
));
谢谢,祝你有个美好的一天!
答案 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', ) );
答案 1 :(得分:0)
您需要进行LEFT JOIN。使用 - > joinLeft。 - >加入对 - > joinInner
的引用答案 2 :(得分:0)
从订单明细中获取发票详细信息。你可以用
$ _ orders = $ this-> getOrders(); $ _invoices = $ _order-> getInvoiceCollection();