let mxOdswiezGratis = function (basket) {};
(function($)
{
let position = 'products';
let selector = '';
let sum_basket = 'sum_no_shipping';
let line_color = '#03d503';
let line_end_color = '#02b002';
let line_background_color = '#d3d3d3';
let tag_background_color = '#d3f4ca';
let tag_font_color = '#333333';
let tag_off_background_color = '#eeeeee';
let tag_off_font_color = '#333333';
let line_height = '7';
let line_margin = '10';
let tag_font = '13px';
let tag_padding = '5px';
let tag_triangle_height = '7';
let tag_border_radius_tl = '0px';
let tag_border_radius_tr = '0px';
let tag_border_radius_br = '0px';
let shopId = 140;
let translations_array = {"text_addToBasket":{"__default":"wybierz prezent","pl_PL":"wybierz prezent"},"text_variant":{"__default":"Ten produkt otrzymujesz jako prezent","pl_PL":"Ten produkt otrzymujesz jako prezent"},"text_boxhead":{"__default":"Wybierz prezent do Twojego zam\u00f3wienia!","pl_PL":"Wybierz prezent do Twojego zam\u00f3wienia!"},"text_tag":{"__default":"xxx","pl_PL":"xxx"},"text_productExceed":{"__default":"W koszyku jest ju\u017c maksymalna liczba prezent\u00f3w. Usu\u0144 kt\u00f3ry\u015b z nich, aby zmieni\u0107 wyb\u00f3r.","pl_PL":"W koszyku jest ju\u017c maksymalna liczba prezent\u00f3w. Usu\u0144 kt\u00f3ry\u015b z nich, aby zmieni\u0107 wyb\u00f3r."},"text_productLowPrice":{"__default":"Brakuje Ci jeszcze xxx, \u017ceby wybra\u0107 ten gratis.","pl_PL":"Brakuje Ci jeszcze xxx, \u017ceby wybra\u0107 ten gratis."},"text_productLowMaxPrice":{"__default":"Prezent dost\u0119pny dla produkt\u00f3w powy\u017cej yyy","pl_PL":"Prezent dost\u0119pny dla produkt\u00f3w powy\u017cej yyy"},"text_productAbovePrice":{"__default":"Prezent powy\u017cej xxx","pl_PL":"Prezent powy\u017cej xxx"},"text_blockBuying":{"__default":"Ten produkt jest dost\u0119pny tylko jako gratis do zam\u00f3wienia","pl_PL":"Ten produkt jest dost\u0119pny tylko jako gratis do zam\u00f3wienia"}};
let freeProducts = {"pl_PL":[{"productId":3448,"name":"","image":"","price":199,"description":"","settings":{"blockBuying":true,"categoriesChildrens":false,"sumCategories":false,"sumProducers":false,"needAllSettings":true,"showHigherPrices":true,"highestPrice":false,"price":199,"categories":{},"producers":{},"usersGroups":{"0":"Wszystkie grupy klient\u00f3w"}}},{"productId":3449,"name":"","image":"","price":495,"description":"","settings":{"blockBuying":true,"categoriesChildrens":false,"sumCategories":false,"sumProducers":false,"needAllSettings":true,"showHigherPrices":true,"highestPrice":false,"price":495,"categories":{},"producers":{},"usersGroups":{"0":"Wszystkie grupy klient\u00f3w"}}},{"productId":3450,"name":"","image":"","price":693,"description":"","settings":{"blockBuying":true,"categoriesChildrens":false,"sumCategories":false,"sumProducers":false,"needAllSettings":true,"showHigherPrices":true,"highestPrice":false,"price":693,"categories":{},"producers":{},"usersGroups":{"0":"Wszystkie grupy klient\u00f3w"}}},{"productId":3451,"name":"","image":"","price":1188,"description":"","settings":{"blockBuying":true,"categoriesChildrens":false,"sumCategories":false,"sumProducers":false,"needAllSettings":true,"showHigherPrices":true,"highestPrice":false,"price":1188,"categories":{},"producers":{},"usersGroups":{"0":"Wszystkie grupy klient\u00f3w"}}}]};
let freeProductsIds = {"pl_PL":[3448,3449,3450,3451]};
let allFreeProductsIds = {"pl_PL":[3448,3449,3450,3451]};
let freeProductsCount = 4;
let optionGroupId = 4;
let optionId = 6;
let delayedPreloader = 0;
let forceSingleDownload = 0;
let template = 0;
freeProducts = freeProducts[Shop.lang.name] || [];
freeProductsIds = freeProductsIds[Shop.lang.name] || [];
function getTranslation(var_name,current_lang=Shop.lang.name){
if(!(current_lang in translations_array[var_name])){
translation = translations_array[var_name]['__default'];
}else{
translation = translations_array[var_name][current_lang];
}
return translation;
}
//let add_text = getTranslation('add_text');
let text_addToBasket = getTranslation('text_addToBasket');
let text_variant = getTranslation('text_variant');
let text_boxhead = getTranslation('text_boxhead');
let text_tag = getTranslation('text_tag');
let text_productExceed = getTranslation('text_productExceed');
let text_productLowPrice = getTranslation('text_productLowPrice');
let text_productLowMaxPrice = getTranslation('text_productLowMaxPrice');
let text_productAbovePrice = getTranslation('text_productAbovePrice');
let text_blockBuying = getTranslation('text_blockBuying');
let current_curr = (Shop.values.currency) ? Shop.values.currency : "PLN";
let priceFormater = new Intl.NumberFormat(
Shop.lang.name.split('_').join('-'),
{style: 'currency', currency: current_curr}
);
function priceFormat(price){
return priceFormater.format(price);
}
if (template == 0) {
$('head').append(' ');
$('head').append(' ');
$('head').append('');
}
function APIloader () {
if (!window.frontAPI || template == 0 && typeof jQuery().owlCarousel !== 'function') {
setTimeout(APIloader, 0);
}
else {
let userGroupId = null;
let sum = 0;
let maxPrice = 0;
let producers = {};
let categories = {};
let htmlToUpdate = {};
let freeProductsLeft = freeProductsCount;
let container = $('
');
let avaibleIds = [];
let productDatas = {};
let waitingForIds = true;
let waitingForFrontApi = true;
let waitingForSoobasket = false;
if ($('#box_basketlist').length > 0) {
if (typeof GlobalSoolutionSoobasket != 'undefined') {
waitingForSoobasket = true;
}
}
let generatePreloader = function ()
{
if (position == 'container') {
container.appendTo(selector);
} else {
if (typeof GlobalSoolutionSoobasket != 'undefined' && $('.el-table .el-table__row').length != 0) {
if (position == 'products') {
$('
').insertAfter($('.el-table').parent().next());
$('').insertAfter('.mx_free_products_container');
}
if (position == 'price') {
$('
').insertAfter('.el-form + .fixed-summary');
$('').appendTo('.mx_free_products_container');
}
if (position == 'buttons') {
$('
').insertAfter($('.el-table').parent().next().next());
$('').appendTo('.mx_free_products_container');
}
}
else {
if (position == 'products') {
$('
').insertAfter('#box_basketlist .productlist');
}
if (position == 'price') {
$('
').insertBefore('#box_basketlist #cart-options .buttons');
}
if (position == 'buttons') {
$('
').insertAfter('#box_basketlist');
}
}
container.appendTo('.mx_free_products_container');
}
if (text_boxhead != '') {
if (typeof GlobalSoolutionSoobasket != 'undefined' && $('.el-table .el-table__row').length != 0) {
$('').insertBefore(container);
}
else {
$(''+text_boxhead+'
').insertBefore(container);
}
}
container.css({'height': '250px', 'display': 'flex', 'align-items': 'center', 'justify-content': 'center'});
container.append(' ');
};
let generateHtml = function ()
{
if (waitingForFrontApi || waitingForSoobasket) return;
let isAdding = false;
let prevWidth = 0;
if (container.find('.line_filler').length > 0) prevWidth = container.find('.line_filler').get(0).offsetWidth;
let tempElement = $('
').insertBefore(container);
container.remove();
container = $('
').insertAfter(tempElement);
tempElement.remove();
if (template == 0)
{
container.addClass('template_slider owl-carousel');
for (let freeProduct of freeProducts) {
if (!avaibleIds.includes(freeProduct.productId)) continue;
let product = productDatas[freeProduct.productId];
let name = (freeProduct.name != '') ? freeProduct.name : product.name;
let image = (freeProduct.image != '') ? freeProduct.image : '/environment/cache/images/300_300_productGfx_'+((product.main_image) ? product.main_image : '__overlay')+'.jpg';
let description = (freeProduct.description != '') ? freeProduct.description : product.shortDescription;
let productHtml = $('
');
productHtml.append('');
productHtml.append('');
let button = $('
');
button.append(''+text_addToBasket+' ');
button.append(' ');
if (sum < freeProduct.settings.price) {
productHtml.addClass('is_off');
}
if (freeProductsLeft == 0 || sum < freeProduct.settings.price) {
button.addClass('is_off');
button.find('.btn').removeClass('btn-red');
}
button.on('click.add', '.btn', function(){
if (isAdding) return;
isAdding = true;
let options = {};
options[optionId] = true;
let response = frontAPI.addToBasket({data:{product_id:freeProduct.productId,options:options}});
if (response.added.length == 0) {
console.error('appProduktGratisowy', response);
alert('Przepraszamy, wystąpił problem przy dodawaniu prezentu do koszyka. Prosimy o wpisanie nazwy prezentu w uwagach do zamówienia.');
} else {
addedFreeProducts = [];
if(localStorage.mx_app_produkt_gratisowy){
addedFreeProducts = JSON.parse(localStorage.mx_app_produkt_gratisowy);
}
addedFreeProducts.push(response.added[0].id);
localStorage.mx_app_produkt_gratisowy = JSON.stringify(addedFreeProducts);
location.reload();
}
});
productHtml.append(button);
if (freeProductsLeft == 0 && text_productExceed != '') {
productHtml.append(''+text_productExceed+'
');
}
else if (freeProduct.settings.highestPrice && maxPrice < freeProduct.settings.price) {
if (text_productLowPrice != '') {
productHtml.append(''+text_productLowMaxPrice.replace('xxx', priceFormat(freeProduct.settings.price-maxPrice)).replace('yyy', priceFormat(freeProduct.settings.price))+'
');
}
}
else if (!freeProduct.settings.highestPrice && sum < freeProduct.settings.price) {
if (text_productLowPrice != '') {
productHtml.append(''+text_productLowPrice.replace('xxx', priceFormat(freeProduct.settings.price-sum)).replace('yyy', priceFormat(freeProduct.settings.price))+'
');
}
}
container.append(productHtml);
}
container.on('refreshed.owl.carousel', function(e){
if (e.relatedTarget.$stage.width() < e.relatedTarget.$element.width()) {
setTimeout(function(){
e.relatedTarget.$element.find('.owl-nav').addClass('disabled');
},1);
}
});
container.on('translate.owl.carousel', function(e){
let X = 0;
if (e.item.index > 0) X = -e.relatedTarget._coordinates[e.item.index-1];
let newX = e.relatedTarget.$stage.width()-e.relatedTarget._width-e.relatedTarget.settings.margin;
if (X > newX && newX > 0) {
setTimeout(function(){
e.relatedTarget.$stage.css('transform', 'translate3d('+(-newX)+'px, 0px, 0px)');
},1);
}
});
container.owlCarousel({autoWidth: true, items: 1, margin: 10, dots: false, nav: true});
let drawLine = function(){
let line = $('
');
let width = 0;
let afterTag = 0;
let step = 0;
for (let freeProduct of freeProducts) {
if (!avaibleIds.includes(freeProduct.productId)) continue;
let price = freeProduct.settings.price;
if (step < price) {
let box = container.find('[data-id="'+freeProduct.productId+'"]').parent().get(0);
let left = (box.offsetLeft == 0) ? (box.offsetLeft+box.offsetWidth/4) : box.offsetLeft;
if (left == 0) {
setTimeout(drawLine, 100);
return
}
if (sum > price) {
width = -left;
}
if (sum > step) {
if (sum <= price) {
width = -width+(left+width)*(sum-step)/(price-step);
} else {
afterTag = -width+box.offsetWidth*(sum-price)/(price-step);
}
}
if (price <= sum) {
line.append(''+text_tag.replace('xxx', priceFormat(price))+'
');
} else {
line.append(''+text_tag.replace('xxx', priceFormat(price))+'
');
}
step = price;
}
}
if (sum > step) {
width = afterTag;
}
line.prepend('
');
setTimeout(function(){line.find('.line_filler').css('width', width+'px');},1);
if (step != 0) {
line.appendTo(container.find('.owl-stage'));
let tagHeight = line.find('.line_tag').get(0).scrollHeight;
line.css('top', tagHeight-line.height());
line.find('.line_tag').css('top', -(tagHeight-line.height()));
container.find('.owl-stage').css('padding-top', tagHeight+line_margin*1+'px');
} else {
container.find('.owl-stage').css('padding-top', 0);
}
};
setTimeout(drawLine,1);
}
if (template == 1)
{
container.addClass('template_list');
for (let freeProduct of freeProducts) {
if (!avaibleIds.includes(freeProduct.productId)) continue;
let product = productDatas[freeProduct.productId];
let name = (freeProduct.name != '') ? freeProduct.name : product.name;
let image = (freeProduct.image != '') ? freeProduct.image : '/environment/cache/images/300_300_productGfx_'+((product.main_image) ? product.main_image : '__overlay')+'.jpg';
let description = (freeProduct.description != '') ? freeProduct.description : product.shortDescription;
let productHtml = $('
');
productHtml.append('');
productHtml.append('
');
if (freeProduct.settings.price > 0 && text_productAbovePrice != '') {
productHtml.find('.mx_info').append(''+text_productAbovePrice.replace('xxx', priceFormat(freeProduct.settings.price))+'
');
}
productHtml.find('.mx_info').append('');
productHtml.find('.mx_info').append(''+description+'
');
let button = $('
');
button.append(''+text_addToBasket+' ');
button.append(' ');
if (sum < freeProduct.settings.price) {
productHtml.addClass('is_off');
}
if (freeProductsLeft == 0 || sum < freeProduct.settings.price) {
button.addClass('is_off');
button.find('.btn').removeClass('btn-red');
}
button.on('click.add', '.btn', function(){
if (isAdding) return;
isAdding = true;
let options = {};
options[optionId] = true;
let response = frontAPI.addToBasket({data:{product_id:freeProduct.productId,options:options}});
if (response.added.length == 0) {
console.error('appProduktGratisowy', response);
alert('Przepraszamy, wystąpił problem przy dodawaniu prezentu do koszyka. Prosimy o wpisanie nazwy prezentu w uwagach do zamówienia.');
} else {
addedFreeProducts = [];
if(localStorage.mx_app_produkt_gratisowy){
addedFreeProducts = JSON.parse(localStorage.mx_app_produkt_gratisowy);
}
addedFreeProducts.push(response.added[0].id);
localStorage.mx_app_produkt_gratisowy = JSON.stringify(addedFreeProducts);
location.reload();
}
});
productHtml.find('.mx_info').append(button);
if (freeProductsLeft == 0 && text_productExceed != '') {
productHtml.append(''+text_productExceed+'
');
}
else if (freeProduct.settings.highestPrice && maxPrice < freeProduct.settings.price) {
if (text_productLowPrice != '') {
productHtml.append(''+text_productLowMaxPrice.replace('xxx', priceFormat(freeProduct.settings.price-maxPrice)).replace('yyy', priceFormat(freeProduct.settings.price))+'
');
}
}
else if (!freeProduct.settings.highestPrice && sum < freeProduct.settings.price) {
if (text_productLowPrice != '') {
productHtml.append(''+text_productLowPrice.replace('xxx', priceFormat(freeProduct.settings.price-sum)).replace('yyy', priceFormat(freeProduct.settings.price))+'
');
}
}
container.append(productHtml);
}
}
};
let selectProducts = function ()
{
avaibleIds = [];
let downloadIds = [];
for (let freeProduct of freeProducts) {
let isProducer = false, isCategory = false, isPrice = false, isUserGroup = false;
let counter = 0;
let adder = 0;
if (Object.keys(freeProduct.settings.producers).length > 0) {
for (let producerId in freeProduct.settings.producers) {
if (typeof producers[producerId] != 'undefined') {
counter += producers[producerId].quantity;
adder += producers[producerId].price;
if (freeProduct.settings.producers[producerId].quantity <= producers[producerId].quantity
&& freeProduct.settings.producers[producerId].price <= producers[producerId].price
) {
isProducer = true;
break;
}
}
}
if (!isProducer && freeProduct.settings.sumProducers) {
for (let producerId in freeProduct.settings.producers) {
if (freeProduct.settings.producers[producerId].quantity <= counter
&& freeProduct.settings.producers[producerId].price <= adder
) {
isProducer = true;
break;
}
}
}
} else {
isProducer = true;
}
counter = 0;
adder = 0;
if (Object.keys(freeProduct.settings.categories).length > 0) {
for (let cateroryId in freeProduct.settings.categories) {
if (typeof categories[cateroryId] != 'undefined') {
let countChildrens = 0;
let sumChildrens = 0;
if (freeProduct.settings.categoriesChildrens) {
//TODO for categoriesChildrens
countChildrens += categories[cateroryId].quantity;//usuń
sumChildrens += categories[cateroryId].price;//usuń
/*for (let categoryChildrenId of categoriesChildrens[cateroryId]) {
if (categories[categoryChildrenId] !== undefined) {
countChildrens += categories[categoryChildrenId].quantity;
sumChildrens += categories[categoryChildrenId].price;
}
}*/
} else {
countChildrens += categories[cateroryId].quantity;
sumChildrens += categories[cateroryId].price;
}
counter += countChildrens;
adder += sumChildrens;
if (freeProduct.settings.categories[cateroryId].quantity <= countChildrens
&& freeProduct.settings.categories[cateroryId].price <= sumChildrens
) {
isCategory = true;
break;
}
}
}
if (!isCategory && freeProduct.settings.sumCategories) {
for (let cateroryId in freeProduct.settings.categories) {
if (freeProduct.settings.categories[cateroryId].quantity <= counter
&& freeProduct.settings.categories[cateroryId].price <= adder
) {
isCategory = true;
break;
}
}
}
} else {
isCategory = true;
}
if (freeProduct.settings.highestPrice) {
if (freeProduct.settings.price <= maxPrice) {
isPrice = true;
}
} else {
if (freeProduct.settings.price <= sum) {
isPrice = true;
}
}
if (!(0 in freeProduct.settings.usersGroups)) {
if (userGroupId in freeProduct.settings.usersGroups) {
isUserGroup = true;
}
} else {
if (!(userGroupId in freeProduct.settings.usersGroups)) {
isUserGroup = true;
}
}
if (freeProduct.settings.needAllSettings) {
if (!isProducer || !isCategory || !isUserGroup) {
continue;
}
if (!isPrice && !freeProduct.settings.showHigherPrices) {
continue;
}
} else {
if ((!isUserGroup || ((0 in freeProduct.settings.usersGroups) && Object.keys(freeProduct.settings.usersGroups).length == 1))
&& (!isProducer || Object.keys(freeProduct.settings.producers).length == 0)
&& (!isCategory || Object.keys(freeProduct.settings.categories).length == 0))
{
if (!isPrice && !freeProduct.settings.showHigherPrices) {
continue;
}
} else {
freeProduct.settings.price = 0;
}
}
if (freeProduct.productId in productDatas) {
avaibleIds.push(freeProduct.productId);
}
else {
downloadIds.push(freeProduct.productId);
}
}
if (avaibleIds.length == 0 && downloadIds.length == 0) {
container.parent().remove();
container = null;
return;
}
waitingForIds = false;
if (delayedPreloader && !waitingForSoobasket) generatePreloader();
waitingForFrontApi = true;
if (downloadIds.length == 0) {
waitingForFrontApi = false;
generateHtml();
}
else {
if (!forceSingleDownload) {
frontAPI.getProducts(function(products){
if (products.count > 0)
{
for (let product of products.list) {
if (!product.can_buy) continue;
productDatas[product.id] = product;
avaibleIds.push(product.id);
}
}
if (avaibleIds.length < downloadIds.length && avaibleIds.length < 5) {
let remainingIds = [];
for (let key in downloadIds) {
if (!avaibleIds.includes(downloadIds[key])) remainingIds.push(downloadIds[key]);
}
for (let key in remainingIds) {
frontAPI.getProduct(function(product)
{
if (!('error_description' in product) && product.can_buy) {
productDatas[product.id] = product;
avaibleIds.push(product.id);
}
if (key == remainingIds.length-1 || avaibleIds.length >= 5)
{
if (avaibleIds.length == 0) {
container.parent().remove();
container = null;
return;
}
waitingForFrontApi = false;
generateHtml();
}
},
{id: remainingIds[key]});
}
}
else {
waitingForFrontApi = false;
generateHtml();
}
},
{ids:downloadIds, urlParams: '?limit=50'});
}
else {
for (let key in downloadIds) {
frontAPI.getProduct(function(product)
{
if (!('error_description' in product) && product.can_buy) {
productDatas[product.id] = product;
avaibleIds.push(product.id);
}
if (key == downloadIds.length-1)
{
if (avaibleIds.length == 0) {
container.parent().remove();
container = null;
return;
}
waitingForFrontApi = false;
generateHtml();
}
},
{id: downloadIds[key]});
}
}
}
};
mxOdswiezGratis = function (basket)
{
sum = 0;
maxPrice = 0;
producers = {};
categories = {};
htmlToUpdate = {};
freeProductsLeft = freeProductsCount;
if (userGroupId == null) {
userGroupId = -1;
let userId = Shop.fn.getVisitorId();
if (userId != null) {
let user = frontAPI.getUser({id: userId});
if (0 in user.groups) {
userGroupId = user.groups[0].group_id;
}
}
}
let addedFreeProducts = [];
if(localStorage.mx_app_produkt_gratisowy){
addedFreeProducts = JSON.parse(localStorage.mx_app_produkt_gratisowy);
}
sum = 0;
switch (sum_basket) {
case 'sum_products':
sum = Math.round(basket.basket.sum_products_float*100)/100;
break;
case 'sum_shipping':
sum = Math.round((basket.basket.sum_products_float+basket.basket.sum_float-basket.basket.sum_no_shipping_float)*100)/100;
break;
case 'sum_no_shipping':
sum = Math.round(basket.basket.sum_no_shipping_float*100)/100;
break;
case 'sum':
sum = Math.round(basket.basket.sum_float*100)/100;
break;
default:
console.error('appProduktGratisowy maxsote.pl - niewłaściwy sposób sumowania');
}
let reload = false;
let basketProductsIds = [];
for (let product of basket.products) {
basketProductsIds.push(product.id);
for (let langKey in allFreeProductsIds) {
if (langKey == Shop.lang.name) continue;
let langFreeKey = allFreeProductsIds[langKey].indexOf(product.product_id);
let addedFreeProductsKey = addedFreeProducts.indexOf(product.id);
if (langFreeKey != -1 && addedFreeProductsKey != -1 && product.variant != '') {
frontAPI.removeFromBasket({id: product.id});
addedFreeProducts.splice(addedFreeProductsKey, 1);
reload = true;
}
}
let freeKey = freeProductsIds.indexOf(product.product_id);
let addedFreeProductsKey = addedFreeProducts.indexOf(product.id);
if (freeKey != -1 && addedFreeProductsKey != -1 && product.variant != '') {
if (freeProductsLeft < product.quantity) {
frontAPI.removeFromBasket({id: product.id});
addedFreeProducts.splice(addedFreeProductsKey, 1);
reload = true;
continue;
}
freeProductsLeft -= product.quantity;
htmlToUpdate[freeKey] = product;
continue;
}
if (maxPrice < product.price_float) {
maxPrice = product.price_float;
}
if (product.producer) {
if (producers[product.producer.producer_id] !== undefined) {
producers[product.producer.producer_id].quantity += product.quantity;
producers[product.producer.producer_id].price += product.sum_float;
} else {
producers[product.producer.producer_id] = [];
producers[product.producer.producer_id].quantity = product.quantity;
producers[product.producer.producer_id].price = product.sum_float;
}
}
if (product.category) {
if (categories[product.category.category_id] !== undefined) {
categories[product.category.category_id].quantity += product.quantity;
categories[product.category.category_id].price += product.sum_float;
} else {
categories[product.category.category_id] = {};
categories[product.category.category_id].quantity = product.quantity;
categories[product.category.category_id].price = product.sum_float;
}
}
}
for (let product of basket.products) {
let freeKey = freeProductsIds.indexOf(product.product_id);
let addedFreeProductsKey = addedFreeProducts.indexOf(product.id);
if (freeKey != -1 && addedFreeProductsKey != -1 && product.variant != '') {
let isProducer = false, isCategory = false, isPrice = false, isUserGroup = false;
let counter = 0;
let adder = 0;
if (Object.keys(freeProducts[freeKey].settings.producers).length > 0) {
for (let producerId in freeProducts[freeKey].settings.producers) {
if (typeof producers[producerId] != 'undefined') {
counter += producers[producerId].quantity;
adder += producers[producerId].price;
if (freeProducts[freeKey].settings.producers[producerId].quantity <= producers[producerId].quantity
&& freeProducts[freeKey].settings.producers[producerId].price <= producers[producerId].price
) {
isProducer = true;
break;
}
}
}
if (!isProducer && freeProducts[freeKey].settings.sumProducers) {
for (let producerId in freeProducts[freeKey].settings.producers) {
if (freeProducts[freeKey].settings.producers[producerId].quantity <= counter
&& freeProducts[freeKey].settings.producers[producerId].price <= adder
) {
isProducer = true;
break;
}
}
}
} else {
isProducer = true;
}
counter = 0;
adder = 0;
if (Object.keys(freeProducts[freeKey].settings.categories).length > 0) {
for (let cateroryId in freeProducts[freeKey].settings.categories) {
if (typeof categories[cateroryId] != 'undefined') {
let countChildrens = 0;
let sumChildrens = 0;
if (freeProducts[freeKey].settings.categoriesChildrens) {
//TODO for categoriesChildrens
countChildrens += categories[cateroryId].quantity;//usuń
sumChildrens += categories[cateroryId].price;//usuń
/*for (let categoryChildrenId of categoriesChildrens[cateroryId]) {
if (categories[categoryChildrenId] !== undefined) {
countChildrens += categories[categoryChildrenId].quantity;
sumChildrens += categories[categoryChildrenId].price;
}
}*/
} else {
countChildrens += categories[cateroryId].quantity;
sumChildrens += categories[cateroryId].price;
}
counter += countChildrens;
adder += sumChildrens;
if (freeProducts[freeKey].settings.categories[cateroryId].quantity <= countChildrens
&& freeProducts[freeKey].settings.categories[cateroryId].price <= sumChildrens
) {
isCategory = true;
break;
}
}
}
if (!isCategory && freeProducts[freeKey].settings.sumCategories) {
for (let cateroryId in freeProducts[freeKey].settings.categories) {
if (freeProducts[freeKey].settings.categories[cateroryId].quantity <= counter
&& freeProducts[freeKey].settings.categories[cateroryId].price <= adder
) {
isCategory = true;
break;
}
}
}
} else {
isCategory = true;
}
if (freeProducts[freeKey].settings.highestPrice) {
if (freeProducts[freeKey].settings.price <= maxPrice) {
isPrice = true;
}
} else {
if (freeProducts[freeKey].settings.price <= sum) {
isPrice = true;
}
}
if (!(0 in freeProducts[freeKey].settings.usersGroups)) {
if (userGroupId in freeProducts[freeKey].settings.usersGroups) {
isUserGroup = true;
}
} else {
if (!(userGroupId in freeProducts[freeKey].settings.usersGroups)) {
isUserGroup = true;
}
}
if (freeProducts[freeKey].settings.needAllSettings) {
if (!isProducer || !isCategory || !isPrice || !isUserGroup) {
frontAPI.removeFromBasket({id: product.id});
addedFreeProducts.splice(addedFreeProductsKey, 1);
reload = true;
}
} else {
if ((!isUserGroup || ((0 in freeProducts[freeKey].settings.usersGroups) && Object.keys(freeProducts[freeKey].settings.usersGroups).length == 1))
&& (!isProducer || Object.keys(freeProducts[freeKey].settings.producers).length == 0)
&& (!isCategory || Object.keys(freeProducts[freeKey].settings.categories).length == 0)
&& !isPrice)
{
frontAPI.removeFromBasket({id: product.id});
addedFreeProducts.splice(addedFreeProductsKey, 1);
reload = true;
}
}
}
}
let diffAddedFreeProducts = [];
for (let item of addedFreeProducts) {
if (basketProductsIds.includes(item)) {
diffAddedFreeProducts.push(item);
}
}
addedFreeProducts = diffAddedFreeProducts;
localStorage.mx_app_produkt_gratisowy = JSON.stringify(addedFreeProducts);
if (reload) location.reload();
selectProducts();
};
frontAPI.getBasketInfo(function(basket)
{
mxOdswiezGratis(basket);
if ($('#box_basketsummary').length > 0) {
for (let freeKey in htmlToUpdate) {
let product = htmlToUpdate[freeKey];
let item;
$('#box_basketsummary [data-product-id="'+product.product_id+'"]').each(function(index2, item2){
if ($(item2).find('.variant').text().trim() == product.variant) {
item = $(item2);
return false;
}
});
if (freeProducts[freeKey].image != '') {
item.find('.img img').attr('src', freeProducts[freeKey].image);
}
if (freeProducts[freeKey].name != '') {
item.find('.name a').html(freeProducts[freeKey].name).attr('title', freeProducts[freeKey].name);
}
item.find('.name .variant').html(text_variant);
item.find('.price').html(product.price);
}
}
if ($('#box_basketlist').length > 0)
{
if (typeof GlobalSoolutionSoobasket != 'undefined') {
waitingForSoobasket = true;
let waitingFunction = function ()
{
if ($('#box_basketlist').is(':visible')) {
for (let freeKey in htmlToUpdate) {
let product = htmlToUpdate[freeKey];
let item = $('#box_basketlist [href="/pl/basket/remove/'+product.id+'"]').parent().parent();
if (freeProducts[freeKey].image != '') {
item.find('.img img').attr('src', freeProducts[freeKey].image);
}
if (freeProducts[freeKey].name != '') {
item.find('.name a').html(freeProducts[freeKey].name).attr('title', freeProducts[freeKey].name);
}
item.find('.name .variant').html(text_variant);
item.find('.quantity input').val(product.quantity).prop('readonly', true).css({'background': '#33333333', 'cursor': 'auto'});
item.find('.price').html(product.price);
}
waitingForSoobasket = false;
if (!delayedPreloader || delayedPreloader && !waitingForIds) generatePreloader();
generateHtml();
}
else if ($('.el-table .el-table__row').length == 0) {
setTimeout(waitingFunction, 100);
}
else {
for (let freeKey in htmlToUpdate) {
let product = htmlToUpdate[freeKey];
let item = $('.el-table [data-product-id="'+product.product_id+'"]').parent().parent().parent();
if (freeProducts[freeKey].image != '') {
item.find('img').attr('src', freeProducts[freeKey].image);
}
if (freeProducts[freeKey].name != '') {
item.find('.name a').html(freeProducts[freeKey].name).attr('title', freeProducts[freeKey].name);
}
item.find('.name .variant').html(text_variant);
item.find('.quantity-input').append('
');
item.find('.quantity-input input').val(product.quantity).prop('readonly', true);
item.find('.el-table_1_column_5 .cell').html(`${product.price} `);
}
waitingForSoobasket = false;
if (!delayedPreloader || delayedPreloader && !waitingForIds) generatePreloader();
generateHtml();
}
};
waitingFunction();
}
else {
for (let freeKey in htmlToUpdate) {
let product = htmlToUpdate[freeKey];
let item = $('#box_basketlist [href="/pl/basket/remove/'+product.id+'"]').parent().parent();
if (freeProducts[freeKey].image != '') {
item.find('.img img').attr('src', freeProducts[freeKey].image);
}
if (freeProducts[freeKey].name != '') {
item.find('.name a').html(freeProducts[freeKey].name).attr('title', freeProducts[freeKey].name);
}
item.find('.name .variant').html(text_variant);
item.find('.quantity input').val(product.quantity).prop('readonly', true).css({'background': '#33333333', 'cursor': 'auto'});
item.find('.price').html(product.price);
}
if (!delayedPreloader) generatePreloader();
}
}
if ($('#box_productfull').length > 0)
{
for (let freeProduct of freeProducts) {
$(`#box_productfull #option_${optionId}`).parent().parent().parent().parent().remove();
if (freeProduct.productId == Shop.pageId && Boolean(freeProduct.settings.blockBuying))
{
$('#box_productfull .form-basket').append(`${text_blockBuying}
`);
}
else
{
$(`#box_productfull .stocks`).show();
}
}
}
},{});
}
}
APIloader();
let halfPoint = Math.round(tag_triangle_height/Math.sqrt(2));
let style = '';
style += ` \n`;
$("head").append(style);
}(jQuery));