| Задача: сумма чека по еде для одного гостя На языке программиста: Добавить во вкладку с товарами расчет: сумма товаров со значением свойства PROPERTY_626 318,320, 322 (относятся к еде) / сумму количества гостей (UF_CRM_1530623573843+UF_CRM_1530623600935) Чуть позже стали ЭТО дополнительно хранить в поле сделки |

файл /local/assets/entities-expansion/js/deal.js
BX.addCustomEvent( 'onAjaxSuccess' , function (params, event) {
if(event){
if(event.url == '/bitrix/services/main/ajax.php?action=catalog.productSelector.getProduct'){
if(Object.values(params.data.fields.PROPERTIES[0].PROPERTY_VALUES)[0].VALUE == 318){
checkEntities();
}
}else if(event.url == '/bitrix/services/main/ajax.php?mode=class&c=bitrix%3Acrm.entity.product.list&action=calculateTotalData' || event.url == '/bitrix/tools/uf.php'){
checkEntities();
}
}
});
function checkEntities(){
var sum = 0;
let dealId = window.location.pathname.split('/')[4];
$('.crm-product-list-payment-menu-category-awg-sum').remove();
BX.rest.callMethod(
"crm.deal.productrows.get",
{ id: dealId },
function(res1)
{
if(res1.error())
console.error(res1.error());
else{
let products = res1.data();
let j = 0;
for (var i = 0; i < products.length; i++) {
let product = products[i];
setTimeout(function(){
BX.rest.callMethod('crm.product.get', {id: product.PRODUCT_ID}, function(res){
if(res.error())
console.error(res.error());
else{
product1 = res.data();
if(product1.PROPERTY_626.value == '318' || product1.PROPERTY_626.value == '322' || product1.PROPERTY_626.value == '320'){
sum = sum + product.PRICE*product.QUANTITY;
}
if(j == (products.length - 1)){
if(sum > 0){
BX.rest.callMethod('crm.deal.get', {id: dealId}, function(res){
let goustsCount = Number(res.answer.result['UF_CRM_1530623573843'])+Number(res.answer.result['UF_CRM_1530623600935']);
if(parseInt(goustsCount)<1){
goustsCount = 1;
}
sum = parseInt(sum/goustsCount);
$('.crm-product-list-payment-menu-category-awg-sum').remove();
$('.crm-product-list-payment-side-table tbody').prepend('<tr class="crm-product-list-payment-side-table-row crm-product-list-payment-menu-category-awg-sum" style="display: table-row;"><td>Сумма товаров категории "Меню" / кол-во гостей:</td><td><span style="margin-right: 4px;" class="priceMenuAwg" data-total="totalMenu">'+sum+'</span><span data-role="currency-wrapper" class="crm-product-list-result-grid-item-currency-symbol">руб.</span> </td></tr>');
if(sum<850)
$('.priceMenuAwg').attr('style', 'margin-right: 4px;color: #e04343;');
else
$('.priceMenuAwg').attr('style', 'margin-right: 4px;');
});
}
}
}
j++;
});
},i*200);
}
}
}
);
}
|