файл /bitrix/components/bitrix/sale.order.ajax/templates/new_logictim_bonus/order_ajax.js
Скрываем свойства заказа с бонусами:
в методgetPropertyRowNode: function(property, propsItemsContainer, disabled)
передpropsItemsContainer.appendChild(propsItemNode);
вставляем код (чтобы указанная выше строка попадала под условие)if(property.getSettings().CODE != 'LOGICTIM_ADD_BONUS' && property.getSettings().CODE != 'LOGICTIM_PAYMENT_BONUS')
Выводим информацию, сколькими бонусами оплачивают заказ:
в методeditTotalBlock: function()
передif (this.options.showPayedFromInnerBudget)
вставляем<!--LOGICTIM_BONUS-->
//console.log(this.result.LOGICTIM_BONUS);
if(this.result.LOGICTIM_BONUS != null && this.result.LOGICTIM_BONUS.LOGICTIM_BONUS_USER_DOSTUP == 'Y')
{
if(this.BXFormPosting == true)
{
var logictimPayBonus = this.result.LOGICTIM_BONUS.PAY_BONUS;
var logictimPayBonusFormated = this.result.LOGICTIM_BONUS.PAY_BONUS_FORMATED;
if(this.result.LOGICTIM_BONUS.INPUT_BONUS == '-')
{
logictimPayBonus = 0;
this.result.TOTAL.ORDER_TOTAL_PRICE_FORMATED = this.result.LOGICTIM_BONUS.ORDER_SUM_FORMATED;
}
}
else
{
var logictimPayBonus = this.result.LOGICTIM_BONUS.PAY_BONUS_NO_POST;
var logictimPayBonusFormated = this.result.LOGICTIM_BONUS.PAY_BONUS_NO_POST_FORMATED;
}
if(logictimPayBonus >= 0)
{
var logictimPayBonusText = this.result.LOGICTIM_BONUS.TEXT_BONUS_PAY;
if(logictimPayBonus > 0)
this.totalInfoBlockNode.appendChild(this.createTotalUnit(logictimPayBonusText, '<span>'+logictimPayBonusFormated+'</span>'));
var orderPropPaymentBonusId = this.result.LOGICTIM_BONUS.ORDER_PROP_PAYMENT_BONUS_ID;
if(BX('LOGICTIM_PAYMENT_BONUS'))
{
if(BX('LOGICTIM_PAYMENT_BONUS').name != 'ORDER_PROP_'+orderPropPaymentBonusId)
{
BX.adjust(BX('LOGICTIM_PAYMENT_BONUS'), {attrs: {name: 'ORDER_PROP_'+orderPropPaymentBonusId}});
}
var logictimPayInput = BX('LOGICTIM_PAYMENT_BONUS').value;
BX('LOGICTIM_PAYMENT_BONUS').value = logictimPayBonus;
}
}
}
<!--LOGICTIM_BONUS-->
Выводим информацию, сколько бонусов будет начислено за заказ:
в методeditTotalBlock: function()
послеif (parseFloat(total.PAY_SYSTEM_PRICE) >= 0 && this.result.DELIVERY.length)
{
this.totalInfoBlockNode.appendChild(this.createTotalUnit(BX.message('SOA_PAYSYSTEM_PRICE'), '~' + total.PAY_SYSTEM_PRICE_FORMATTED));
}
вставляем<!--LOGICTIM_BONUS-->
if(this.result.LOGICTIM_BONUS && this.result.LOGICTIM_BONUS.LOGICTIM_BONUS_USER_DOSTUP == 'Y') {
var logictimAddBonusText = this.result.LOGICTIM_BONUS.TEXT_BONUS_BALLS;
this.totalInfoBlockNode.appendChild(this.createTotalUnit(logictimAddBonusText, '<span>'+this.result.LOGICTIM_BONUS.ADD_BONUS+'</span>'));
var lb_pay_block = BX('logictim_payfield_bonus');
if(this.result.LOGICTIM_BONUS.MAX_BONUS <= 0 && BX('logictim_payfield_bonus'))
BX.hide(lb_pay_block);
if(this.result.LOGICTIM_BONUS.MAX_BONUS > 0 && BX('logictim_payfield_bonus'))
{
BX.show(lb_pay_block);
BX('ORDER_PROP_'+this.result.LOGICTIM_BONUS.ORDER_PROP_PAYMENT_BONUS_ID).value = logictimPayBonus;
}
}
<!--LOGICTIM_BONUS-->
Выводим информацию, сколько бонусов будет начислено за каждую позицию заказа:
в метод
createBasketItemColumn: function(column, allData, active)
после
else if (column.id == 'SUM')
{
textNode.appendChild(BX.create('STRONG', {props: {className: 'bx-price all'}, html: data.SUM}));
if (parseFloat(data.DISCOUNT_PRICE) > 0)
{
textNode.appendChild(BX.create('BR'));
textNode.appendChild(BX.create('STRONG', {
props: {className: 'bx-price-old'},
html: data.SUM_BASE_FORMATED
}));
}
вставляем
<!--LOGICTIM_BONUS-->
if(this.result.LOGICTIM_BONUS && this.result.LOGICTIM_BONUS.LOGICTIM_BONUS_USER_DOSTUP == 'Y') {
var add_bonus_item = this.result.LOGICTIM_BONUS.ARR_BONUS.ITEMS[data.PRODUCT_ID].ADD_BONUS;
if(add_bonus_item > 0)
{
textNode.appendChild(BX.create('div', {props: {className: 'bonus'}, html: '+'+add_bonus_item+' '+this.result.LOGICTIM_BONUS.TEXT_BONUS_FOR_ITEM}));
}
}
<!--LOGICTIM_BONUS-->
файл /bitrix/components/bitrix/sale.order.ajax/templates/new_logictim_bonus/template.php
Выводим поле для оплаты бонусами:
перед<!-- ORDER SAVE BLOCK -->
Вставляем<? //-------LOGICTIM BONUS FEILD-------//
if(isset($arResult["PAY_BONUS"]) && $arResult["PAY_BONUS"] >= 0) {
?>
<div class="bx_block w100 vertical" id="logictim_payfield_bonus">
<div class="bx_description">
<strong><?=COption::GetOptionString("logictim.balls", "HAVE_BONUS_TEXT", 'Have bonus')?> <?=$arResult["USER_BONUS"]?></strong>
<span>
<?=COption::GetOptionString("logictim.balls", "CAN_BONUS_TEXT", 'Can use bonus')?>
<br>
<? if($arResult["MIN_BONUS"] > 0 || $arResult["MAX_BONUS"] > 0) {?>
(
<? if($arResult["MIN_BONUS"] > 0) {
echo COption::GetOptionString("logictim.balls", "MIN_BONUS_TEXT", 'Min use bonus').$arResult["MIN_BONUS"];
}
if($arResult["MIN_BONUS"] > 0 && $arResult["MAX_BONUS"] > 0) {
echo ', ';
}
if($arResult["MAX_BONUS"] > 0) {
echo COption::GetOptionString("logictim.balls", "MAX_BONUS_TEXT", 'Max use bonus').$arResult["MAX_BONUS"];
}?>
)
<? } ?>
</span>
</div>
<div class="bonus_left">
<strong><?=COption::GetOptionString("logictim.balls", "PAY_BONUS_TEXT", 'Pay from bonus')?></strong>
<input type="text" onchange="BX.Sale.OrderAjaxComponent.sendRequest();" maxlength="250" size="0" value="<?=$arResult["PAY_BONUS"]?>" name="ORDER_PROP_<?=$arResult["ORDER_PROP_PAYMENT_BONUS_ID"]?>" id="LOGICTIM_PAYMENT_BONUS">
</div>
</div>
<? }
//-------LOGICTIM BONUS FEILD-------//?>