0

我是一个初学者 Magento 开发人员,我有一项艰巨的任务是在网格中添加一个特殊的列。

该列被命名为 RMA 类型。我做了 sql 查询,但我需要在 Magento 中翻译它,我的查询是:

 SELECT t1.*, (t3.total_qty_ordered - t2.qty_requested) as 'type_rma' 
FROM enterprise_rma_grid as t1 
JOIN enterprise_rma_item_entity as t2 
ON t1.entity_id = t2.entity_id 
JOIN sales_flat_order as t3 ON t1.order_id = t3.entity_id;

所以在我的 _prepareCollection()我有这样的东西:

$collection = $this->getCollection();
        $collection->getSelect()
            ->join();

而且我不知道如何在 magento 中翻译我的 SQL 代码。我的目标是将上面计算的值添加为名为“type_rma”的新列,并在我的网格中显示为:

$this->addColumn('type_rma', array(
            'header'  => Mage::helper('enterprise_rma')->__('Type RMA'),
            'type'    => 'options',
            'width'   => '100px',
            'index'   => 'type_rma'
        ));

提前感谢您的所有想法和帮助。

4

1 回答 1

0

经过10个小时的搜索,我找到了解决方案...

$collection->getSelect()
            ->join(
                array('t2' => 'enterprise_rma_item_entity'), 'main_table.entity_id = t2.entity_id',
                array('type_rma' => new Zend_Db_Expr("(t3.total_qty_ordered - t2.qty_requested)")
                )
            )->join(
                array('t3' => 'sales_flat_order'), 'main_table.order_id = t3.entity_id',
                array()
            );
于 2013-06-21T09:43:24.383 回答