var debug = 1;
var simple_tarifs = [600, 1100, 1700];
//var simple_tarifs = [300, 500, 900];
var holyday_tarifs = [700, 1200, 1700];
//var holyday_tarifs = [500, 700, 900];
var animator_tarifs = [2500,3500,5000];
var discont_5 = 0.9;
var discont_10 = 0.8;
var disabledDays = ["01-07-2019",":::","31-07-2019"];
var weekendDays = [5, 6, 0];
disabledDays = calcDateRangeDecompile(disabledDays);
var holyDays = ["01-05-2019","02-05-2019","03-05-2019","09-05-2019","10-05-2019","12-06-2019","04-11-2019","01-01-2020","02-01-2020","03-01-2020","04-01-2020","05-01-2020","06-01-2020","07-01-2020","08-01-2020","09-03-2020","04-11-2020"];
var clearDays = ["14-05-2019", "5-06-2019", "20-08-2019", "03-10-2019", "05-11-2019", "05-12-2019", "14-01-2020", "03-03-2020", "05-10-2020", "07-12-2020"];
var clearMode = 0;
var animator_enable = 0;
var animator_suits = '';
$( function() {
$('#cisuit').append('');
$('#cphone').mask('+7(000)000-00-00');
$('#ci_guest_amount').mask('99');
$('#ci_follower_amount').mask('99');
$('.ctime').clockpicker({
autoclose: true,
});
$('.animtimestart').clockpicker({
autoclose: true,
});
if ($('#canimator').prop('checked'))
{
$('#ci_animator_cont').fadeIn();
animator_enable = 1;
}
else
animator_enable = 0;
$( "#cdate" ).datepicker({
closeText: 'Закрыть',
prevText: '',
currentText: 'Сегодня',
monthNames: ['Январь','Февраль','Март','Апрель','Май','Июнь',
'Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'],
monthNamesShort: ['Янв','Фев','Мар','Апр','Май','Июн',
'Июл','Авг','Сен','Окт','Ноя','Дек'],
dayNames: ['воскресенье','понедельник','вторник','среда','четверг','пятница','суббота'],
dayNamesShort: ['вск','пнд','втр','срд','чтв','птн','сбт'],
dayNamesMin: ['Вс','Пн','Вт','Ср','Чт','Пт','Сб'],
weekHeader: 'Не',
dateFormat: 'dd-mm-yy',
firstDay: 1,
beforeShowDay: function(date) {
var mt = date.getMonth()+1, dt = date.getDate(), y = date.getFullYear();
var m = ''+mt;
var d = ''+dt;
if (mt<10) m = '0'+mt;
if (dt<10) d = '0'+dt;
//alert(d + '-' + (m) + '-' + y);
for (i = 0; i < holyDays.length; i++) {
//tDate = holyDays[i].split('-');
//alert(getWeekDay(date));
if($.inArray(d + '-' + (m) + '-' + y,disabledDays) != -1) {
//return [false];
return [true, 'ui-state-disabled', ''];
}
/* else if($.inArray(d + '-' + (m) + '-' + y,holyDays) != -1 || date.getDay() == 6 || date.getDay() == 0) { */
else if($.inArray(d + '-' + (m) + '-' + y, holyDays) != -1 || $.inArray(date.getDay(), weekendDays) != -1) {
//return [false];
return [true, 'ui-state-holyday', ''];
}
else
for (i = 0; i < clearDays.length; i++) {
if($.inArray(d + '-' + (m) + '-' + y,clearDays) != -1) {
//return [false];
return [true, 'ui-state-clearday', ''];
}
else
return [true, 'ui-state-simple', ''];
}
}
return [true];
}
});
} );
function getWeekDay(date) {
var days = ['вс', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб'];
var result;
result = days[date.getDay()];
return result;
}
function ci_delete_bdb(row_id)
{
$(row_id).fadeOut(500, function(){
$(row_id).remove();
});
}
function ci_add_birthdayboy() {
var row_id = 'ci_row_id_'+parseInt(new Date().getTime()/1000);
$('#new_ci_cont').append('
')
}
function ci_timeChange(obj){
var time = $(obj).val().split(':');
if ((( ((time[0] < 10 || time[0] > 20) && clearMode == 0) || (time[0] < 14 || time[0] > 20) && clearMode == 1)) && time!='')
{
if (clearMode == 0)
alert('Выберите время в интервале между 10 и 20 часами');
else if (clearMode == 1)
alert('Выберите время в интервале между 14 и 20 часами');
$(obj).val('');
}
}
function date_convert(date, zero)
{
var temp = date.split('-');
if (temp[0]<10 && temp[0].length < 2 && zero === true) temp[0] = '0'+temp[0];
if (temp[1]<10 && temp[1].length < 2 && zero === true) temp[1] = '0'+temp[1];
if (zero === false)
{
temp[0] = parseInt(temp[0]) + '';
temp[1] = parseInt(temp[1]) + '';
}
var new_date = temp[0]+'-'+temp[1]+'-'+temp[2];
return new_date;
}
function ci_dateChange(obj) {
var sel_date = $(obj).val();
if ($.inArray(sel_date,clearDays) != -1){
$('.clearday_tooltip').fadeIn("slow");
$('#ctime').val('');
clearMode = 1;
}
else
{
$('.clearday_tooltip').fadeOut("slow");
clearMode = 0
}
}
function ci_check_order_fields(order_fields) {
var cname = $('#cname').val();
var cphone = $('#cphone').val();
var cdate = $('#cdate').val();
var ctime = $('#ctime').val();
var ctarif = $('#ctarif').val();
var err = 0;
if (cdate == '' || ctime == '' || ctarif < 0)
{
err = 1;
}
if ( order_fields == 1 && (cdate == '' || ctime == '' || ctarif < 0 || cname.length < 3 || cphone.length < 10))
{
err = 2;
}
if (err == 1)
{
alert('Не все обязательные для расчета поля заполнены');
return false;
}
if (err == 2)
{
alert('Не все обязательные для заказа поля заполнены');
return false;
}
return true;
}
function ci_check_birthbs_fields() {
var err = 0;
$('input[name=ciname]').each(function(index) {
if ($('input[name=ciname]').eq(index).val() == '' || $('input[name=cisex]').eq(index).val() == '' || $('input[name=ciage]').eq(index).val() == '')
{
err = 1;
}
});
if (err == 1)
{
alert('Не все данные именинников заполнены');
return false;
}
return true;
}
function ci_calculate(){
var day_mode = 'simple';
var cur_tarifs = [0,0,0];
var animator_price = 0;
var price = 0;
var follow_over_amount = 0;
var over_price_followers = 0;
var guest_discont = 1;
var bd_boys_price = 0;
var total_summ = 0;
var sel_date = $('#cdate').val(); // Выбранная дата
var sel_time = $('#ctime').val(); // Выбранное время
var sel_tarif = $('#ctarif').val(); // Выбранный тариф
var ci_guest_amount = parseInt($('#ci_guest_amount').val()); // Количество гостей
var ci_follower_amount = $('#ci_follower_amount').val(); // Количество сопровождающих
var time_arr = sel_time.split(':');
var bd_boys_amount = 0;
var bd_payman_amount = 0;
var date = new Date();
var tdate = '';
if ($('#ci_guest_amount').val() == '') ci_guest_amount = 0;
if (ci_follower_amount == '') ci_follower_amount = 0;
$('input[name=ciname]').each(function(index){
if($('input[name=ciname]').eq(index).val() != '' && $('input[name=ciage]').eq(index).val() != '')
bd_boys_amount++;
});
date = Date.parseExact(sel_date, "dd-MM-yyyy");
// Опредлеляем праздничный или простой день
if ($.inArray(sel_date,holyDays) != -1 || $.inArray(date.getDay(), weekendDays) != -1) {
cur_tarifs = holyday_tarifs;
day_mode = 'holyday';
}
else {
cur_tarifs = simple_tarifs;
day_mode = 'simple';
}
//Сколько именинников оплачивается
bd_boys_price = bd_boys_amount - Math.floor(ci_guest_amount / 2);
if (bd_boys_price < 0) bd_boys_price = 0;
//Количество оплачиваемых людей (гости и именинники)
bd_payman_amount = ci_guest_amount + bd_boys_price;
// Считаем гостевую скидку
// if (bd_payman_amount >= 15)
//guest_discont = discont_15;
if (bd_payman_amount >= 10)
guest_discont = discont_5;
else
guest_discont = 1;
// Определяем нужна ли скидка в 20% будние дни до 13.00
if (day_mode == 'simple' && time_arr[0] <= 12 && time_arr[1] <= 59 && sel_tarif != 2){
price = cur_tarifs[sel_tarif] * 0.8;
guest_discont = 1;
}
else {
price = cur_tarifs[sel_tarif];
}
// За всех вторых сопровождающих + 100р
//if (ci_follower_amount > ci_guest_amount)
//{
// follow_over_amount = ci_guest_amount - ci_follower_amount;
// over_price_followers = Math.abs(follow_over_amount * 100);
//}
//else
// over_price_followers = 0;
over_price_followers = ci_follower_amount * 100;
if ($('#canimator').prop('checked'))
{
var sel_animator_tarif = $('#ciduration').val();
animator_price = animator_tarifs[sel_animator_tarif];
animator_enable = 1;
}
else
{
animator_price = 0;
animator_enable = 0;
}
//if (ci_guest_amount >= (bd_boys_amount * 2))
// bd_boys_price = 0;
//else
// bd_boys_price = bd_boys_amount ;
//bd_boys_price = bd_boys_amount / ci_guest_amount;
// 1i - (2 / 2) = 1
// 2i - (2 / 2) = 1
// 5i - (2 / 2)) = 4
// 5i - (5 / 2) = 3
//alert(parseInt(bd_boys_price));
total_summ = Math.ceil((parseInt(price) * ((parseInt(ci_guest_amount) + parseInt(bd_boys_price))) * guest_discont) + parseInt(over_price_followers) + parseInt(animator_price));
var pre_summ = (parseInt(price) * ((parseInt(ci_guest_amount) + parseInt(bd_boys_price))) * guest_discont);
//alert(price+' * (('+parseInt(ci_guest_amount)+' + '+parseInt(bd_boys_price)+' ) * '+guest_discont+ ' ) + '+parseInt(over_price_followers)+' + '+parseInt(animator_price)+' = '+Math.ceil(parseInt(price) * ((parseInt(ci_guest_amount) + parseInt(bd_boys_price)) * guest_discont) + parseInt(over_price_followers) + parseInt(animator_price)));
if (ci_check_order_fields(0) == true && ci_check_birthbs_fields() == true ) {
$('#total_summ').html(total_summ);
if (debug > 0)
{
$('#debug_total_count').html('');
$('#debug_total_count').fadeIn();
if (day_mode == 'simple')
$('#debug_total_count').append('Будний день. Тариф: '+cur_tarifs[sel_tarif]+' руб/чел
');
if (day_mode == 'holyday')
$('#debug_total_count').append('Праздничный день. Тариф: '+cur_tarifs[sel_tarif]+' руб/чел
');
if (day_mode == 'simple' && time_arr[0] <= 12 && time_arr[1] <= 59 && sel_tarif != 2)
$('#debug_total_count').append('Буднее утро -20%. Тариф: '+(cur_tarifs[sel_tarif]*0.8)+' руб/чел
');
$('#debug_total_count').append('
Расчет за именинников: '+bd_boys_amount+' чел ['+Math.ceil(price * (bd_boys_price))+' руб]
');
$('#debug_total_count').append('Расчет за гостей: '+ci_guest_amount+' чел ['+Math.ceil(price * (ci_guest_amount))+' руб]
');
$('#debug_total_count').append('С учетом скидки '+((100 - guest_discont * 100))+'% ['+Math.ceil(pre_summ)+' руб]
');
$('#debug_total_count').append('Вторые сопровождающие ( '+ci_follower_amount+' чел) +'+over_price_followers+' руб
Промежуточный итог ['+Math.ceil(pre_summ + parseInt(over_price_followers))+' руб]
');
if ($('#canimator').prop('checked'))
$('#debug_total_count').append('Доплата за аниматора: +'+animator_price+' руб');
if (debug > 1){
$('#debug_total_count').append('
Формула: ('+parseInt(price)+' * '+'('+parseInt(ci_guest_amount) +' + '+ parseInt(bd_boys_price)+') * '+ guest_discont+')' +' + '+ parseInt(over_price_followers) +' + '+ parseInt(animator_price))+'
';
}
}
return total_summ;
}
else
return 0;
}
function ci_send_order(step){
var day_mode = 'simple';
var cur_tarifs = [0,0,0];
var animator_price = 0;
var price = 0;
var follow_over_amount = 0;
var over_price_followers = 0;
var guest_discont = 1;
var total_summ = 0;
var sel_date = $('#cdate').val(); // Выбранная дата
var sel_time = $('#ctime').val(); // Выбранное время
var sel_tarif = $('#ctarif').val(); // Выбранный тариф
var ci_guest_amount = $('#ci_guest_amount').val(); // Количество гостей
var ci_follower_amount = $('#ci_follower_amount').val(); // Количество сопровождающих
var time_arr = sel_time.split(':');
if (ci_guest_amount == '') ci_guest_amount = 0;
var cname = $('#cname').val();
var cphone = $('#cphone').val();
var cdate = $('#cdate').val();
var ctime = $('#ctime').val();
var ctimestart = $('#ctimestart').val();
var ciduration = $('#ciduration').val();
var cisuit = $('#cisuit').val();
var birthday_boys = '';
var calcModalWindow = new wmModalWindow ('indexOrderModalForm');
calcModalWindow.init();
total_summ = ci_calculate();
if (step == 1) {
if (document.querySelector('.indexOrderModalForm')){
document.querySelector('#confirm-phone').value = cphone;
calcModalWindow.show();
}
return false;
}
if (step == 2) {
/* console.log(cphone);
console.log(document.querySelector('#confirm-phone').value); */
if (document.querySelector('#confirm-phone').value != '')
cphone = document.querySelector('#confirm-phone').value;
calcModalWindow.hide();
/* return false; */
}
if (ci_check_order_fields(1) == true ) {
if (ci_check_birthbs_fields() == true ) {
$('input[name=ciname]').each(function(index){
birthday_boys += "Имя: "+$('input[name=ciname]').eq(index).val()+" Возраст: "+$('input[name=ciage]').eq(index).val()+" Пол: "+$('select[name=cisex]').eq(index).val()+"
";
});
if (total_summ > 0) {
$.post('ajax/zakaz_calc.php',{'act':'send_order', cname:cname, cphone:cphone, cdate:cdate, ctime:ctime, ci_guest_amount:ci_guest_amount, ci_follower_amount:ci_follower_amount, sel_tarif:sel_tarif, total_summ:total_summ, animator_enable:animator_enable, ctimestart:ctimestart, ciduration:ciduration, cisuit:cisuit, 'birthday_boys':birthday_boys}, function(result){
alert(result);
document.location.reload();
});
}
}
}
}
function calcDateRangeDecompile(dateRange)
{
var temp;
var start;
var stop;
var tail;
var arr = [];
//["01-07-2019":::"31-07-2019"]
if (dateRange.indexOf(':::') !== -1)
{
temp = dateRange[0].split('-');
start = temp[0];
tail = '-'+temp[1]+'-'+temp[2]+'';
temp = dateRange[2].split('-');
stop = temp[0];
for (var i=parseInt(start); i<=parseInt(stop); i++)
{
if (i<10)
arr.push( '0'+i.toString()+tail);
else
arr.push( i.toString()+tail);
}
return arr;
}
else
return dateRange;
}