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 asinvoice_id');

次のコードを使用すると、販売注文グリッドの現在の注文 ID から請求書 ID を取得できます。この後、列フィールドを次のように追加します

$this->addColumn('invoice_id',
        配列(
            'header'=> $this->__('Invoice Id'),
            '整列' =>'右',
            'type=' => 'テキスト',
            'index' => 'invoice_id',
        )
        );

詳細については、http://www.webtechnologycodes.com でフォローして ください。

于 2014-01-21T05:54:05.797 に答える
0

注文の詳細から請求書の詳細を取得するには。あなたが使用することができます

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

于 2013-07-19T06:03:39.613 に答える
0

LEFT JOIN を実行する必要があります。->joinLeft を使用します。->参照を結合 ->joinInner

于 2013-02-06T11:14:48.010 に答える