/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ let freeTracksArray; let tables = []; function enableSubmitButton() { $('input[name="r_submit"]').prop('disabled', false); } function disableSubmitButton() { $('input[name="r_submit"]').prop('disabled', true); } function enableTracksHours() { $('#ile_torow').attr('disabled', false); $('#ile_godzin').attr('disabled', false); } function disableTracksHours() { $('#ile_torow').attr('disabled', true); $('#ile_godzin').attr('disabled', true); $('#godzina_rezerwacji').attr('disabled', true); disablePersonalData(); } function enablePersonalData() { $('#r_guest').attr('disabled', false); $('#r_phone_number').attr('disabled', false); } function disablePersonalData() { $('#r_guest').attr('disabled', true); $('#r_phone_number').attr('disabled', true); } function getTracks() { $.post('https://panel.aseto.pl/api/reservation/ajax.php?token=f8fa8c40414af339a92cebd43831f5df1e0865b5dd2bf0f435b9a19918413459', { action: 'getTracks' }).done(function(response, textStatus, jqXHR) { data = JSON.parse(response); if(data.status) { $('#tracks_list').empty(); $.each(data.data, function(key, value) { $('#tracks_list').append('
'); }); } }); } function getTracksByPrice(tableType) { $.post('https://panel.aseto.pl/api/reservation/ajax.php?token=f8fa8c40414af339a92cebd43831f5df1e0865b5dd2bf0f435b9a19918413459', { action: 'getTracksByPrice', price: tableType }).done(function(response, textStatus, jqXHR) { data = JSON.parse(response); if(data.status) { $('#tracks_list').empty(); tables.length = 0; $.each(data.data, function(key, value) { $('#tracks_list').append('
'); tables.push(value.id); }); } }); } function checkIsOpened(date) { $.post('https://panel.aseto.pl/api/reservation/ajax.php?token=f8fa8c40414af339a92cebd43831f5df1e0865b5dd2bf0f435b9a19918413459', { action: 'isOpened', date: date }).done(function(response, textStatus, jqXHR) { data = JSON.parse(response); if(data.status) { enableTracksHours(); getAvailableHours(date, $('#ile_torow').val(), $('#ile_godzin').val()); // $('#jaka_usluga').val($('#ile_godzin').find(':selected').attr('service-id')); } else { disableTracksHours(); disableSubmitButton(); } }); } function getAvailableHours(date, tracks, hours) { $.post('https://panel.aseto.pl/api/reservation/ajax.php?token=f8fa8c40414af339a92cebd43831f5df1e0865b5dd2bf0f435b9a19918413459', { action: 'getAvailableHours', date: date, tracks: tracks, hours: hours }).done(function(response, textStatus, jqXHR) { data = JSON.parse(response); if(data.status && data.data.length > 0) { $('#godzina_rezerwacji').empty(); $('#godzina_rezerwacji').attr('disabled', false); /* $.each(data.data, function(key, value) { $('#godzina_rezerwacji').append($("").attr("value", value.time).text(value.time)); }); */ freeTracksArray = data.data; $.each(freeTracksArray, function(key, value) { let leftArray = value.freeTracks; let rightArray = tables; let matchesArray = []; $.each(leftArray, function(k, v) { let index = $.inArray(v, rightArray); if(index !== -1) { matchesArray.push(rightArray[index]); } }); if(matchesArray.length > 0) { $('#godzina_rezerwacji').append($("").attr("value", value.time).text(value.time)); } }); enablePersonalData(); enableSubmitButton(); $('#godzina_rezerwacji').trigger('change'); } else { $('#godzina_rezerwacji').attr('disabled', true); disablePersonalData(); disableSubmitButton(); } }); } $(document).ready(function() { disableTracksHours(); disablePersonalData(); disableSubmitButton(); getTracksByPrice(tableType); $('#godzina_rezerwacji').attr('disabled', true); $('#godzina_rezerwacji').on('change', function() { let leftArray = freeTracksArray.find(x => x.time === $(this).val()).freeTracks; let rightArray = tables; let matchesArray = []; $.each(leftArray, function(k, v) { let index = $.inArray(v, rightArray); if(index !== -1) { matchesArray.push(rightArray[index]); } }); $('[name="tracks[]"]').val(matchesArray[0]); }); var date = new Date(); $.post('https://panel.aseto.pl/api/reservation/ajax.php?token=f8fa8c40414af339a92cebd43831f5df1e0865b5dd2bf0f435b9a19918413459', { action: 'getOpeningHoursSettings' }).done(function(response, textStatus, jqXHR) { data = JSON.parse(response); if(data.status) { $('#r_date').datepicker({ setStartDate: date, autoclose: true, weekStart: 1, language: 'pl', format: "dd-mm-yyyy", startDate: '0', // endDate: '+' + data.data.cron_days + 'd' endDate: '+14d' }); } }); $.post('https://panel.aseto.pl/api/reservation/ajax.php?token=f8fa8c40414af339a92cebd43831f5df1e0865b5dd2bf0f435b9a19918413459', { action: 'getServices' }).done(function(response, textStatus, jqXHR) { data = JSON.parse(response); if(data.status) { if(data.data.length > 0) { $.each(data.data, function(key, value) { // $('#ile_godzin').append($('').attr('value', value.interval_multipler).text(value.name).attr('service-id', value.id)); let tt = parseInt(tableType); if($.inArray(tt, [2, 4, 5, 6]) !== -1) { $('#ile_godzin').val(data.data[0].interval_multipler); $('#jaka_usluga').val(data.data[0].id); } if($.inArray(tt, [7, 8, 10]) !== -1) { $('#ile_godzin').val(data.data[1].interval_multipler); $('#jaka_usluga').val(data.data[1].id); } if($.inArray(tt, [99]) !== -1) { $('#ile_godzin').val(data.data[2].interval_multipler); $('#jaka_usluga').val(data.data[2].id); } }); } } }); $('#r_date').on('change', function() { checkIsOpened($(this).datepicker().val().length > 0 ? $(this).datepicker().val() : date); }); $('#r_date2').on('change', function() { checkIsOpened($(this).val()); }); $('#ile_torow, #ile_godzin').on('change', function() { getAvailableHours(($('#r_date').length ? $('#r_date').val() : $('#r_date2').val()), $('#ile_torow').val(), $('#ile_godzin').val()); }); /* $('#ile_godzin').on('change', function() { $('#jaka_usluga').val($(this).find(':selected').attr('service-id')); }); */ if($('#r_date').length) { $("#reservation-form").validate({ rules: { r_date: "required", tracks: "required", ile_godzin: "required", godzina_rezerwacji: "required", r_guest: "required", r_phone_number: { required: true, maxlength: 9, minlength: 9, remote: { url: "https://panel.aseto.pl/api/reservation/ajax.php?token=f8fa8c40414af339a92cebd43831f5df1e0865b5dd2bf0f435b9a19918413459", type: "post", data: { action: "checkPhoneNumber" } } } }, messages: { r_date: "Proszę wybrać datę", tracks: "Proszę wybrać tory", ile_godzin: "Proszę wybrać ilość godzin", godzina_rezerwacji: "Proszę wybrać godzinę rezerwacji", r_guest: "Proszę podać pełne imię i nazwisko", r_phone_number: { required: "Proszę podać numer telefonu", minlength: "Numer telefonu musi zawierać 9 cyfr", maxlength: "Numer telefonu musi zawierać 9 cyfr", digits: "Numer telefonu musi zawierać 9 cyfr" } } }); } else if($('#r_date2').length) { $("#reservation-form").validate({ rules: { r_date2: "required", ile_torow: "required", ile_godzin: "required", godzina_rezerwacji: "required", r_guest: "required", r_phone_number: { required: true, remote: { url: "https://panel.aseto.pl/api/reservation/ajax.php?token=f8fa8c40414af339a92cebd43831f5df1e0865b5dd2bf0f435b9a19918413459", type: "post", data: { action: "checkPhoneNumber" } } } }, messages: { r_date2: "Proszę wybrać datę", ile_torow: "Proszę wybrać ilość torów", ile_godzin: "Proszę wybrać ilość godzin", godzina_rezerwacji: "Proszę wybrać godzinę rezerwacji", r_guest: "Proszę podać pełne imię i nazwisko", r_phone_number: { required: "Proszę podać numer telefonu", minlength: "Numer telefonu musi zawierać 9 cyfr", maxlength: "Numer telefonu musi zawierać 9 cyfr", digits: "Numer telefonu musi zawierać 9 cyfr" } } }); } }); $.validator.setDefaults({ submitHandler: function() { disableSubmitButton(); var form = $("#reservation-form"); $.ajax({ type: "post", url: "https://panel.aseto.pl/api/reservation/ajax.php?token=f8fa8c40414af339a92cebd43831f5df1e0865b5dd2bf0f435b9a19918413459", data: form.serialize(), success: function(response) { data = JSON.parse(response); if(data.status) { disableTracksHours(); disableSubmitButton(); $('#reservation-form')[0].reset(); $("#r_result").html('
Rezerwacja została złożona! Za chwilę otrzymasz SMS z potwierdzeniem rezerwacji. Dziękujemy!
'); } else { $('#reservation-form')[0].reset(); $("#r_result").html('
Wystąpił błąd podczas rezerwacji, wybierz inną datę lub skontaktuj się z kręgielnią.
'); } } }); } });