$('.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")});
}