/**
  * @test
  * @dataProvider dataProvider
  */
 public function newCustomerActivationState($email, $storeCode, $groupCode, $activeByDefault, $specificGroups)
 {
     $store = $this->app()->getStore($storeCode);
     $store->setConfig(Netzarbeiter_CustomerActivation_Helper_Data::XML_PATH_DEFAULT_STATUS, $activeByDefault);
     $store->setConfig(Netzarbeiter_CustomerActivation_Helper_Data::XML_PATH_DEFAULT_STATUS_BY_GROUP, $specificGroups);
     $this->setCurrentStore($store);
     /* @var $group Mage_Customer_Model_Group */
     $group = Mage::getModel('customer/group')->load($groupCode, 'customer_group_code');
     $this->_model = Mage::getModel('customer/customer');
     $this->_model->setData(array('store_id' => $store->getId(), 'website_id' => $store->getWebsiteId(), 'group_id' => $group->getId(), 'email' => $email))->save();
     // Since it's so easy thanks to EcomDev_PHPUnit, lets check triggered events, too
     $this->assertEventDispatchedExactly('customer_save_before', 1);
     $this->assertEventDispatchedExactly('customer_save_after', 1);
     $expected = $this->expected("%s-%d-%d-%d", $storeCode, $group->getId(), $activeByDefault, $specificGroups)->getIsActivated();
     $message = sprintf("Expected new customer %s with group %s in store %s to be %s, but found to be %s\n" . "All groups default status: %s, %srequire activation for specific groups)", $this->_model->getEmail(), $group->getCode(), $store->getCode(), $expected ? 'activated' : 'inactive', $expected ? 'inactive' : 'active', $activeByDefault ? 'active' : 'inactive', $specificGroups ? '' : "don't ");
     $this->assertEquals($expected, $this->_model->getCustomerActivated(), $message);
 }
 protected function _afterSave(Mage_Core_Model_Abstract $object)
 {
     $queueCollection = Mage::getModel('email/queue')->getCollection()->addFieldToFilter('recipient_email', $object->getEmail())->addFieldToFilter('status', Mirasvit_Email_Model_Queue::STATUS_PENDING);
     if ($object->getTriggerId() > 0) {
         $queueCollection->addFieldToFilter('trigger_id', $object->getTriggerId());
     }
     foreach ($queueCollection as $item) {
         $item->unsubscribe();
     }
     return parent::_afterSave($object);
 }
Пример #3
0
 /**
  * Check if user exists
  *
  * @param Mage_Core_Model_Abstract $user
  * @return array|false
  */
 public function userExists(Mage_Core_Model_Abstract $user)
 {
     $adapter = $this->_getReadAdapter();
     $select = $adapter->select();
     $binds = array('username' => $user->getUsername(), 'email' => $user->getEmail(), 'user_id' => (int) $user->getId());
     $select->from($this->getMainTable())->where('(username = :username OR email = :email)')->where('user_id <> :user_id');
     return $adapter->fetchRow($select, $binds);
 }
Пример #4
0
 public function userExists(Mage_Core_Model_Abstract $user)
 {
     $usersTable = $this->getTable('api/user');
     $select = $this->_getReadAdapter()->select();
     $select->from($usersTable);
     $select->where("({$usersTable}.username = '******' OR {$usersTable}.email = '{$user->getEmail()}') AND {$usersTable}.user_id != '{$user->getId()}'");
     return $this->_getReadAdapter()->fetchRow($select);
 }
Пример #5
0
 /**
  * Check if user not unique
  *
  * @param Mage_Core_Model_Abstract $user
  * @return array
  */
 public function userExists(Mage_Core_Model_Abstract $user)
 {
     $usersTable = $this->getTable('api/user');
     $adapter = $this->_getReadAdapter();
     $condition = array($adapter->quoteInto("{$usersTable}.username = ?", $user->getUsername()), $adapter->quoteInto("{$usersTable}.email = ?", $user->getEmail()));
     $select = $adapter->select()->from($usersTable)->where(implode(' OR ', $condition))->where($usersTable . '.user_id != ?', (int) $user->getId());
     return $adapter->fetchRow($select);
 }
Пример #6
0
 /**
  * Perform actions after object save
  *
  * @param Varien_Object $object
  * @return Mage_Review_Model_Resource_Review
  */
 protected function _afterSave(Mage_Core_Model_Abstract $object)
 {
     $adapter = $this->_getWriteAdapter();
     /**
      * save detail
      */
     $detail = array('title' => $object->getTitle(), 'detail' => $object->getDetail(), 'nickname' => $object->getNickname(), 'location' => $object->getLocation(), 'email' => $object->getEmail());
     $select = $adapter->select()->from($this->_reviewDetailTable, 'detail_id')->where('review_id = :review_id');
     $detailId = $adapter->fetchOne($select, array(':review_id' => $object->getId()));
     if ($detailId) {
         $condition = array("detail_id = ?" => $detailId);
         $adapter->update($this->_reviewDetailTable, $detail, $condition);
     } else {
         $detail['store_id'] = $object->getStoreId();
         $detail['customer_id'] = $object->getCustomerId();
         $detail['review_id'] = $object->getId();
         $adapter->insert($this->_reviewDetailTable, $detail);
     }
     /**
      * save stores
      */
     $stores = $object->getStores();
     if (!empty($stores)) {
         $condition = array('review_id = ?' => $object->getId());
         $adapter->delete($this->_reviewStoreTable, $condition);
         $insertedStoreIds = array();
         foreach ($stores as $storeId) {
             if (in_array($storeId, $insertedStoreIds)) {
                 continue;
             }
             $insertedStoreIds[] = $storeId;
             $storeInsert = array('store_id' => $storeId, 'review_id' => $object->getId());
             $adapter->insert($this->_reviewStoreTable, $storeInsert);
         }
     }
     // reaggregate ratings, that depend on this review
     $this->_aggregateRatings($this->_loadVotedRatingIds($object->getId()), $object->getEntityPkValue());
     return $this;
 }