fix for softlock when customer cannot be registered in loyalty
This commit is contained in:
parent
13adda8e22
commit
866333d205
6 changed files with 66 additions and 4 deletions
|
@ -8,6 +8,7 @@ $MESS["I_AM_AGREE"] = "Я согласен с условиями";
|
|||
$MESS["UF_PD_PROC_PL_INTARO"] = "обработки персональных данных:";
|
||||
$MESS["LP_CARD_NUMBER"] = "Номер карты программы лояльности";
|
||||
$MESS["SEND"] = "Отправить";
|
||||
$MESS["TRY_AGAIN"] = "Попробовать снова";
|
||||
$MESS["VERIFICATION_CODE"] = "Код подтверждения";
|
||||
$MESS["SEND_VERIFICATION_CODE"] = "Отправьте код подтверждения";
|
||||
$MESS["REG_LP_MESSAGE"] = "Для завершения регистрации в программе лояльности введите номер телефона и номер карты программы лояльности";
|
||||
|
|
|
@ -35,6 +35,18 @@ function saveUserLpFields() {
|
|||
);
|
||||
}
|
||||
|
||||
function resetUserLpFields() {
|
||||
BX.ajax.runAction('intaro:retailcrm.api.loyalty.register.resetUserLpFields').then(
|
||||
function(response) {
|
||||
if (response.data.result === true) {
|
||||
location.reload();
|
||||
} else {
|
||||
$('#errMsg').text(response.data.msg)
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
function activateAccount() {
|
||||
let checkboxes = [];
|
||||
let numbers = [];
|
||||
|
|
|
@ -82,6 +82,10 @@ if ($arResult["SHOW_SMS_FIELD"] == true) {
|
|||
<div id="lpRegMsg" class="lpRegMsg"><?=$arResult['LP_REGISTER']['msg']?></div>
|
||||
<?php } ?>
|
||||
|
||||
<?php if (isset($arResult['LP_REGISTER']['form']['button']) && !isset($arResult['LP_REGISTER']['form']['fields'])) { ?>
|
||||
<input type="button" onclick="<?=$arResult['LP_REGISTER']['form']['button']['action']?>()" value="<?=GetMessage('TRY_AGAIN')?>">
|
||||
<?php } ?>
|
||||
|
||||
<?php
|
||||
if (isset($arResult['LP_REGISTER']['form']['fields'])) { ?>
|
||||
<div id="lpRegForm">
|
||||
|
@ -220,4 +224,4 @@ if ($arResult["SHOW_SMS_FIELD"] == true) {
|
|||
<?php else: ?>
|
||||
<?=GetMessage('NOT_AUTHORIZED')?>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -49,6 +49,42 @@ class Register extends Controller
|
|||
new Authentication,
|
||||
],
|
||||
],
|
||||
'resetUserLpFields' => [
|
||||
'-prefilters' => [
|
||||
new Authentication,
|
||||
],
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Сбрасывает информацию о регистрации пользователя в ПЛ. Позволяет пройти регистрацию заново.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function resetUserLpFieldsAction(): array
|
||||
{
|
||||
global $USER_FIELD_MANAGER;
|
||||
|
||||
$customer = (new CurrentUserProvider())->get();
|
||||
|
||||
if ($customer === null) {
|
||||
return [
|
||||
'result' => false,
|
||||
'msg' => GetMessage('NOT_REGISTER'),
|
||||
];
|
||||
}
|
||||
|
||||
$result = $USER_FIELD_MANAGER->Update('USER', $customer->getId(), [
|
||||
'UF_CARD_NUM_INTARO' => '',
|
||||
'UF_REG_IN_PL_INTARO' => false,
|
||||
'UF_AGREE_PL_INTARO' => false,
|
||||
'UF_PD_PROC_PL_INTARO' => false
|
||||
]);
|
||||
|
||||
return [
|
||||
'result' => $result,
|
||||
'msg' => GetMessage('NOT_REGISTER'),
|
||||
];
|
||||
}
|
||||
|
||||
|
|
|
@ -7,6 +7,7 @@ $MESS['SMS_VERIFICATION'] = 'Для активации аккаунта необ
|
|||
$MESS['SEND'] = 'Отправить';
|
||||
$MESS['COMPLETE_YOUR_REGISTRATION'] = 'Для завершения регистрации в Программе лояльности необходимо заполнить форму.';
|
||||
$MESS['CREATE'] = 'Создать';
|
||||
$MESS['TRY_AGAIN'] = 'Попробовать снова';
|
||||
$MESS['INVITATION_TO_REGISTER'] = 'Для регистрации в Программе лояльности заполните форму.';
|
||||
$MESS['REGISTER_ERROR'] = 'Ошибка регистрации в Программе лояльности';
|
||||
$MESS['ACTIVATE_ERROR'] = 'Ошибка активации аккаунта в программе лояльности.';
|
||||
|
|
|
@ -230,6 +230,13 @@ class LoyaltyAccountService
|
|||
header('Refresh 0');
|
||||
}
|
||||
|
||||
if (isset($createResponse['error']) && $createResponse['error']) {
|
||||
$createResponse['form']['button'] = [
|
||||
'name' => GetMessage('TRY_AGAIN'),
|
||||
'action' => 'resetUserLpFields'
|
||||
];
|
||||
}
|
||||
|
||||
return $createResponse;
|
||||
}
|
||||
|
||||
|
@ -504,7 +511,7 @@ class LoyaltyAccountService
|
|||
$errorMsg = Utils::getErrorMsg($createResponse);
|
||||
|
||||
if ($errorMsg !== null) {
|
||||
return ['msg' => $errorMsg];
|
||||
return ['msg' => $errorMsg, 'error' => true];
|
||||
}
|
||||
|
||||
//Создать получилось, но аккаунт не активен
|
||||
|
@ -515,13 +522,14 @@ class LoyaltyAccountService
|
|||
&& isset($createResponse->loyaltyAccount->id)
|
||||
) {
|
||||
return [
|
||||
'msg' => GetMessage('GO_TO_PERSONAL')
|
||||
'msg' => GetMessage('GO_TO_PERSONAL'),
|
||||
'error' => false
|
||||
];
|
||||
}
|
||||
|
||||
if ($createResponse !== null && $createResponse->success === true) {
|
||||
//Повторная регистрация оказалась удачной
|
||||
return ['msg' => GetMessage('REG_COMPLETE')];
|
||||
return ['msg' => GetMessage('REG_COMPLETE'), 'error' => false];
|
||||
}
|
||||
|
||||
return [];
|
||||
|
|
Loading…
Add table
Reference in a new issue