/** * 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'); } }
/** * Helper function to add store filter condition * * @param Mage_Core_Model_Mysql4_Collection_Abstract $collection Data collection * @param Mage_Adminhtml_Block_Widget_Grid_Column $column Column information to be filtered */ protected function _filterStoreCondition($collection, $column) { if (!($value = $column->getFilter()->getValue())) { return; } $this->getCollection()->addStoreFilter($value); }
/** * Filter number of customers column * * @param Mage_Adminhtml_Block_Widget_Grid_Column $column * @return Enterprise_CustomerSegment_Block_Adminhtml_Report_Customer_Segment_Grid */ protected function _addColumnFilterToCollection($column) { if ($column->getId() == 'customer_count') { if ($column->getFilter()->getValue() !== null) { $this->getCollection()->addCustomerCountFilter($column->getFilter()->getValue()); } } else { parent::_addColumnFilterToCollection($column); } return $this; }
/** * * @param Mage_Sales_Model_Resource_Order_Shipment_Grid_Collection $collection * @param Mage_Adminhtml_Block_Widget_Grid_Column $column * * @return \Zitec_Dpd_Block_Adminhtml_Sales_Shipment_Grid */ protected function _filterManifesto($collection, $column) { $manifestRef = $column->getFilter()->getCondition(); if ($manifestRef) { $resource = Mage::getSingleton('core/resource'); /* @var $resource Mage_Core_Model_Resource */ $whereClause = $resource->getConnection("core_read")->quoteInto("manifest.manifest_ref like ? ", $manifestRef); $collection->getSelect()->where($whereClause); $debug = (string) $collection->getSelect(); } return $this; }
/** * @param Varien_Data_Collection $collection * @param Mage_Adminhtml_Block_Widget_Grid_Column $column */ protected function _filterInSetsCondition($collection, $column) { $selected = $this->_getSelectedAttributeSets(); if (empty($selected)) { $selected = '0'; } $value = $column->getFilter()->getValue(); if ($value) { $collection->addFieldToFilter('main_table.attribute_set_id', array('in' => $selected)); } else { $collection->addFieldToFilter('main_table.attribute_set_id', array('nin' => $selected)); } }
/** * Add custom column filter to collection * * @param Mage_Adminhtml_Block_Widget_Grid_Column $column * @return Mage_Api2_Block_Adminhtml_Permissions_User_Edit_Tab_Roles */ protected function _addColumnFilterToCollection($column) { if ($column->getId() == 'assigned_user_role') { $userRoles = $this->_getSelectedRoles(); if ($column->getFilter()->getValue()) { $this->getCollection()->addFieldToFilter('entity_id', array('in' => $userRoles)); } elseif (!empty($userRoles)) { $this->getCollection()->addFieldToFilter('entity_id', array('nin' => $userRoles)); } else { $this->getCollection(); } } else { parent::_addColumnFilterToCollection($column); } return $this; }
/** * Add filter * * @param Mage_Adminhtml_Block_Widget_Grid_Column $column * @return Mage_Adminhtml_Block_Widget_Grid */ protected function _addColumnFilterToCollection($column) { if ($this->getCollection()) { switch ($column->getId()) { case 'tax_rates': $this->getCollection()->joinCalculationData('rate'); break; case 'customer_tax_classes': $this->getCollection()->joinCalculationData('ctc'); break; case 'product_tax_classes': $this->getCollection()->joinCalculationData('ptc'); break; } } return parent::_addColumnFilterToCollection($column); }
/** * 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)); }
protected function _getFilterByType() { switch (strtolower($this->getType())) { case 'image': $filterClass = 'enhancedgrid/widget_grid_column_filter_image'; break; default: $filterClass = parent::_getFilterByType(); break; } return $filterClass; }
protected function _getFilterByType() { switch (strtolower($this->getType())) { case 'banner': $filterClass = 'banner/adminhtml_widget_grid_column_filter_banner'; break; default: $filterClass = parent::_getFilterByType(); break; } return $filterClass; }
/** * 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; }
protected function _getFilterByType() { switch (strtolower($this->getType())) { case 'image': $filterClass = 'productupdater/widget_grid_column_filter_image'; break; case 'iks_options': $filterClass = 'adminhtml/widget_grid_column_filter_select'; break; case 'iks_sku': $filterClass = 'productupdater/widget_grid_column_filter_sku'; break; case 'iks_percentage': $filterClass = 'adminhtml/widget_grid_column_filter_text'; break; default: $filterClass = parent::_getFilterByType(); break; } return $filterClass; }
/** * @param Mage_Adminhtml_Block_Widget_Grid_Column $column * @return Mage_Api2_Block_Adminhtml_Roles_Tab_Users */ protected function _addColumnFilterToCollection($column) { if ($column->getId() == 'filter_in_role_users') { $inRoleIds = $this->getUsers(); if (empty($inRoleIds)) { $inRoleIds = 0; } if ($column->getFilter()->getValue()) { $this->getCollection()->addFieldToFilter('user_id', array('in' => $inRoleIds)); } else { if ($inRoleIds) { $this->getCollection()->addFieldToFilter('user_id', array('nin' => $inRoleIds)); } } } else { parent::_addColumnFilterToCollection($column); } return $this; }
/** * 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; }
/** * Decorate user type column * * @param string $value * @param Mage_Oauth_Model_Token $row * @param Mage_Adminhtml_Block_Widget_Grid_Column $column * @param bool $isExport * @return mixed */ public function decorateUserType($value, $row, $column, $isExport) { $options = $column->getOptions(); $value = $row->getCustomerId() ? $options[1] : $options[0]; $cell = $value; return $cell; }
/** * Filter store column * * @param Esendex_Sms_Model_Resource_Trigger_Collection $collection * @param Mage_Adminhtml_Block_Widget_Grid_Column $column * @return self */ protected function _filterStoreCondition(Esendex_Sms_Model_Resource_Trigger_Collection $collection, Mage_Adminhtml_Block_Widget_Grid_Column $column) { if (!($value = $column->getFilter()->getValue())) { return; } $collection->addStoreFilter($value); return $this; }
/** * Sets sorting order by some column * * @param Mage_Adminhtml_Block_Widget_Grid_Column $column * @return Mage_Adminhtml_Block_Customer_Edit_Tab_Wishlist */ protected function _setCollectionOrder($column) { $collection = $this->getCollection(); if ($collection) { switch ($column->getId()) { case 'product_name': $collection->setOrderByProductName($column->getDir()); break; default: parent::_setCollectionOrder($column); 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 $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; }
/** * Callback function that filters collection by field "Used" from grid * * @param Mage_Core_Model_Resource_Db_Collection_Abstract $collection * @param Mage_Adminhtml_Block_Widget_Grid_Column $column */ public function addIsUsedFilterCallback($collection, $column) { $filterValue = $column->getFilter()->getCondition(); $fieldExpression = $this->getConnection()->getCheckSql('main_table.times_used > 0', 1, 0); $resultCondition = $this->_getConditionSql($fieldExpression, array('eq' => $filterValue)); $collection->getSelect()->where($resultCondition); }
/** * Setting column filters to collection * * @param Mage_Adminhtml_Block_Widget_Grid_Column $column * @return Enterprise_Rma_Block_Adminhtml_Rma_New_Tab_Items_Order_Grid */ protected function _addColumnFilterToCollection($column) { // Set custom filter for selected products flag if ($column->getId() == 'select') { $productIds = $this->_getSelectedProducts(); if (empty($productIds)) { $productIds = 0; } if ($column->getFilter()->getValue()) { $this->getCollection()->addFieldToFilter('item_id', array('in' => $productIds)); } else { if ($productIds) { $this->getCollection()->addFieldToFilter('item_id', array('nin' => $productIds)); } } } else { parent::_addColumnFilterToCollection($column); } return $this; }
public function addStatusFilter(Mage_Eav_Model_Entity_Collection_Abstract $collection, Mage_Adminhtml_Block_Widget_Grid_Column $column) { // echo $column->getFilter()->getValue();die; $collection->addFieldToFilter('main_table.status', array('eq' => $column->getFilter()->getValue())); // echo $collection->getSelect();die; }
/** * * @param Zitec_TableRates_Model_Mysql4_Tablerate_Collection $collection * @param Mage_Adminhtml_Block_Widget_Grid_Column $column * @param boolean $priceVsDest * * @return \Zitec_TableRates_Block_Adminhtml_Tablerate_Grid */ protected function _weightPriceAndAboveFilter(Zitec_TableRates_Model_Mysql4_Tablerate_Collection $collection, Mage_Adminhtml_Block_Widget_Grid_Column $column, $priceVsDest = false) { if ($priceVsDest && !$this->_getHelper()->supportsPriceVsDest()) { return $this; } $value = $column->getFilter()->getValue(); if (!is_array($value)) { return $this; } $from = isset($value['from']) ? $value['from'] : false; $to = isset($value['to']) ? $value['to'] : false; if ($from === false && $to === false) { return $this; } $select = $collection->getSelect(); if ($from !== false) { $select->where(" main_table.{$this->_map['weight_price']} >= ? ", $from); } if ($to !== false) { $select->where(" main_table.{$this->_map['weight_price']} <= ? ", $to); } $select->where(" main_table.{$this->_map['price_vs_dest']} = ? ", $priceVsDest ? 1 : 0); $selectStr = (string) $select; $this->_getHelper()->log($selectStr); return $this; }
/** * Callback function that filters collection by field "Used" from grid * * @param Mage_Core_Model_Resource_Db_Collection_Abstract $collection * @param Mage_Adminhtml_Block_Widget_Grid_Column $column */ public function addIsUsedFilterCallback($collection, $column) { $filterValue = $column->getFilter()->getCondition(); $collection->addFieldToFilter($this->getConnection()->getCheckSql('main_table.times_used > 0', 1, 0), array('eq' => $filterValue)); }
/** * Add filter by ip * * @param Enterprise_Logging_Model_Resource_Event_Collection $collection * @param Mage_Adminhtml_Block_Widget_Grid_Column $column */ protected function _ipFilterCallback(Enterprise_Logging_Model_Resource_Event_Collection $collection, Mage_Adminhtml_Block_Widget_Grid_Column $column) { $collection->addIpFilter($column->getFilter()->getValue()); }
/** * Callback function that filters collection by field "Used" from grid * * @param Mage_Core_Model_Resource_Db_Collection_Abstract $collection * @param Mage_Adminhtml_Block_Widget_Grid_Column $column */ public function addIsUsedFilterCallback($collection, $column) { $filterValue = $column->getFilter()->getCondition(); $expression = $this->getConnection()->getCheckSql('main_table.times_used > 0', 1, 0); $conditionSql = $this->_getConditionSql($expression, $filterValue); $collection->getSelect()->where($conditionSql); }
/** * @return Mana_Admin_Block_V2_Grid */ public function getGrid() { return parent::getGrid(); }
/** * 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; }
/** * Filter checked/unchecked rows in grid * * @param Mage_Adminhtml_Block_Widget_Grid_Column $column * @return Mage_Adminhtml_Block_Catalog_Product_Widget_Chooser */ protected function _addColumnFilterToCollection($column) { if ($column->getId() == 'in_products') { $selected = $this->getSelectedProducts(); if ($column->getFilter()->getValue()) { $this->getCollection()->addFieldToFilter('entity_id', array('in' => $selected)); } else { $this->getCollection()->addFieldToFilter('entity_id', array('nin' => $selected)); } } else { parent::_addColumnFilterToCollection($column); } return $this; }
/** * Filter event collection * * @param Varien_Data_Collection $collection * @param Mage_Adminhtml_Block_Widget_Grid_Column $column */ protected function _eventFilter($collection, $column) { if (!($value = $column->getFilter()->getValue())) { return $this; } $collection = $this->getCollection(); foreach ($collection as $itemKey => $item) { if (strpos($item->getEvent(), $value) === false) { $collection->removeItemByKey($itemKey); } } return $this; }