public function setCollection($collection) { // 1.6.1 if ($collection instanceof Mage_Sales_Model_Resource_Order_Grid_Collection) { $collection->getSelect()->joinLeft(array('frauddetection_data' => $collection->getTable('frauddetection/result')), 'frauddetection_data.order_id=main_table.entity_id', 'fraud_score'); } else { if ($collection instanceof Mage_Core_Model_Mysql4_Collection_Abstract) { $collection->getSelect()->joinLeft(array('frauddetection_data' => $collection->getTable('frauddetection/result')), 'frauddetection_data.order_id=main_table.entity_id', 'fraud_score'); } else { if ($collection instanceof Mage_Eav_Model_Entity_Collection_Abstract) { $collection->joinTable('frauddetection/result', 'order_id=entity_id', array("fraud_score" => "fraud_score"), null, "left"); } } } return parent::setCollection($collection); }
/** * MUST override setCollection rather than _prepareCollection to get filtering and paging both working * * @param Mage_Sales_Model_Mysql4_Order_Grid_Collection $collection */ public function setCollection($collection) { parent::setCollection($collection); if (!Mage::getStoreConfig(self::XML_PATH_RENDER_COLUMN) || $this->_isExport) { return; } // Only join if we have to $filters = $this->getParam($this->getVarNameFilter(), null); if (is_string($filters)) { $filters = $this->helper('adminhtml')->prepareFilterString($filters); } if ($filters && (is_array($filters) && !empty($filters['skus']))) { $collection->getSize(); // Get size before adding join $collection->join(['soi' => 'sales/order_item'], 'soi.order_id=main_table.entity_id', array()); $collection->getSelect()->group('entity_id'); } }