/**
  * (non-PHPdoc)
  * @see Mage_Core_Model_Abstract::_afterSave()
  */
 public function _afterSave()
 {
     if ($this->getId()) {
         if ($this->getData('customer_type') == 'vendor') {
             if (!empty($this->vendorModel)) {
                 $this->vendorModel->addData($this->getData());
                 $this->vendorModel->setCustomerId($this->getId());
                 // create account for vendor
                 $vendorRole = Mage::helper('smvendors')->getVendorRole();
                 $data = array('username' => $this->getEmail(), 'email' => $this->getEmail(), 'firstname' => $this->getFirstname(), 'lastname' => $this->getLastname(), 'is_active' => $this->vendorModel->getVendorStatus(), 'roles' => array($vendorRole));
                 $newPassword = $this->getData('user_password');
                 if (!empty($newPassword)) {
                     $data['password'] = $newPassword;
                     $data['password_confirmation'] = $newPassword;
                 }
                 if ($data) {
                     $id = $this->vendorModel->getUserId();
                     $model = Mage::getModel('admin/user')->load($id);
                     if (!$model->getIsActive() && $data['is_active']) {
                         $this->sendNewAccountEmail('approved', '', Mage::helper('smvendors')->getDefaultStoreId());
                     }
                     $model->addData($data);
                     $result = $model->validate();
                     if (is_array($result)) {
                         Mage::getSingleton('adminhtml/session')->setUserData($data);
                         foreach ($result as $message) {
                             Mage::getSingleton('adminhtml/session')->addError($message);
                         }
                     }
                     try {
                         $model->save();
                         if ($uRoles = $data['roles']) {
                             if (1 == sizeof($uRoles)) {
                                 $model->setRoleIds($uRoles)->setRoleUserId($model->getUserId())->saveRelations();
                             } elseif (sizeof($uRoles) > 1) {
                                 $rs = array();
                                 $rs[0] = $uRoles[0];
                                 $model->setRoleIds($rs)->setRoleUserId($model->getUserId())->saveRelations();
                             }
                         }
                         $this->vendorModel->setUserId($model->getUserId());
                         $passwordHash = trim($this->getPasswordHash());
                         if (!empty($passwordHash)) {
                             //print_r($this->getData());die;
                             $resource = Mage::getSingleton('core/resource');
                             $writeConnection = $resource->getConnection('core_write');
                             $tableUser = $resource->getTableName('admin/user');
                             $query = "UPDATE {$tableUser} SET password = '******' WHERE user_id = " . (int) $model->getUserId();
                             $writeConnection->query($query);
                         }
                         Mage::getSingleton('adminhtml/session')->setUserData(false);
                     } catch (Mage_Core_Exception $e) {
                         Mage::getSingleton('adminhtml/session')->addError($this->__('Customer is saved, but this error happened: ' . $e->getMessage()));
                         Mage::logException($e);
                     }
                 }
                 $this->vendorModel->save();
             }
         }
     }
     return parent::_afterSave();
 }
 /**
  *
  * @param SM_Vendors_Model_Vendor $vendor
  * @return string
  */
 public function getVendorImage($vendor)
 {
     return $this->getImageUrl($vendor->getVendorLogo());
 }