/** * Update anonymous profile * * @return void */ protected function updateAnonymousProfile() { $login = $this->requestData['email']; if (null !== $login) { $tmpProfile = new \XLite\Model\Profile(); $tmpProfile->setProfileId(0); $tmpProfile->setLogin($login); $profile = \XLite\Core\Database::getRepo('XLite\\Model\\Profile')->findUserWithSameLogin($tmpProfile); $exists = $profile && !$profile->getAnonymous(); if ($profile) { \XLite\Core\Database::getEM()->detach($profile); } if ($exists) { \XLite\Core\Session::getInstance()->order_create_profile = false; } \XLite\Core\Session::getInstance()->lastLoginUnique = !$exists; $profile = $this->getCartProfile(); $profile->setLogin($login); \XLite\Core\Database::getEM()->flush($profile); \XLite\Core\Event::loginExists(array('value' => $exists)); if ($exists && $this->requestData['create_profile']) { // Profile with same login is exists $this->valid = false; } elseif (isset($this->requestData['password']) && !$this->requestData['password'] && $this->requestData['create_profile']) { $this->valid = false; $label = static::t('Field is required!'); \XLite\Core\Event::invalidElement('password', $label); } elseif (false !== $this->valid) { \XLite\Core\Session::getInstance()->order_create_profile = (bool) $this->requestData['create_profile']; if (\XLite\Core\Session::getInstance()->order_create_profile) { \XLite\Core\Session::getInstance()->createProfilePassword = $this->requestData['password']; } } } }