Files
sx-fc/app/assets/javascripts/addorder.js
Dev Team 24327e402a fixes
2025-06-02 17:22:39 +06:30

1956 lines
78 KiB
JavaScript
Executable File

//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 = '<div class="col-md-6 col-sm-6 col-lg-3 mt-3">'
+'<div class="card custom-card testimonial-card fadeInRight" style="height:100%;background-image:url(../../'+image_path+');background-repeat: no-repeat;">'
+'<div class="custom-card-head card-head row" style="line-height:14px;margin:0px;" style="">'
+'<div class="col-md-10">'+ product[field].name +'</div>'
+'</div>'
+"<div class='add_icon product_item p-t-65 p-b-65' data-item-code='"
+ product[field].item_code +"' data-name='"
+ product[field].name +"' data-qty = '"+ qty +"' data-price = '"
+ product[field].unit_price +"' data-instance-code = '"+ product[field].item_code +"' data-instances = '"
+ product[field].name +"' data-promotion-price = '"+ 1 +"' data-attributes = '"
+ JSON.stringify(item_attributes) +"' data-options = '"
+ JSON.stringify(options) +"' data-id = '"+ JSON.stringify(item_attributes) +"' data-opt = '"
+ JSON.stringify(options) +"' data-image='"+image_path+"' data-toggle='modal' data-target='.sx_item_detailModal'>"
+'</div>'
+'<div class="card-footer custom-card-footer custom-flex-footer">'
+'<span style="font-weight:900;flex-grow:1;">'+ product[field].unit_price +'</span>'
+"<div class='offset-4 col-2 menu_item_box' data-item-code='"
+ product[field].item_code +"' data-instance = '"
+JSON.stringify(item_attributes)+"' data-id = '"
+JSON.stringify(item_attributes)+"' data-item = '"
+JSON.stringify(item_attributes)+"' data-option = '"
+JSON.stringify(options)+"'data-opt = '"
+JSON.stringify(options)+"' data-item-sets = '"
+JSON.stringify(item_attributes)+"' data-image='"+image_path+"' data-toggle='modal' data-target='.sx_item_detailModal'>"
+"<i class='fa fa-bars material-icons m-l--10'>"
+'view_list</i>'
+'</div>'
+'</div>'
+'</div>';
}
else
{
row = '<div class="col-md-6 col-sm-6 col-lg-3 mt-1">'
+'<div class="card custom-card testimonial-card fadeInRight" style="height:100%;">'
+'<div class="custom-card-head custom-card-no-img-head card-head row" style="margin:0px;display:flex;!important">'
+"<div class='col-12 add_icon product_item p-t-65 p-b-65' data-item-code='"
+ product[field].item_code +"' data-name='"
+ product[field].name +"' data-qty = '"+ qty +"' data-price = '"
+ product[field].unit_price +"' data-instance-code = '"+ product[field].item_code +"' data-instance = '"
+ product[field].name +"' data-promotion-price = '"+ 1 +"' data-attributes = '"
+ JSON.stringify(item_attributes) +"' data-id = '"+ JSON.stringify(item_attributes) +"' data-options = '"
+ JSON.stringify(options) +"' data-opt = '"
+ JSON.stringify(options) +"' data-image='' data-toggle='modal' data-target='.sx_item_detailModal'>"
+'<div class="product_box">'+ product[field].name +'</div>'
+'</div>'
+'</div>'
+"<div class='add_icon' product_item data-item-code='"
+ product[field].item_code +"' data-name='"
+ product[field].name +"' data-qty = '"+ qty +"' data-price = '"
+ product[field].unit_price +"' data-instance-code = '"+ product[field].item_code +"' data-instance = '"
+ product[field].name +"' data-promotion-price = '"+ 1 +"' data-attributes = '"
+ JSON.stringify(item_attributes) +"' data-options = '"
+ JSON.stringify(options) +"' data-opt = '"
+ JSON.stringify(options) +"' data-image=''>"
+'</div>'
+'<div class="card-footer custom-card-no-img-footer custom-flex-footer">'
+'<span style="font-weight:900;flex-grow:1;">'+ product[field].unit_price +'</span>'
+"<div class='offset-4 col-2 menu_item_box menu_item_no_img_box' data-item-code='"
+ product[field].item_code +"' data-instance = '"
+JSON.stringify(item_attributes)+"' data-id = '"
+JSON.stringify(item_attributes)+"' data-item = '"
+JSON.stringify(item_attributes)+"' data-option = '"
+JSON.stringify(options)+"'data-opt = '"
+JSON.stringify(options)+"' data-item-sets = '"
+JSON.stringify(item_attributes)+"' data-image='' data-toggle='modal' data-target='.sx_item_detailModal'>"
+"<i class='fa fa-bars material-icons m-l--10'>"
+'view_list</i>'
+'</div>'
+'</div>'
+'</div>';
}
$('.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 = '<span class="text-danger">out of stock</span>'
pointer_event = 'none'
opacity = '0.5'
}
else {
price_tag = '<span>'+result[v]["price"]+'</span>'
pointer_event = 'auto'
opacity = ''
}
row = '<div class="col-md-4 " style="pointer-events: '+pointer_event+'; opacity: '+opacity+'">'
+"<div class='card custom-card instance_box' data-name='"+result[v]["name"]
+"' data-code='"+result[v]["code"]
+"' data-price='"+result[v]["price"]
+"' data-option='"+JSON.stringify(items[iii]["options"])
+"' data-min-qty='"+item_sets[field]["min_selectable_qty"]
+"' data-max-qty='"+item_sets[field]["max_selectable_qty"]
+"' data-parent-code='"+instances[0]['code']
+"' data-parent-id='"+instances[0]['id']
+"' data-sub-item='true"
+"'>"
+'<div class="custom-card-head card-head" style="line-height:14px;">'
+'<span class="">'+result[v]["name"]+'</span>'
+'</div>'
+'<div class="card-block custom-card-block">'
+'<img id="" src="/image/logo.png" height="40px">'
+' <small style="float:" id="instance_option"></small>'
+'</div>'
+'<div class="card-footer custom-card-footer">'
+price_tag
// +' <small style="float:right" id="instance_option"></small>'
+'</div>'
+'</div>'
+' </div>'
$(".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 = '<div class="col-md-4 " >'
+"<div class='card custom-card instance_box' data-name='"+result["name"]
+"' data-code='"+result["code"]
+"' data-price='"+result["price"]
+"' data-option='"+JSON.stringify(result["options"])
+"' data-min-qty='"+item_sets[field]["min_selectable_qty"]
+"' data-max-qty='"+item_sets[field]["max_selectable_qty"]
+"' data-parent-code='"+instances[0]['code']
+"' data-parent-id='"+instances[0]['id']
+"' data-sub-item='true"
+"'>"
+'<div class="custom-card-head card-head" style="line-height:14px;">'
+'<span class="">'+result["name"]+'</span>'
+'</div>'
+'<div class="card-block custom-card-block">'
+'<img id="" src="/image/logo.png" height="40px">'
+' <small style="float:" id="instance_option"></small>'
+'</div>'
+'<div class="card-footer custom-card-footer">'
+' <span>'+result["price"]+'</span>'
// +' <small style="float:right" id="instance_option"></small>'
+'</div>'
+'</div>'
+' </div>'
$(".instance-list").append(row);
}
});
}
});
}
for(var j in item_options) {
value = item_options[j]["values"];
type = item_options[j]["type"];
row = "<h4>"+type+"</h4>"
$(value).each(function(i){
row +="<button class='btn btn- waves-effect check_option_btn "+ type +"' data-type='"
+type+"' data-value='"+value[i]+"' data-group='set_menu_default'>"+value[i]+"</button>";
});
$(".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 = "<p style='font-size:16px;margin-bottom:3px'>"+type+"</p>"
$(value).each(function(i){
row +="<button class='btn btn-default btn-sm check_option_btn "+ type +"' data-type='"
+type+"' data-value='"+value[i]+"' data-code='"+code+"' data-group='set_menu'>"
+value[i]+"</button>";
});
$(".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 = "<div class='selected-set card custom-card' style='margin-bottom:10px !important'"
+"' data-name='"+$(this).data('name')
+"' data-code='"+code
+"' data-price='"+$(this).data('price')
+"' data-option='[]"
+"' data-options='"+JSON.stringify($(this).data('options'))
+"' data-min-qty='"+$(this).data('min-qty')
+"' data-max-qty='"+$(this).data('max-qty')
+"' data-parent-code='"+$(this).data('parent-code')
+"' data-parent-id='"+$(this).data('parent-id')
+"' data-sub-item='true"
+"'>"
+'<div class="card-block" style="background-color:#54A5AF;">'
+' <button type="button" class="close" id="remove_set" style="font-size: 20px;">&times;</button>'
+'<span style="color:#fff">'+$(this).data('name')+'</span>'
+'</div>'
+'<div class="card-block custom-card-block">'
+' <small style="float:" id="instance_option"></small>'
+'</div>'
// +'<div class="card-footer custom-card-footer">'
// +' <span>'+$(this).data('price')+'</span>'
// // +' <small style="float:right" id="instance_option"></small>'
// +'</div>'
+'</div>'
$(".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 ="<tr class='item_box' data-price ='"
+price+ "' data-toggle='modal' data-target='#sx_itemModal' data-instance ='"
+name+ "' data-code='"+item_code+"' data-instance-code='"
+code+"' data-attributes='"
+attribute_arr+"' data-options ='"
+option+"' data-row ='"+rowCount+ "' data-parent ='"+parent+ "'>"
+'<td class="item-cell-no">'+rowCount+'</td>'
+'<td class="item-cell-name" id="item_name" >' + item_name+ ' ' + name +' ' + option_name +'</td>'
+'<td class="item-cell-qty" id="item_qty">' + qty + '</td>'
+'<td class="item-cell-price" id="item_price">'
+ parseFloat(total).toFixed(2)
+'</td>'
+'</tr>';
$(".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 ="<tr class='item_box' data-price ='"
+price+ "' data-toggle='modal' data-target='#sx_itemModal' data-instance ='"
+name+ "' data-code='"+item_code+"' data-instance-code='"
+code+"' data-attributes='"
+attribute_arr+"' data-options ='"
+set_option+"' data-row ='"+rowCount+ "' data-sub-item ='"+sub_item+ "'>"
+'<td class="item-cell-no">'+rowCount+'</td>'
+'<td class="item-cell-name" id="item_name" >' + item_name+ ' ' + name +' ' + set_option_name +'</td>'
+'<td class="item-cell-qty" id="item_qty">' + qty + '</td>'
+'<td class="item-cell-price" id="item_price">'
+ parseFloat(total).toFixed(2)
+'</td>'
+'</tr>';
$(".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 = "<img id='' width='200px' src='../../"+data.attr('data-image')+"'>";
}else{
image = "<img id='' width='200px' src='"+data.attr('data-image')+"'>";
}
}else{
if (modify_order) {
image = "<img id='' width='200px' src='../../image/logo.png'>";
}else{
image = "<img id='' width='200px' src='/image/logo.png'>";
}
}
$('#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 = "<h5>"+attributes[field]["type"]+"</h5>";
$(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 +="<button id='selected-attribute' data-instances='"+JSON.stringify(instances)+"' data-type='"
+type+"' data-value='"+value[i]+"' class='btn btn- waves-effect attribute_btn "
+ status +" "+ type +" '"
+ "data-attributes = '"+ JSON.stringify(attributes) +"'"
+ disabled +" >"
+value[i]
+"</button>";
});
$(".attributes-list").append(row);
}
for(var field in item_options) {
value = item_options[field]["values"];
type = item_options[field]["type"];
row = "<h4>"+type+"</h4>"
$(value).each(function(i){
row +="<button class='btn btn- waves-effect check_option_btn "+ type +"' data-type='"
+type+"' data-value='"+value[i]+"' data-group='simple_menu'>"+value[i]+"</button>";
});
$(".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('<strong>Out of stock</strong>')
$('#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('<strong>Not available</strong>')
$('#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 ="<tr class='item_box' data-price ='"
+price+ " 'data-toggle='modal' data-target='#sx_itemModal' data-instance ='"
+instance+ "' data-qty='"+qty +"' data-code='"+data.attr('data-item-code')+"' data-instance-code='"
+data.attr('data-instance-code')+"' data-attributes='"
+data.attr('data-attributes')+"' data-options ='"
+data_option+"' data-opt ='"
+data.attr('data-options')+"' data-row ='"+rowCount+ "'>"
+'<td class="item-cell-no">'+rowCount+'</td>'
+'<td class="item-cell-name" id="item_name" >' + data.attr('data-name')+ ' ' + instance +''+option_name+'</td>'
+'<td class="item-cell-qty" id="item_qty">' + qty + '</td>'
+'<td class="item-cell-price" id="item_price">'
+ parseFloat(price * qty).toFixed(2)
+'</td>'
+'</tr>';
$(".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 = '<li class="menu_sub_category fadeInTop" data-id="'+categories[ii].id+'">'
+'<a class="nav-link" data-toggle="tab" href="" role="tab">'+ categories[ii].name+'</a>'
+'</li>' ;
$(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 = '<li class="menu_sub_category fadeInTop" data-id="'+data[i].id+'">'
+'<a class="nav-link" data-toggle="tab" href="" role="tab">'+ data[i].name+'</a>'
+'</li>' ;
$(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 = '<span class="text-danger price_tag" style="font-weight:900;flex-grow:1;">'+status+'</span>'
} else {
price_tag ='<span class="price_tag" style="font-weight:900;flex-grow:1;">'+price+'</span>'
}
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 = '<div class="card custom-card testimonial-card fadeInRight" id="'+ code +'" style="height: 100%; pointer-events: '+pointer_event+';">'
name = menu_items[field].name
short_name = truncateString(name, 30)
row = '<div class="col-md-6 col-sm-6 col-lg-3 m-t-2">'
+ oos_item
+'<div class="custom-card-head card-head row" style="margin:0px; height: 40px; font-size: 0.9em; opacity: '+opacity+'" >'
+'<div class="col-md-10 " style="padding:0px !important;">'+ short_name +'</div>'
+'</div>'
+"<div class='"+add_icon+"' "
+" data-item-code='"+ menu_items[field].code +"' "
+" data-name='"+ menu_items[field].name +"' "
+" data-menu-instances='" + JSON.stringify(menu_instances)+"' "
+" data-qty = '"+ qty +"' "
+" data-price = '" + price +"' "
+" data-instance-code = '"+ code +"' "
+" data-instance = '" + name +"' "
+" data-promotion-price = '"+ promotion_price +"' "
+" data-id= '" + JSON.stringify(menu_items[field].attributes) +"'"
+" data-attributes = '" + JSON.stringify(item_attributes) +"' "
+" data-options = '"+ JSON.stringify(menu_items[field].options) +"' "
+" data-opt = '" + JSON.stringify(menu_items[field].options) +"' "
+" data-image='"+image_path+"' "
+" data-toggle='modal' "
+" data-target='."+data_target+"' "
+" data-item-sets = '"+JSON.stringify(menu_items[field].item_sets)+"'"
+" data-instances = '"+JSON.stringify(menu_items[field].instances)+"'"
+" style='height: 80px;'>"
+ '<img src = "../../'+image_path+'" class="img-fluid" style="opacity: '+opacity+'; height: 100%; width: 100%;"/>'
+'</div>'
+'<div class="card-footer custom-card-footer custom-flex-footer" style="height: 40px;">'
+ price_tag
+ "<div class='offset-4 col-2 "+menu_item_box
+ "' data-item-code='" + menu_items[field].code
+ "' data-instance='" + JSON.stringify(menu_items[field].instances)
+ "' data-menu-instances='" + JSON.stringify(menu_instances)
+ "' data-id='" + JSON.stringify(menu_items[field].attributes)
+ "' data-item='" + JSON.stringify(item_attributes)
+ "' data-option='" + JSON.stringify(menu_items[field].options)
+ "' data-opt='" + JSON.stringify(menu_items[field].options)
+ "' data-item-sets='" + JSON.stringify(menu_items[field].item_sets)
+ "' data-toggle='modal'"
+ " data-target='." + data_target +"'"
+ " style='padding:0px 5px 0px 5px; opacity: "+opacity+"; pointer-events: "+pointer_event+";'>"
+ "<i class='m-l--5 fa " + fa_plus + "'>"
+ add
+ "</i>"
+'</div>'
+'</div>'
+'</div>'; ;
}else{
oos_item = '<div class="card custom-card testimonial-card fadeInRight" id="'+ code +'" style="height:100%; pointer-events: '+pointer_event+';">'
name = menu_items[field].name
short_name = truncateString(name, 50)
row = '<div class="col-md-6 col-sm-6 col-lg-3 m-t-2">'
+ oos_item
+'<div class="custom-card-no-img-head card-head h-100 '+add_icon+' " id="oos'+ code +'" style="margin:0px;display:flex; opacity: '+opacity+';"'
+" data-item-code='"+ menu_items[field].code +"' "
+" data-menu-instances='" + JSON.stringify(menu_instances)+"' "
+" data-name='" + menu_items[field].name +"' "
+" data-qty = '"+ qty +"' "
+" data-price = '" + price +"' "
+" data-instance-code = '"+ code +"' "
+" data-instance = '" + name +"' "
+" data-promotion-price = '"+ promotion_price +"' "
+" data-attributes = '" + JSON.stringify(item_attributes) +"' "
+ "data-id= '" + JSON.stringify(menu_items[field].attributes)+"'"
+" data-options = '"+ JSON.stringify(menu_items[field].options) +"' "
+" data-opt = '"+ JSON.stringify(menu_items[field].options) +"' "
+" data-image='' data-toggle='modal' "
+" data-target='."+data_target+"' "
+" data-item-sets = '"+JSON.stringify(menu_items[field].item_sets)+"'"
+" data-instances = '"+JSON.stringify(menu_items[field].instances)+"'>"
+'<div class="product_box" style="width:100%;"><span>'+ short_name +'<span></div>'
+'</div>'
+"<div class='"+add_icon+"' "
+" data-item-code='"+ menu_items[field].code +"' "
+" data-menu-instances='" + JSON.stringify(menu_instances)+"' "
+" data-name='" + menu_items[field].name +"' "
+" data-qty = '"+ qty +"' "
+" data-price = '" + price +"' "
+" data-instance-code = '"+ code +"' "
+" data-instance = '" + name +"' "
+" data-promotion-price = '"+ promotion_price +"' "
+" data-attributes = '" + JSON.stringify(item_attributes) +"' "
+" data-options = '"+ JSON.stringify(menu_items[field].options) +"' "
+" data-opt = '"+ JSON.stringify(menu_items[field].options) +"' "
+" data-image='' data-toggle='"+data_modal+"' "
+" data-target='."+data_target+"' "
+" data-item-sets = '"+JSON.stringify(menu_items[field].item_sets)+"'"
+" data-instances = '"+JSON.stringify(menu_items[field].instances)+"'>"
+'</div>'
+'<div class="card-footer custom-card-no-img-footer custom-flex-footer" style="height: 50px;">'
+ price_tag
+" <div class='offset-4 col-2 menu_item_no_img_box "+menu_item_box+" ' "
+" data-item-code='"+ menu_items[field].code +"' "
+" data-instance = '" +JSON.stringify(menu_items[field].instances)+"' "
+" data-menu-instances='" + JSON.stringify(menu_instances)+"' "
+" data-id = '"+JSON.stringify(menu_items[field].attributes)+"' "
+" data-item = '" +JSON.stringify(item_attributes)+"' "
+" data-option = '"+JSON.stringify(menu_items[field].options)+"'"
+" data-opt = '"+JSON.stringify(menu_items[field].options)+"' "
+" data-item-sets = '"+JSON.stringify(menu_items[field].item_sets)+"' "
+" data-toggle='modal' "
+" data-target='."+data_target+"' "
+" style='padding:0px 5px 0px 5px; opacity: "+opacity+"; pointer-envents: "+pointer_event+";'>"
+"<i class='m-l--5 fa "+fa_plus+"' >"
+add+ '</i>'
+'</div>'
+'</div>'
+'</div>'
+'</div>';
}
$('.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;
}