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));
 }
Example #4
0
 /**
  * Add store filter
  *
  * @param Mage_Adminhtml_Block_Widget_Grid_Column  $column
  * @return Enterprise_Banner_Block_Adminhtml_Banner_Grid
  */
 protected function _addColumnFilterToCollection($column)
 {
     if ($column->getIndex() == 'stores') {
         $this->getCollection()->addStoreFilter($column->getFilter()->getCondition(), false);
     } else {
         parent::_addColumnFilterToCollection($column);
     }
     return $this;
 }
Example #5
0
 /**
  * Add column filter to collection
  *
  * @param Mage_Adminhtml_Block_Widget_Grid_Column $column
  * @return Mage_Adminhtml_Block_Customer_Edit_Tab_Wishlist
  */
 protected function _addColumnFilterToCollection($column)
 {
     /* @var $collection Mage_Wishlist_Model_Mysql4_Item_Collection */
     $collection = $this->getCollection();
     $value = $column->getFilter()->getValue();
     if ($collection && $value) {
         switch ($column->getId()) {
             case 'product_name':
                 $collection->addProductNameFilter($value);
                 break;
             case 'store':
                 $collection->addStoreFilter($value);
                 break;
             case 'days':
                 $collection->addDaysFilter($value);
                 break;
             default:
                 $collection->addFieldToFilter($column->getIndex(), $column->getFilter()->getCondition());
                 break;
         }
     }
     return $this;
 }
 /**
  * Add column filter to collection
  *
  * @param Mage_Adminhtml_Block_Widget_Grid_Column $column
  * @return Mage_Adminhtml_Block_Customer_Edit_Tab_Wishlist
  */
 protected function _addColumnFilterToCollection($column)
 {
     if ($column->getId() == 'store') {
         $this->getCollection()->addFieldToFilter('item_store_id', $column->getFilter()->getCondition());
         return $this;
     }
     if ($this->getCollection() && $column->getFilter()->getValue()) {
         $this->getCollection()->addFieldToFilter($column->getIndex(), $column->getFilter()->getCondition());
     }
     return $this;
 }
 /**
  * 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 #8
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;
 }
Example #9
0
 /**
  * Add a grid column from block origin
  * 
  * @param Mage_Adminhtml_Block_Widget_Grid_Column $column Column object
  * @param int $order Column order
  * @return this
  */
 protected function _addColumnFromBlock(Mage_Adminhtml_Block_Widget_Grid_Column $column, $order)
 {
     $this->addColumn($column->getId(), array('id' => $column->getId(), 'index' => $column->getIndex(), 'width' => $column->getWidth(), 'align' => array_key_exists($column->getAlign(), $this->getColumnAlignments()) ? $column->getAlign() : self::GRID_COLUMN_ALIGNMENT_LEFT, 'header' => $column->getHeader(), 'order' => $order, 'origin' => self::GRID_COLUMN_ORIGIN_GRID, 'is_visible' => 1, 'filter_only' => 0, 'is_system' => $column->getIsSystem() ? 1 : 0, 'missing' => 0, 'store_id' => null, 'renderer_type' => null, 'renderer_params' => null, 'allow_edit' => 1, 'custom_params' => null));
     return $this;
 }