Example #1
0
 /**
  * Check customer scope, email,company name and confirmation key before saving
  */
 protected function _beforeSave(Varien_Object $customer)
 {
     parent::_beforeSave($customer);
     if (!$customer->getEmail()) {
         throw Mage::exception('Mage_Customer', Mage::helper('customer')->__('Customer email is required'));
     }
     $adapter = $this->_getWriteAdapter();
     $bind = array('email' => $customer->getCompanyName());
     $select = $adapter->select()->from($this->getEntityTable(), array($this->getEntityIdField()))->where('email = :email');
     if ($customer->getSharingConfig()->isWebsiteScope()) {
         $bind['website_id'] = (int) $customer->getWebsiteId();
         $select->where('website_id = :website_id');
     }
     if ($customer->getId()) {
         $bind['entity_id'] = (int) $customer->getId();
         $select->where('entity_id != :entity_id');
     }
     $result = $adapter->fetchOne($select, $bind);
     if ($result) {
         throw Mage::exception('Mage_Customer', Mage::helper('customer')->__('This customer email already exists'), Mage_Customer_Model_Customer::EXCEPTION_EMAIL_EXISTS);
     }
     /*Get attribute id of attribute company_name*/
     $code = 'company_name';
     $companyAttribute = Mage::getResourceModel('eav/entity_attribute_collection')->setCodeFilter($code)->getFirstItem();
     $companyAttrId = $companyAttribute->getId();
     /*Check if same company name already exist*/
     $writeAdapter = $this->_getWriteAdapter();
     $companybind = array('company_name' => $customer->getCompanyName());
     $resource = Mage::getSingleton("core/resource");
     $compselect = $writeAdapter->select()->from($resource->getTableName('customer_entity_varchar'), array($this->getEntityIdField()))->where('value = :company_name AND attribute_id =' . $companyAttrId);
     if ($customer->getId()) {
         $companybind['entity_id'] = (int) $customer->getId();
         $compselect->where('entity_id != :entity_id');
     }
     $compresult = $writeAdapter->fetchOne($compselect, $companybind);
     if ($compresult) {
         throw Mage::exception('Mage_Customer', Mage::helper('customer')->__('Company name already exist'));
     }
     /*Check if same company name already exist*/
     // set confirmation key logic
     if ($customer->getForceConfirmed()) {
         $customer->setConfirmation(null);
     } elseif (!$customer->getId() && $customer->isConfirmationRequired()) {
         $customer->setConfirmation($customer->getRandomConfirmationKey());
     }
     // remove customer confirmation key from database, if empty
     if (!$customer->getConfirmation()) {
         $customer->setConfirmation(null);
     }
     return $this;
 }
Example #2
0
 protected function _beforeSave(Varien_Object $customer)
 {
     parent::_beforeSave($customer);
     if (Mage::getStoreConfigFlag('username/general/enabled')) {
         if ($customer->getSharingConfig()->isWebsiteScope()) {
             $websiteId = (int) $customer->getWebsiteId();
         } else {
             $websiteId = null;
         }
         $model = Mage::getModel('customer/customer');
         $result = $model->customerUsernameExists($customer->getUsername(), $websiteId);
         if ($result && $result->getId() != $customer->getId()) {
             throw Mage::exception('Mage_Core', Mage::helper('username')->__("Username already exists"));
         }
     }
     return $this;
 }