var ShoperInBankClass = function(app){ var windowsWithStart = $( window ).width(); var vars = { cdebug : false, lang: 'pl_PL', appPurl : '', appName : '', shopid:'', shopurl: '', shoplngid: '', }; var root = this; /* * Constructor */ this.construct = function(app){ vars.appPurl = atob(app); }; /* * Public method * Can be called outside class */ this.init = function(callback){ root.printDebug('init start'); let isInitPart = false; if($('body.shop_index').length){ let url = new URL(window.location.href); let paymentStatus = url.searchParams.get("inbankpaymentstatus"); if(paymentStatus != ''){ let getdata = {shopid:vars.shopid, shoplngid:vars.shoplngid, inbankpaymentstatus:paymentStatus}; $.when( root.loadDataJson('ajax/getShopInbankPaymentStatus.html', 'GET', getdata) ).then(function(result) { if(result.status == "ok"){ let msghtml = '

'; msghtml += result.data; msghtml += '

'; if($('body.shop_index .wrap').find('div.top')!= 'undefined'){ $('body.shop_index .wrap').find('div.top').before(msghtml); } else{ $('body.shop_index .wrap').find('div.main').before(msghtml); } } }); } } if($('body.shop_basket_done').length && $('.inbankpayment').length){ isInitPart = true; root.printDebug('is shop basket done'); // $('.inbankpayment .payment-info').append(''); let getdata = {shopid:vars.shopid, shoplngid:vars.shoplngid}; $.when( root.loadDataJson('ajax/getShopInbankPaymentMessages.html', 'GET', getdata) ).then(function(result) { root.printDebug('get payment messages'); if(result.status == "ok"){ root.printDebug('get payment messages - ok'); $('.inbankpayment .payment-info-addmsg').html(result.data.msg1); $('.inbankpayment .payment-info-addmsg2').html(result.data.msg2); } }); let orderdata = {shopid:vars.shopid, shoplngid:vars.shoplngid, orderid:$('.inbankpayment').data('orderid'),sum1:$('.inbankpayment').data('sum1'), sum2:$('.inbankpayment').data('sum2'), email:$('.inbankpayment').data('email')}; root.printDebugV(orderdata); let loaderH = '
'; $('.inbankpayment .payment-button').html(loaderH); //przetwarzanie $.when( root.loadDataJson('ajax/checkInBankPayment.html', 'POST', orderdata) ).then(function(result) { console.log(result); if(result.status == "ok" && result.data.redirect_url != 'undefined'){ root.printDebug('Basket done result - OK'); console.log(result.data.redirect_url); $('.inbankpayment .payment-button').html('Złóż wniosek'); } else{ root.printDebug('Basket done result'); root.printDebugV(result); } }); } //obsluga koszyka if($('body.shop_basket').length){ root.printDebug('is shop basket'); isInitPart = true; $.when( getShopProductsAll() ).then(function(result) { if(result.status == "ok"){ let rdata = result.data; let addDesc = '
'; if(result.translate.length != 'undefined'){ $.each(result.translate, function( index, value ) { addDesc += '

'+value+'

'; }); } addDesc += '
'; $.each(rdata, function( index, value ) { //console.log(value); if(value.inbank_product_shoper_payment_id > 0){ let payId = '#payment_'+value.inbank_product_shoper_payment_id; if($('.summary-container .sum .value').length != 'undefined'){ let sumorder = $('.summary-container .sum .value').text(); sumorder = sumorder.replace(/\s+/g, ''); sumorder = sumorder.match(/\d+(?:\,.\d+)?/g); let sumorderm = sumorder[0].replace(',', '.'); console.log(sumorderm); console.log(value.inbank_payment_order_min_ammount); console.log(parseFloat(sumorderm) > parseFloat(value.inbank_payment_order_max_ammount)); if((parseFloat(sumorderm) < parseFloat(value.inbank_payment_order_min_ammount)) || (parseFloat(sumorderm) > parseFloat(value.inbank_payment_order_max_ammount))){ let paymentinbank = $(payId).parent().parent().parent(); let paymentcontainer = paymentinbank.parent(); //console.log(paymentinbank); paymentinbank.remove(); if(paymentinbank.hasClass('selected')){ //console.log('sssssssssssss'); $.each( paymentcontainer.find('.payment'), function( index, value ){ $(this).addClass('selected'); $(this).find('input[type=radio]').prop( "checked", true ); }); } } else{ if($(payId).length){ let payDesc = $(payId).parent().parent().find('.description').html(); let paytitle = $(payId).parent().parent().find('>label').html(); if(value.inbank_payment_title != 'undefined'){ paytitle = value.inbank_payment_title; } //add inbank logo let imgurl = vars.appPurl + 'public/assets/images/svg/calc_logo_small/inbank-logo.svg'; paytitle += ''; $(payId).parent().parent().find('>label').html(paytitle); $(payId).parent().parent().find('.description').html(addDesc); console.log( value); } $.when( getShopInBankProductCalcs(value.sinp_id, sumorder[0])).then(function(resultcalc) { //console.log(resultcalc); if(result.status == "ok"){ //console.log(resultcalc.data); //$(payId).parent().parent().find('.description').prepend('sssssssssssssssssssss'); $(payId).parent().parent().find('.description').prepend( resultcalc.data.product_template); } }); } } } }); console.log(result); } }); } //sprawdzenie czy jestesmy na karcie produktu if($('body.shop_product').length){ root.printDebug('is shop product'); let product_id = $('body').attr('id'); if(product_id != 'undefined'){ isInitPart = true; product_id = product_id.replace( /^\D+/g, ''); getCalculations(product_id); } } if(isInitPart == true){ var addCss = root.getCss(); if(typeof addCss != 'undefined' && addCss != ''){ $('body').append(''); } } if (typeof(callback) == 'function') { callback(); } } this.getCss = function(){ root.printInfo('start getCss'); vars.css = '.inbank-container .inbank--calculator.logo-small{} .inbank-container .inbank--calculator .inbank__img{float:left;margin-top:10px;}.inbank-container .inbank--calculator .inbank__message{float:left;margin-left:5px;line-height:44px;}'; vars.css += '.inbank-basket-assets img{width: 17px;float:left;margin-right:10px;}.inbank-basket-assets p{font-size:12px;}'; vars.css += '.inbank-basket-assets{margin-left:5px}' //basket done vars.css += '.inbankpayment{text-align:center;} .inbankpayment .payment-info-addmsg{margin-top:20px;} .inbankpayment .payment-info-addmsg p{margin-bottom:5px;} .inbankpayment .payment-button{margin:20px 0px;}'; vars.css += '.payment-button a.btn-red{padding:10px 45px;font-size:25px;}'; vars.css += '.inbankpayment .payment-info-addmsg2 p{font-size:14px;}'; vars.css += '.payment .inbank-logo{margin-left:5px;padding-left: 5px;border-left: 2px solid #000;}'; vars.css += '.inbank--calculator{margin-left:5px;margin-bottom: 10px;} .inbank--calculator .inbank__message{font-weight:bold;}.justify-content-center {justify-content: center !important;}'; vars.css += '.loaderinbank {margin-top: 1rem;margin-bottom: 1rem;height: auto;background-color: transparent;}'; vars.css += '.loader-container {position: relative;display: inline-block;height: 71px;width: 71px;margin-right: 1rem;}'; vars.css += '.loader-logo {position: absolute;left: 0;right: 0;top: 0;bottom: 0;margin: auto;width: 73px;}'; vars.css += '.loader-circle {width:44px; min-width:44px; height:44px; min-height:44px; display:flex; align-items:center; margin:auto; border-radius:50%; -webkit-transform:translateZ(0); -ms-transform:translateZ(0); transform:translateZ(0); -webkit-animation:loader .8s infinite linear;animation:loader .8s infinite linear; border-top:5px solid rgba(255,255,255,0); border-right:5px solid #7a1d8e; border-bottom:5px solid #7a1d8e; border-left:5px solid #7a1d8e; margin-right:1em}'; vars.css += '.loader-circle--large {width: 73px;min-width: 73px; height: 73px; min-height: 73px; border-top: 5px solid rgba(255,255,255,0); border-right: 5px solid #97d700;border-bottom: 5px solid #97d700;border-left: 5px solid #97d700;position: absolute;left: -5px;bottom: 0;top: 0;margin-right: 0;}'; vars.css += '@keyframes loader { 0% { -webkit-transform:rotate(0); transform:rotate(0) } 100% { -webkit-transform:rotate(360deg); transform:rotate(360deg) }}'; root.printInfo('end getCss'); return(vars.css); }; this.setAppUrl = function(appPurl){ vars.appPurl = appPurl; }; this.getShopId = function(){ return(vars.shopid); }; this.getShopLangId = function(){ return(vars.shoplngid); }; this.loadOptions = function(options){ $.extend(vars , options); if(typeof vars.aplication_debug != 'undefined'){ if(vars.aplication_debug == '1'){ vars.cdebug = true; } } root.printDebug('option list'); root.printDebugV(vars); }; this.printInfo = function(info) { console.log(vars.appName +' : ' + info); }; this.printDebug = function(info) { if(vars.cdebug == true){ console.log(vars.appName +' : ' + info); } }; this.printDebugV = function(info) { if(vars.cdebug == true){ console.log(info); } }; this.checkFrontApi = function (){ var me = this; me.defer = new $.Deferred(); me.index = 0; if(typeof frontAPI !='undefined'){ clearInterval(me.interval); me.defer.resolve(); return me.defer; } me.interval = setInterval(function() { print('check front api - ' + typeof frontAPI ); if(typeof frontAPI !='undefined'){ clearInterval(me.interval); me.defer.resolve(); } }, 200); return me.defer; } this.displayReturnForm = function(info) { }; this.loadShopConfig = function(){ let adata = {shopid:vars.shopid, shoplngid:vars.shoplngid}; root.printDebugV(adata); return(this.loadDataJson('ajax/getShopConfig.html', 'GET', {shopid:vars.shopid, shoplngid:vars.shoplngid})); }; this.loadDataJson = function (url, ctype, cdata) { let lUrl = vars.appPurl + url; root.printDebugV(lUrl); return(jQuery.ajax({ url: lUrl, type: ctype, data: cdata, async: true, jsonp: 'jsonp' })); } /* * Private method */ var getShopInBankProductCalcs = function(inbankproduct_id, productamount){ let adata = {shopid:vars.shopid, shoplngid:vars.shoplngid, inbankproductid:inbankproduct_id, amount:productamount}; root.printDebugV(adata); return(root.loadDataJson('ajax/getShopInbankProductCalc.html', 'GET', adata)); } var getShopProductsCalcs = function(product_id, productamount){ let adata = {shopid:vars.shopid, shoplngid:vars.shoplngid, shopproductid:product_id, amount:productamount}; root.printDebugV(adata); return(root.loadDataJson('ajax/getShopProductsCalc.html', 'GET', adata)); } var getShopProductsAll = function(){ let adata = {shopid:vars.shopid, shoplngid:vars.shoplngid}; root.printDebugV(adata); return(root.loadDataJson('ajax/getShopProducts.html', 'GET', adata)); } var checkFrontApi = function(counter){ setTimeout( function() { if(typeof frontAPI !='undefined'){ return(true); } else{ if(counter > 3){ return(false); } else{ return(checkFrontApi(counter + 1)); } } }, 200); }; //var checked var checkPriceAfterChange = function(){ }; var getCalculations = function(product_id){ if(parseInt(product_id) != 'NaN'){ root.printDebug('Found product id:'+product_id); let productamount = null; /* if($('.shop_product').find('div.basket div.price del').length > 0 && !$('.shop_product').find('div.basket div.price del').hasClass('none')){ root.printDebug('is del price'); productamount = $('.shop_product').find('div.basket div.price del').text(); } else */ if($('.shop_product').find('div.basket .price em.main-price').length > 0){ root.printDebug('is main price'); productamount = $('.shop_product').find('div.basket .price em.main-price').text(); } productamount = productamount.replace(/\s+/g, ''); productamount = productamount.match(/\d+(?:\,.\d+)?/g); if(productamount.length == 0){ root.printInfo('error product price'); } root.printDebugV(productamount[0]); $.when( getShopProductsCalcs(product_id, productamount[0]) ).then(function(result) { root.printDebugV(result); if(result.status == "ok"){ let rdata = result.data; $.each(rdata, function( index, value ) { if(value != null){ //product_page_possition if(value.product_page_possition == 'calc-pos-beforeaddtocartbutton'){ //console.log(value.product_page_possition); $('body.shop_product #box_productfull .inbank-container').remove(); if( $('body.shop_product #box_productfull').find('.form-basket').length > 0){ $('body.shop_product #box_productfull').find('.form-basket').before('
'+value.product_template+'
'); } } } console.log( value); }); //console.log(rdata); } }); } else{ root.printInfo('no product id'); } }; var setEvents = function(){ /* console.log('setEvents'); $("body.shop_product").on('DOMSubtreeModified', 'input[name="stock_id"]', function(event) { alert('aaaaaaaaa'); }); */ var stockid = null; if($("body.shop_product").length != 'undefined' && $('body.shop_product input[name="stock_id"]').length != 'undefined'){ $(".form-basket").on("input", function() { //console.log((this)); let product_id = $('body').attr('id'); if(product_id != 'undefined'){ isInitPart = true; product_id = product_id.replace( /^\D+/g, ''); setTimeout(function(){ getCalculations(product_id);}, 1000); } }); } }; this.construct(app); setEvents(); }; $(function() { var appInBank = new ShoperInBankClass('aHR0cHM6Ly9zaG9wZXIuaW5iYW5rLmRldi8='); appInBank.loadOptions({cdebug : true,appName: 'InBank',shopid:294,shoplngid:1}); $.when( appInBank.loadShopConfig() ).then(function(resultConfig) { if(resultConfig.status == 'ok'){ appInBank.printInfo('Config loaded'); let rdata = resultConfig.data; appInBank.loadOptions(rdata); appInBank.init( function() { } ); } else{ appInBank.printDebug(resultConfig); appInBank.printInfo('Error loading config - global'); } }); });