//middle edit $(function() { var role = $('#role').val(); var second_display_lookup = $("#display_type").val(); type = window.location.href.indexOf("quick_service") || window.location.href.indexOf("food_court"); modify_order = window.location.href.indexOf("modify_order"); //click menu sidebar menu category $(".product").on("click", function(){ var url = $(this).attr('data-ref'); show_product_list(url); }); //show menu item list when click menu category function show_product_list(url_item){ var menu_list = $('.menu_items_list'); menu_list.empty(); if (type != -1 && modify_order != -1) { url_item = '../../../../../'+url_item; } if(modify_order == -1 && type != -1){ url_item = '../../../../'+url_item; } if (type ==-1 && modify_order == -1){ url_item = url_item } //Start Ajax $.ajax({ type: "GET", url: url_item, data: {}, dataType: "json", success: function(data) { var menu_items_list = $('.menu_items_list'); menu_items_list.empty(); product = data; for(var field in product) { if (product[field].unit_price > 0) { qty = 1; options = []; item_attributes = []; if (product[field].image_path.url) { if (type != -1 && modify_order != -1) { image_path = '../../'+product[field].image_path.url; } if(modify_order == -1 && type != -1){ image_path = '../../../../'+product[field].image_path.url; } if (type ==-1 && modify_order == -1){ image_path = product[field].image_path.url; } row = '
' +'
' +'
' +'
'+ product[field].name +'
' +'
' +"
" +'
' +'' +'
'; } else { row = '
' +'
' +'
' +"
" +'
'+ product[field].name +'
' +'
' +'
' +"
" +'
' +'' +'
'; } $('.menu_items_list').append(row); } } } }); //end Ajax } //end show list function //click menu sidebar menu category $(document).on('click', '.menu_category', function(e){ e.preventDefault(); $('.sub_category_list').addClass("hidden"); var menu_id = $(this).attr("data-id"); var url = "get_menu_category/"+menu_id; show_menu_item_list(url,menu_id); var sub_id = $(this).attr("data-sub-id"); if (sub_id == "true") { var sub_url = "get_menu_sub_category/"+menu_id; sub_category = $(this).siblings('.sub_category_list'); show_sub_category_list(sub_url,sub_category,menu_id); } }); //End menu category Click //click menu sidebar menu category $(document).on('click', '.menu_sub_category', function(event){ // event.preventDefault(); // $(".menu_sub_category").on("click", function(){ $('.sub_category_list').addClass("hidden"); var menu_id = $(this).attr("data-id"); var url = "get_menu_category/"+menu_id; show_menu_item_list(url,menu_id); }); //End menu category Click //show menu item list when click menu category function show_menu_item_list(url_item,menu_id){ var menu_list = $('.menu_items_list'); menu_list.empty(); menus = JSON.parse(localStorage.getItem("menus")); if (menus != null) { for(var i in menus) { var categories = menus[i]["categories"]; for(var ii in categories) { if (categories[ii]["id"] == menu_id) { var menu_items = categories[ii]["items"]; show_menu_list(menu_items); } } } }else{ type = window.location.href.indexOf("quick_service") || window.location.href.indexOf("food_court"); modify_order = window.location.href.indexOf("modify_order"); if (type != -1 && modify_order != -1) { url_item = '../../../addorders/'+url_item; }if(modify_order == -1 && type != -1){ url_item = 'addorders/'+url_item; } if (type ==-1 && modify_order == -1){ url_item = url_item; } //Start Ajax $.ajax({ type: "GET", url: url_item, data: {}, dataType: "json", success: function(data) { var menu_items_list = $('.menu_items_list'); menu_items_list.empty(); menu_items = data.menu_items; show_menu_list(menu_items); } }); //end Ajax } } //end show list function //click item row for item set $(document).on('click', '.set_item_box', function(event){ $(".instance-list").empty(); $(".options-list").empty(); $(".selected-set-list").empty(); $('.set_change_qty').val(1); change_qty_plus_minus("set_count","set_plus","set_minus"); data = $(this).parent().children().children('.add_icon'); // data = $(this).parent().siblings('.add_icon'); //instances = $(this).data('instance'); item_sets = $(this).data('item-sets'); instances = $(this).data('instances'); item_options = $(this).data('options'); for(var field in item_sets) { $('.set_order').attr('data-min-qty',item_sets[field]["min_selectable_qty"]); value = item_sets[field]["instances"]; $(value).each(function(i){ menus = JSON.parse(localStorage.getItem("menus")); if (menus != null) { for(var j in menus) { var categories = menus[j]["categories"]; for(var ii in categories) { var items = categories[ii]["items"]; for(var iii in items) { var result = items[iii]["instances"]; for(var v in result) { if (value[i]["id"] == result[v]["id"]) { if (result[v].out_of_stock) { price_tag = 'out of stock' pointer_event = 'none' opacity = '0.5' } else { price_tag = ''+result[v]["price"]+'' pointer_event = 'auto' opacity = '' } row = '
' +"
" +'
' +''+result[v]["name"]+'' +'
' +'
' +'' +' ' +'
' +'' +'
' +'
' $(".instance-list").append(row); } } } } } }else{ type = window.location.href.indexOf("quick_service") || window.location.href.indexOf("food_court"); modify_order = window.location.href.indexOf("modify_order"); if (type != -1 && modify_order != -1) { url = '../../../addorders/get_item_instance/'+value[i]["id"]; } if(modify_order == -1 && type != -1){ url = 'addorders/get_item_instance/'+value[i]["id"] ; } if (type ==-1 && modify_order == -1){ url = '../addorders/get_item_instance/'+value[i]["id"]; } $.ajax({ type: "GET", url: url, // data: {id:value[i]}, success:function(result){ row = '
' +"
" +'
' +''+result["name"]+'' +'
' +'
' +'' +' ' +'
' +'' +'
' +'
' $(".instance-list").append(row); } }); } }); } for(var j in item_options) { value = item_options[j]["values"]; type = item_options[j]["type"]; row = "

"+type+"

" $(value).each(function(i){ row +=""; }); $(".options-list").append(row); } $('.set-item').attr('data-code',instances[0]['code']); $('.set-item').attr('data-name',instances[0]['name']); $('.set-item').attr('data-price',instances[0]['price']); $('.set-item').attr('data-options',''); $('.set-item').attr('data-parent',true); $('#set_change_qty').val(1); $('#set_item_instances').text(instances); $('#set_name').text($(this).attr('data-name')); $('#set_item_code').text($(this).attr('data-item-code')); $('#set_total_price').text($(this).attr('data-price')); // $('#set_total_price').text(0); $('#set_unit_price').text($(this).attr('data-price')); // $('#set_unit_price').text(0); }); // click instance for add item set $(document).on('click', '.instance_box', function(event){ $(".options-list").empty(); rowCount = $('.selected-instance'); setCount = $('.selected-set'); item_options = $(this).data('option'); min_qty = $(this).data('min-qty'); max_qty = $(this).data('max-qty'); code = $(this).data('code'); if (rowCount.length+1 <= max_qty) { for(var field in item_options) { value = item_options[field]["values"]; type = item_options[field]["type"]; row = "

"+type+"

" $(value).each(function(i){ row +=""; }); $(".options-list").append(row); } } // if($(this).hasClass('selected-instance') == true){ // sub_total = $('#set_total_price').text(); // name = $(this).data('name'); // price = $(this).data('price'); // // qty = $('#set_change_qty').val(); // qty = document.getElementById("set_count").value; // total = qty*price; // var total_price = +sub_total - +total; // $(this).removeClass('selected-instance'); // $(".options-list").empty(); // $(this).removeAttr('data-options'); // $('#instance_option').text('') // }else { if (setCount.length+1 <= max_qty) { sub_total = $('#set_total_price').text(); name = $(this).data('name'); price = $(this).data('price'); options = $(this).attr('data-options','[]'); // qty = $('#set_change_qty').val(); qty = document.getElementById("set_count").value; total = qty*price; var total_price = +sub_total + +total; $(this).addClass('selected-instance'); set = "
" +'
' +' ' +''+$(this).data('name')+'' +'
' +'
' +' ' +'
' // +'' +'
' $(".selected-set-list").append(set); }else{ swal("Alert !", 'Maximum Select is ' + max_qty + " items", "warning"); } // } $('#set_unit_price').text(price); $('#set_total_price').text(total_price); }); //End selecct attribute buttom // click add order $(document).on('click', '#remove_set', function(event){ code = $(this).parent().parent('.selected-set').attr('data-code'); instance = $(".selected-instance"); $(instance).each(function(i){ if ($(instance[i]).attr('data-code')==code){ $(instance[i]).removeClass("selected-instance") } }); $(this).parent().parent('.selected-set').remove(); }); // click add order $(document).on('click', '.set_order', function(event){ total_price = $('#set_total_price').text(); qty = parseInt($('#set_count').val()); item_code = $('#set_item_code').text(); item_name = $('#set_name').text(); min_qty = $(this).data('min-qty'); default_instance = $('.set-item'); var items = $('.selected-set'); if (items.length >= min_qty) { if ($('#server_mode').val() != "cloud" && second_display_lookup == 2) { item = get_set_item(items); customer_display_view(item,"set_add"); } var option = [] attribute_arr = [] var rowCount = $('.summary-items tbody tr').length+1; code = $('.set-item').attr('data-code'); name = $('.set-item').attr('data-name'); price = $('.set-item').attr('data-price'); option_name = ($('.set-item').attr('data-options') === 'undefined') ? ' ' :$('.set-item').attr('data-options'); option = ($('.set-item').attr('data-options') === '') ? '[]' :$('.set-item').attr('data-options'); parent = $('.set-item').attr('data-parent'); total = qty * price ; row ="" +''+rowCount+'' +'' + item_name+ ' ' + name +' ' + option_name +'' +'' + qty + '' +'' + parseFloat(total).toFixed(2) +'' +''; $(".summary-items tbody").append(row); var rowCount = $('.summary-items tbody tr').length+1; var set_option = [] $(items).each(function(i){ code = $(items[i]).attr('data-code'); name = $(items[i]).attr('data-name'); price = $(items[i]).attr('data-price'); set_option_name = ($(items[i]).attr('data-options') === 'undefined') ? '' :$(items[i]).attr('data-options'); set_option = ($(items[i]).attr('data-options') === 'undefined') ? '[]' :$(items[i]).attr('data-options'); sub_item = $(items[i]).attr('data-sub-item'); total = qty * price ; row ="" +''+rowCount+'' +'' + item_name+ ' ' + name +' ' + set_option_name +'' +'' + qty + '' +'' + parseFloat(total).toFixed(2) +'' +''; $(".summary-items tbody").append(row); rowCount = rowCount + 1; }); calculate_sub_total(); $(".sx_item_set_detailModal").css({ 'display': "none" }); }else{ $(".sx_item_set_detailModal").css({ 'display': "block" }); swal("Alert !", 'Please Select Minimum ' + min_qty + " items", "warning"); // $.alert({ // title: 'Alert!', // content: 'Please Select Minimum ' + min_qty + " items", // type: 'red', // typeAnimated: true, // btnClass: 'btn-danger', // }); } }); //End add order Click //click item row for add order $(document).on('click', '.menu_item_box', function(event){ attributes = $(this).data('id'); selected_item = $(this).data('item'); instances = $(this).data('instance'); item_options = $(this).data('option'); data = $(this).parent().siblings('.add_icon'); show_attribute_selection_modal(attributes, selected_item, instances, item_options, data) }); // click plus icon for add $(document).on('click', '.add_icon', function(event){ if (window.location.pathname.includes('out_of_stock') == false) { if($(this).hasClass('product_item')) { $('.sx_item_detailModal').modal('hide'); var item_data = $(this); code = $(this).data('instance-code'); if ($('#server_mode').val() != "cloud" && second_display_lookup == 2) { item = get_item(item_data,"add_icon"); customer_display_view(item,"add"); } show_item_detail(item_data,"add_icon"); calculate_sub_total(); autoScrollToItem(code) return } if ($(this).data('instances').length == 1) { $('.sx_item_detailModal').modal('hide'); if ($(this).data('instances')[0].out_of_stock == false ) { var item_data = $(this); code = $(this).data('instance-code'); if ($('#server_mode').val() != "cloud" && second_display_lookup == 2) { item = get_item(item_data,"add_icon"); customer_display_view(item,"add"); } show_item_detail(item_data,"add_icon"); calculate_sub_total(); autoScrollToItem(code) } return } else { count = 0 for (var i in $(this).data('instances')) { if(!$(this).data('instances')[i].out_of_stock) { count += 1; } } if (count === 1) { $('.sx_item_detailModal').modal('hide'); var item_data = $(this); code = $(this).data('instance-code'); if ($('#server_mode').val() != "cloud" && second_display_lookup == 2) { item = get_item(item_data,"add_icon"); customer_display_view(item,"add"); } show_item_detail(item_data,"add_icon"); calculate_sub_total(); autoScrollToItem(code) return } attributes = $(this).data('id'); selected_item = $(this).data('attributes'); instances = $(this).data('instances'); item_options = $(this).data('options'); data = $(this) show_attribute_selection_modal(attributes, selected_item, instances, item_options, data) } } }); //End Add Icon Click function show_attribute_selection_modal(attributes, selected_item, instances, item_options, data) { $('.attributes-list').empty(); $('.options-list').empty(); $('#modal_box_img').empty(); $('.attr-alert').addClass('hide'); $('.add_to_order').removeAttr('data-instance-code'); $('.add_to_order').removeAttr('data-instance'); $('.add_to_order').removeAttr('data-price'); $('.add_to_order').removeAttr('data-promotion-price'); $('.add_to_order').removeAttr('data-item-code'); $('.add_to_order').removeAttr('data-qty'); $('.add_to_order').removeAttr('data-name'); $('.add_to_order').removeAttr('data-attributes'); $('.add_to_order').removeAttr('data-options'); $('.add_to_order').removeAttr('disabled'); $('#minus').removeAttr('disabled'); $('#plus').removeAttr('disabled'); $('#count').removeAttr('readonly'); $('#wanring_text').text(''); $('#total_price').text(0.0); $('#count').val(1); change_qty_plus_minus("count","plus","minus"); if (data.attr('data-image')) { if (modify_order) { image = ""; }else{ image = ""; } }else{ if (modify_order) { image = ""; }else{ image = ""; } } $('#modal_box_img').append(image); instance_attributes = [] oos_values = '' total_price = 0 for(var field in instances) { if (instances[field].out_of_stock) { oos_values = instances[field].values; $('#add_to_order').attr('disabled', true); $('#minus').attr('disabled', true); $('#plus').attr('disabled', true); $('#count').attr('readonly', true) } else { $('.add_to_order').removeAttr('disabled'); $('#minus').removeAttr('disabled'); $('#plus').removeAttr('disabled'); $('#count').removeAttr('readonly'); } value = instances[field].values; $(value).each(function(i){ options = value[i]; instance_attributes.push(options); }); } selected_item = selected_item.sort() if(oos_values) { oos_values = oos_values.sort() } if (attributes.length === 0) { // for product_box total_price = data.attr('data-price'); } for(var field in attributes) { value = attributes[field]["values"]; type = attributes[field]["type"]; row = "
"+attributes[field]["type"]+"
"; $(value).each(function(i){ disabled = "false"; status =""; if(parseInt(jQuery.inArray(value[i], selected_item)) !== -1){ if(JSON.stringify(oos_values) != JSON.stringify(selected_item)) { status = "selected-attribute"; total_price = data.attr('data-price') } } if(parseInt(jQuery.inArray(value[i], instance_attributes)) == -1){ // disabled = "disabled"; } row +=""; }); $(".attributes-list").append(row); } for(var field in item_options) { value = item_options[field]["values"]; type = item_options[field]["type"]; row = "

"+type+"

" $(value).each(function(i){ row +=""; }); $(".options-list").append(row); } // $('#count').val(1); $('#item_instances').text(instances); $('#title_name').text(data.attr('data-name')); $('#item_code').text(data.attr('data-item-code')); $('#instance_name').text(data.attr('data-instance')); $('#instance_code').text(data.attr('data-instance-code')); $('#promotion_price').text(data.attr('data-promotion-price')); $('#total_price').text(total_price); $('#unit_price').text(data.attr('data-price')); } // click select option icon for add $(document).on('click', '.attribute_btn', function(event){ $('.attributes-list button').removeClass('bg-gray box-shadow-none'); // $('.change_qty').val(1); value = $(this).data('value'); type = $(this).data('type'); instances = $(this).data('instances'); item_attributes = $(this).data('attributes'); attributes = $(".attribute_btn"); $(attributes).each(function(i){ if ($(attributes[i]).attr('data-type')==type){ $('.'+type).removeClass("selected-attribute"); } }); $(this).addClass('selected-attribute'); var selected_attr = get_selected_attributes('selected-attribute'); qty = $('.change_qty').val(); if($('#total_price').text() > 0) { $('#add_to_order').removeAttr('disabled') $('#total_price').text(0.0) } var equal = false; for(var field in instances) { item_attr = instances[field].values; item_attr = item_attr.sort() selected_attr = selected_attr.sort() if(JSON.stringify(item_attr) == JSON.stringify(selected_attr)){ if (instances[field].out_of_stock) { total_price = instances[field].price; $('#total_price').text(total_price); $('#wanring_text').text('') $('#wanring_text').append('Out of stock') $('#add_to_order').attr('disabled', true) $('#minus').attr('disabled', true); $('#plus').attr('disabled', true); $('#count').attr('readonly', true) return } else { equal = true unit_price = instances[field].price ; total_price = qty * unit_price ; $('#instance_name').text(instances[field].name); $('#instance_code').text(instances[field].code); $('#promotion_price').text(instances[field].promotion_price); $('#total_price').text(total_price); $('#unit_price').text(unit_price); } } } if (equal) { $('#wanring_text').text(''); $('#add_to_order').removeAttr('disabled'); $('#minus').removeAttr('disabled'); $('#plus').removeAttr('disabled'); $('#count').removeAttr('readonly') } else { $('#wanring_text').text('') $('#wanring_text').append('Not available') $('#add_to_order').attr('disabled', true) $('#minus').attr('disabled', true); $('#plus').attr('disabled', true); $('#count').attr('readonly', true) } }); //End selecct attribute buttom // click select option icon for add $(document).on('click', '.option_btn', function(event){ active =$(this).hasClass('selected-option'); value = $(this).data('value'); type = $(this).data('type'); group = $(this).data('group'); options = $(".option_btn"); $(options).each(function(i){ if ($(options[i]).attr('data-type')==type){ $('.'+type).removeClass("selected-option"); } }); if (active) { $(this).removeClass('selected-option'); }else{ $(this).addClass('selected-option'); } if(group == "set_menu"){ option_arr = get_selected_attributes('selected-option'); $(".selected-set:last").attr('data-options',JSON.stringify(option_arr)); $(".selected-set:last").children().children('#instance_option').text(option_arr); // instance = $(".selected-instance"); // $(instance).each(function(i){ // if ($(instance[i]).attr('data-code')==code){ // option_arr = get_selected_attributes('selected-option'); // $(instance[i]).attr('data-options',JSON.stringify(option_arr)); // $(instance[i]).children().children('#instance_option').text(option_arr); // } // }); } if(group == "set_menu_default"){ option_arr = get_selected_attributes('selected-option'); $('.set-item').attr('data-options',JSON.stringify(option_arr)); $('.set_default_option').text(option_arr); } }); //End selecct attribute buttom // click select option icon for add $(document).on('click', '.check_option_btn', function(event){ active =$(this).hasClass('selected-option'); value = $(this).data('value'); type = $(this).data('type'); group = $(this).data('group'); if (active) { $(this).removeClass('selected-option'); }else{ $(this).addClass('selected-option'); } if(group == "set_menu"){ option_arr = get_selected_attributes('selected-option'); $(".selected-set:last").attr('data-options',JSON.stringify(option_arr)); $(".selected-set:last").children().children('#instance_option').text(option_arr); // instance = $(".selected-instance"); // $(instance).each(function(i){ // if ($(instance[i]).attr('data-code')==code){ // option_arr = get_selected_attributes('selected-option'); // $(instance[i]).attr('data-options',JSON.stringify(option_arr)); // $(instance[i]).children().children('#instance_option').text(option_arr); // } // }); } if(group == "set_menu_default"){ option_arr = get_selected_attributes('selected-option'); $('.set-item').attr('data-options',JSON.stringify(option_arr)); $('.set_default_option').text(option_arr); } }); //End selecct attribute buttom // click add order $(document).on('click', '.add_to_order', function(event){ total_price = $('#total_price').text(); qty = parseInt($('#count').val()); var item_row = $('.selected-attribute'); attribute_arr = get_selected_attributes('selected-attribute'); option_arr = get_selected_attributes('selected-option'); if (item_row.length>0) { var instances = jQuery.parseJSON(item_row.attr('data-instances')); for(var field in instances) { attrbu = JSON.stringify(attribute_arr); instan = JSON.stringify(instances[field].values); var newarr = new Set(instan); result = false; for(var i in attrbu) { if (newarr.has(attrbu[i])) { result = true; break; } } attribute_arr = attribute_arr.sort() instance_arr = instances[field].values.sort() if (JSON.stringify(attribute_arr) === JSON.stringify(instance_arr)) { $('.add_to_order').attr('data-instance-code',instances[field].code); $('.add_to_order').attr('data-instance',instances[field].name); $('.add_to_order').attr('data-price',instances[field].price); $('.add_to_order').attr('data-promotion-price',instances[field].promotion_price); } } }else{ $('.add_to_order').attr('data-instance-code',$('#instance_code').text()); $('.add_to_order').attr('data-instance',$('#instance_name').text()); $('.add_to_order').attr('data-price',$('#unit_price').text()); $('.add_to_order').attr('data-promotion-price',$('#promotion_price').text()); } $('.add_to_order').attr('data-item-code',$('#item_code').text()); $('.add_to_order').attr('data-qty',qty); $('.add_to_order').attr('data-name',$('#title_name').text()); $('.add_to_order').attr('data-attributes',JSON.stringify(attribute_arr)); $('.add_to_order').attr('data-options',JSON.stringify(option_arr)); $('.add_to_order').attr('data-opt',JSON.stringify(option_arr)); var item_data = $(this); if ($('#server_mode').val() != "cloud" && second_display_lookup == 2) { item = get_item(item_data,"add_to_order"); customer_display_view(item,"add"); } console.log(item_data); show_item_detail(item_data,"add_to_order"); calculate_sub_total(); code = $('#instance_code').text() autoScrollToItem(code); }); //End add order Click // scroll to element function autoScrollToItem(code) { element = $('.summary-items').find(`[data-instance-code='${code}']`).last(); item_qty = element.find('#item_qty').text() parent = element.parents('.card-text') if (item_qty == 1) { $(parent).animate({ scrollTop: $('.summary-items tbody tr:last').position().top - $('.summary-items tbody tr:first').position().top }) } $('.summary-items tbody tr').css({ 'background-color': '', 'color': '' }) element.css({ 'background-color': '#2091F3', 'color': '#fff' }) if (isNotInView(element, parent)) { element.css({'background-color': '#2091F3'}); scrollToELement(element); } } $(document.body).on('click', function() { $('.summary-items tbody tr').css({ 'background-color': '', 'color': '' }) }) function isNotInView(elem, parent){ // for scroll up | for scroll down result = (($(elem).offset().top - 100) < $(elem).height() || $(parent).height() < (elem.position().top + elem.outerHeight(true))); return result // reutn boolean } function scrollToELement(elem) { elem[0].scrollIntoView(); } function show_item_detail(data,click_type){ testqty = parseInt($('.item_box').children('data_qty').text()); qty = parseInt(data.attr('data-qty')); append = 0; price = data.attr('data-price'); instance_name = data.attr('data-instance'); if (instance_name == "undefined"){ instance = ''; }else{ instance = "("+data.attr('data-instance')+")"; } d_option = data.attr('data-opt'); if (click_type != "add_icon"){ option_name = "-"+data.attr('data-options'); data_option = data.attr('data-options') ; }else{ option_name = ' '; data_option = '[]'; } var rowCount = $('.summary-items tbody tr').length+1; var item_row = $('.summary-items tbody tr'); $(item_row).each(function(i){ item_code = $(item_row[i]).attr('data-code'); instance_code = $(item_row[i]).attr('data-instance-code'); r_option = $(item_row[i]).attr('data-opt'); if (item_code == data.attr('data-item-code') && instance_code == data.attr('data-instance-code')&&r_option == d_option) { if (qty > 1) { qty = parseInt($(item_row[i]).children('#item_qty').text()) + qty; }else{ qty = parseInt($(item_row[i]).children('#item_qty').text()) + 1; } $(item_row[i]).children('#item_qty').text(qty); parseFloat($(item_row[i]).children('#item_price').text(parseFloat(price*qty).toFixed(2))); append =1; }else{ if (qty > 1) { qty = qty; }else{ qty = 1; } } }); if (append===0) { row ="" +''+rowCount+'' +'' + data.attr('data-name')+ ' ' + instance +''+option_name+'' +'' + qty + '' +'' + parseFloat(price * qty).toFixed(2) +'' +''; $(".summary-items tbody").append(row); } } // Create Order $("#create_order").on('click', function(e){ $(this).prop("disabled", true); $("#create_pay_order").prop("disabled", true); e.preventDefault(); name_list = '' count = 0; $('.summary-items').find(`tr[data-oos='true']`).each(function() { count += 1; name = $(this).data('name') name += $(this).data('instance').replace(/['"]+/g, '') if ((count + 1) == $('.summary-items').find(`tr[data-oos='true']`).length) { name += ' and ' } else if(count != $('.summary-items').find(`tr[data-oos='true']`).length){ name += ', ' } name_list += name }); wanring_text = name_list + 'are out of stock.' if (name_list) { swal({ title: "Out Of Stock Warning!", text: wanring_text, type: "warning", showCancelButton: true, confirmButtonColor: "#DD6B55", confirmButtonText: "Confrim", closeOnConfirm: false }, function (isConfirm) { if (isConfirm) { create_order($(this)) }else{ $("#create_order").prop("disabled", false); $("#create_pay_order").prop("disabled", false); } }); } else { create_order($(this)) } }); function create_order(data) { $("#oqs_loading_wrapper").show(); var cashier_type = $("#link_type").val(); localStorage.setItem('cashier_type',cashier_type); quick_service = window.location.href.indexOf("quick_service"); localStorage.setItem('quick_service',quick_service); food_court = window.location.href.indexOf("food_court"); localStorage.setItem('food_court',food_court); if (quick_service != -1 || food_court != -1) { type = cashier_type; var table_type = $('#table_type').text(); var table_id = $('#table_id').val(); var customer_id = $('#customer_id').val(); var booking_id = $('#booking_id').text(); var ajax_url = 'addorders/create'; }else{ type = 'cashier'; var table_type = $('#table_type').text(); var table_id = $('#table_id').text(); var customer_id = $('#customer_id').text(); var booking_id = $('#booking_id').text(); var ajax_url = '../addorders/create'; } var order_items = JSON.stringify(get_order_item_rows()); if (booking_id.length > 0) { var params = {'order_source': type, 'order_type': "dine_in", 'customer_id': customer_id, 'guest_info': "",'booking_id':booking_id, 'table_id': table_id, 'order_items': order_items,'create_type' : "create_only" }; }else{ var params = {'order_source': type, 'order_type': "dine_in", 'customer_id': customer_id, 'guest_info': "", 'table_id': table_id, 'order_items': order_items,'create_type' : "create_only" }; } $.ajax({ type: "POST", url: ajax_url, data: params, dataType: "json", success: function(result){ booking_id = result.booking_id; if (type == "quick_service") { window.location.href = "/origami/quick_service"; } else if (type=="food_court") { window.location.href = "/foodcourt/app_orders?pending_id=" + booking_id; } else { if(table_type == "Table"){ window.location.href = "/origami/table/" + table_id; } else { window.location.href = "/origami/room/" + table_id; } } if ($('#server_mode').val() != "cloud" && second_display_lookup == 2){ customer_display_view(null,"reload"); } }, error: function(XMLHttpRequest, textStatus, errorThrown) { $("#oqs_loading_wrapper").hide(); $("#create_order").prop("disabled", false); $("#create_pay_order").prop("disabled", false); swal("Error", "Status: " + textStatus, "error"); } }); } // Pay Discount for Payment // $("#create_pay_order").on('click', function(e){ // $(this).prop("disabled", true); // $("#create_order").prop("disabled", true); // $("#read_modal").attr('data-for', 'member'); // e.preventDefault(); // getCardNo(); // onScan.attachTo(document, { // onScan: function(sCode) { // setCardNo(sCode) // } // }); // }); $("#read_modal").on('shown.bs.modal', function(e) { // $(this).prop("disabled", true); // $("#create_pay_order").prop("disabled", true); // $("#create_order").prop("disabled", true); $("#read_modal").attr('data-for', 'member'); // e.preventDefault(); getCardNo(); onScan.attachTo(document, { onScan: function(sCode) { setCardNo(sCode) } }); }); $("#read_modal #close").on('click',function(){ if ($("#order-items-table tr").length > 1){ $("#create_pay_order").prop("disabled", false); $("#create_order").prop("disabled", false); } $("#read_modal").modal('hide'); }); $('#read_modal').on('hidden.bs.modal', function () { if ($("#order-items-table tr").length > 1) { $("#create_pay_order").prop("disabled", false); $("#create_order").prop("disabled", false); } }) //click item row for update qty $('.summary-items').on('click', '.item_box', function(){ $(this).attr('data-active',true); name = $(this).children('#item_name').text(); qty = $(this).children('#item_qty').text(); $('#modal-item-name').text(name); $(this).addClass('set-bg-color') }); //click remove buttom in modal box $('#sx_itemModal').on('click','#remove', function(){ $('.summary-items tr').filter(function(){ if ($(this).attr('data-active') == 'true'){ if ($('#server_mode').val() != "cloud" && second_display_lookup == 2) { var item_data = $(this); item = get_item(item_data,"remove_icon"); customer_display_view(item,"remove"); } $(this).remove(); } }); calculate_sub_total(); }); //click close $('#sx_itemModal').on('click','#close', function(){ $(".item_box").removeAttr("data-active"); }); $('#sx_item_set_detailModal').on('click','#close', function(){ $("#sx_item_set_detailModal").css({ 'display': "none" }); }); $('#read_modal').on('click','#close', function(){ $("#read_modal").css({ 'display': "none" }); }); //click save buttom after change qty $(document).on('click','#save', function(){ if ($('#modal-qty').val()>0) { summary_items_filter(); calculate_sub_total(); $('.set-bg-color').css({ 'background-color': '#2091F3', 'color': '#fff' }) $('.summary-items tbody tr').removeClass('set-bg-color'); }else{ swal("Opps", "Please enter number for qty ","warning"); } }); //calculate subtotal function calculate_sub_total(){ var total_price = 0; var total_qty = 0; var taxable_amount = 0; var exclusive_total =0; var inclusive_total =0; var inclusive_tax =$('#inclusive_tax').val(); var exclusive_tax =$('#exclusive_tax').val(); var item_row = $('.summary-items tbody tr'); $(item_row).each(function(i){ var unit_price = parseFloat($(item_row[i]).attr('data-price')); var qty = parseFloat($(item_row[i]).children('#item_qty').text()); total_qty += qty; total_price += qty*unit_price; }); if (inclusive_tax >0){ inclusive_total = total_price / inclusive_tax; total_price = total_price; } if (exclusive_tax >0){ exclusive_total = total_price * exclusive_tax; total_price = total_price + exclusive_total; } var fixed_total_price = parseFloat(total_price).toFixed(2); var fixed_taxable_amount = parseFloat(taxable_amount).toFixed(2); $('#total_tax').empty(); $('#total_tax').append(parseInt(exclusive_total) + parseInt(inclusive_total)); $('#sub_total').empty(); $('#sub_total').append(fixed_total_price); $('#total_qty').empty(); $('#total_qty').append(total_qty); if (item_row.length > 0) { $('.create').removeAttr("disabled", false); }else{ $('.create').attr("disabled", true); } } function summary_items_filter(){ $('.summary-items tr').filter(function(){ if ($(this).attr('data-active') == 'true'){ qty = $('#modal-qty').val(); $(this).attr('data-qty',qty); price = parseFloat($(this).attr('data-price')); total_price = parseFloat(price*qty).toFixed(2); $(this).find('#item_qty').text(qty); $(this).find('.item-cell-price').text(total_price); $(this).removeAttr('data-active'); if ($('#server_mode').val() != "cloud" && second_display_lookup == 2) { var item_data = $(this); item = get_item(item_data,"update_icon"); customer_display_view(item,"update_qty"); } } }); } // Get Selected Class function get_selected_attributes(selected_class) { var item_row = $('.'+selected_class); var attribute_arr = []; $(item_row).each(function(i){ value = $(item_row[i]).attr('data-value'); str = value; attribute_arr.push(str); }); return attribute_arr; } //click menu sidebar menu category $("#back").on("click", function(){ var table_id = $('#table_id').text(); var table_type = $('#table_type').text(); var cashier_type = $("#link_type").val(); type = window.location.href.includes("quick_service") || window.location.href.includes("food_court"); if (type == true) { var table_type = $('#table_id').find("option:selected").data('type'); var table_id = $('#table_id').val(); if(window.location.href.includes("modify_order")){ var link_url = window.location.href.split("/"); window.location.href = "/origami/"+cashier_type+"/pending_order/"+link_url[link_url.length - 1]; }else{ window.location.href = "/origami/dashboard"; } }else if(window.location.href.incluses("out_of_stock")){ window.location.href = '/settings/out_of_stock'; }else{ var table_type = $('#table_type').text(); var table_id = $('#table_id').text(); if(table_type == "Table"){ window.location.href = "/origami/table/" + table_id; }else { window.location.href = "/origami/room/" + table_id; } } }); // Get Selected Class function change_qty_plus_minus(id,plus,minus) { var count = parseInt($('#'+id).val()); $('#'+plus).on("click", function(){ count++; $('#'+id).val(count); if (id == "count") { price = $("#unit_price").text(); $("#total_price").text(count*price); }else{ var item_row = $('.selected-instance'); price = $("#set_unit_price").text(); set_total_price = $("#set_total_price").text(); if (item_row.length > 1) { total = 0 ; $(item_row).each(function(i){ total += count * $(item_row[i]).attr('data-price'); total_price = total; }); }else{ total_price = count*price; } $("#set_total_price").text(total_price); } }); $('#'+minus).on("click", function(){ // var count = parseInt($('#'+id).val()); // var countEl = document.getElementById(id); if (count > 1) { count--; $('#'+id).val(count); if (id=="count") { price = $("#unit_price").text(); $("#total_price").text(count*price); }else{ var item_row = $('.selected-instance'); price = $("#set_unit_price").text(); set_total_price = $("#set_total_price").text(); if (item_row.length > 1) { total = 0 ; $(item_row).each(function(i){ total += count * $(item_row[i]).attr('data-price'); total_price = total; }); }else{ total_price = count*price; } $("#set_total_price").text(total_price); } } }) } $(".keypress_qty").on('keyup change', function (){ // $('.keypress_qty').keyup(function(e){ id = $(this).attr('id'); value = $(this).val(); if ($.isNumeric(value)) { if (id=="count") { $('#count').attr('value',value); price = $("#unit_price").text(); $("#total_price").text(value*price); }else{ var item_row = $('.selected-instance'); price = $("#set_unit_price").text(); set_total_price = $("#set_total_price").text(); $(".set_change_qty").val(value); if (item_row.length > 1) { total = 0 ; $(item_row).each(function(i){ total += value * $(item_row[i]).attr('data-price'); total_price = total; }); }else{ total_price = value*price; } $("#set_total_price").text(total_price); } }else{ $('#'+id).val(1); swal("Opps","Please enter number for qty","warning"); } }); //click menu sidebar menu category $(document).on('click', '.sub_clickssss', function(event){ event.preventDefault(); var menu_id = $(this).attr("data-id"); var url = "get_menu_sub_category/"+menu_id; sub_category = $(this).find('.sub_category_list'); show_sub_category_list(url,sub_category,menu_id); }); //End menu category Click //show menu item list when click menu category function show_sub_category_list(url,sub_category,menu_id){ var sub_category_list = $('.sub_category_list'); sub_category_list.empty(); menus = JSON.parse(localStorage.getItem("menus")); if (menus != null) { for(var j in menus) { var categories = menus[j]["categories"]; for(var ii in categories) { if (menu_id == categories[ii]["parent_id"]) { $(sub_category).removeClass('hidden'); row = '' ; $(sub_category).append(row); } } } }else{ if (type != -1 && modify_order != -1) { var url = "../../../addorders/"+url; }if(modify_order== -1 && type != -1){ var url = 'addorders/'+url; } if (type ==-1 && modify_order == -1){ var url = url; } //Start Ajax $.ajax({ type: "GET", url: url, data: {}, dataType: "json", success: function(data) { var sub_category_list = $('.sub_category_list'); sub_category_list.empty(); data = data.sub_category; if (data.length > 0) { // if ((sub_category.hasClass('hidden'))) { $(sub_category).removeClass('hidden'); // }else{ // $(sub_category).addClass('hidden'); // } for(var i in data) { row = '' ; $(sub_category).append(row); //end is_sub_item false } } } }); //end Ajax } } /* Get Item rows */ function get_item(data,click_type){ var sale_items = []; var sale_item = {}; sale_item.qty = parseInt(data.attr('data-qty')); sale_item.name = data.attr('data-name'); sale_item.price = data.attr('data-price'); sale_item.item_code = data.attr('data-item-code') sale_item.instance_code = data.attr('data-instance-code') sale_item.attributes = data.attr('data-attributes') sale_item.options = data.attr('data-options') sale_item.opt = data.attr('data-opt') sale_item.click_type = click_type sale_item.instance = data.attr('data-instance') sale_items.push(sale_item); return sale_items; } /* Get Item rows */ function get_set_item(items){ var sale_items = []; var item = {}; item.code = $('.set-item').attr('data-code'); item.name = $('.set-item').attr('data-name'); item.item_name = $('#set_name').text(); item.qty = parseInt($('#set_count').val()); item.item_code = $('#set_item_code').text(); item.price = $('.set-item').attr('data-price'); item.option = $('.set-item').attr('data-options'); item.parent = $('.set-item').attr('data-parent'); sale_items.push(item); $(items).each(function(i){ var sale_item = {}; sale_item.code = $(items[i]).attr('data-code'); sale_item.name = $(items[i]).attr('data-name'); sale_item.item_name = $('#set_name').text(); sale_item.qty = parseInt($('#set_count').val()); sale_item.item_code = $('#set_item_code').text(); sale_item.price = $(items[i]).attr('data-price'); sale_item.option = $(items[i]).attr('data-options'); sale_item.sub_item = $(items[i]).attr('data-sub-item'); sale_items.push(sale_item); }); return sale_items; } function customer_display_view(data,status) { if (type != -1 && modify_order != -1) { url = '../../../../origami/customer_view'; } if(modify_order == -1 && type != -1){ url = '../../origami/customer_view'; } if (type ==-1 && modify_order == -1){ url = '../../origami/customer_view'; } $.ajax({ type: "POST", url: url, data: {"data":data,"status":status,"type":$("#link_type").val()}, dataType: "json", success:function(result){ } }); } /* $("input").keypress(function(){ $("span").text(i += 1); });*/ // $("#set_change_qty").change(function(){ // qty = $(this).val(); // price = $("#set_total_price").text(); // $("#set_total_price").text(qty*price); // }); // $(".change_qty").change(function(){ // qty = $(this).val(); // price = $("#unit_price").text(); // $("#total_price").text(qty*price); // }); function truncateString(str, num) { if (str.length <= num) { return str } else { return str.slice(0, num) + '...' } } function show_menu_list(menu_items) { var menu_list = $('.menu_items_list'); menu_list.empty(); for(var field in menu_items) { if (menu_items[field].is_sub_item == false) { instances = menu_items[field].instances ; if (!instances.length > 0) { swal("Hello Please Check!","Does not have instance item in this menu items ("+ menu_items[field].name+")","warning"); } if (instances.length > 0) { qty = 1; options = []; price = 0; if (JSON.stringify(menu_items[field].item_sets)!='[]') { fa_plus = ''; add = ''; menu_item_box = 'set_add_icon'; data_target = 'sx_item_set_detailModal'; data_modal = 'modal' add_icon = "set_item_box" code = '' menu_items[field].instances.forEach(ins => function (){ if (ins.out_of_stock == false) { code = ins.code; } }) name = menu_items[field].name; instances = menu_items[field].instances; $(instances).each(function(i){ if (instances[i].is_default == true) { price = parseFloat(instances[i].price).toFixed(2); out_of_stock = instances[i].out_of_stock; }else{ price = 0; } }); is_available = menu_items[field].is_available ; is_on_promotion = 0; item_attributes = menu_items[field].attributes; promotion_price = menu_items[field].promotion_price; }else{ fa_plus = 'material-icons'; add = 'view_list' menu_item_box = 'menu_item_box'; data_target = 'sx_item_detailModal'; data_modal = '' add_icon = "add_icon" menu_instances = []; code = ''; name = ''; price = ''; is_available = ''; is_on_promotion = ''; item_attributes = ''; promotion_price = ''; out_of_stock = ''; menu_insta = ''; $(instances).each(function(i){ if (!instances[i].out_of_stock) { //instances[i].is_default === true && code = instances[i].code; name = instances[i].name; price = parseFloat(instances[i].price).toFixed(2); is_available = instances[i].is_available ; is_on_promotion = instances[i].is_on_promotion; item_attributes = instances[i].values; promotion_price = instances[i].promotion_price; out_of_stock = instances[i].out_of_stock; menu_insta = [code,name,item_attributes]; menu_instances.push(menu_insta); } }); } pointer_event = 'auto' opacity = '' status = '' count = 0; $(instances).each(function(i) { if (instances[i].out_of_stock == true) { count += 1 if (instances.length == count) { // all attributes out of stock pointer_event = 'none' status = 'out of stock' opacity = '0.5' } } }) if (status) { price_tag = ''+status+'' } else { price_tag =''+price+'' } image_path = ''; image_exist = false; if (menu_items[field].image) { if (modify_order) { image_path = "../../"+menu_items[field].image; }else{ image_path = menu_items[field].image; } $.ajax({ url: image_path, async: false, success: function(data) { image_exist = true; } }); } if(image_exist == true) { oos_item = '
' name = menu_items[field].name short_name = truncateString(name, 30) row = '
' + oos_item +'
' +'
'+ short_name +'
' +'
' +"
" + '' +'
' +'' +'
'; ; }else{ oos_item = '
' name = menu_items[field].name short_name = truncateString(name, 50) row = '
' + oos_item +'
" +'
'+ short_name +'
' +'
' +"
" +'
' +'' +'
' +'
'; } $('.menu_items_list').append(row); } //end instances in menu-items alest 1 instance } //end is_sub_item false } } $("#add_to_existing_order").on('click', function(e){ $(this).attr('disabled', 'disabled'); e.preventDefault(); type = $("#link_type").val(); $("#oqs_loading_wrapper").show(); var ajax_url = 'addorders/add_to_existing_order'; var table_type = $('#table_type').text(); var table_id = $('#table_id').text(); var customer_id = $('#customer_id').text(); var booking_id = $('#booking_id').text(); var sale_id = $('#sale_id').text(); var order_items = JSON.stringify(get_order_item_rows()); var params = {'order_source': type, 'order_type': "dine_in", 'customer_id': customer_id, 'guest_info': "",'booking_id':booking_id, 'table_id': table_id, 'order_items': order_items,'sale_id': sale_id,'create_type': "create_pay" }; $.ajax({ type: "POST", url: ajax_url, data: params, dataType: "json", success:function(result){ if (result.status) { window.location.href = "/foodcourt/table/sale/" + sale_id + "/food_court/edit"; } } }); }); }); /* Get Item rows */ function get_order_item_rows(){ var order_items = []; var item_row = $('.summary-items tbody tr'); $(item_row).each(function(i){ var order_item = {}; order_item.order_item_id = $(item_row[i]).attr('data-row'); order_item.item_instance_code = $(item_row[i]).attr('data-instance-code'); order_item.quantity = $(item_row[i]).children('#item_qty').text(); //parent id if ($(item_row[i]).attr('data-parent')=="true") { parent_id = $(item_row[i]).attr('data-row'); } if ($(item_row[i]).attr('data-sub-item')=="true") { order_item.parent_order_item_id = parent_id } //end parent id order_item.options = $(item_row[i]).attr('data-options'); order_items.push(order_item); }); return order_items; }