add in total price block bonus count
This commit is contained in:
parent
cadc88526f
commit
2c53e241ba
1 changed files with 42 additions and 16 deletions
|
@ -13,13 +13,18 @@
|
|||
namespace Intaro\RetailCrm\Component\Loyalty;
|
||||
|
||||
use Bitrix\Main\Event;
|
||||
use Bitrix\Main\HttpRequest;
|
||||
use Intaro\RetailCrm\Component\ConfigProvider;
|
||||
|
||||
/**
|
||||
* Class EventsHandlers
|
||||
*
|
||||
* @package Intaro\RetailCrm\Component\Loyalty
|
||||
*/
|
||||
class EventsHandlers
|
||||
{
|
||||
const BONUS_ERROR_MSG = 'Нельзя потратить такое количество бонусов';
|
||||
|
||||
/**
|
||||
* @param \Bitrix\Main\Event $event
|
||||
*/
|
||||
|
@ -28,7 +33,7 @@ class EventsHandlers
|
|||
{
|
||||
AddMessage2Log('OnBeforeSalePaymentSetFieldHandler work! ' . $event->getDebugInfo());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return mixed
|
||||
*/
|
||||
|
@ -36,7 +41,7 @@ class EventsHandlers
|
|||
{
|
||||
AddMessage2Log('OnBeforeEndBufferContentHandler work! ');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param \Bitrix\Main\Event $event
|
||||
*/
|
||||
|
@ -44,61 +49,82 @@ class EventsHandlers
|
|||
{
|
||||
AddMessage2Log('OnSaleOrderBeforeSavedHandler work! ' . $event->getDebugInfo());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param \Bitrix\Main\Event $event
|
||||
*/
|
||||
public function OnSaleOrderPaidHandler(Event $event): void
|
||||
{
|
||||
AddMessage2Log('OnSaleOrderPaidHandler work! '. $event->getDebugInfo());
|
||||
AddMessage2Log('OnSaleOrderPaidHandler work! ' . $event->getDebugInfo());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param \Bitrix\Main\Event $event
|
||||
*/
|
||||
public function OnSaleStatusOrderChangeHandler(Event $event): void
|
||||
{
|
||||
AddMessage2Log('OnSaleStatusOrderChangeHandler work! '. $event->getDebugInfo());
|
||||
AddMessage2Log('OnSaleStatusOrderChangeHandler work! ' . $event->getDebugInfo());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param \Bitrix\Main\Event $event
|
||||
*/
|
||||
public function OnSaleOrderSavedHandler(Event $event): void
|
||||
{
|
||||
AddMessage2Log('OnSaleOrderSavedHandler work! '. $event->getDebugInfo());
|
||||
AddMessage2Log('OnSaleOrderSavedHandler work! ' . $event->getDebugInfo());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param \Bitrix\Main\Event $event
|
||||
*/
|
||||
public function OnSaleOrderCanceledHandler(Event $event): void
|
||||
{
|
||||
AddMessage2Log('OnSaleOrderCanceledHandler work! '. $event->getDebugInfo());
|
||||
AddMessage2Log('OnSaleOrderCanceledHandler work! ' . $event->getDebugInfo());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param \Bitrix\Main\Event $event
|
||||
*/
|
||||
public function OnSaleOrderDeletedHandler(Event $event): void
|
||||
{
|
||||
AddMessage2Log('OnSaleOrderDeletedHandler work! '. $event->getDebugInfo());
|
||||
AddMessage2Log('OnSaleOrderDeletedHandler work! ' . $event->getDebugInfo());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param $arResult
|
||||
* @param $arUserResult
|
||||
* @param $arParams
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function OnSaleComponentOrderOneStepProcessHandler($arResult, $arUserResult, $arParams)
|
||||
{
|
||||
AddMessage2Log('OnSaleComponentOrderOneStepProcessHandler work! '. $arUserResult. $arParams);
|
||||
AddMessage2Log('OnSaleComponentOrderOneStepProcessHandler work! ' . $arUserResult . $arParams);
|
||||
return $arResult;
|
||||
}
|
||||
|
||||
public function OnSaleComponentOrderResultPrepared($order, $arUserResult, $request, $arParams, $arResult)
|
||||
public function OnSaleComponentOrderResultPreparedHandler($order, $arUserResult, HttpRequest $request, $arParams, &$arResult)
|
||||
{
|
||||
|
||||
if (ConfigProvider::getLoyaltyProgramStatus() === 'Y') {
|
||||
$isBonusError = false;
|
||||
$bonusInput = (int)$request->get('bonus-input');
|
||||
$availableBonuses = (int)$request->get('available-bonuses');
|
||||
|
||||
if ($bonusInput > $availableBonuses) {
|
||||
$arResult['LOYALTY']['ERROR'] = self::BONUS_ERROR_MSG;
|
||||
$isBonusError = true;
|
||||
}
|
||||
|
||||
if (
|
||||
$bonusInput > 0
|
||||
&& $availableBonuses > 0
|
||||
&& $isBonusError === false
|
||||
&& $arResult['JS_DATA']['TOTAL']['ORDER_TOTAL_PRICE'] > $bonusInput
|
||||
) {
|
||||
$arResult['JS_DATA']['TOTAL']['ORDER_TOTAL_PRICE'] = $arResult['JS_DATA']['TOTAL']['ORDER_TOTAL_PRICE'] - $bonusInput;
|
||||
$arResult['JS_DATA']['TOTAL']['ORDER_TOTAL_PRICE_FORMATED'] = number_format($arResult['JS_DATA']['TOTAL']['ORDER_TOTAL_PRICE'], 0, ',', ' ' );
|
||||
$arResult['JS_DATA']['TOTAL']['BONUS_PAYMENT'] = $bonusInput;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue