/**
  * Callback function that filters collection by field "Used" from grid
  *
  * @param AbstractCollection $collection
  * @param Column $column
  * @return void
  */
 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);
 }
 /**
  * @param \Magento\Framework\Data\Collection $collection
  * @param \Magento\Backend\Block\Widget\Grid\Column $column
  * @return void
  * @SuppressWarnings(PHPMD.UnusedFormalParameter)
  */
 protected function _filterStoreCondition($collection, $column)
 {
     if (!($value = $column->getFilter()->getValue())) {
         return;
     }
     $this->getCollection()->addStoreFilter($value);
 }
Exemple #3
0
 /**
  * Apply term filter
  *
  * @param \Magento\Framework\Data\Collection        $collection The collection
  * @param \Magento\Backend\Block\Widget\Grid\Column $column     Columns to filter
  */
 protected function filterTermsCondition($collection, $column)
 {
     if (!($value = $column->getFilter()->getValue())) {
         return;
     }
     $collection->setTermFilter($value);
 }
 /**
  * filter by store
  *
  * @param Collection $collection
  * @param Column $column
  * @return $this
  */
 public function filterStoreCondition(Collection $collection, Column $column)
 {
     if (!($value = $column->getFilter()->getValue())) {
         return $this;
     }
     $collection->addStoreFilter($value);
     return $this;
 }
Exemple #5
0
 /**
  * @param Column $column
  * @return $this
  */
 protected function _addColumnFilterToCollection($column)
 {
     // Set custom filter for in category flag
     if ($column->getId() == 'in_category') {
         $productIds = $this->_getSelectedProducts();
         if (empty($productIds)) {
             $productIds = 0;
         }
         if ($column->getFilter()->getValue()) {
             $this->getCollection()->addFieldToFilter('entity_id', ['in' => $productIds]);
         } elseif (!empty($productIds)) {
             $this->getCollection()->addFieldToFilter('entity_id', ['nin' => $productIds]);
         }
     } else {
         parent::_addColumnFilterToCollection($column);
     }
     return $this;
 }
Exemple #6
0
 /**
  * @param Column $column
  * @return $this
  */
 protected function _addColumnFilterToCollection($column)
 {
     // Set custom filter for in product flag
     if ($column->getId() == 'in_products') {
         $selected = $this->_getSelectedProducts();
         if (empty($selected)) {
             $selected = '';
         }
         if ($column->getFilter()->getValue()) {
             $this->getCollection()->addFieldToFilter('sku', ['in' => $selected]);
         } else {
             $this->getCollection()->addFieldToFilter('sku', ['nin' => $selected]);
         }
     } else {
         parent::_addColumnFilterToCollection($column);
     }
     return $this;
 }
 /**
  * @param Column $column
  * @return $this
  */
 protected function _addColumnFilterToCollection($column)
 {
     if ($column->getId() == 'in_role_users') {
         $inRoleIds = $this->getUsers();
         if (empty($inRoleIds)) {
             $inRoleIds = 0;
         }
         if ($column->getFilter()->getValue()) {
             $this->getCollection()->addFieldToFilter('user_id', ['in' => $inRoleIds]);
         } else {
             if ($inRoleIds) {
                 $this->getCollection()->addFieldToFilter('user_id', ['nin' => $inRoleIds]);
             }
         }
     } else {
         parent::_addColumnFilterToCollection($column);
     }
     return $this;
 }
Exemple #8
0
 /**
  * @param Column $column
  * @return $this
  */
 protected function _addColumnFilterToCollection($column)
 {
     if ($column->getId() == 'assigned_user_role') {
         $userRoles = $this->getSelectedRoles();
         if (empty($userRoles)) {
             $userRoles = 0;
         }
         if ($column->getFilter()->getValue()) {
             $this->getCollection()->addFieldToFilter('role_id', array('in' => $userRoles));
         } else {
             if ($userRoles) {
                 $this->getCollection()->addFieldToFilter('role_id', array('nin' => $userRoles));
             }
         }
     } else {
         parent::_addColumnFilterToCollection($column);
     }
     return $this;
 }
 /**
  * Add filter
  *
  * @param Column $column
  * @return $this
  */
 protected function _addColumnFilterToCollection($column)
 {
     // Set custom filter for in post flag
     if ($column->getId() == 'in_posts') {
         $postIds = $this->_getSelectedPosts();
         if (empty($postIds)) {
             $postIds = 0;
         }
         if ($column->getFilter()->getValue()) {
             $this->getCollection()->addFieldToFilter('post_id', ['in' => $postIds]);
         } else {
             if ($postIds) {
                 $this->getCollection()->addFieldToFilter('post_id', ['nin' => $postIds]);
             }
         }
     } else {
         parent::_addColumnFilterToCollection($column);
     }
     return $this;
 }
Exemple #10
0
 /**
  * Filter checked/unchecked rows in grid
  *
  * @param Column $column
  * @return $this
  */
 protected function _addColumnFilterToCollection($column)
 {
     if ($column->getId() == 'in_products') {
         $selected = $this->getSelectedProducts();
         if ($column->getFilter()->getValue()) {
             $this->getCollection()->addFieldToFilter('entity_id', ['in' => $selected]);
         } else {
             $this->getCollection()->addFieldToFilter('entity_id', ['nin' => $selected]);
         }
     } else {
         parent::_addColumnFilterToCollection($column);
     }
     return $this;
 }
Exemple #11
0
 /**
  * @param \Magento\Backend\Block\Widget\Grid\Column $column
  * @return $this
  */
 protected function _addColumnFilterToCollection($column)
 {
     if ($column->getId() == 'in_articles') {
         $articleIds = $this->_getSelectedArticles();
         if (empty($articleIds)) {
             $articleIds = 0;
         }
         if ($column->getFilter()->getValue()) {
             $this->getCollection()->addFieldToFilter('article_id', ['in' => $articleIds]);
         } else {
             if ($articleIds) {
                 $this->getCollection()->addFieldToFilter('article_id', ['nin' => $articleIds]);
             }
         }
     } else {
         parent::_addColumnFilterToCollection($column);
     }
     return $this;
 }
 /**
  * @covers \Magento\Backend\Block\Widget\Grid\Column::getFilter
  * @covers \Magento\Backend\Block\Widget\Grid\Column::setFilter
  */
 public function testGetFilterWhenFilterWasSetPreviously()
 {
     $this->_layoutMock->expects($this->once())->method('createBlock')->with('StdClass')->will($this->returnValue($this->_blockMock));
     $this->_block->setFilter('StdClass');
     $this->assertNotEmpty($this->_block->getFilter());
 }
 /**
  * @param \Magento\Backend\Block\Widget\Grid\Column $column
  * @return $this
  */
 protected function _addColumnFilterToCollection($column)
 {
     if ($column->getId() == 'in_topics') {
         $topicIds = $this->_getSelectedTopics();
         if (empty($topicIds)) {
             $topicIds = 0;
         }
         if ($column->getFilter()->getValue()) {
             $this->getCollection()->addFieldToFilter('main_table.topic_id', ['in' => $topicIds]);
         } else {
             if ($topicIds) {
                 $this->getCollection()->addFieldToFilter('main_table.topic_id', ['nin' => $topicIds]);
             }
         }
     } else {
         parent::_addColumnFilterToCollection($column);
     }
     return $this;
 }