0

In Magento 1.7, I added a column in the shipment grid displaying the total of the associated order for each shipment. To achieve this, in the Mage_Adminhtml_Block_Sales_Shipment_Grid file, I added the following code:

protected function _prepareCollection()
{
    $collection = Mage::getResourceModel($this->_getCollectionClass());
    $collection->getSelect()->joinLeft(
        array('order' => $collection->getTable('sales/order')),
        'order.entity_id = main_table.order_id',
        array()
    );
    $collection->addExpressionFieldToSelect('importo', 'SUM({{base_grand_total}})', array('base_grand_total' => 'base_grand_total'));
    $collection->getSelect()->group('main_table.entity_id');

    $collection->addFilterToMap('created_at', 'main_table.created_at'); //resolves ambiguity in column names
    $this->setCollection($collection);
   // echo $collection->getSelect()->__toString();die();
    return parent::_prepareCollection();
}

The "group by" statement generates an incorrect query (it returns one row for each shipment). How can I resolve this? Ideally, I would like to add the group('main_table.entity_id') only for the grid, not for getSize.

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.