Example #1
0
 /**
  * Callback method for applying price filter.
  * @param Mage_Catalog_Model_Resource_Product_Collection $_collection
  * @param Mage_Adminhtml_Block_Widget_Grid_Column $_column
  */
 public function _filterPrice($_collection, $_column)
 {
     $_field = $_column->getFilterIndex() ? $_column->getFilterIndex() : $_column->getIndex();
     $_condition = $_column->getFilter()->getCondition();
     if (!$_field || !is_array($_condition)) {
         return;
     }
     if (!array_key_exists('type', $_condition) || !is_numeric($_condition['type'])) {
         $_collection->addFieldToFilter($_field, $_condition);
     } else {
         $_storeId = (int) $this->getRequest()->getParam('store', 0);
         $_store = Mage::app()->getStore($_storeId);
         $_joinCondition = array('`e`.`entity_id` = `at_reservation_price`.`entity_id`', '`at_reservation_price`.`store_id` = ' . $_store->getId(), '`at_reservation_price`.`ptype` = ' . $_condition['type']);
         if (array_key_exists('from', $_condition)) {
             $_joinCondition[] = '`at_reservation_price`.`price` >= ' . $_condition['from'];
         }
         if (array_key_exists('to', $_condition)) {
             $_joinCondition[] = '`at_reservation_price`.`price` <= ' . $_condition['to'];
         }
         $_joinCondition[] = '`at_reservation_price`.`date_from` = \'0000-00-00 00:00:00\' OR DATE(`at_reservation_price`.`date_from`) <= DATE(\'' . date('Y-m-d H:i:s', Mage::getModel('core/date')->gmtTimestamp(time())) . '\')';
         $_joinCondition[] = '`at_reservation_price`.`date_to` = \'0000-00-00 00:00:00\' OR DATE(`at_reservation_price`.`date_to`) >= DATE(\'' . date('Y-m-d H:i:s', Mage::getModel('core/date')->gmtTimestamp(time())) . '\')';
         $_collection->getSelect()->joinInner(array('at_reservation_price' => $_collection->getTable('payperrentals/reservationprices')), '(' . implode(') AND (', $_joinCondition) . ')', array('price_type' => 'at_reservation_price.ptype', 'reservation_price' => 'at_reservation_price.price', 'reservation_number' => 'at_reservation_price.numberof'));
         /** TODO Check collection count calculation with group. I think need change join for use distinct */
         $_collection->getSelect()->group('e.entity_id');
     }
 }
 /**
  * Add column filter to collection
  *
  * @param Mage_Adminhtml_Block_Widget_Grid_Column $column
  * @return Enterprise_Reward_Block_Adminhtml_Customer_Edit_Tab_Reward_History_Grid
  */
 protected function _addColumnFilterToCollection($column)
 {
     if ($this->getCollection()) {
         $field = $column->getFilterIndex() ? $column->getFilterIndex() : $column->getIndex();
         if ($field == 'website_id' || $field == 'points_balance') {
             $cond = $column->getFilter()->getCondition();
             if ($field && isset($cond)) {
                 $this->getCollection()->addFieldToFilter('main_table.' . $field, $cond);
             }
         } else {
             parent::_addColumnFilterToCollection($column);
         }
     }
     return $this;
 }
Example #3
0
 /**
  * Apply the condition to the given collection by way of the resource specified on instantiation
  *
  * @param \Cm_Mongo_Model_Resource_Collection_Abstract $collection
  * @param \Mage_Adminhtml_Block_Widget_Grid_Column $column
  */
 public function apply(Cm_Mongo_Model_Resource_Collection_Abstract $collection, Mage_Adminhtml_Block_Widget_Grid_Column $column)
 {
     if (is_string($this->_resource)) {
         $filterCollection = Mage::getResourceModel($this->_resource);
     } else {
         $filterCollection = $this->_resource;
     }
     var_dump($filterCollection);
     if ($this->_filters) {
         $filterCollection->addFieldToFilter($this->_filters);
     }
     $field = $column->getFilterIndex() ? $column->getFilterIndex() : $column->getIndex();
     $cond = $column->getFilter()->getCondition();
     if ($field && isset($cond)) {
         $filterCollection->addFieldToFilter($field, $cond);
     }
     $collection->addFieldToFilter($this->_field, '$in', $filterCollection->getAllIds(TRUE));
 }
 /**
  * Sets sorting order by some column
  *
  * @param Mage_Adminhtml_Block_Widget_Grid_Column $column
  * @return Mage_Adminhtml_Block_Widget_Grid
  */
 protected function _setCollectionOrder($column)
 {
     $collection = $this->getCollection();
     if ($collection) {
         $columnIndex = $column->getFilterIndex() ? $column->getFilterIndex() : $column->getIndex();
         $columnIndex = $columnIndex == 'category_ids' ? 'cat_ids' : $columnIndex;
         $collection->setOrder($columnIndex, strtoupper($column->getDir()));
     }
     return $this;
 }
Example #5
0
 /**
  * Sets sorting order by some column
  *
  * @param Mage_Adminhtml_Block_Widget_Grid_Column $column
  *
  * @return $this
  */
 protected function _setCollectionOrder($column)
 {
     $collection = $this->getCollection();
     if (!$collection) {
         return $this;
     }
     $columnIndex = $column->getFilterIndex() ? $column->getFilterIndex() : $column->getIndex();
     $collection->setOrder($columnIndex, strtoupper($column->getDir()));
     return $this;
 }