//TODO link do strony informacyjnej //TODO możliwość zmiany usuwania na "od najtańszej" jQuery(function($) { let product_id = '7272'; let variantYearId = '32'; let variantPriceId = '31'; let list_type = 'none'; let translations_array = {"add_text":{"__default":"Dodaj","pl_PL":"Dodaj"},"no_option_text":{"__default":"brak"}}; let no_option = 0; let product_ids = []; let categoriesIds = {"0":"Wszystkie kategorie"}; let producersIds = {"0":"Wszyscy producenci"}; function getTranslation(var_name,current_lang,translations_array) { if(!(current_lang in translations_array[var_name])) { translation = translations_array[var_name]['__default']; } else { translation = translations_array[var_name][current_lang]; } return translation; } $(document).ready(function(){ $('.shop_basket_step3 .information .comment').hide(); function APIloader () { if (!window.frontAPI || !window.jQuery) { setTimeout(APIloader, 0); } else { var current_lang = Shop.lang.name; var add_text = getTranslation('add_text',current_lang,translations_array); var no_option_text = getTranslation('no_option_text',current_lang,translations_array); var current_curr = (Shop.values.currency) ? Shop.values.currency : "PLN"; var priceFormater = new Intl.NumberFormat( current_lang.split('_').join('-'), {style: 'currency', currency: current_curr} ); function priceFormat(price){ return priceFormater.format(price); } if($('.shop_basket').length > 0){ //Pobieranie produktu(gwarancji) var protection = frontAPI.getProduct({id:product_id, lang: current_lang, currency: current_curr}); var protectionWariants = []; var protectionWariantsNames = {}; //console.log(protection); if(protection.options_configuration && protection.options_configuration.length == 2){ //Pobieranie wariantów + zmienne z łatwiejszym dostępem var basketProducts = frontAPI.getBasketInfo({lang: current_lang, currency: current_curr}).products.filter(function(item){return item.product_id!=product_id}); var tab = []; var currentPrices = basketProducts.map(function(item){return item.price_float}); var priceBrackets = {}; $(protection.options_configuration).each(function(index, item){ var tab2 = []; $(item.values).each(function(index2, item2){ if(item.id == variantPriceId){ var price_min = parseFloat(item2.name.split(',').join('.').split('-')[0]); var price_max = parseFloat(item2.name.split(',').join('.').split('-')[1]); if(currentPrices.filter(function(item){return price_min<=item && item tbody > tr:not([data-product-id="'+product_id+'"])').each(function(index, item){ var productBasketId = $(item).find('.prodremove').attr('href').split("/").pop(); if(protectionData[parseInt(productBasketId)]){ newProtectionData[parseInt(productBasketId)] = protectionData[parseInt(productBasketId)]; } }); localStorage.mx_app_easy_protect = JSON.stringify(newProtectionData); //Sprawdzanie produktów $('#box_basketlist .productlist > tbody > tr:not([data-product-id="'+product_id+'"])').each(function(index, item){ //Pobieranie danych produktu var productBasketId = $(item).find('.prodremove').attr('href').split("/").pop(); var basketProduct = $(basketProducts).filter(function(){return this.id == productBasketId}).get(0); var productId = basketProduct.product_id; var categoryId = basketProduct.category.category_id; var producerId = basketProduct.producer.producer_id; var quantity = basketProduct.quantity; var price = basketProduct.price_float; //Sprawdzanie whitelist i blacklist dla produktów, kategrii i producentów let blockCategory = false; let blockProducer = false; if (0 in categoriesIds) { if (categoryId in categoriesIds) { blockCategory = true; } } else { if (!(categoryId in categoriesIds)) { blockCategory = true; } } if (0 in producersIds) { if (producerId in producersIds) { blockProducer = true; } } else { if (!(producerId in producersIds)) { blockProducer = true; } } if (list_type == 'whitelist') { if (!product_ids.includes(productId)) { if (blockCategory || blockProducer) return true; } } else if (list_type == 'blacklist') { if (product_ids.includes(productId)) { return true; } if (blockCategory || blockProducer) return true; } else { if (blockCategory || blockProducer) return true; } //Sprawdzenie czy są warianty z minimalną ceną niższą od ceny produktu var choosenProtectionWariants = protectionWariants.filter(function(item2){return item2.price_min <= price}); if(choosenProtectionWariants.length > 0){ //Wybieranie wariantów po cenie choosenProtectionWariants = choosenProtectionWariants.filter(function(item2, index2, arr){ var temp = arr.reduce(function(accumulator, value){ return (value.price_min > accumulator.price_min) ? value : accumulator; }); return item2.price_min == temp.price_min; }); //Licznik gwarancji per product var countProtection = 0; //Odczytywanie danych z localstorage var protectionData = {}; if(localStorage.mx_app_easy_protect){ protectionData = JSON.parse(localStorage.mx_app_easy_protect); } if(protectionData[parseInt(productBasketId)]){//Jeżeli produkt zawiera jakiś gwarancje for(var key in protectionData[parseInt(productBasketId)]){ //Szukanie ostatniej gwarancji dla produktu var prevItem = item; while($(prevItem).next().is('[data-product-id="'+product_id+'"]:not([data-category])')){ prevItem = $(prevItem).next()[0]; } //Szukanie wskaźnika do choosenProtectionWariants var wariantIndex = 0; for(var key2 in choosenProtectionWariants){ if(choosenProtectionWariants[key2].stock_id == key){ wariantIndex = key2; break; } } //Zmienne do html var price = choosenProtectionWariants[wariantIndex].price_float; var imageUrl = '__overlay'; if(protection.main_image){ imageUrl = protection.main_image; } //Tworzenie html var gwarancja = ''; gwarancja += ' '; gwarancja += ' '; gwarancja += ' '+protection.name+''; gwarancja += ' '; gwarancja += ' '; gwarancja += ' '+protection.name+'';//TODO link do strony informacyjnej gwarancja += ' '+choosenProtectionWariants[wariantIndex].variant+''; gwarancja += ' '; if($(item).find('.time').length != 0){ gwarancja += ' '+$(item).find('.time').text().trim()+''; } gwarancja += ' '; gwarancja += ' '; gwarancja += ' '; gwarancja += ' '; gwarancja += ' '+protection.unit.name+''; gwarancja += ' '; gwarancja += ' '+priceFormat(price)+'';//price.toFixed(2).split('.').join(',')+' '+curr gwarancja += ' '; gwarancja += ' '+priceFormat(price*protectionData[parseInt(productBasketId)][key].quantity)+''; gwarancja += ' '; gwarancja += ' '; gwarancja += ' '; gwarancja += ' '; gwarancja += ' '+$(item).find('.actions a span').text().trim()+''; gwarancja += ' '; gwarancja += ' '; gwarancja += ' '; gwarancja += ' '; //Dodawanie gwarancji i eventów gwarancja = $(gwarancja).insertAfter(prevItem) gwarancja.find('.quantity input').on('input', function(){ //Utrzymywanie wartości input między 1, a attr(max) if($(this).attr('max')*1 < $(this).val()){ $(this).val($(this).attr('max')); }else if($(this).val() < 1){ $(this).val(1); } //Pobieranie ceny i ilości var price = $(this).attr('data-price')*1; var count = $(this).val(); //Aktualizacja ceny i wartości $(this).parent().parent().parent().find('.price').text(priceFormat(price)); $(this).parent().parent().parent().find('.sum em').text(priceFormat(price*count)); //Aktualizacja attr(max) w gwarancjach i formularzu w danym produkcie var newCountProtection = 0; $('#box_basketlist .productlist > tbody > tr[data-for-basket-id="'+productBasketId+'"]').each(function(index2, item2){ newCountProtection -= $(item2).find('.quantity input').val()*-1 }); var newMax = $('#box_basketlist .productlist > tbody > tr[data-for-basket-id="'+productBasketId+'"]').first().prev().find('.quantity input').val(); $('#box_basketlist .productlist > tbody > tr[data-for-basket-id="'+productBasketId+'"]').each(function(index2, item2){ $(item2).find('.quantity input').attr('max',newMax-newCountProtection-$(item2).find('.quantity input').val()*-1); }); var formularz = $('#box_basketlist .productlist > tbody > tr[data-for-basket-id="'+productBasketId+'"]').last().next().find('.quantity input'); if(newMax-newCountProtection > 1){ formularz.attr('max',newMax-newCountProtection).change(); } else{ formularz.attr('max',1).change(); formularz.attr('disabled','disabled'); } //Ukrywanie możliwości dodania gwarancji if(newMax-newCountProtection == 0){ $('#box_basketlist .productlist > tbody > tr[data-for-basket-id="'+productBasketId+'"]').last().next().hide(); }else{ $('#box_basketlist .productlist > tbody > tr[data-for-basket-id="'+productBasketId+'"]').last().next().show(); } //Aktualizacja localStorage var stockId = $(this).parent().parent().parent().find('.prodremove').attr('data-stock-id'); protectionData = JSON.parse(localStorage.mx_app_easy_protect); protectionData[productBasketId][stockId].quantity = count*1; localStorage.mx_app_easy_protect = JSON.stringify(protectionData); //Aktualizacja fizycznego produktu(gwarancji) updateProducts(); }); gwarancja.find('.prodremove').click(function(e){ //Aktualizacja localStorage var stockId = $(this).attr('data-stock-id'); protectionData = JSON.parse(localStorage.mx_app_easy_protect); delete protectionData[productBasketId][stockId]; if(Object.keys(protectionData[productBasketId]).length == 0){ //Usuwanie id produktu, gdy nie ma on gwarancji delete protectionData[productBasketId]; } localStorage.mx_app_easy_protect = JSON.stringify(protectionData); //Aktualizacja fizycznego produktu(gwarancji) updateProducts(true, function(){location.replace(location.href)}); $('*').css('cursor','wait'); //Anulowanie odświerzenia e.preventDefault(); }); //Sumowanie ilości gwarancji countProtection -= protectionData[parseInt(productBasketId)][key].quantity*-1; } } //Wyłączanie możliwości dodawania gwarancji var ukryj = ''; if(quantity-countProtection <= 0){ ukryj = 'style="display: none;"'; } var price = choosenProtectionWariants[0].price_float; if (no_option == 1 && no_option_text != '') { price = 0; } //Towrzenie html var protectionForm = ''; protectionForm += ' '; protectionForm += ' '; protectionForm += ' '+protection.shortDescription+''; protectionForm += ' '; protectionForm += ' '; protectionForm += ' '+protection.name+''; protectionForm += ' '+protection.description+''; protectionForm += ' '; protectionForm += ' '; protectionForm += ' '; protectionForm += ' '; protectionForm += ' '; protectionForm += ' '; protectionForm += ' '; protectionForm += ' '+protection.unit.name+''; protectionForm += ' '; if(window.outerWidth > 480){ protectionForm += ' '; } else{ protectionForm += ' '; protectionForm += ' '; protectionForm += ' '; protectionForm += ' '+priceFormat(price)+''; } if (no_option == 1 && no_option_text != '') { protectionForm += '
'; protectionForm += ' '; protectionForm += ' '+no_option_text; protectionForm += ' '; protectionForm += '
'; } $(choosenProtectionWariants).each(function(index2, item2){ protectionForm += '
'; protectionForm += ' '; protectionForm += ' '; protectionForm += '
'; }); if(window.outerWidth > 480){ protectionForm += ' '; protectionForm += ' '; protectionForm += ' '+priceFormat(price)+''; protectionForm += ' '; } else{ protectionForm += ' '; } protectionForm += ' '; if (no_option == 1 && no_option_text != '') { protectionForm += ' '; } protectionForm += ' '; protectionForm += ' '+add_text+''; protectionForm += ' '; protectionForm += ' '; protectionForm += ' '; //Szukanie ostatniej gwarancji dla produktu var prevItem = item; while($(prevItem).next().is('[data-product-id="'+product_id+'"]:not([data-category])')){ $(prevItem).next().find('.quantity input').attr('max',quantity-countProtection-$(prevItem).next().find('.quantity input').val()*-1); prevItem = $(prevItem).next()[0]; } //Dodawanie formularza i eventów var form = $(protectionForm); form.insertAfter(prevItem); form.find('.actions a').click(function(e){ //Aktualizacja localStorage var count = $(this).parent().parent().find('.quantity input').val(); var stockId = $(this).parent().parent().find('.mx_variants input:checked').val(); var options = protectionWariants.filter(function(item2){return item2.stock_id == stockId}).pop().options; var protectionData = {}; if(localStorage.mx_app_easy_protect){ protectionData = JSON.parse(localStorage.mx_app_easy_protect); } if(protectionData[parseInt(productBasketId)] != null){//Jeżeli produkt ma już jakąś gwarancję if(protectionData[parseInt(productBasketId)][parseInt(stockId)] != null){//Jeżeli już jest ta gwarancja protectionData[parseInt(productBasketId)][parseInt(stockId)].quantity -= count*-1;//Zwiększa ilość gwarancji } else{//Jeżeli nie ma tej gwarancji protectionData[parseInt(productBasketId)][parseInt(stockId)] = {options: options, quantity: +count};//Dodaje gwarancję } } else{//Jeżeli produkt nie ma rzadnej gwarancji var temp = {}; temp[parseInt(stockId)] = {options: options, quantity: +count}; protectionData[parseInt(productBasketId)] = temp;//Dodaje gwarancję } //Zapis danych localStorage.mx_app_easy_protect = JSON.stringify(protectionData); //Aktualizacja fizycznego produktu(gwarancji) updateProducts(true, function(){location.replace(location.href)}); $('*').css('cursor','wait'); //Anulowanie odświerzenia e.preventDefault(); }); //Ukrywanie kolumny gdy produkt jej nie ma if($(prevItem).find('.time').length == 0){ form.find('.time').hide(); } if(quantity-countProtection < 0){//Jeżeli ilość gwarancji jest większa od ilości produktu //Usuwanie gwarancji do momentu kiedy będzie więcej produktu niż gwarancji $('#box_basketlist .productlist > tbody > tr[data-for-basket-id="'+productBasketId+'"]').each(function(index2, item2){ //Jeżeli nadal ilość gwarancji jest większa od ilości produktu if(quantity-countProtection < 0){ //Aktualizacja localStorage i wyświetlania gwarancji var stockId = $(item2).find('.prodremove').attr('data-stock-id'); var ilosc = $(item2).find('.quantity input'); protectionData = JSON.parse(localStorage.mx_app_easy_protect); if(ilosc.val() <= (quantity-countProtection)*-1){//Jeżeli różnica ilość gwarancji i ilości produktu jest większa od ilości sprawdzanej gwarancji //Usuń wpis w localstorage delete protectionData[productBasketId][stockId]; if(Object.keys(protectionData[productBasketId]).length == 0){ delete protectionData[productBasketId]; } //Zaktualizuj ilość gwarancji countProtection -= ilosc.val(); //Usuń gwarancję z widoku $(item2).remove(); } else{//Jeżeli różnica ilość gwarancji i ilości produktu jest mniejsza od ilości sprawdzanej gwarancji //Aktualizacja localStorage, gwarancji w widoku i ilości gwarancji protectionData[productBasketId][stockId].quantity = ilosc.val()-(quantity-countProtection)*-1; ilosc.val(ilosc.val()-(quantity-countProtection)*-1); countProtection -= (quantity-countProtection)*-1; } //Zapis danych localStorage.mx_app_easy_protect = JSON.stringify(protectionData); //Odświerzenie strony location.replace(location.href); } }); } } }); $('.protectionForm .mx_variants input').change(function(){ if ($(this).val() == 'no_option') { $(this).parent().parent().parent().find('.actions a').css('visibility', 'hidden'); } else { $(this).parent().parent().parent().find('.actions a').css('visibility', ''); } //Pobieranie ceny i ilości //var stockId = $(this).val(); var price = $(this).attr('data-price')*1; var count = $(this).parent().parent().parent().find('.quantity input').val(); //Aktualizacja ceny i wartości //$(this).parent().parent().find('.price').text(priceFormat(price)); $(this).parent().parent().parent().find('.sum em').text(priceFormat(price*count)); }); $('.protectionForm .quantity input').on('input change', function(e){ //Dodanie możliwości chwilowego wyczyszczenia pola if(e.type == "input" && $(this).val() == ""){ return; } //Utrzymywanie wartości input między 1, a attr(max) if($(this).attr('max')*1 < $(this).val()){ $(this).val($(this).attr('max')); }else if($(this).val() < 1){ $(this).val(1); } //Pobieranie ceny i ilości //var stockId = $(this).parent().parent().parent().find('.time input').val(); var price = $(this).parent().parent().parent().find('.mx_variants input:checked').attr('data-price')*1; var count = $(this).val(); //Aktualizacja ceny i wartości //$(this).parent().parent().parent().find('.price').text(priceFormat(price)); $(this).parent().parent().parent().find('.sum em').text(priceFormat(price*count)); }); //Update fizycznych gwarancji function updateProducts(change, callback){ if(change === undefined){ change = true; } if(callback === undefined){ callback = function(){} } //Odczytywanie danych z localstorage protectionData = {}; var protectionCount = {}; if(localStorage.mx_app_easy_protect){ protectionData = JSON.parse(localStorage.mx_app_easy_protect); } //Liczenie ilości wariantów ze wszystkich produktów for(var key in protectionData){ for(var key2 in protectionData[key]){ if(protectionCount[key2] != null){ protectionCount[key2] -= protectionData[key][key2].quantity*-1; } else{ protectionCount[key2] = protectionData[key][key2].quantity; } } } //Ukrywanie fizycznie dodanych gwarancji, eliminacja błędu z pustymi inputami, trigerowanie przycisku do zmiany cen $('#box_basketlist .productlist > tbody > tr[data-product-id="'+product_id+'"][data-category]').each(function(index, item){ $(item).hide().find('.quantity input').val(1); if(change){ $(item).find('.quantity input').change(); } }); //Aktualizacja fizycznych gwarancji frontAPI.getBasketInfo(function(basket){ var products = $(basket.products).filter(function(){return this.product_id == product_id}); //Czy w koszyku są jakieś gwarancje if(products.length > 0){ //Usuń wszystkie gwarancje products.each(function(index, item){ frontAPI.removeFromBasket(function(){ //Jeżeli to jest ostatnie wykonanie funkcji if(products.length == ++index){ //Czy są gwarancje w localstorage if(Object.keys(protectionCount).length > 0){ //Dodaj gwarancje z localstorage for(var key in protectionCount){ var options = protectionWariants.filter(function(item){return item.stock_id == key}).pop().options; var counter = 0; frontAPI.addToBasket(function(){ counter++; //Jeżeli to jest ostatnie wykonanie funkcji if(Object.keys(protectionCount).length == counter){ callback(); } },{ data:{stock_id:protection.stockId,quantity:protectionCount[key],options:options} }); } } else{ callback(); } } },{ id:item.id }); }); } else{ //Czy są gwarancje w localstorage if(Object.keys(protectionCount).length > 0){ //Dodaj gwarancje z localstorage for(var key in protectionCount){ var options = protectionWariants.filter(function(item){return item.stock_id == key}).pop().options; var counter = 0;console.log({stock_id:protection.stockId,quantity:protectionCount[key],options:options}); frontAPI.addToBasket(function(){ counter++; //Jeżeli to jest ostatnie wykonanie funkcji if(Object.keys(protectionCount).length == counter){ callback(); } },{ data:{stock_id:protection.stockId,quantity:protectionCount[key],options:options} }); } } else{ callback(); } } },{}); } updateProducts(false); } } if($('.shop_basket_address').length > 0){ //Usuwanie informacji o gwarancjach z textarea if($('.shaded_textareawrap textarea').val().indexOf(String.fromCharCode(160)+"\n\n\n---Gwarancja EasyProtect---\n") != -1){ var text1 = $('.shaded_textareawrap textarea').val().slice(0, $('.shaded_textareawrap textarea').val().indexOf(String.fromCharCode(160)+"\n\n\n---Gwarancja EasyProtect---\n")); var text2 = $('.shaded_textareawrap textarea').val().slice($('.shaded_textareawrap textarea').val().indexOf("\n---END Gwarancja EasyProtect---")+32); $('.shaded_textareawrap textarea').val(text1+text2); } //Pobieranie produktu(gwarancji) var protection = frontAPI.getProduct({id:product_id, lang: current_lang, currency: current_curr}); var protectionWariants = []; var protectionWariantsNames = {}; if(protection.options_configuration && protection.options_configuration.length == 2 && localStorage.mx_app_easy_protect != undefined && localStorage.mx_app_easy_protect != "{}"){ frontAPI.getBasketInfo(function(basket){ //Pobieranie wariantów + zmienne z łatwiejszym dostępem var basketProducts = frontAPI.getBasketInfo({lang: current_lang, currency: current_curr}).products; var tab = []; var priceBrackets = {}; var temp_ids = []; $(protection.options_configuration).each(function(index, item){ var tab2 = []; $(item.values).each(function(index2, item2){ if(tab.length != 0){ $(tab).each(function(index3, item3){ var temp = {}; for(key in item3){ temp[key] = item3[key]; } temp[item.id] = item2.id; tab2.push(temp); }); } else{ var temp = {}; temp[item.id] = item2.id; tab2.push(temp); } if(item.id == variantYearId){ protectionWariantsNames[item2.id] = item2.name; } else if(item.id == variantPriceId){ priceBrackets[item2.id] = { price_min: parseFloat(item2.name.split(',').join('.').split('-')[0]), price_max: parseFloat(item2.name.split(',').join('.').split('-')[1]) }; } }); if(item.id == variantYearId){ protectionWariantsNames.main = item.name; } tab = tab2; }); $(tab).each(function(index, item){ var obj = frontAPI.getProductOption({id: protection.id, data: {options: item}, lang: current_lang, currency: current_curr}); if(!obj.error_description){ protectionWariants.push({ stock_id: obj.id, options: item, price_float: obj.price.gross.final_float, price_min: priceBrackets[item[variantPriceId]].price_min, price_max: priceBrackets[item[variantPriceId]].price_max, variant: protectionWariantsNames.main+": "+protectionWariantsNames[item[variantYearId]], }); } }); //console.log(protectionWariants); //Odczytywanie danych z localstorage var protectionData = {}; if(localStorage.mx_app_easy_protect){ protectionData = JSON.parse(localStorage.mx_app_easy_protect); } var string = []; for(var key in protectionData){ for(var key2 in protectionData[key]){ //Szukanie wskaźnika do protectionWariants + zmienne do string var wariantIndex = 0; for(var key3 in protectionWariants){ if(protectionWariants[key3].stock_id == key2){ wariantIndex = key3; break; } } var price = protectionWariants[wariantIndex].price_float; var product = $(basket.products).filter(function(){return this.id == key}).get(0); //Tablica z gwarancjami string.push( protection.name+ '('+ protectionWariantsNames.main+ ': '+ protectionWariantsNames[protectionData[key][key2].options[variantYearId]]+ ') '+ priceFormat(price*protectionData[key][key2].quantity)+ ' do produktu '+ product.name+ '('+ product.variant+ ')' ); } } //Zapisanie danych o gwarancjach w textarea var clicked = false; $('.bottombuttons .summary').click(function(){ if(!clicked){ clicked = true; $('.shaded_textareawrap textarea').val($('.shaded_textareawrap textarea').val()+String.fromCharCode(160)+"\n\n\n---Gwarancja EasyProtect---\n"+string.join(', ')+"\n---END Gwarancja EasyProtect---"); } }); },{lang: current_lang, currency: current_curr}); } } if($('.shop_basket_step3').length > 0){ //Usuwanie informacji o gwarancji z widoku if($('.information .comment .comment').text().indexOf(String.fromCharCode(160)+"\n\n\n---Gwarancja EasyProtect---\n") != -1){ var text1 = $('.information .comment .comment').text().slice(0, $('.information .comment .comment').text().indexOf(String.fromCharCode(160)+"\n\n\n---Gwarancja EasyProtect---\n")); var text2 = $('.information .comment .comment').text().slice($('.information .comment .comment').text().indexOf("\n---END Gwarancja EasyProtect---")+32); $('.information .comment .comment').text(text1+text2); if($('.information .comment .comment').text().length == 0){ $('.information .comment .comment').parent().parent().hide(); } else{ $('.information .comment .comment').show().parent().parent().show(); } } //Pobieranie produktu(gwarancji) var protection = frontAPI.getProduct({id:product_id, lang: current_lang, currency: current_curr}); var protectionWariants = []; var protectionWariantsNames = {}; if(protection.options_configuration && protection.options_configuration.length == 2 && localStorage.mx_app_easy_protect != undefined && localStorage.mx_app_easy_protect != "{}"){ //Pobieranie wariantów + zmienne z łatwiejszym dostępem var basketProducts = frontAPI.getBasketInfo({lang: current_lang, currency: current_curr}).products; var tab = []; var priceBrackets = {}; var temp_ids = []; $(protection.options_configuration).each(function(index, item){ var tab2 = []; $(item.values).each(function(index2, item2){ if(tab.length != 0){ $(tab).each(function(index3, item3){ var temp = {}; for(key in item3){ temp[key] = item3[key]; } temp[item.id] = item2.id; tab2.push(temp); }); } else{ var temp = {}; temp[item.id] = item2.id; tab2.push(temp); } if(item.id == variantYearId){ protectionWariantsNames[item2.id] = item2.name; } else if(item.id == variantPriceId){ priceBrackets[item2.id] = { price_min: parseFloat(item2.name.split(',').join('.').split('-')[0]), price_max: parseFloat(item2.name.split(',').join('.').split('-')[1]) }; } }); if(item.id == variantYearId){ protectionWariantsNames.main = item.name; } tab = tab2; }); $(tab).each(function(index, item){ var obj = frontAPI.getProductOption({id: protection.id, data: {options: item}, lang: current_lang, currency: current_curr}); if(!obj.error_description){ protectionWariants.push({ stock_id: obj.id, options: item, price_float: obj.price.gross.final_float, price_min: priceBrackets[item[variantPriceId]].price_min, price_max: priceBrackets[item[variantPriceId]].price_max, variant: protectionWariantsNames.main+": "+protectionWariantsNames[item[variantYearId]], }); } }); //console.log(protectionWariants); //Ukrywanie fizycznych gwarancji $('#box_basketsummary .productlist > tbody > tr[data-product-id="'+product_id+'"]').hide(); //Sprawdzanie produktów $('#box_basketsummary .productlist > tbody > tr:not([data-product-id="'+product_id+'"])').each(function(index, item){ //Pobieranie danych produktu var productBasketId = $(basketProducts).filter(function(){ return $(item).attr('data-product-id') == this.product_id && $(item).find('.name > a').text().trim() == this.name && $(item).find('.name > .variant').text().trim() == this.variant }).get(0).id; //Odczytywanie danych z localstorage var protectionData = {}; if(localStorage.mx_app_easy_protect){ protectionData = JSON.parse(localStorage.mx_app_easy_protect); } if(protectionData[parseInt(productBasketId)]){//Jeżeli produkt zawiera jakiś gwarancje for(var key in protectionData[parseInt(productBasketId)]){ //Szukanie ostatniej gwarancji dla produktu var prevItem = item; while($(prevItem).next().is('[data-product-id="'+product_id+'"]:not([data-category])')){ prevItem = $(prevItem).next()[0]; } //Szukanie wskaźnika do protectionWariants var wariantIndex = 0; for(var key2 in protectionWariants){ if(protectionWariants[key2].stock_id == key){ wariantIndex = key2; break; } } //Zmienne do html var price = protectionWariants[wariantIndex].price_float; var imageUrl = '__overlay'; if(protection.main_image){ imageUrl = protection.main_image; } //Tworzenie html var gwarancja = ''; gwarancja += ' '; gwarancja += ' '; gwarancja += ' '+protection.name+''; gwarancja += ' '; gwarancja += ' '; gwarancja += ' '+protection.name+'';//TODO link do strony informacyjnej gwarancja += ' '+protectionWariants[wariantIndex].variant+''; gwarancja += ' '; if($(item).find('.time').length != 0){ gwarancja += ' '+$(item).find('.time').text().trim()+''; } gwarancja += ' '; gwarancja += ' '+protectionData[parseInt(productBasketId)][key].quantity+protection.unit.name+''; gwarancja += ' '; gwarancja += ' '+priceFormat(price)+''; gwarancja += ' '; gwarancja += ' '+priceFormat(price*protectionData[parseInt(productBasketId)][key].quantity)+''; gwarancja += ' '; gwarancja += ' '; //Dodawanie gwarancji $(gwarancja).insertAfter(prevItem); } } }); } } } } APIloader(); }); });