sprint-end commit
This commit is contained in:
parent
e2ba47ed13
commit
910aa28c4f
5 changed files with 122 additions and 81 deletions
|
@ -74,3 +74,4 @@ $MESS["BONUS_CARD_NUMBER"] = "Номер карты лояльности (есл
|
|||
$MESS["SUCCESS_PL_REG"] = "Вы успешно зарегистрировались в программе лояльности.";
|
||||
$MESS["LP_FIELDS_NOT_EXIST"] = "Ошибка установки модуля ПЛ. Отсутствуют UF поля для USER";
|
||||
$MESS["REG_LP_ERROR"] = "Ошибка регистрации в Программе лояльности";
|
||||
$MESS["REGISTER_CONTINUE"] = "Для завершения регистрации в программе лояльности заполните форму.";
|
||||
|
|
|
@ -4,37 +4,29 @@ use Bitrix\Main\ArgumentException;
|
|||
use Bitrix\Main\Loader;
|
||||
use Bitrix\Main\ObjectPropertyException;
|
||||
use Bitrix\Main\SystemException;
|
||||
use Intaro\RetailCrm\Component\ConfigProvider;
|
||||
use Intaro\RetailCrm\Repository\AgreementRepository;
|
||||
use Intaro\RetailCrm\Service\LoyaltyService;
|
||||
|
||||
Loader::includeModule('intaro.retailcrm');
|
||||
|
||||
$arResult['LOYALTY_STATUS'] = ConfigProvider::getLoyaltyProgramStatus();
|
||||
|
||||
global $USER;
|
||||
if($USER->IsAuthorized()){
|
||||
$rsUser = CUser::GetByID($USER->GetID());
|
||||
$arResult['USER_FIELDS'] = $rsUser->Fetch();
|
||||
|
||||
if (isset(
|
||||
$arResult['USER_FIELDS']['UF_EXT_REG_PL_INTARO'],
|
||||
$arResult['USER_FIELDS']['UF_AGREE_PL_INTARO'],
|
||||
$arResult['USER_FIELDS']['UF_PD_PROC_PL_INTARO'],
|
||||
$arResult['USER_FIELDS']['UF_EXT_REG_PL_INTARO'],
|
||||
$arResult['USER_FIELDS']['UF_LP_ID_INTARO']
|
||||
)) {
|
||||
$arResult['LP_ERRORS'] = true;
|
||||
|
||||
AddMessage2Log(GetMessage('LP_FIELDS_NOT_EXIST'));
|
||||
}else{
|
||||
$arResult['LP_ERRORS'] = false;
|
||||
}
|
||||
//Активна ПЛ ?
|
||||
if ($arResult['LOYALTY_STATUS'] === 'Y' && $USER->IsAuthorized()) {
|
||||
$service = new LoyaltyService();
|
||||
$arResult['LP_REGISTER'] = $service->checkRegInLp();
|
||||
}
|
||||
|
||||
try {
|
||||
$agreementPersonalData = AgreementRepository::getFirstByWhere(
|
||||
$agreementPersonalData = AgreementRepository::getFirstByWhere(
|
||||
['AGREEMENT_TEXT'],
|
||||
[
|
||||
['CODE', '=', 'AGREEMENT_PERSONAL_DATA_CODE'],
|
||||
]
|
||||
);
|
||||
$agreementLoyaltyProgram = AgreementRepository::getFirstByWhere(
|
||||
$agreementLoyaltyProgram = AgreementRepository::getFirstByWhere(
|
||||
['AGREEMENT_TEXT'],
|
||||
[
|
||||
['CODE', '=', 'AGREEMENT_LOYALTY_PROGRAM_CODE'],
|
||||
|
|
|
@ -83,16 +83,18 @@ if($arResult["SHOW_SMS_FIELD"] == true)
|
|||
<?if($USER->IsAuthorized()):?>
|
||||
|
||||
<p><?php echo GetMessage("MAIN_REGISTER_AUTH") ?></p>
|
||||
<?php
|
||||
$this->addExternalJs(SITE_TEMPLATE_PATH . '/script.js');
|
||||
?>
|
||||
|
||||
<?php if ($arResult['LOYALTY_STATUS'] === 'Y'): ?>
|
||||
<?php $this->addExternalJs(SITE_TEMPLATE_PATH . '/script.js'); ?>
|
||||
|
||||
<?php if ($arResult['LP_ERRORS']): ?>
|
||||
|
||||
<?=GetMessage('REG_LP_ERROR')?>
|
||||
<?php else: ?>
|
||||
<?php else: ?>
|
||||
<!--елси регистрация в программе лояльности прошла успешно-->
|
||||
<?php if (isset($arResult['USER_FIELDS']['UF_EXT_REG_PL_INTARO']) && $arResult['USER_FIELDS']['UF_EXT_REG_PL_INTARO'] === 1): ?>
|
||||
<b><?=GetMessage('SUCCESS_PL_REG')?></b>
|
||||
<?php elseif ((int)$arResult['USER_FIELDS']['UF_EXT_REG_PL_INTARO'] === 0): ?>
|
||||
<?php elseif ((int)$arResult['USER_FIELDS']['UF_EXT_REG_PL_INTARO'] === 0): ?>
|
||||
<div id="regbody">
|
||||
<b><?=GetMessage('REG_LP_MESSAGE')?></b><br>
|
||||
<input type="tel" id="loyaltyRegPhone" placeholder="+7 (900) 000-00-00">
|
||||
|
@ -107,7 +109,9 @@ if($arResult["SHOW_SMS_FIELD"] == true)
|
|||
</div>
|
||||
<div id="msg"></div>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php endif; ?>
|
||||
|
||||
<?php else:?>
|
||||
|
@ -306,59 +310,62 @@ document.getElementById('bx_auth_secure').style.display = 'inline-block';
|
|||
array("bVarsFromForm" => $arResult["bVarsFromForm"], "arUserField" => $arUserField, "form_name" => "regform"), null, array("HIDE_ICONS"=>"Y"));?></td></tr>
|
||||
<?endforeach;?>
|
||||
<?endif;?>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td><div class="fields boolean" id="main_UF_REG_IN_PL_INTARO">
|
||||
<div class="fields boolean">
|
||||
<input type="hidden" value="0" name="UF_REG_IN_PL_INTARO">
|
||||
<label>
|
||||
<input type="checkbox" value="1" name="UF_REG_IN_PL_INTARO" onchange="lpFieldToggle()" id="checkbox_UF_REG_IN_PL_INTARO"> <?= GetMessage("UF_REG_IN_PL_INTARO")?>
|
||||
</label>
|
||||
<?php if ($arResult['LOYALTY_STATUS'] === 'Y'): ?>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>
|
||||
<div class="fields boolean" id="main_UF_REG_IN_PL_INTARO">
|
||||
<div class="fields boolean">
|
||||
<input type="hidden" value="0" name="UF_REG_IN_PL_INTARO">
|
||||
<label>
|
||||
<input type="checkbox" value="1" name="UF_REG_IN_PL_INTARO" onchange="lpFieldToggle()" id="checkbox_UF_REG_IN_PL_INTARO"> <?=GetMessage("UF_REG_IN_PL_INTARO")?>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="lp_toggled_block" style="display: none">
|
||||
<td><?= GetMessage("BONUS_CARD_NUMBER")?></td>
|
||||
<td><input size="30" type="text" name="UF_CARD_NUM_INTARO" value=""></td>
|
||||
</tr>
|
||||
<tr class="lp_toggled_block" style="display: none">
|
||||
<td>
|
||||
<?= GetMessage("REGISTER_FIELD_PERSONAL_PHONE")?>
|
||||
</td>
|
||||
<td>
|
||||
<input size="30" type="text" name="REGISTER[PERSONAL_PHONE]" value>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="lp_toggled_block" style="display: none">
|
||||
<td>
|
||||
<div class="fields boolean" id="main_UF_AGREE_PL_INTARO">
|
||||
<div class="fields boolean">
|
||||
<input type="hidden" value="0" name="UF_AGREE_PL_INTARO">
|
||||
<label>
|
||||
<input class="lp_agree_checkbox" type="checkbox" value="1" name="UF_AGREE_PL_INTARO" > <?= GetMessage("YES")?>
|
||||
</label>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="lp_toggled_block" style="display: none">
|
||||
<td><?=GetMessage("BONUS_CARD_NUMBER")?></td>
|
||||
<td><input size="30" type="text" name="UF_CARD_NUM_INTARO" value=""></td>
|
||||
</tr>
|
||||
<tr class="lp_toggled_block" style="display: none">
|
||||
<td>
|
||||
<?=GetMessage("REGISTER_FIELD_PERSONAL_PHONE")?>
|
||||
</td>
|
||||
<td>
|
||||
<input size="30" type="text" name="REGISTER[PERSONAL_PHONE]" value>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="lp_toggled_block" style="display: none">
|
||||
<td>
|
||||
<div class="fields boolean" id="main_UF_AGREE_PL_INTARO">
|
||||
<div class="fields boolean">
|
||||
<input type="hidden" value="0" name="UF_AGREE_PL_INTARO">
|
||||
<label>
|
||||
<input class="lp_agree_checkbox" type="checkbox" value="1" name="UF_AGREE_PL_INTARO"> <?=GetMessage("YES")?>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<?= GetMessage("I_AM_AGREE")?> <a class="lp_agreement_link" href="javascript:void(0)" ><?= GetMessage("UF_AGREE_PL_INTARO")?></a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="lp_toggled_block" style="display: none">
|
||||
<td>
|
||||
<div class="fields boolean" id="main_UF_PD_PROC_PL_INTARO">
|
||||
<div class="fields boolean"><input type="hidden" value="0" name="UF_PD_PROC_PL_INTARO">
|
||||
<label>
|
||||
<input class="lp_agree_checkbox" type="checkbox" value="1" name="UF_PD_PROC_PL_INTARO"> <?= GetMessage("YES")?>
|
||||
</label>
|
||||
</td>
|
||||
<td>
|
||||
<?=GetMessage("I_AM_AGREE")?> <a class="lp_agreement_link" href="javascript:void(0)"><?=GetMessage("UF_AGREE_PL_INTARO")?></a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="lp_toggled_block" style="display: none">
|
||||
<td>
|
||||
<div class="fields boolean" id="main_UF_PD_PROC_PL_INTARO">
|
||||
<div class="fields boolean"><input type="hidden" value="0" name="UF_PD_PROC_PL_INTARO">
|
||||
<label>
|
||||
<input class="lp_agree_checkbox" type="checkbox" value="1" name="UF_PD_PROC_PL_INTARO"> <?=GetMessage("YES")?>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<?= GetMessage("I_AM_AGREE")?> <a class="personal_data_agreement_link" href="javascript:void(0)" ><?= GetMessage("UF_PD_PROC_PL_INTARO")?></a>
|
||||
</td>
|
||||
</tr>
|
||||
</td>
|
||||
<td>
|
||||
<?=GetMessage("I_AM_AGREE")?> <a class="personal_data_agreement_link" href="javascript:void(0)"><?=GetMessage("UF_PD_PROC_PL_INTARO")?></a>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endif; ?>
|
||||
<?// ******************** /User properties ***************************************************?>
|
||||
<?
|
||||
/* CAPTCHA */
|
||||
|
|
|
@ -19,12 +19,10 @@ use Bitrix\Main\Event;
|
|||
use Bitrix\Main\HttpRequest;
|
||||
use Bitrix\Main\ObjectPropertyException;
|
||||
use Bitrix\Main\SystemException;
|
||||
use Bitrix\Sale\Internals\PaymentTable;
|
||||
use Bitrix\Sale\Order;
|
||||
use Bitrix\Sale\PaySystem\Manager;
|
||||
use Exception;
|
||||
use Intaro\RetailCrm\Component\ConfigProvider;
|
||||
use Intaro\RetailCrm\Model\Api\User;
|
||||
use Intaro\RetailCrm\Repository\PaySystemActionRepository;
|
||||
use Intaro\RetailCrm\Repository\UserRepository;
|
||||
use Intaro\RetailCrm\Service\LoyaltyService;
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
* @link http://retailcrm.ru
|
||||
* @see http://retailcrm.ru/docs
|
||||
*/
|
||||
|
||||
namespace Intaro\RetailCrm\Service;
|
||||
|
||||
use Bitrix\Catalog\GroupTable;
|
||||
|
@ -55,7 +56,7 @@ class LoyaltyService
|
|||
{
|
||||
global $USER;
|
||||
$userFields = CUser::GetByID($USER->GetID())->Fetch();
|
||||
|
||||
|
||||
return isset($userFields['UF_EXT_REG_PL_INTARO']) && $userFields['UF_EXT_REG_PL_INTARO'] === '1';
|
||||
}
|
||||
|
||||
|
@ -75,7 +76,7 @@ class LoyaltyService
|
|||
if (isset($result->errorMsg) && !empty($result->errorMsg)) {
|
||||
AddMessage2Log($result->errorMsg);
|
||||
}
|
||||
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
@ -101,7 +102,7 @@ class LoyaltyService
|
|||
$request->order->discountManualPercent = $discountPercent;
|
||||
}
|
||||
|
||||
/** @var \Intaro\RetailCrm\Component\ApiClient\ClientAdapter $client*/
|
||||
/** @var \Intaro\RetailCrm\Component\ApiClient\ClientAdapter $client */
|
||||
$client = ClientFactory::createClientAdapter();
|
||||
$credentials = $client->getCredentials();
|
||||
$request->site = $credentials->sitesAvailable[0];
|
||||
|
@ -139,7 +140,7 @@ class LoyaltyService
|
|||
}
|
||||
$request->order->items[] = $product;
|
||||
}
|
||||
|
||||
|
||||
$result = $this->client->loyaltyCalculate($request);
|
||||
|
||||
if (isset($result->errorMsg) && !empty($result->errorMsg)) {
|
||||
|
@ -148,4 +149,46 @@ class LoyaltyService
|
|||
|
||||
return $result;
|
||||
}
|
||||
|
||||
//TODO реализовать этот проверки регистрации в ПЛ
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function checkRegInLp(): array
|
||||
{
|
||||
global $USER;
|
||||
$rsUser = CUser::GetByID($USER->GetID());
|
||||
$userFields = $rsUser->Fetch();
|
||||
$regInLp = [];
|
||||
|
||||
//Изъявлял ли ранее пользователь желание участвовать в ПЛ?
|
||||
if (isset($userFields['UF_REG_IN_PL_INTARO'])
|
||||
&& $userFields['UF_REG_IN_PL_INTARO'] === '1'
|
||||
) {
|
||||
//ДА. Существует ли у него аккаунт?
|
||||
if (isset($userFields['UF_LP_ID_INTARO'])
|
||||
&& $userFields['UF_LP_ID_INTARO'] === '1'
|
||||
) {
|
||||
//ДА. Активен ли его аккаунт?
|
||||
if (isset($userFields['UF_EXT_REG_PL_INTARO'])
|
||||
&& $userFields['UF_EXT_REG_PL_INTARO'] === '1'
|
||||
) {
|
||||
//ДА. Отображаем сообщение "Вы зарегистрированы в Программе лояльности"
|
||||
$regInLp['msg'] = GetMessage('REG_COMPLETE');
|
||||
} else {
|
||||
//НЕТ. Отображаем форму для активации
|
||||
$regInLp['msg'] = GetMessage('ACTIVATE_YOUR_ACCOUNT');
|
||||
}
|
||||
} else {
|
||||
//НЕТ. Выясняем, каких полей не хватает для СОЗДАНИЯ аккаунта, выводим форму
|
||||
$regInLp['msg'] = GetMessage('COMPLETE_YOUR_REGISTRATION');
|
||||
}
|
||||
|
||||
} else {
|
||||
//НЕТ. Отображаем форму на создание новой регистрации в ПЛ
|
||||
$regInLp['msg'] = GetMessage('INVITATION_TO_REGISTER');
|
||||
}
|
||||
return $regInLp;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue