/** * 2010-2022 Webkul. * * NOTICE OF LICENSE * * All right is reserved, * Please go through LICENSE.txt file inside our module * * DISCLAIMER * * Do not edit or add to this file if you wish to upgrade this module to newer * versions in the future. If you wish to customize this module for your * needs please refer to CustomizationPolicy.txt file inside our module for more information. * * @author Webkul IN * @copyright 2010-2022 Webkul IN * @license LICENSE.txt */ $(document).ready(function() { // calender if ($('#fullcalendar').length) { var calendar = new FullCalendar.Calendar($('#fullcalendar').get(0), { initialView: 'dayGridMonth', initialDate: initialDate, events: { url: rooms_booking_url, method: 'POST', extraParams: function() { return $.extend( { ajax: true, action: 'getCalenderData', }, getSearchData() ) }, }, eventContent: function(info) { if (info.event.extendedProps.is_notification) { return false; } }, eventDidMount: function(info) { if (info.event.extendedProps.is_notification) { if (info.event.extendedProps.data.stats.num_avail > 0) { $(info.el).closest('td').find('.day-info svg circle').attr('fill', '#7EC77B'); } else if (info.event.extendedProps.data.stats.num_part_avai > 0) { $(info.el).closest('td').find('.day-info svg circle').attr('fill', '#FFC224'); } else if ((info.event.extendedProps.data.stats.num_booked == info.event.extendedProps.data.stats.total_rooms) && info.event.extendedProps.data.stats.total_rooms != 0) { $(info.el).closest('td').find('.day-info svg circle').attr('fill', '#00AFF0'); } else { $(info.el).closest('td').find('.day-info svg circle').attr('fill', '#FF3838'); } $(info.el).closest('td').find('.day-info').tooltip({ content: function() { $('#date-stats-tooltop .tip_date').text(info.event.extendedProps.data.date_format); $.each(info.event.extendedProps.data.stats, function(elem, val) { if (elem == 'num_part_avai') { $('#date-stats-tooltop').find('.'+elem).hide().find('.tip_element_value').text(''); } else { $('#date-stats-tooltop').find('.'+elem).show().find('.tip_element_value').text(val); } }); return $('#date-stats-tooltop').html(); }, items: "div", trigger : 'hover', show: { delay: 100, }, hide: { delay: 300, }, open: function(event, ui) { if(event.buttons == 1 || event.buttons == 3){ ui.tooltip.remove(); } if (typeof(event.originalEvent) === 'undefined') { return false; } var $id = $(ui.tooltip).attr('id'); // close any lingering tooltips if ($('div.ui-tooltip').not('#' + $id).length) { return false; } // ajax function to pull in data and add it to the tooltip goes here }, close: function(event, ui) { ui.tooltip.hover(function() { $(this).stop(true).fadeTo(300, 1); }, function() { $(this).fadeOut('300', function() { $(this).remove(); }); }); } }); info.event.remove(); } else { $(info.el).tooltip({ content: function() { $('#date-stats-tooltop .tip_date').text(info.event.extendedProps.data.date_from_format + ' - ' +info.event.extendedProps.data.date_to_format); $.each(info.event.extendedProps.data.stats, function(elem, val) { if (elem == 'num_part_avai') { if (val > 0) { $('#date-stats-tooltop').find('.'+elem).show().find('.tip_element_value').text(val); } else { $('#date-stats-tooltop').find('.'+elem).hide().find('.tip_element_value').text(''); } } else { $('#date-stats-tooltop').find('.'+elem).find('.tip_element_value').text(val); } }); return $('#date-stats-tooltop').html(); }, items: "div", trigger : 'hover', show: { delay: 100, }, hide: { delay: 300, }, open: function(event, ui) { if(event.buttons == 1 || event.buttons == 3){ ui.tooltip.remove(); } if (typeof(event.originalEvent) === 'undefined') { return false; } var $id = $(ui.tooltip).attr('id'); // close any lingering tooltips if ($('div.ui-tooltip').not('#' + $id).length) { return false; } // ajax function to pull in data and add it to the tooltip goes here }, close: function(event, ui) { ui.tooltip.hover(function() { $(this).stop(true).fadeTo(300, 1); }, function() { $(this).fadeOut('300', function() { $(this).remove(); }); }); } }); } }, dayCellDidMount: (arg) => { let svg = $('#svg-icon').html(); $(arg.el).find('.fc-daygrid-day-top').append(''+svg+''); }, datesSet: function(arg) { if($('.fc-event').tooltip()) { $('.fc-event').tooltip('destroy'); } } }); calendar.render(); } function getSearchData() { return { search_id_room_type: $("#search_id_room_type").val(), search_id_hotel: $("#search_id_hotel").val(), search_date_from: $("#search_date_from").val(), search_date_to: $("#search_date_to").val(), } } // toggleSearchFields(); // $('#booking_product').on('change', function() { // toggleSearchFields(); // }); // search form changes $('#search_hotel_list').on('click', function(e) { if ($('#date_from').val() == '') { alert(from_date_cond); return false; } else if ($('#date_to').val() == '') { alert(to_date_cond); return false; } else if ($('#hotel-id').val() == '') { alert(hotel_name_cond); return false; } else if ($('#num-rooms').val() == '') { alert(num_rooms_cond); return false; } }); $("#from_date").datepicker({ showOtherMonths: true, dateFormat: 'dd-mm-yy', altFormat: 'yy-mm-dd', altField: '#date_from', beforeShowDay: function (date) { return highlightDateBorder($("#from_date").val(), date); }, onSelect: function(selectedDate) { var date_format = selectedDate.split("-"); var selectedDate = new Date($.datepicker.formatDate('yy-mm-dd', new Date(date_format[2], date_format[1] - 1, date_format[0]))); selectedDate.setDate(selectedDate.getDate() + 1); $("#to_date").datepicker("option", "minDate", selectedDate); }, }); $("#to_date").datepicker({ showOtherMonths: true, dateFormat: 'dd-mm-yy', altFormat: 'yy-mm-dd', altField: '#date_to', beforeShowDay: function (date) { return highlightDateBorder($("#to_date").val(), date); }, }); $("#id_hotel").on('change', function() { var hotel_id = $(this).val(); if (!isNaN(hotel_id)) { if (hotel_id > 0) { $.ajax({ url: rooms_booking_url, type: 'POST', dataType: 'json', data: { ajax: true, action: 'getRoomType', hotel_id: hotel_id, }, success: function(result) { $("#id_hotel option[value='0']").remove(); // to remove Select hotel option $('#id_room_type').empty(); html = ""; if (result.length) { $.each(result, function(key, value) { html += ""; }); $('#id_room_type').append(html); } else { if ($('#booking_product').val() == 1) { showErrorMessage(noRoomTypeAvlTxt); } $('#id_room_type').append(html); } } }); } } }); function getBookingOccupancyDetails(bookingform) { let occupancy; if (occupancy_required_for_booking) { $('.booking_occupancy_wrapper').parent().removeClass('open'); let selected_occupancy = $(bookingform).find(".occupancy_info_block.selected") if (selected_occupancy.length) { occupancy = []; $(selected_occupancy).each(function(ind, element) { if (parseInt($(element).find('.num_adults').val())) { let child_ages = []; $(element).find('.guest_child_age').each(function(index) { if ($(this).val() > -1) { child_ages.push($(this).val()); } }); if ($(element).find('.num_children').val()) { if (child_ages.length != $(element).find('.num_children').val()) { $(bookingform).find('.booking_occupancy_wrapper').parent().addClass('open'); occupancy = false; return false; } } occupancy.push({ 'adults': $(element).find('.num_adults').val(), 'children': $(element).find('.num_children').val(), 'child_ages': child_ages }); } else { $(bookingform).find('.booking_occupancy_wrapper').parent().addClass('open'); occupancy = false; } }); } else { $(bookingform).find('.booking_occupancy_wrapper').parent().addClass('open'); occupancy = false; } } else { return 1; } return occupancy; } // booking form $('body').on('click', '.avai_add_cart', function(e) { e.preventDefault(); $current_btn = $(this); $current_btn.attr('disabled', 'disabled'); var search_id_room_type = $("#search_id_room_type").val(); var search_id_hotel = $("#search_id_hotel").val(); var search_date_from = $("#search_date_from").val(); var search_date_to = $("#search_date_to").val(); var id_prod = $(this).attr('data-id-product'); var id_room = $(this).attr('data-id-room'); var id_hotel = $(this).attr('data-id-hotel'); var date_from = $(this).attr('data-date-from'); var date_to = $(this).attr('data-date-to'); var booking_type = $("input[name='bk_type_" + id_room + "']:checked").val(); var comment = $("#comment_" + id_room).val(); var btn = $(this); $(this).closest('tr').find('.booking_occupancy_wrapper').parent().removeClass('open'); var occupancy = getBookingOccupancyDetails($(this).closest('tr').find('.booking_occupancy')); if (occupancy) { $.ajax({ url: rooms_booking_url, type: 'POST', dataType: 'json', data: { ajax: true, action: 'addDataToCart', id_prod: id_prod, id_room: id_room, id_hotel: id_hotel, date_from: date_from, date_to: date_to, occupancy: occupancy, booking_type: booking_type, comment: comment, search_id_hotel: search_id_hotel, search_id_room_type: search_id_room_type, search_date_from: search_date_from, search_date_to: search_date_to, opt: 1, }, success: function(result) { if (result) { if (result.success) { $(".cart_booking_btn").removeAttr('disabled'); $current_btn.removeAttr('disabled'); } btn.removeClass('btn-primary').removeClass('avai_add_cart').addClass('btn-danger').addClass('avai_delete_cart_data').html(remove); btn.attr('data-id-cart', result.data.id_cart); btn.attr('data-id-cart-book-data', result.data.id_cart_book_data); refreshCartData(); refreshStatsData(); calendar.refetchEvents(); } } }); } else { $current_btn.attr('disabled', false); setRoomTypeGuestOccupancy($(this).closest('tr').find('.booking_occupancy_wrapper')); } }); $('body').on('click', '.par_add_cart', function(e) { e.preventDefault(); $current_btn = $(this); $current_btn.attr('disabled', 'disabled'); var search_id_room_type = $("#search_id_room_type").val(); var search_id_hotel = $("#search_id_hotel").val(); var search_date_from = $("#search_date_from").val(); var search_date_to = $("#search_date_to").val(); var id_prod = $(this).attr('data-id-product'); var id_room = $(this).attr('data-id-room'); var id_hotel = $(this).attr('data-id-hotel'); var date_from = $(this).attr('data-date-from'); var date_to = $(this).attr('data-date-to'); var sub_key = $(this).attr('data-sub-key'); var booking_type = $("input[name='bk_type_" + id_room + "_" + sub_key + "']:checked").val(); var comment = $("#comment_" + id_room + "_" + sub_key).val(); var btn = $(this); $(this).closest('tr').find('.booking_occupancy_wrapper').parent().removeClass('open'); var occupancy = getBookingOccupancyDetails($(this).closest('tr').find('.booking_occupancy')); if (occupancy) { $.ajax({ url: rooms_booking_url, type: 'POST', dataType: 'json', data: { ajax: true, action: 'addDataToCart', id_prod: id_prod, id_room: id_room, id_hotel: id_hotel, date_from: date_from, date_to: date_to, occupancy: occupancy, booking_type: booking_type, comment: comment, search_id_hotel: search_id_hotel, search_id_room_type: search_id_room_type, search_date_from: search_date_from, search_date_to: search_date_to, opt: 1, }, success: function(result) { if (result) { if (result.success) { $(".cart_booking_btn").removeAttr('disabled'); $current_btn.removeAttr('disabled'); } btn.removeClass('btn-primary').removeClass('par_add_cart').addClass('btn-danger').addClass('part_delete_cart_data').html(remove); btn.attr('data-id-cart', result.data.id_cart); btn.attr('data-id-cart-book-data', result.data.id_cart_book_data); refreshCartData(); refreshStatsData(); calendar.refetchEvents(); } } }); } else { $current_btn.attr('disabled', false); setRoomTypeGuestOccupancy($(this).closest('tr').find('.booking_occupancy_wrapper')); } }); $('body').on('click', '.ajax_cart_delete_data', function() { //for booking_data var search_id_room_type = $("#search_id_room_type").val(); var search_id_hotel = $("#search_id_hotel").val(); var search_date_from = $("#search_date_from").val(); var search_date_to = $("#search_date_to").val(); var ajax_delete = 1; var id_product = $(this).attr('data-id-product'); var id_cart = $(this).attr('data-id-cart'); var id_cart_book_data = $(this).attr('data-id-cart-book-data'); var date_from = $(this).attr('data-date-from'); var date_to = $(this).attr('data-date-to'); var id_hotel = $(this).attr('data-id-hotel'); var btn = $(this); $.ajax({ url: rooms_booking_url, type: 'POST', dataType: 'json', async: false, data: { ajax: true, action: 'addDataToCart', id_prod: id_product, id_cart: id_cart, id_cart_book_data: id_cart_book_data, date_from: date_from, date_to: date_to, id_hotel: id_hotel, search_id_hotel: search_id_hotel, search_id_room_type: search_id_room_type, search_date_from: search_date_from, search_date_to: search_date_to, ajax_delete: ajax_delete, opt: 0, }, success: function(result) { if (result) { if (!(result.success)) { $(".cart_booking_btn").attr('disabled', 'true'); } $("#htl_rooms_list").empty().append(result.data.room_tpl); refreshCartData(); refreshStatsData(); calendar.refetchEvents(); initBookingList(); var panel_btn = $(".tab-pane tr td button[data-id-cart-book-data='" + id_cart_book_data + "']"); panel_btn.attr('data-id-cart', ''); panel_btn.attr('data-id-cart-book-data', ''); if (panel_btn.hasClass('avai_delete_cart_data')) panel_btn.removeClass('avai_delete_cart_data').addClass('avai_add_cart'); else if (panel_btn.hasClass('part_delete_cart_data')) panel_btn.removeClass('part_delete_cart_data').addClass('par_add_cart'); panel_btn.removeClass('btn-danger').addClass('btn-primary').html(add_to_cart); } } }); }); $('body').on('click', '.avai_delete_cart_data, .part_delete_cart_data', function() { var search_id_room_type = $("#search_id_room_type").val(); var search_id_hotel = $("#search_id_hotel").val(); var search_date_from = $("#search_date_from").val(); var search_date_to = $("#search_date_to").val(); var id_product = $(this).attr('data-id-product'); var id_cart = $(this).attr('data-id-cart'); var id_cart_book_data = $(this).attr('data-id-cart-book-data'); var date_from = $(this).attr('data-date-from'); var date_to = $(this).attr('data-date-to'); var id_hotel = $(this).attr('data-id-hotel'); var btn = $(this); $.ajax({ url: rooms_booking_url, type: 'POST', dataType: 'json', data: { ajax: true, action: 'addDataToCart', id_prod: id_product, id_cart: id_cart, id_cart_book_data: id_cart_book_data, date_from: date_from, date_to: date_to, search_id_hotel: search_id_hotel, search_id_room_type: search_id_room_type, search_date_from: search_date_from, search_date_to: search_date_to, id_hotel: id_hotel, opt: 0, }, success: function(result) { if (result) { if (!(result.success)) { $(".cart_booking_btn").attr('disabled', 'true'); } $(".cart_tbody tr td button[data-id-cart-book-data='" + id_cart_book_data + "']").parent().parent().remove(); refreshCartData(); refreshStatsData(); calendar.refetchEvents(); btn.attr('data-id-cart', ''); btn.attr('data-id-cart-book-data', ''); if (btn.hasClass('avai_delete_cart_data')) btn.removeClass('avai_delete_cart_data').addClass('avai_add_cart'); else if (btn.hasClass('part_delete_cart_data')) btn.removeClass('part_delete_cart_data').addClass('par_add_cart'); btn.removeClass('btn-danger').addClass('btn-primary').html(add_to_cart); } } }); }); $(document).on('click', '.booking_occupancy_wrapper .remove-room-link', function(e) { e.preventDefault(); booking_occupancy_inner = $(this).closest('.booking_occupancy_inner'); $(this).closest('.occupancy_info_block').remove(); $(booking_occupancy_inner).find('.room_num_wrapper').each(function(key, val) { $(this).text(room_txt + ' - '+ (key+1) ); }); setRoomTypeGuestOccupancy($(booking_occupancy_inner).closest('.booking_occupancy_wrapper')); }); $(document).on('change', '.num_occupancy', function(e) { let current_room_occupancy = 0; $(this).closest('.occupancy_info_block').find('.num_occupancy').each(function(){ current_room_occupancy += parseInt($(this).val()); }); let max_guests_in_room = $(this).closest(".booking_occupancy_wrapper").find('.max_guests').val(); let max_allowed_for_current = (max_guests_in_room - current_room_occupancy) + parseInt($(this).val()); if ($(this).val() > $(this).attr('max')) { $(this).val($(this).attr('max')); } if ($(this).val() > max_allowed_for_current) { $(this).val(max_allowed_for_current); } if ($(this).hasClass('num_children')) { let totalChilds = $(this).closest('.occupancy_info_block').find('.guest_child_age').length; if (totalChilds < $(this).val()) { $(this).closest('.occupancy_info_block').find('.children_age_info_block').show(); while ($(this).closest('.occupancy_info_block').find('.guest_child_age').length < $(this).val()) { var roomBlockIndex = parseInt($(this).closest('.occupancy_info_block').attr('occ_block_index')); var childAgeSelect = '
'; childAgeSelect += ''; childAgeSelect += '
'; $(this).closest('.occupancy_info_block').find('.children_ages').append(childAgeSelect); } } else { let child = $(this).val(); $(this).closest('.occupancy_info_block').find('.guest_child_age').each(function(ind, element) { if (child <= ind) { $(element).parent().remove(); } }); if (child == 0) { $(this).closest('.occupancy_info_block').find('.children_age_info_block').hide(); } } } setRoomTypeGuestOccupancy($(this).closest('.booking_occupancy_wrapper')); }); $(document).on('click', '.booking_guest_occupancy', function(e) { $(this).parent().toggleClass('open'); }); $(document).on('click', function(e) { if ($('.booking_occupancy_wrapper:visible').length) { var occupancy_wrapper = $('.booking_occupancy_wrapper:visible'); $(occupancy_wrapper).find(".occupancy_info_block").addClass('selected'); setRoomTypeGuestOccupancy(occupancy_wrapper); if (!($(e.target).closest(".booking_occupancy_wrapper").length || $(e.target).closest(".booking_guest_occupancy").length || $(e.target).closest(".avai_add_cart").length || $(e.target).closest(".par_add_cart").length)) { let hasErrors = 0; let adults = $(occupancy_wrapper).find(".num_adults").map(function(){return $(this).val();}).get(); let children = $(occupancy_wrapper).find(".num_children").map(function(){return $(this).val();}).get(); let child_ages = $(occupancy_wrapper).find(".guest_child_age").map(function(){return $(this).val();}).get(); // start validating above values if (!adults.length || (adults.length != children.length)) { hasErrors = 1; showErrorMessage(invalid_occupancy_txt); } else { $(occupancy_wrapper).find('.occupancy_count').removeClass('error_border'); // validate values of adults and children adults.forEach(function (item, index) { if (isNaN(item) || parseInt(item) < 1) { hasErrors = 1; $(occupancy_wrapper).find(".num_adults").eq(index).closest('.occupancy_count_block').find('.occupancy_count').addClass('error_border'); } if (isNaN(children[index])) { hasErrors = 1; $(occupancy_wrapper).find(".num_children").eq(index).closest('.occupancy_count_block').find('.occupancy_count').addClass('error_border'); } }); // validate values of selected child ages $(occupancy_wrapper).find('.guest_child_age').parent().removeClass('has-error'); child_ages.forEach(function (age, index) { age = parseInt(age); if (isNaN(age) || (age < 0) || (age >= parseInt(max_child_age))) { hasErrors = 1; $(occupancy_wrapper).find(".guest_child_age").eq(index).parent().addClass('has-error'); } }); } if (hasErrors == 0) { $(occupancy_wrapper).parent().removeClass('open'); // $(occupancy_wrapper).siblings(".booking_guest_occupancy").parent().removeClass('has-error'); $(document).trigger( "QloApps:updateRoomOccupancy", [occupancy_wrapper]); } else { // $(occupancy_wrapper).siblings(".booking_guest_occupancy").parent().addClass('has-error'); } } } }); $('.booking_occupancy_wrapper .add_new_occupancy_btn').on('click', function(e) { e.preventDefault(); var booking_occupancy_wrapper = $(this).closest('.booking_occupancy_wrapper'); var occupancy_block = ''; var roomBlockIndex = parseInt($(booking_occupancy_wrapper).find(".occupancy_info_block").last().attr('occ_block_index')); roomBlockIndex += 1; var countRooms = parseInt($(booking_occupancy_wrapper).find('.occupancy_info_block').length); countRooms += 1 occupancy_block += '
'; occupancy_block += '
' + remove_txt + '
'; occupancy_block += '
'; occupancy_block += '
'; occupancy_block += '
'; occupancy_block += ''; occupancy_block += ''; occupancy_block += '
'; occupancy_block += '
'; occupancy_block += ''; occupancy_block += '(' + below_txt + ' ' + max_child_age + ' ' + years_txt + ')'; occupancy_block += '
'; occupancy_block += '
'; occupancy_block += ''; occupancy_block += '
'; occupancy_block += '
'; occupancy_block += '
'; $(booking_occupancy_wrapper).find('.booking_occupancy_inner').append(occupancy_block); setRoomTypeGuestOccupancy(booking_occupancy_wrapper); }); function setRoomTypeGuestOccupancy(booking_occupancy_wrapper) { var adults = 0; var children = 0; var rooms = $(booking_occupancy_wrapper).find('.occupancy_info_block').length; $(booking_occupancy_wrapper).find(".num_adults" ).each(function(key, val) { adults += parseInt($(this).val()); }); $(booking_occupancy_wrapper).find(".num_children" ).each(function(key, val) { children += parseInt($(this).val()); }); var guestButtonVal = parseInt(adults) + ' '; if (parseInt(adults) > 1) { guestButtonVal += adults_txt; } else { guestButtonVal += adult_txt; } if (parseInt(children) > 0) { if (parseInt(children) > 1) { guestButtonVal += ', ' + parseInt(children) + ' ' + children_txt; } else { guestButtonVal += ', ' + parseInt(children) + ' ' + child_txt; } } if (parseInt(rooms) > 1) { guestButtonVal += ', ' + parseInt(rooms) + ' ' + rooms_txt; } else { guestButtonVal += ', ' + parseInt(rooms) + ' ' + room_txt; } $(booking_occupancy_wrapper).siblings('.booking_guest_occupancy').find('span').text(guestButtonVal); } // normal products $('body').on('click', '.service_product_add_to_cart', function() { var current_btn = $(this); current_btn.attr('disabled', 'disabled'); var search_id_prod = $("#search_id_prod").val(); var id_product = $(this).data('id-product'); var id_hotel = $(this).data('id-hotel'); var qty = current_btn.closest('.product-container').find('.product_quantity').val(); if (typeof(qty) == 'undefined') { qty = 1; } $.ajax({ url: rooms_booking_url, type: 'POST', dataType: 'json', data: { ajax: true, action: 'updateProductInCart', id_product: id_product, id_hotel: id_hotel, qty: qty, search_id_prod: search_id_prod, opt: 'up', }, success: function(result) { if (result.status) { $(current_btn).closest('.product-info-container').find('.product_quantity').val('1'); refreshCartData(); showSuccessMessage(product_added_cart_txt) } else if (result.errors) { showErrorMessage(result.errors); } }, complete: function() { current_btn.attr('disabled', false); } }); }); $('body').on('click', '.service_product_delete', function() { var current_btn = $(this); current_btn.attr('disabled', 'disabled'); var id_product = $(this).attr('data-id-product'); var id_cart = $(this).attr('data-id-cart'); var id_hotel = $(this).attr('data-id-hotel'); $.ajax({ url: rooms_booking_url, type: 'POST', dataType: 'json', data: { ajax: true, action: 'updateProductInCart', id_product: id_product, id_hotel: id_hotel, id_cart: id_cart, opt: 0, }, success: function(result) { if (result) { refreshCartData(); } } }); }); function toggleSearchFields() { if ($('#booking_product').val() == 1) { $('#from_date').closest('.form-group').show('fast'); $('#to_date').closest('.form-group').show('fast'); $('#id_room_type').closest('.form-group').show('fast'); $('#search_occupancy').closest('.form-group').show('fast'); } else { $('#from_date').closest('.form-group').hide('fast'); $('#to_date').closest('.form-group').hide('fast'); $('#id_room_type').closest('.form-group').hide('fast'); $('#search_occupancy').closest('.form-group').hide('fast'); } } function refreshCartData() { $.ajax({ url: rooms_booking_url, type: 'POST', dataType: 'JSON', data: { ajax: true, action: 'updateCartData', }, success: function(result) { if (result) { if (result.cart_content) { $("#cartModal").html(result.cart_content); } $("#cart_record").html(result.total_products_in_cart); } } }); } function refreshStatsData() { var search_id_room_type = $("#search_id_room_type").val(); var search_id_hotel = $("#search_id_hotel").val(); var search_date_from = $("#search_date_from").val(); var search_date_to = $("#search_date_to").val(); $.ajax({ url: rooms_booking_url, type: 'POST', dataType: 'JSON', data: { ajax: true, action: 'getBookingStats', search_id_room_type: search_id_room_type, search_id_hotel: search_id_hotel, search_date_from: search_date_from, search_date_to: search_date_to, }, success: function(result) { if (result.success) { $(".htl_room_data_cont").html(result.data.stats_panel); } } }); } var allotmentTypes = { auto: ALLOTMENT_AUTO, manual: ALLOTMENT_MANUAL, }; initBookingList(); function initBookingList() { $('.avai_comment, .par_comment').hide(); $('.avai_bk_type').on('change', function() { var id_room = $(this).attr('data-id-room'); var booking_type = $(this).val(); if (booking_type == allotmentTypes.auto) { $('#comment_'+id_room).hide().val(''); } else if (booking_type == allotmentTypes.manual) { $('#comment_'+id_room).show(); } }); $('.par_bk_type').on('change', function() { var id_room = $(this).attr('data-id-room'); var sub_key = $(this).attr('data-sub-key'); var booking_type = $(this).val(); if (booking_type == allotmentTypes.auto) { $('#comment_'+id_room+'_'+sub_key).hide().val(''); } else if (booking_type == allotmentTypes.manual) { $('#comment_'+id_room+'_'+sub_key).show(); } }); } function highlightDateBorder(elementVal, date) { if (elementVal) { var currentDate = date.getDate(); var currentMonth = date.getMonth()+1; if (currentMonth < 10) { currentMonth = '0' + currentMonth; } if (currentDate < 10) { currentDate = '0' + currentDate; } dmy = date.getFullYear() + "-" + currentMonth + "-" + currentDate; var date_format = elementVal.split("-"); var check_in_time = (date_format[2]) + '-' + (date_format[1]) + '-' + (date_format[0]); if (dmy == check_in_time) { return [true, "selectedCheckedDate", "Check-In date"]; } else { return [true, ""]; } } else { return [true, ""]; } } /*For swaping rooms in the modal*/ $("#realloc_allocated_rooms").on('click', function(e) { $(".error_text").text(''); if ($('#realloc_avail_rooms').val() == 0) { $("#realloc_sel_rm_err_p").text(slct_rm_err); return false; } }); $("#swap_allocated_rooms").on('click', function(e) { $(".error_text").text(''); if ($('#swap_avail_rooms').val() == 0) { $("#swap_sel_rm_err_p").text(slct_rm_err); return false; } }); $('#mySwappigModal').on('hidden.bs.modal', function(e) { $(".modal_date_from").val(''); $(".modal_date_to").val(''); $(".modal_id_room").val(''); $(".modal_curr_room_num").val(''); $(".cust_name").text(''); $(".cust_email").text(''); $(".swp_rm_opts").remove(); $(".realloc_rm_opts").remove(); }); $('#mySwappigModal').on('shown.bs.modal', function(e) { $(".modal_date_from").val(e.relatedTarget.dataset.date_from); $(".modal_date_to").val(e.relatedTarget.dataset.date_to); $(".modal_id_room").val(e.relatedTarget.dataset.id_room); $(".modal_curr_room_num").val(e.relatedTarget.dataset.room_num); $(".cust_name").text(e.relatedTarget.dataset.cust_name); $(".cust_email").text(e.relatedTarget.dataset.cust_email); html = ''; if (e.relatedTarget.dataset.avail_rm_realloc) { var json_arr_rm_swp = JSON.parse(e.relatedTarget.dataset.avail_rm_swap); $.each(json_arr_rm_swp, function(key, val) { html += ''; }); } if (html != '') { $("#swap_avail_rooms").append(html); } html = ''; if (e.relatedTarget.dataset.avail_rm_realloc) { var json_arr_rm_realloc = JSON.parse(e.relatedTarget.dataset.avail_rm_realloc); $.each(json_arr_rm_realloc, function(key, val) { html += ''; }); } if (html != '') { $("#realloc_avail_rooms").append(html); } }); });