$(function(){ //click menu sidebar menu category $(".menu_category").on("click", function(){ var menu_id = $(this).find(".menu-id").text(); var url = $(this).attr('data-ref'); show_menu_item_list(url); }); //End menu category Click $(".change_qty").change(function(){ qty = $(this).val(); price = $("#unit_price").text(); $("#total_price").text(qty*price); }); //show menu item list when click menu category function show_menu_item_list(url_item){ var menu_list = $('.menu_items_list'); menu_list.empty(); //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; for(var field in menu_items) { instances = menu_items[field].instances ; $(instances).each(function(i){ if (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; code = instances[i].code; } }); qty = 1; options = []; row = '
' +'
' +''+ menu_items[field].name +'' +"
" +'' +'
' +'
' +"'; $('.menu_items_list').append(row); } } }); //end Ajax } //end show list function //click item row for add order $(document).on('click', '.menu_item_box', function(event){ $('.attributes-list').empty(); $('.options-list').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'); data = $(this).parent().children().children('.add_icon'); attributes = $(this).data('id'); selected_item = $(this).data('item'); instances = $(this).data('instance'); item_options = $(this).data('option'); instance_attributes = [] for(var field in instances) { value = instances[field].values; $(value).each(function(i){ options = value[i]; instance_attributes.push(options); }); } for(var field in attributes) { value = attributes[field]["values"]; type = attributes[field]["type"] row = "

"+attributes[field]["type"]+"

" $(value).each(function(i){ disabled = "" status =""; if(parseInt(jQuery.inArray(value[i], selected_item))!== -1){ status = "selected-attribute"; } 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); } $('#change_qty').val(1); $('#item_instances').text(instances); $('#title_name').text(data.attr('data-name')); $('#item_code').text(data.attr('data-item-code')); $('#total_price').text(data.attr('data-price')); $('#unit_price').text(data.attr('data-price')); }); // click select option icon for add $(document).on('click', '.attribute_btn', function(event){ value = $(this).data('value'); type = $(this).data('type'); instances = $(this).data('instances'); if ($(".attribute_btn").attr("data-type")==type){ $('.'+type).removeClass("selected-attribute"); } $(this).addClass('selected-attribute'); var selected_attr = get_selected_attributes('selected-attribute'); qty = $('#change_qty').val(); for(var field in instances) { item_attr = instances[field].values; if(JSON.stringify(item_attr) == JSON.stringify(selected_attr)){ 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); } } }); //End selecct attribute buttom // click select option icon for add $(document).on('click', '.option_btn', function(event){ value = $(this).data('value'); type = $(this).data('type'); if ($(".option_btn").attr("data-type")==type){ $('.'+type).removeClass("selected-option"); } $(this).addClass('selected-option'); }); //End selecct attribute buttom // click add order $(document).on('click', '.add_to_order', function(event){ total_price = $('#total_price').text(); qty = parseInt($('#change_qty').val()); var item_row = $('.selected-attribute'); var instances = jQuery.parseJSON(item_row.attr('data-instances')); attribute_arr = get_selected_attributes('selected-attribute'); option_arr = get_selected_attributes('selected-option'); for(var field in instances) { if (JSON.stringify(attribute_arr) === JSON.stringify(instances[field].values)) { $('.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); } } $('.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)); var item_data = $(this); show_item_detail(item_data); calculate_sub_total(); }); //End Add Icon Click // click plus icon for add $(document).on('click', '.add_icon', function(event){ var item_data = $(this); show_item_detail(item_data); calculate_sub_total(); }); //End Add Icon Click function show_item_detail(data){ qty = parseInt(data.attr('data-qty')); append = 0; price = parseFloat(data.attr('data-price')).toFixed(2); instance_name = data.attr('data-instance'); if (instance_name == "undefined"){ instance = ''; }else{ instance = "("+data.attr('data-instance')+")"; } 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'); if (item_code == data.attr('data-item-code') && instance_code == data.attr('data-instance-code')) { 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(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 +'' +'' + qty + '' +'' + parseFloat(price).toFixed(2) +'' +''; $(".summary-items tbody").append(row); } } // Pay Discount for Payment $("#create_order").on('click', function(e){ e.preventDefault(); $( "#loading_wrapper" ).show(); var table_id = $('#table_id').text(); var booking_id = $('#booking_id').text(); if (!booking_id.length > 0) { console.log("hi") var params = {'order_source': "cashier", 'order_type': "dine_in", 'customer_id': "", 'guest_info': "",'booking_id':booking_id, 'table_id': table_id, 'order_items': order_items }; } var table_type = $('#table_type').text(); var order_items = JSON.stringify(get_order_item_rows()); var ajax_url = '../addorders/create'; console.log(ajax_url) var params = {'order_source': "cashier", 'order_type': "dine_in", 'customer_id': "", 'guest_info': "", 'table_id': table_id, 'order_items': order_items }; $.ajax({ type: "POST", url: ajax_url, data: params, dataType: "json", success:function(result){ $( "#loading_wrapper" ).show(); $.confirm({ title: 'Infomation!', content: "result.status", buttons: { confirm: { text: 'Ok', btnClass: 'btn-green', action: function(){ if(table_type == "Table"){ window.location.href = "/origami/table/" + table_id } else { window.location.href = "/origami/room/" + table_id } } } } }); } }); }); //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); $('#modal-qty').val(qty); }); //click remove buttom in modal box $('#sx_itemModal').on('click','#remove', function(){ $('.summary-items tr').filter(function(){ if ($(this).attr('data-active') == 'true'){ $(this).remove(); } }); calculate_sub_total(); }); //click close $('#sx_itemModal').on('click','#close', function(){ $(".item_box").removeAttr("data-active"); }); //click save buttom after change qty $('#sx_itemModal').on('click','#save', function(){ summary_items_filter(); calculate_sub_total(); }); //calculate subtotal function calculate_sub_total(){ var total_price = 0; var taxable_amount = 0; 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_price += qty*unit_price; }); var fixed_total_price = parseFloat(total_price).toFixed(2); var fixed_taxable_amount = parseFloat(taxable_amount).toFixed(2); $('#sub_total').empty(); $('#sub_total').append(fixed_total_price); if (fixed_total_price > 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(); 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'); } }); } /* Get discount 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(); order_item.options = $(item_row[i]).attr('data-options'); order_items.push(order_item); }); return order_items; } 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; } });