$('.catalog').dcAccordion({ eventType: 'click', classActive : 'active_menu', autoClose: true, saveState: true, disableLink: true, speed: 'fast' }); if (sessionStorage.getItem('submitted')==1) { var h=sessionStorage.getItem('shifted'); window.scrollBy(0,h); sessionStorage.setItem('submitted',0); } function loadingAnimation(status) {// - функция запуска анимации if (status )$("#loadImg").show(); else $("#loadImg").hide(); } $(document).ready(function(){ var e = window.ymaps; //webpro для автоопределителя местоположения посетителя e.ready(function() { var t = new e.SuggestView("suggest"); t.events.add("select", function(t) { var n = t.originalEvent.item.value, n = e.geocode(n); n.then(function(e) { locationNormalize(e.geoObjects.get(0), true); $('#place_popup').hide(); $('#suggest').val(''); if (window.location.pathname == '/order/checkout' || window.location.pathname == '/admin/order/update') { var calcun_data=$('#wp_geo_js').text(); $.post('/calcun/setgeo', { geo:calcun_data, _csrf: yii.getCsrfToken() }) .done(function(json) { $.post('/order/calcunrenew', { calcun_data: calcun_data, _csrf: yii.getCsrfToken() }) .done(function(html) { $('#wp_ship_container').html(html); $('#wp_ship_counter').show(); $('#wp_ship_counter').text('0%'); if (window.location.pathname == '/order/checkout') calculateComon(); else if (window.location.pathname == '/admin/order/update') { $('#order-geo').val(calcun_data); $('#ship_dest').val(JSON.parse(calcun_data)['city']); calculateComonAdmin(); } ymaps.ready(init); }) .fail(function(res) {var str=''; for(k in res) { str += k+": "+ res[k]+"\r\n";} console.log(str);}); }) .fail(function(res) {var str=''; for(k in res) { str += k+": "+ res[k]+"\r\n";} console.log(str); }); } //document.location.href = document.location.href.split('#')[0]; }) }) }) ymaps.ready(init2); //webpro для автоопределителя местоположения посетителя var width=window.innerWidth; $.post('/site/wsize', { width:width, _csrf: yii.getCsrfToken() }) .done(function(json) {if(json != 'success') alert("ошибка сервера"+json);}) .fail(function(res) {var str=''; for(k in res) { str += k+": "+ res[k]+"\r\n";} /*alert('Ошибка передачи');*/}); if ($("#cart_zapomnit_sign").attr("value")=='loaded') { var last_user= $("#zakaz_id").text()=='' ? localStorage.getItem("last_user"): ''; // load_from_order($("#zakaz_id").text()); if (last_user==undefined || last_user==='') $("#cart_zapomnit").prop("checked", ''); else user_restore(last_user); } var id=$('#catview').attr('value'); $('#'+id).addClass('active2'); $('#mail_submit').addClass('send_not_ready'); renewCart() var ostalos=$('#ostaloz_znach').attr('value'); if (ostalos>0) timerId2=setInterval('updateTime()', 1000); else if (ostalos==0) clearInterval(timerId2); //это для запоминания истории просмотра товаров var products_history = JSON.parse(localStorage.getItem("products_history"));// products_history = products_history==null ? [] : products_history; /*if (products_history!=null) { $.post('/category/viewed_params', { data:products_history}) }*/ }); function wpShell(ac, goal, target) { try { ym(ac, goal, target); } catch (err) { console.log('метрика не активна'); } } $('.wp_need_validate').change( function(){validateOrderFields(this)}); //ВАЛИДАЦИЯ ФОРМЫ подтверждения заказа function validateOrderFields(field) { var id = $(field).attr('id'); var val = $.trim($(field).val()); var errorText=$(field).attr('error_message'); var defaultFlag=1; switch(id) { case 'cart_org_name': var rv_name = /^[0-9a-zA-Zа-яА-ЯёЁ\s#№&!@:\"\'\`\-\+\.\,]+$/; errorText = !(val.length > 1 && val != '' && rv_name.test(val)) ? errorText : ''; break; case 'cart_org_kpp': var rv_name = /^[0-9]{4}[0-9A-Z]{2}[0-9]{3}$/; errorText = !((val.length == 1 && val=='0') || (val.length == 9 && rv_name.test(val))) ? errorText : ''; break; case 'cart_org_inn' : var rv_name = /^[0-9]+$/; errorText = !((val.length == 10 || val.length == 12) && val != '' && rv_name.test(val)) ? errorText : ''; if (errorText=='') { var checkDigit = function (inn, coefficients) { var n = 0; for (var i in coefficients) { n += coefficients[i] * inn[i]; } return parseInt(n % 11 % 10); }; switch (val.length) { case 10: var n10 = checkDigit(val, [2, 4, 10, 3, 5, 9, 4, 6, 8]); if (!(n10 === parseInt(val[9]))) { errorText=$(field).attr('error_message'); } break; case 12: var n11 = checkDigit(val, [7, 2, 4, 10, 3, 5, 9, 4, 6, 8]); var n12 = checkDigit(val, [3, 7, 2, 4, 10, 3, 5, 9, 4, 6, 8]); if (!((n11 === parseInt(val[10])) && (n12 === parseInt(val[11])))) { errorText=$(field).attr('error_message'); } break; } if (errorText=='') { //повторная проверка autoOrgData(val); //активируем автозаполнение полей } } break; case 'cart_org_address': var rv_addr = /^[А-яA-z0-9\s.]+/; errorText=!(val != '' && rv_addr.test(val)) ? errorText : ''; break; case 'cart_passport': var rv_name = /^[0-9а-яА-ЯёЁ\s]+$/; errorText = !(val.length > 9 && val != '' && rv_name.test(val)) ? errorText : ''; break; case 'cart_name': var rv_name = /^[a-zA-Zа-яА-ЯёЁ\s]+$/; errorText = !(val.length > 2 && val != '' && rv_name.test(val)) ? errorText : ''; break; case 'cart_email': var rv_email = /^([a-zA-Z0-9_.-])+@([a-zA-Z0-9_.-])+\.([a-zA-Z])+([a-zA-Z])+/; error_mail_addr=$(field).attr('status'); errorText=!(val != '' && rv_email.test(val) && val!=error_mail_addr) ? errorText : ''; if (errorText=='') checkemail(val); break; case 'cart_comments': errorText=(val.length > 5000) ? errorText : ''; break; case 'cart_phone': val= val.replace(/\s/g, ''); var rv_phone = /^((8|0|\+\d{1,3})[\- ]?)?(\(?\d{2,3}\)?[\- ]?)?[\d\- ]{7,10}$/; errorText=!(val != '' && rv_phone.test(val)) ? errorText : ''; break; case 'cart_address': var rv_addr = /^[А-яA-z0-9\s.]+/; errorText=!(val != '' && rv_addr.test(val)) ? errorText : ''; break; case 'cart_promo': var rv_addr = /^[А-яA-z0-9\s.]+/; errorText=(!rv_addr.test(val) && val!='') ? errorText : ''; defaultFlag = 0; if (errorText=='') { get_discounts(val) } break; default: errorText='что-то не заполнено'; defaultFlag=0; break; } if (errorText==="" && defaultFlag!=0) $(field).prev('.error-box').html('').css('color','green').addClass('glyphicon glyphicon-ok').attr('status', 'OK'); else $(field).prev('.error-box').html(errorText).css('color','red').removeClass('glyphicon glyphicon-ok').animate({'paddingLeft':'10px'},400).animate({'paddingLeft':'5px'},400).attr('status', ''); formtest(); } function validatePromocode(discount1, discount2) { var val = $('#cart_promo').val(); var defaultFlag=1; var errorText=''; if (discount1 !=0 || discount2 !=0) {} else if (val!='' && !get_discounts(val)) errorText='Промокод недействителен!'; else defaultFlag=0; if (errorText==="" && defaultFlag!=0) $('#cart_promo').prev('.error-box').html('').css('color','green').addClass('glyphicon glyphicon-ok').attr('status', 'OK'); else $('#cart_promo').prev('.error-box').html(errorText).css('color','red').removeClass('glyphicon glyphicon-ok').animate({'paddingLeft':'10px'},400).animate({'paddingLeft':'5px'},400).attr('status', ''); } function get_discounts(promo_code) { $.post('/order/check_promocode', { promo_code: promo_code}) .done (function(res) { res=JSON.parse(res); show_discounts(res[0], res[1]); if (res[0] > 0 || res[1] > 0) return true; else return false; }) .fail(function(res){show_discounts(0, 0);alert("Ошибка проверки скидок"+res['responseText']); return false;}); } function checkemail(email){ //функция для проверки реального существования е-мейла var str= $('.flashalert').text(); if (str.indexOf("почты не существует")>0) { $('#cart_email').attr('status', error_mail_addr); email_error(); $('.alert-dismissible').removeClass('flashalert'); return; } var error_mail_addr=$('#cart_email').attr('status'); var errorText=$('#cart_email').attr('bad_email_message'); $.post('/order/checkemail', {email: email}) .done(function(res) { if(!res) alert('Ошибка проверки адреса!'); if(res=='1' && email!=error_mail_addr ) {mark_ok('#cart_email'); checkdiscount(email); /*$('.alert-danger').hide();*/} else {$('#cart_email').attr('status', error_mail_addr); email_error()} }) .fail(function(res){alert("Ошибка проверки адреса"+res['responseText'])}); } function checkdiscount(email) { $.post('/order/check_corp_discount', {email: email}, 'json') .done(function(res) { var db=JSON.parse(res); //помещаем ответ из базы данных в массив db var cur_data = JSON.parse(localStorage.getItem("users_data")); var ls = cur_data!=null ? cur_data[email] : undefined; // если cur_data пустой, то делаем ls= undefined if(!res || db.name==null) { //если данных по скидке нет в БД или есть, но скидки нулевые if (ls!=undefined && ls!=null) load_user(ls); //если данные по текущему емайлу есть в LS show_discounts(0, 0); //эта строка нужна на случай, если пользователь изменит льготный емейл из базы на любой другой - в этом случае скидки отменятся $('#promo_code').show(); } else { //если в БД есть не нулевые скидки if (ls!=undefined && ls!=null) load_user(ls); //если данные по текущему емайлу есть в LS else load_user(db); //заполняем форму данными из базы данных, т.к. в LS еще нет данных по этому пользователю show_discounts(db.discount1, db.discount2); $('#cart_promo').val(''); $('#promo_code').hide(); } }) .fail(function(res){ alert("Ошибка при запросе информации о скидках"+res['responseText'])}); } function load_user(customer) { //автоматическое заполнение информации о покупателе for (var key in customer) { if (key == 'is_organisation') { if (customer[key] == 1) { $('.wp_customer_org').show() $('#wp_customer_org').prop('checked', true); $('.wp_customer_per').hide(); invoiceTypeAuto(); } else { $('.wp_customer_org').hide(); $('.wp_customer_per').show() $('#wp_customer_per').prop('checked', true); } } else if ($('#cart_'+ key).length) { $('#cart_'+ key).val(customer[key]); if (customer[key]!='' && customer[key]!= null) mark_ok('#cart_'+ key); } } } function user_restore(email) { // восстановление информации о покупателе после перезагрузки страницы оформления заказа (если стояла галочка "запомнить меня") $('#cart_email').val(email); checkemail(email); wp_auto_calc(); } function mark_ok(id) { $(id).prev('.error-box').html('').addClass('glyphicon glyphicon-ok').css('color','green').attr('status', 'OK'); formtest(); } function unmark_ok(id) { $(id).prev('.error-box').html('').removeClass('glyphicon glyphicon-ok').css('color','green').attr('status', ''); formtest(); } function show_discounts(discount1, discount2) { var email = $('#cart_email').val();//wp041020 $.post('/order/showdiscounts', { discount1: discount1, discount2: discount2, email:email })//wp041020 .done (function(res) { //получаем из PHP список товаров в корзине с учетом скидок $('#formail').html(res); var total_sum = $('#cart_sum').text(); $('#total_sum').text(total_sum); var total_sum_clear=Number(total_sum.substr(0,total_sum.length-4)); var total_pack = $('#total_pack').text(); var total_pack_clear = Number(total_pack.substr(0,total_pack.length-4)); var total_ship = $('#total_ship').text(); var total_ship_clear = Number(total_ship.substr(0,total_ship.length-4)); var total_total_clear = total_sum_clear + total_pack_clear + total_ship_clear; $('#total_total').text(total_total_clear + " руб."); //тут нужно пересчитать сумму итого и стоимость товара в итого validatePromocode(discount1, discount2); }) .fail(function(res){alert("Ошибка проверки скидок"+res['responseText']); validatePromocode(discount1, discount2); }); } function formtest() { //контроль заполнения обязательных полей в форме доставки if($('input[name=wp_payment]:checked').val()=='invoice' && $('.wp_customer_per').is(':visible')) $('input[name=wp_payment][value="online"]').prop('checked', true); var res=1; $('.wp_need_validate').each(function() {//для стандартных полей if ($(this).prop('id')=='cart_promo') return ''; if ($(this).is(':visible')) res = $(this).prev('.error-box').attr('status')=='OK' ? res : 0; }); if (($('#wp_selected_post_point_value_text').hasClass('pulse') && $('#wp_selected_post_point_value_text').is(':visible')) || $('#wp_confirm_punkt').length || $('#wp_dest_error').length) res= 0; //для особых полей if ($('#wp_ship_counter').text()!='100%') res=0; //окончание калькуляции if (res==1) { $('#zakaz_main').addClass('send_ready').removeClass('send_not_ready'); $('#infomessage').css('display', 'none'); } else $('#zakaz_main').addClass('send_not_ready').removeClass('send_ready'); return res; } function ship_packhide() { $('#total_pack').text('');//затираем стоимость упаковки и отправки в итог по заказу $('#ship_pack_selected').css("display", "none"); // прячем блок со стоимостью упаковки и отправки total_pack $('#total_pack_col').css("display", "none"); } function ship_packshow(pack, origin) { $('#ship_pack_selected').css("display", "block"); // показываем блок со стоимостью упаковки и отправки $('#ship_pack').text(pack+ " руб.").css("display", "block"); //пишем стоимость упаковки и отправки $('#total_pack_col').css("display", "block"); // показываем блок доставки в итого $('#total_pack').text(pack+ " руб.");//пишем стоимость упаковки и отправки в итог по заказу $('#city_origin').text(origin); $('#city_origin_total').text(origin); } function ship_desthide() { $('#ship_dest_cover').css("display", "none"); // прячем блоки с пунктом назначения $('#ship_dest').text(''); // затираем блоки с пунктом назначения } function ship_destshow(dest) { $('#ship_dest_cover').css("display", "block"); // отображаем блок с пунктом назначения $('#ship_dest').text(dest); // прописываем информацию о пункте назначения - выбранный в форме город shipDest(dest); } function ship_timehide() { $('#ship_time_cover').css("display", "none"); // прячем блоки со сроком доставки $('#ship_time').text(''); // затираем блоки со сроком доставки } function ship_timeshow(srok) { $('#ship_time_cover').css("display", "block"); // отображаем блоки со сроком доставки if (srok!=null) $('#ship_time').text(srok+ " " + days_mod(srok)); // прописываем информацию о сроках доставки, с учетом склонения "дней" } function ship_timeshow_tk(srok) { $('#ship_time_cover').css("display", "block"); // отображаем блоки со сроком доставки srok = srok!=null ? srok : "Ошибка калькуляции"; $('#ship_time').html(srok); } function ship_costhide() { $('#ship_cost_selected').css("display", "none"); //прячем блок со стоимостью доставки $('#total_ship_col').css("display", "none"); //прячем блок со стоимостью доставки (для ТК) } function ship_costshow(stoimost, code) { $('#ship_cost_selected').css("display", "block"); $('#ship_res').text(stoimost+ " руб."); $('#total_ship').text(stoimost+ " руб.");//пишем стоимость доставки в итог по заказу $('#total_ship_col').css("display", "block"); // показываем блок доставки итого $('#ship_res').prop("city_code", code); } function ship_costshow_tk(tkinfo, code) { // функция для показа блоке "Доставка" кнопки для перехода на сайт с инфой по тарифам транспортной компании $('#ship_cost_selected').css("display", "block"); $('#ship_res').html(tkinfo); $('#ship_res').prop("city_code", code); $('#total_ship').text('');//пишем стоимость доставки в итог по заказу $('#total_ship_col').css("display", "none"); // скрываем блок доставки в итого, т.к. стоимость доставки ТК не включается в счет, а оплачивается по факту } function total_cost_write(pack, stoimost) { var total_sum_full = $('#total_sum').text(); //полная стоимость в рублях со знаком рубля var total_sum_clear = Number(total_sum_full.substr(0,total_sum_full.length-4)); //console.log("pack: "+ pack + " stoimost: " +stoimost + " total_total: "+total_sum_full); $('#total_total').text(total_sum_clear + Number(pack) + Number(stoimost) + " руб."); } function ship_form_ok() { $('#shipcost_sel').prev('.error-box').addClass('glyphicon glyphicon-ok').css('color','green').html('').attr('status', 'OK'); $('#shipcost_sel').prop('disabled',false); formtest(); } function email_error() { $('#zakaz_main').val('Оформить заказ'); var email=$('#cart_email').val(); var errorText=$('#cart_email').attr('bad_email_message'); $("#cart_email").focus().attr('status', email); $('#cart_email').prev('.error-box').html(errorText).css('color','red').removeClass('glyphicon glyphicon-ok').animate({'paddingLeft':'10px'},400).animate({'paddingLeft':'5px'},400).attr('status', ''); $('#zakaz_main').removeClass('clicked'); formtest(); } function days_mod(srok) { //функция определения склонения слова "дни" исходя из количестве дней в сроке доставки if (srok=='0') return ''; var inf=srok.indexOf('-')>0 ? srok.split('-') : srok; // если срок доставки указан диапазоном, то разделяем его на отдельные величины var infmax= (inf.length-1) ? inf[1] : inf[0];// для определения склонения берем наибольшую величину диапазона, либо единственную infmax= infmax.length==1 ? infmax : infmax.substr(-2,1)!=1 ? infmax.substr(-1,1) : 9; return infmax==1 ? 'день' : (infmax>1 && infmax<5) ? 'дня' : 'дней'; } $('#zakaz_main').click(function(){ if ($('#zakaz_main').hasClass('clicked')) return false; if(formtest()) { loadingAnimation(true); $('#zakaz_main').val('Обработка...').addClass('clicked'); getDataLayer(); //тут также сохраняется заказ } else zakaz_infomessage(); }); function getShipTypeAndDest(selectedShipType, selectedProvider) {//230820 var ship_type =''; var ship_dest =''; switch(selectedShipType) { case 'pickup': ship_type += 'Самовывоз из магазина '+ $('#wp_ship_pickup_'+selectedProvider).next().text(); ship_dest += 'Новосибирск'; //тут нужно определить название магазина break; case 'courier': if (selectedProvider != 'mowcur') { ship_type += 'Доставка курьером '; ship_dest += $('#wp-city-js2').text(); } else { ship_type += 'Доставка курьером по Москве '; ship_dest += 'Россия, Москва'; } break; case 'post': ship_type += 'Доставка до пункта выдачи '; ship_dest += $('#wp_selected_name').val() + ", " + $('#wp_selected_post_point').val(); break; default: ship_dest += $('#wp-city-js2').text(); } switch(selectedProvider) { case 'rupost': ship_type += 'Почты России'; break; case 'rupost1': ship_type += 'Почты России (1 класс)'; break; case 'rupostNP': ship_type += 'Почты России (наложка)'; break; case 'rupostP': ship_type += 'Почты России (почтомат)'; break; case 'rupostC': ship_type += 'Почты России'; break; case 'ems': ship_type += 'EMS'; break; case 'cdek': ship_type += 'СДЭК'; break; case 'cdekNP': ship_type += 'СДЭК (наложка)'; break; case 'boxberry': ship_type += 'Боксберри'; break; case 'energy': ship_type += 'ТК Энергия'; break; case 'dellin': ship_type += 'ТК Деловые линии'; break; case 'jde': ship_type += 'ЖелДорЭкспедиции'; break; //default: ship_type += 'Новой службой доставки'; break; } return [ship_type, ship_dest]; } function orderSave() { var name= $('#cart_name').val(); var email=$('#cart_email').val(); var phone=$('#cart_phone').val(); var address=$('#cart_address').val(); address=address=='' ? 'до востребования' : address; var comment=$('#cart_comments').val(); comment= comment.length>0 ? comment : 'нет'; var promo_code=$('#cart_promo').val(); promo_code= promo_code.length>0 ? promo_code : ''; var qty=$('#total_qty').text(); var sum=$('#total_sum').text(); sum=Number(sum.substr(0,sum.length-4)); var weight=Number($('#weight').text()); var ship_passport = $('#ship_passport').is(':hidden') ? "" : $('#cart_passport').val(); var inn = $('#cart_org_inn').val(); var kpp = $('#cart_org_kpp').val(); var org_address = $('#cart_org_address').val(); var org_name = $('#cart_org_name').val(); var is_organisation = $('#cart_org_inn').is(':hidden') ? 0 : 1; var payment_form = $('input[name=wp_payment]:checked').val(); var selectedShipType= $('#wp_selected_type').val(); var selectedProvider= $('#wp_selected_type_' + selectedShipType).val(); var shipTypeAndDest = getShipTypeAndDest(selectedShipType,selectedProvider); //230820 var ship_type = shipTypeAndDest[0];//230820 var ship_dest = shipTypeAndDest[1]; //230820 var ship_index = -10; var ship_cost=$('#total_ship').text(); ship_cost=Number(ship_cost.substr(0,ship_cost.length-4)); //webpro var ship_cost_tk=0; //при необходимости будем ипользовать другое значение var ship_time = $('#wp_selected_provider').val(); var city_code = 0; var pack_cost=$('#total_pack').text(); pack_cost=Number(pack_cost.substr(0,pack_cost.length-4)); var geo = $('#wp_geo_js').length ? $('#wp_geo_js').text() : ''; $.post('/order/save', { name: name, email: email, phone: phone, address: address, inn: inn, kpp: kpp, org_address: org_address, org_name: org_name, is_organisation : is_organisation, payment_form : payment_form, comment: comment, promo_code: promo_code, qty: qty, sum: sum, weight: weight, ship_type: ship_type, ship_cost: ship_cost, ship_cost_tk: ship_cost_tk, ship_time: ship_time, ship_dest: ship_dest, ship_passport: ship_passport, pack_cost: pack_cost, city_code: city_code, ship_index: ship_index, ship_type_code:selectedShipType, ship_provider:selectedProvider, geo:geo, }) .done(function(res){ loadingAnimation(false); if(!res) alert('Ошибка!Пустой результат'); else if (res.indexOf('invalid mailbox')>=0 || res.indexOf('invalid user')>=0) email_error(); //else if (res.indexOf('confirmation')>=0) window.location.replace(res); else if (res.indexOf('contract')>=0) window.location.replace(res); else location.reload(); }) .fail(function(res){ loadingAnimation(false); var requestStatus=res.status; res=res.responseText; if (requestStatus == 302) { if (res.indexOf('confirmation')>=0) { save_user(); window.location.replace(res); return; } } else if (res.indexOf('invalid mailbox')>=0 || res.indexOf('invalid user')>=0) { email_error(); } else if (res != 'Заказ сохранен') { alert("Ошибка сохранения заказа"+res); } $('#zakaz_main').val('Оформить заказ').removeClass('clicked'); }); save_user(); // сохранение данных о пользователе в localStorage } function keypr(event, xid) { if (typeof $("#cart_email") == 'undefined') return; if (xid == '#cart_name') $("#cart_email").autocomplete({source: JSON.parse(localStorage.getItem("users_list"))}); if (event.keyCode==13) $(xid).focus(); } function readCustomerInfo() { var сustomerInfo={}; $('.toSave').each(function() { //перебираем поля, которые нужно сохранить в локалсторедж if (!$(this).is(':visible')) return true; if (this.id == 'wp_customer_per') {сustomerInfo['is_organisation'] = $('input[name=is_organisation]:checked').val();return true;} if (this.id == 'wp_customer_org') return true; сustomerInfo[this.id.split('cart_')[1]] = this.value; }); сustomerInfo['is_organisation'] = $('.wp_customer_org').is(':visible') ? 1: 0; сustomerInfo['ship_type'] = $('#wp_selected_type').val(); сustomerInfo['ship_provider'] = $('#wp_selected_type_' + сustomerInfo['ship_type']).val(); сustomerInfo['ship_type'] = $('#wp_selected_type').val(); сustomerInfo['post_point'] = $('#wp_selected_post_point_code').val(); сustomerInfo['ship_by_client_agreement'] = $('#wp_have_agreement').prop('checked') ? 1 : 0; сustomerInfo['geo'] = $('#wp_geo_js').text(); сustomerInfo['payment_type'] = $('input[name=wp_payment]:checked').val(); return сustomerInfo; } function save_user() { var customer = readCustomerInfo(); var poryadok=$.inArray(customer.email, JSON.parse(localStorage.getItem("users_list"))); // определяем порядковый номер е-майла в массиве пользователей, сохраненных в localStorage if (poryadok==-1) { //если данного емейла нет в базе, добавляем его var users_list = JSON.parse(localStorage.getItem("users_list")); users_list = users_list==null ? [] : users_list; //считываем сохраненные емейлы, если список пуст - формируем его users_list.push(customer.email); // добавляем в список емейлов текущий емейл localStorage.setItem('users_list', JSON.stringify(users_list)); // сохраняем обновленный список емейлов } var cur_data = JSON.parse(localStorage.getItem("users_data")); cur_data = cur_data==null ? {} : cur_data; // считываем сохраненную информацию о пользователях, если список пуст - формируем его cur_data[customer.email] = customer; if ($("#cart_zapomnit").prop("checked")) { localStorage.setItem("last_user", customer.email); // запоминаем последний емейл в localStorage localStorage.setItem("users_data",JSON.stringify(cur_data)); //запоминаем данные формы заказа в localStorage } else localStorage.removeItem("last_user"); } function passport_validation(passport) { passport= passport==undefined ? $('#cart_passport').val() : passport; var rv_name = /^[0-9а-яА-ЯёЁ\s]+$/; if(passport.length > 9 && passport != '' && rv_name.test(passport)) mark_ok('#cart_passport'); else unmark_ok('#cart_passport'); } function zakaz_infomessage() { var infomessage=""+$('#infomessage').attr('check_message')+"
"; $('.wp_need_validate').each(function() {//для стандартных полей if ($(this).prop('id')=='cart_promo') return ''; if ($(this).is(':visible')) infomessage += $(this).prev('.error-box').attr('status')=='OK' ? '' : $(this).attr('check_message'); }); //для особых полей infomessage += (!$('#wp_selected_post_point_value_text').hasClass('pulse') || !$('#wp_selected_post_point_value_text').is(':visible')) ? '' : $('#wp_selected_post_point_value_text').attr('check_message'); infomessage += !$('#wp_dest_error').length ? '' : $('#wp_dest_error').attr('check_message'); infomessage +=!$('#wp_confirm_punkt').length ? '' : $('#wp_confirm_punkt').attr('check_message'); infomessage += $('#wp_ship_counter').text()!='100%' ? $('#wp_ship_counter').attr('check_message') : ''; $('#infomessage').html(infomessage).css('display', 'inline-block'); setTimeout(function(){$('#infomessage').fadeOut('fast')},8000); //30000 = 30 секунд } function changeButtonZakaz(ship_type) { return; //webpro отменил переход на форму оплаты } //webpro функции для автоопределения положения посетителя function locationNormalize(t,o) { //var date = new Date(new Date().getTime() + 15552000 * 1000); //var cookieSuffix = "; path=/; expires=" + date.toUTCString(); var i = { addressLine: t.getAddressLine(), country: t.getCountry(), country_code: t.getCountryCode(), zone: t.getAdministrativeAreas()[0], district: t.getAdministrativeAreas().length > 1 ? t.getAdministrativeAreas()[1] : '', city: t.getLocalities()[0] != undefined ? t.getLocalities()[0] : t.getAdministrativeAreas()[0], lat: t.geometry.getCoordinates()[0], lon: t.geometry.getCoordinates()[1] }; var j=$('#wp_geo_js').text(); if (j == '') { var geo = /*encodeURIComponent(*/ JSON.stringify(i) /*)*/ ; $('#wp_geo_js').text(geo); $.post('/calcun/setgeo', { geo:geo, _csrf: yii.getCsrfToken() }) .done(function(json) { /*console.log(json); *//*alert('данные переданы1') *//*location.reload()*/}) .fail(function(res) {var str=''; for(k in res) { str += k+": "+ res[k]+"\r\n";} console.log(str); }); //document.cookie = "wp_geo_js="+encodeURIComponent(JSON.stringify(i))+cookieSuffix; $('#wp-city-js').text(i.city); // console.log(i); } else { j= o ? i : JSON.parse(j); var geo = /*encodeURIComponent(*/ JSON.stringify(j) /*)*/ ; $('#wp_geo_js').text(geo); //console.log(geo); $.post('/calcun/setgeo', { geo:geo, _csrf: yii.getCsrfToken() }) .done(function(json) { /*console.log(json); console.log('данные переданы2') */ /*location.reload()*/}) .fail(function(res) {var str=''; for(k in res) { str += k+": "+ res[k]+"\r\n";} console.log(str); }); var geo_auto = 0; $('#wp_geo_auto').text(geo_auto); $.post('/calcun/setgeoauto', { geo_auto:geo_auto, _csrf: yii.getCsrfToken() }) .done(function(json) { /*console.log(json);*/ /*alert('данные переданы3') */ /*location.reload()*/}) .fail(function(res) {var str=''; for(k in res) { str += k+": "+ res[k]+"\r\n";} console.log(str); }); //document.cookie = "wp_geo_auto="+encodeURIComponent(0)+cookieSuffix; //document.cookie = "wp_geo_js="+encodeURIComponent(JSON.stringify(j))+cookieSuffix; $('#wp-city-js').text(j.city); $('#wp-city-js2').text(j.addressLine); // console.log(j); } } function init2() { //alert('init2'); var geolocation = ymaps.geolocation; //console.log($.cookie('wp_geo_js').length); //var mode = ($.cookie('wp_geo_auto')==undefined || $.cookie('wp_geo_js')==undefined || $.cookie('wp_geo_js').length < 30)? true : false; var mode = ($('#wp_geo_auto').text()=='' || $('#wp_geo_js').text()=='' || $('#wp_geo_js').length < 30)? true : false; //if (mode) console.log("режим1"); //else console.log("режим2"); // var date = new Date(new Date().getTime() + 15552000 * 1000); // var cookieSuffix = "; path=/; expires=" + date.toUTCString(); geolocation.get({ provider: 'yandex', mapStateAutoApply: true, autoReverseGeocode: mode }).then(function (result) { var geo_auto = 1; $('#wp_geo_auto').text(geo_auto); $.post('/calcun/setgeoauto', { geo_auto:geo_auto, _csrf: yii.getCsrfToken() }) .done(function(json) { /*console.log(json); */ /*alert('данные переданы4')*/ /*location.reload()*/}) .fail(function(res) {var str=''; for(k in res) { str += k+": "+ res[k]+"\r\n";} console.log(str); }); //document.cookie = "wp_geo_auto="+encodeURIComponent(1)+cookieSuffix; locationNormalize(result.geoObjects.get(0), false); }); } $(document).on("click", ".modal_start", function(event){ event.preventDefault(); var id=$(this).attr('data-modal'); $('#' + id + '_popup').toggle(); if (id == 'select-post-point') { var selectedProvider=$('#wp_selected_type_post').val(); var pointsOnMap = getPostPoints(0); var filteredData = pointsOnMap; } }); //webpro окончание функций автоопределения положения посетителя $(document).on("click", "#wp-order_search", function(event){ //event.preventDefault(); $('#wp_order_search_res').text(''); var order_id=$('#wp_order-id').val(); var order_email=$('#wp_order-email').val(); $.post('/order/search', { order_id:order_id, order_email:order_email, _csrf: yii.getCsrfToken() }) .done(function(res) { if (res=='0') $('#wp_order_search_res').text('Заказ не найден!') else location.href = res; $('#wp_order_search_res').text(res);/*console.log(json);*/ /*alert('данные переданы4')*/ /*location.reload()*/}) .fail(function(res) {var str=''; for(k in res) { str += k+": "+ res[k]+"\r\n";} console.log(str); }); }); function autoOrgData(inn) { $.post('/order/inn', { inn:inn, _csrf: yii.getCsrfToken() }) .done(function(res) { if (res=='0') return; else { res = JSON.parse(res); if ($('#cart_org_name').val()=='') { $('#cart_org_name').val(res.name); mark_ok('#cart_org_name'); } if ($('#cart_org_kpp').val()=='') { $('#cart_org_kpp').val(res.kpp); mark_ok('#cart_org_kpp'); } if ($('#cart_org_address').val()=='') { $('#cart_org_address').val(res.address); mark_ok('#cart_org_address'); } } }) .fail(function(res) {var str=''; for(k in res) { str += k+": "+ res[k]+"\r\n";} console.log(str); alert("Произошла ошибка чтения ИНН")}); } function generatePayment(order_id){ $.post('/yandex/renewpayment', { order_id:order_id, _csrf: yii.getCsrfToken() }) .done(function(res) { //if (res.indexOf('confirmation')>=0) window.location.replace(res); if (res.indexOf('contract')>=0) window.location.replace(res); }) .fail(function(res) { var requestStatus=res.status; res=res.responseText; if (requestStatus == 302) { //if (res.indexOf('confirmation')>=0) { if (res.indexOf('contract')>=0) { window.location.replace(res); return; } else { alert("Ошибка обновления ссылки на платеж"); } $('#zakaz_main').val('Оформить заказ').removeClass('clicked'); } }); } function getDataLayer() { var sum=$('#total_total').text(); sum=Number(sum.substr(0,sum.length-4)); var ship_cost=$('#total_ship').text(); ship_cost=Number(ship_cost.substr(0,ship_cost.length-4)); //webpro var pack_cost=$('#total_pack').text(); pack_cost=Number(pack_cost.substr(0,pack_cost.length-4)); var id = ship_cost > 0 ? 'shipping' : 'packing'; var name = ship_cost > 0 ? 'Доставка' : 'Упаковка'; var price = ship_cost + pack_cost; var products = JSON.parse($('#dataLayerYandex').text()); var products_google = products; if (price >0) products.push({ 'id': id, 'name': name, 'price': price, 'quantity': 1}); $.post('/order/datalayer', { ship_cost:ship_cost, pack_cost:pack_cost, _csrf: yii.getCsrfToken() }) .done(function(order_id) { var data_layer= { 'ecommerce': { 'purchase': { 'actionField': {'id': order_id, 'coupon': $('#cart_promo').val()}, 'products': products } } }; //var data_layer_google = { // 'transaction_id': order_id, // 'currency': 'RUB', // 'value': sum, // 'shipping' : price, // 'items' : products_google, // 'checkout_option' : $('input[name=wp_payment_online]:checked').val(), // 'coupon': $('#cart_promo').val(), //}; window.dataLayer = window.dataLayer || []; window.dataLayer.push(data_layer); // коммерция //(window.b24order=window.b24order||[]).push({id: order_id, sum: (sum + price)}); //аналитика Б24 // gtag('event', 'purchase', data_layer_google); orderSave(); }) .fail(function(res) {var str=''; for(k in res) { str += k+": "+ res[k]+"\r\n";} console.log(str); alert("Ошибка получения layer")}); }