Exemplo n.º 1
0
 /**
  * Test that adding field to filter by value which contains question mark produce correct SQL
  */
 public function testAddFieldToFilterValueContainsQuestionMark()
 {
     $adapter = $this->_getAdapterMock('Zend_Db_Adapter_Pdo_Mysql', array('select', 'prepareSqlCondition', 'supportStraightJoin'), null);
     $adapter->expects($this->once())->method('prepareSqlCondition')->with('email', array('like' => 'value?'))->will($this->returnValue('email LIKE \'%value?%\''));
     $adapter->expects($this->once())->method('select')->will($this->returnValue(new Varien_Db_Select($adapter)));
     $this->_collection->setConnection($adapter);
     $select = $this->_collection->getSelect()->from('test');
     $this->_collection->addFieldToFilter('email', array('like' => 'value?'));
     $this->assertEquals("SELECT `test`.* FROM `test` WHERE (email LIKE '%value?%')", $select->assemble());
 }
Exemplo n.º 2
0
 /**
  * Test that field is quoted when added to SQL via addFieldToFilter()
  */
 public function testAddFieldToFilterFieldIsQuoted()
 {
     $adapter = $this->getMock('Zend_Db_Adapter_Pdo_Mysql', array('quoteIdentifier', 'prepareSqlCondition'), array(), '', false);
     $adapter->expects($this->once())->method('quoteIdentifier')->with('email')->will($this->returnValue('`email`'));
     $adapter->expects($this->any())->method('prepareSqlCondition')->with($this->stringContains('`email`'), $this->anything())->will($this->returnValue('`email` = "*****@*****.**"'));
     $this->_collection->setConnection($adapter);
     $select = $this->_collection->getSelect()->from('test');
     $this->_collection->addFieldToFilter('email', array('eq' => '*****@*****.**'));
     $this->assertEquals('SELECT `test`.* FROM `test` WHERE (`email` = "*****@*****.**")', $select->assemble());
 }
Exemplo n.º 3
0
 protected function callbackFilterItems(Varien_Data_Collection_Db $collection, $column)
 {
     $value = $column->getFilter()->getValue();
     if ($value == null) {
         return;
     }
     /** @var $orderItemsCollection Varien_Data_Collection_Db */
     $orderItemsCollection = Mage::helper('M2ePro/Component_Buy')->getCollection('Order_Item');
     $orderItemsCollection->getSelect()->reset(Zend_Db_Select::COLUMNS);
     $orderItemsCollection->getSelect()->columns('order_id');
     $orderItemsCollection->getSelect()->distinct(true);
     $orderItemsCollection->getSelect()->where('general_id LIKE ? OR sku LIKE ? OR title LIKE ?', '%' . $value . '%');
     $ordersIds = $orderItemsCollection->getColumnValues('order_id');
     $collection->addFieldToFilter('`main_table`.id', array('in' => $ordersIds));
 }
Exemplo n.º 4
0
 /**
  * Remove Bronto Message Connection for Template
  *
  * @param Varien_Data_Collection_Db $collection
  * @param string                    $scope
  * @param string|int                $scopeId
  */
 public function unlinkEmails(Varien_Data_Collection_Db $collection, $scope, $scopeId)
 {
     switch ($scope) {
         case 'stores':
         case 'store':
             $storeId = $scopeId;
             break;
         case 'websites':
         case 'website':
             $storeId = Mage::app()->getWebsite($scopeId)->getStoreIds();
             break;
         default:
             $storeId = false;
             break;
     }
     // create filter
     if ($storeId) {
         if (is_array($storeId)) {
             $filter = array('in' => $storeId);
         } else {
             $filter = array('eq' => $storeId);
         }
         $collection->addFieldToFilter('store_id', $filter);
     }
     // Delete Bronto Message connection to template
     foreach ($collection as $message) {
         $message->delete();
     }
 }
Exemplo n.º 5
0
 public function callbackFilterMotorsSpecificsAttribute(Varien_Data_Collection_Db $collection, $column)
 {
     $value = $column->getFilter()->getValue();
     if ($value == null) {
         return;
     }
     if (!$this->motorsSpecificsAttribute) {
         return;
     }
     $attributeCode = $this->motorsSpecificsAttribute->getAttributeCode();
     if ($value == 1) {
         $collection->addFieldToFilter($attributeCode, array('notnull' => true));
         $collection->addFieldToFilter($attributeCode, array('neq' => '\'\''));
         $collection->addFieldToFilter('is_motors_attribute_in_product_attribute_set', array('notnull' => true));
     } else {
         $collection->addFieldToFilter(array(array('attribute' => $attributeCode, 'null' => true), array('attribute' => $attributeCode, 'eq' => '\'\''), array('attribute' => 'is_motors_attribute_in_product_attribute_set', 'null' => true)));
     }
 }
Exemplo n.º 6
0
 public function callbackFilterMotorsAttribute(Varien_Data_Collection_Db $collection, $column)
 {
     $value = $column->getFilter()->getValue();
     if (is_null($value)) {
         return;
     }
     if (!$this->motorsAttribute) {
         return;
     }
     if ($value == 1) {
         $attributeCode = $this->motorsAttribute->getAttributeCode();
         $collection->addFieldToFilter($attributeCode, array('notnull' => true));
         $collection->addFieldToFilter($attributeCode, array('neq' => ''));
         $collection->addFieldToFilter('is_motors_attribute_in_product_attribute_set', array('notnull' => true));
     } else {
         $attributeId = $this->motorsAttribute->getId();
         $storeId = $this->getListing()->getStoreId();
         $joinCondition = 'eaa.entity_id = e.entity_id and eaa.attribute_id = ' . $attributeId;
         if (!$this->motorsAttribute->isScopeGlobal()) {
             $joinCondition .= ' and eaa.store_id = ' . $storeId;
         }
         $collection->getSelect()->joinLeft(array('eaa' => Mage::getSingleton('core/resource')->getTableName('catalog_product_entity_text')), $joinCondition, array('value'));
         $collection->getSelect()->orWhere('eaa.value IS NULL');
         $collection->getSelect()->orWhere('eaa.value = \'\'');
         $collection->getSelect()->orWhere('eea.entity_attribute_id IS NULL');
     }
 }
 /**
  * Filter by customer ID, as 'type' field does not exist
  *
  * @param string $fieldName
  * @param array $condition
  * @return Mage_Log_Model_Mysql4_Visitor_Collection
  */
 public function addFieldToFilter($fieldName, $condition = null)
 {
     if ($fieldName == 'type' && is_array($condition) && isset($condition['eq'])) {
         $fieldName = 'customer_id';
         if ($condition['eq'] === Mage_Log_Model_Visitor::VISITOR_TYPE_VISITOR) {
             $condition = array('null' => 1);
         } else {
             $condition = array('moreq' => 1);
         }
     }
     return parent::addFieldToFilter($this->_getFieldMap($fieldName), $condition);
 }
Exemplo n.º 8
0
 public function addFieldToFilter($fieldName, $fieldValue = null)
 {
     if ($fieldName == 'type') {
         if ($fieldValue == 'v') {
             return parent::addFieldToFilter('customer_id', array('null' => 1));
         } else {
             return parent::addFieldToFilter('customer_id', array('moreq' => 1));
         }
     } else {
         return parent::addFieldToFilter($fieldName, $fieldValue);
     }
 }
Exemplo n.º 9
0
 public function callbackFilterPartsCompatibilityAttribute(Varien_Data_Collection_Db $collection, $column)
 {
     $value = $column->getFilter()->getValue();
     if ($value == null) {
         return;
     }
     if (!$this->partsCompatibilityAttribute) {
         return;
     }
     if ($value == 1) {
         $attributeCode = $this->partsCompatibilityAttribute->getAttributeCode();
         $collection->addFieldToFilter($attributeCode, array('notnull' => true));
         $collection->addFieldToFilter($attributeCode, array('neq' => '\'\''));
         $collection->addFieldToFilter('is_parts_compatibility_attribute_in_product_attribute_set', array('notnull' => true));
     } else {
         $attributeId = $this->partsCompatibilityAttribute->getId();
         $storeId = $this->getListing()->getStoreId();
         $collection->getSelect()->joinLeft(array('eaa' => Mage::getSingleton('core/resource')->getTableName('catalog_product_entity_text')), 'eaa.entity_id = e.entity_id and eaa.attribute_id = ' . $attributeId . ' and eaa.store_id = ' . $storeId);
         $collection->getSelect()->orWhere('eaa.value IS NULL');
         $collection->getSelect()->orWhere('eaa.value = \'\'');
         $collection->getSelect()->orWhere('eea.entity_attribute_id IS NULL');
     }
 }