modify out of stock channel
This commit is contained in:
@@ -562,51 +562,9 @@ $(function() {
|
|||||||
// click plus icon for add
|
// click plus icon for add
|
||||||
$(document).on('click', '.add_icon', function(event){
|
$(document).on('click', '.add_icon', function(event){
|
||||||
|
|
||||||
if($(this).hasClass('product_item')) {
|
if (window.location.pathname.includes('out_of_stock') == false) {
|
||||||
$('.sx_item_detailModal').modal('hide');
|
|
||||||
|
if($(this).hasClass('product_item')) {
|
||||||
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');
|
$('.sx_item_detailModal').modal('hide');
|
||||||
|
|
||||||
var item_data = $(this);
|
var item_data = $(this);
|
||||||
@@ -619,16 +577,61 @@ $(function() {
|
|||||||
show_item_detail(item_data,"add_icon");
|
show_item_detail(item_data,"add_icon");
|
||||||
calculate_sub_total();
|
calculate_sub_total();
|
||||||
autoScrollToItem(code)
|
autoScrollToItem(code)
|
||||||
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
attributes = $(this).data('id');
|
if ($(this).data('instances').length == 1) {
|
||||||
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)
|
$('.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
|
}); //End Add Icon Click
|
||||||
|
|
||||||
@@ -1082,9 +1085,45 @@ $(function() {
|
|||||||
|
|
||||||
// Create Order
|
// Create Order
|
||||||
$("#create_order").on('click', function(e){
|
$("#create_order").on('click', function(e){
|
||||||
|
|
||||||
$(this).attr('disabled', 'disabled');
|
|
||||||
e.preventDefault();
|
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($(this))
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
function create_order(data) {
|
||||||
|
data.attr('disabled', 'disabled');
|
||||||
$("#oqs_loading_wrapper").show();
|
$("#oqs_loading_wrapper").show();
|
||||||
var cashier_type = $("#link_type").val();
|
var cashier_type = $("#link_type").val();
|
||||||
localStorage.setItem('cashier_type',cashier_type);
|
localStorage.setItem('cashier_type',cashier_type);
|
||||||
@@ -1121,36 +1160,29 @@ $(function() {
|
|||||||
'order_items': order_items,'create_type' : "create_only" };
|
'order_items': order_items,'create_type' : "create_only" };
|
||||||
}
|
}
|
||||||
|
|
||||||
// if (table_id.length>0 || role == 'waiter') {
|
$.ajax({
|
||||||
$.ajax({
|
type: "POST",
|
||||||
type: "POST",
|
url: ajax_url,
|
||||||
url: ajax_url,
|
data: params,
|
||||||
data: params,
|
dataType: "json",
|
||||||
dataType: "json",
|
success:function(result){
|
||||||
success:function(result){
|
if (type == "quick_service" || type=="food_court") {
|
||||||
if (type == "quick_service" || type=="food_court") {
|
module_name = window.location.href.includes('foodcourt') ? 'foodcourt' : 'origami'
|
||||||
module_name = window.location.href.includes('foodcourt') ? 'foodcourt' : 'origami'
|
window.location.href = "/"+module_name+"/"+type;
|
||||||
window.location.href = "/"+module_name+"/"+type;
|
}else{
|
||||||
}else{
|
if(table_type == "Table"){
|
||||||
if(table_type == "Table"){
|
window.location.href = "/origami/table/" + table_id;
|
||||||
window.location.href = "/origami/table/" + table_id;
|
}
|
||||||
}
|
else {
|
||||||
else {
|
window.location.href = "/origami/room/" + table_id;
|
||||||
window.location.href = "/origami/room/" + table_id;
|
}
|
||||||
}
|
}
|
||||||
}
|
if ($('#server_mode').val() != "cloud" && second_display_lookup == 2){
|
||||||
if ($('#server_mode').val() != "cloud" && second_display_lookup == 2){
|
customer_display_view(null,"reload");
|
||||||
customer_display_view(null,"reload");
|
}
|
||||||
}
|
}
|
||||||
}
|
});
|
||||||
});
|
}
|
||||||
// }else{
|
|
||||||
// $(this).removeAttr('disabled', '');
|
|
||||||
// $("#oqs_loading_wrapper").hide();
|
|
||||||
|
|
||||||
// swal("Opps","Please Select Table or Room","warning");
|
|
||||||
// }
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
// Pay Discount for Payment
|
// Pay Discount for Payment
|
||||||
@@ -1685,7 +1717,12 @@ $(function() {
|
|||||||
data_target = 'sx_item_set_detailModal';
|
data_target = 'sx_item_set_detailModal';
|
||||||
data_modal = 'modal'
|
data_modal = 'modal'
|
||||||
add_icon = "set_item_box"
|
add_icon = "set_item_box"
|
||||||
code = menu_items[field].code;
|
code = ''
|
||||||
|
menu_items[field].instances.forEach(ins => function (){
|
||||||
|
if (ins.out_of_stock == false) {
|
||||||
|
code = ins.code;
|
||||||
|
}
|
||||||
|
})
|
||||||
name = menu_items[field].name;
|
name = menu_items[field].name;
|
||||||
instances = menu_items[field].instances;
|
instances = menu_items[field].instances;
|
||||||
$(instances).each(function(i){
|
$(instances).each(function(i){
|
||||||
@@ -1709,8 +1746,18 @@ $(function() {
|
|||||||
add_icon = "add_icon"
|
add_icon = "add_icon"
|
||||||
menu_instances = [];
|
menu_instances = [];
|
||||||
|
|
||||||
|
code = '';
|
||||||
|
name = '';
|
||||||
|
price = '';
|
||||||
|
is_available = '';
|
||||||
|
is_on_promotion = '';
|
||||||
|
item_attributes = '';
|
||||||
|
promotion_price = '';
|
||||||
|
out_of_stock = '';
|
||||||
|
menu_insta = '';
|
||||||
|
|
||||||
$(instances).each(function(i){
|
$(instances).each(function(i){
|
||||||
if (instances[i].is_default === true && !instances[i].out_of_stock) {
|
if (!instances[i].out_of_stock) { //instances[i].is_default === true &&
|
||||||
code = instances[i].code;
|
code = instances[i].code;
|
||||||
name = instances[i].name;
|
name = instances[i].name;
|
||||||
price = parseFloat(instances[i].price).toFixed(2);
|
price = parseFloat(instances[i].price).toFixed(2);
|
||||||
@@ -1718,13 +1765,10 @@ $(function() {
|
|||||||
is_on_promotion = instances[i].is_on_promotion;
|
is_on_promotion = instances[i].is_on_promotion;
|
||||||
item_attributes = instances[i].values;
|
item_attributes = instances[i].values;
|
||||||
promotion_price = instances[i].promotion_price;
|
promotion_price = instances[i].promotion_price;
|
||||||
code = instances[i].code;
|
|
||||||
out_of_stock = instances[i].out_of_stock;
|
out_of_stock = instances[i].out_of_stock;
|
||||||
menu_insta = [code,name,item_attributes];
|
menu_insta = [code,name,item_attributes];
|
||||||
}
|
|
||||||
if(instances[i].out_of_stock === false){
|
|
||||||
menu_instances.push(menu_insta);
|
menu_instances.push(menu_insta);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1745,9 +1789,9 @@ $(function() {
|
|||||||
})
|
})
|
||||||
|
|
||||||
if (status) {
|
if (status) {
|
||||||
price_tag = '<span class="text-danger" style="font-weight:900;flex-grow:1;">'+status+'</span>'
|
price_tag = '<span class="text-danger price_tag" style="font-weight:900;flex-grow:1;">'+status+'</span>'
|
||||||
} else {
|
} else {
|
||||||
price_tag ='<span style="font-weight:900;flex-grow:1;">'+price+'</span>'
|
price_tag ='<span class="price_tag" style="font-weight:900;flex-grow:1;">'+price+'</span>'
|
||||||
}
|
}
|
||||||
|
|
||||||
image_path = '';
|
image_path = '';
|
||||||
|
|||||||
@@ -5,13 +5,10 @@ App.checkin = App.cable.subscriptions.create('OutOfStockChannel', {
|
|||||||
disconnected: function() {},
|
disconnected: function() {},
|
||||||
|
|
||||||
received: function(data) {
|
received: function(data) {
|
||||||
if (data && data.item_instance_code) {
|
if (data && data.item_code) {
|
||||||
console.log("out of stock channel!!!!");
|
item_code = data.item_code
|
||||||
item_code = data.item_instance_code;
|
item_instance_code = data.item_instance_code;
|
||||||
item_code_id = '#' + data.item_instance_code;
|
item_instance_code_id = '#' + item_instance_code;
|
||||||
oos_id = '#oos' + data.item_instance_code;
|
|
||||||
head_oos = 'head' + data.item_instance_code;
|
|
||||||
rm_oos = '.' + head_oos;
|
|
||||||
menus = localStorage.getItem('menus');
|
menus = localStorage.getItem('menus');
|
||||||
|
|
||||||
if (menus) {
|
if (menus) {
|
||||||
@@ -20,23 +17,119 @@ App.checkin = App.cable.subscriptions.create('OutOfStockChannel', {
|
|||||||
m.categories.forEach(c => {
|
m.categories.forEach(c => {
|
||||||
c.items.forEach(i => {
|
c.items.forEach(i => {
|
||||||
i.instances.forEach(instance => {
|
i.instances.forEach(instance => {
|
||||||
if (instance.code == item_code) {
|
|
||||||
if (data.status == true) {
|
if (instance.code == item_instance_code) {
|
||||||
instance.out_of_stock = true;
|
|
||||||
oos_header = '<div class="'+head_oos+'" style="position: absolute;z-index: 5;top: 0;left: 0;right: 0;text-align: center;background: #fb483a;margin: auto;color: #fff;padding: 8px;font-weight: bolder;">OUT OF STOCK</div>';
|
card_header = $('.menu_items_list').find(`[data-item-code='${item_code}']`).first();
|
||||||
$(item_code_id).css({"height": "100%", "pointer-events": "none", "opacity": "0.4"});
|
card_footer = $(card_header).parent('.card').find('.card-footer');
|
||||||
$(oos_header).insertBefore($(oos_id));
|
price_tag = $(card_footer).find('.price_tag')
|
||||||
|
item_box = $(card_footer).find('.menu_item_box')
|
||||||
|
|
||||||
|
instance_list = $('.menu_items_list').find(`[data-item-code='${item_code}']`).data('instances')
|
||||||
|
|
||||||
|
if (instance_list.length == 1) {
|
||||||
|
|
||||||
|
if (data.status == true) {
|
||||||
|
instance.out_of_stock = true;
|
||||||
|
|
||||||
|
$(card_header).css({"pointer-events": "none", "opacity": "0.4"});
|
||||||
|
$(item_box).css({"pointer-events": "none", "opacity": "0.4"});
|
||||||
|
|
||||||
|
$(price_tag).empty().addClass('text-danger').text('out of stock')
|
||||||
|
|
||||||
|
} else {
|
||||||
|
instance.out_of_stock = false;
|
||||||
|
|
||||||
|
$(card_header).css({"pointer-events": "auto", "opacity": ""});
|
||||||
|
$(item_box).css({"pointer-events": "auto", "opacity": ""});
|
||||||
|
|
||||||
|
price = $(card_header).data('price')
|
||||||
|
$(price_tag).removeClass('text-danger').empty().text(price)
|
||||||
|
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
instance.out_of_stock = false;
|
if (data.status == true) {
|
||||||
$(item_code_id).css({"height": "", "pointer-events": "", "opacity": ""});
|
instance.out_of_stock = true;
|
||||||
$(rm_oos).remove();
|
|
||||||
|
oos_count = 0
|
||||||
|
data_instance_code = $(card_header).data('instance-code')
|
||||||
|
instance_list.forEach(i => {
|
||||||
|
if (i.code == item_instance_code) {
|
||||||
|
i.out_of_stock = true
|
||||||
|
name = $('.menu_items_list').find(`[data-item-code='${item_code}']`).data('name')
|
||||||
|
$('.summary-items').find(`tr[data-instance-code='${item_instance_code}']`).attr({'data-oos': true, 'data-name': name});
|
||||||
|
}
|
||||||
|
if (i.out_of_stock == true) {
|
||||||
|
oos_count += 1
|
||||||
|
}
|
||||||
|
if (data_instance_code == item_instance_code) {
|
||||||
|
console.log('Equal');
|
||||||
|
if (i.out_of_stock == false) {
|
||||||
|
code = i.code
|
||||||
|
price = parseFloat(i.price).toFixed(2);
|
||||||
|
name = i.name
|
||||||
|
item_attributes = i.values
|
||||||
|
promotion_price = i.promotion_price
|
||||||
|
$(card_header).removeAttr('data-price', 'data-instance-code', 'data-promotion-price', 'data-attributes', 'data-instance')
|
||||||
|
$(card_header).attr({'data-price': price,
|
||||||
|
'data-instance-code': code,
|
||||||
|
'data-promotion-price': promotion_price,
|
||||||
|
'data-attributes': JSON.stringify(item_attributes),
|
||||||
|
'data-instance': name
|
||||||
|
})
|
||||||
|
|
||||||
|
$(card_footer).find('.menu_item_box').removeAttr('data-item').attr('data-item', JSON.stringify(item_attributes))
|
||||||
|
$(price_tag).removeClass('text-danger').empty().text(price)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if (oos_count == instance_list.length) {
|
||||||
|
$(card_header).css({"pointer-events": "none", "opacity": "0.4"});
|
||||||
|
$(item_box).css({"pointer-events": "none", "opacity": "0.4"});
|
||||||
|
$(price_tag).empty().addClass('text-danger').text('out of stock')
|
||||||
|
}
|
||||||
|
|
||||||
|
} else { // status == false
|
||||||
|
instance.out_of_stock = false;
|
||||||
|
|
||||||
|
instance_list.forEach(i => {
|
||||||
|
if (i.code == item_instance_code) {
|
||||||
|
i.out_of_stock = false
|
||||||
|
code = i.code
|
||||||
|
price = parseFloat(i.price).toFixed(2);
|
||||||
|
name = i.name
|
||||||
|
item_attributes = i.values
|
||||||
|
promotion_price = i.promotion_price
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
$(card_header).removeAttr('data-price', 'data-instance-code', 'data-promotion-price', 'data-attributes', 'data-instance')
|
||||||
|
$(card_header).attr({'data-price': price,
|
||||||
|
'data-instance-code': code,
|
||||||
|
'data-promotion-price': promotion_price,
|
||||||
|
'data-attributes': JSON.stringify(item_attributes),
|
||||||
|
'data-instance': name
|
||||||
|
})
|
||||||
|
|
||||||
|
$(card_footer).find('.menu_item_box').removeAttr('data-item').attr('data-item', JSON.stringify(item_attributes))
|
||||||
|
|
||||||
|
$(card_header).css({"pointer-events": "auto", "opacity": ""});
|
||||||
|
$(item_box).css({"pointer-events": "auto", "opacity": ""});
|
||||||
|
|
||||||
|
$(price_tag).removeClass('text-danger').empty().text(price)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// update data-attribute
|
||||||
|
$(card_header).removeData('instances').attr('data-instances', JSON.stringify(instance_list));
|
||||||
|
$(card_footer).find('.menu_item_box').removeData('instance').attr('data-instance', JSON.stringify(instance_list));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
|
|
||||||
localStorage.setItem('menus', JSON.stringify(menus));
|
localStorage.setItem('menus', JSON.stringify(menus));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,8 +26,9 @@ class Settings::OutOfStockController < ApplicationController
|
|||||||
if !item_instance.first.is_out_of_stock?
|
if !item_instance.first.is_out_of_stock?
|
||||||
item_instance.update(is_out_of_stock: true)
|
item_instance.update(is_out_of_stock: true)
|
||||||
items_arr.each do |i|
|
items_arr.each do |i|
|
||||||
|
item_code = MenuItemInstance.find_by(item_instance_code: i).menu_item.item_code
|
||||||
# OutOfStock.create_out_of_stock(date,i)
|
# OutOfStock.create_out_of_stock(date,i)
|
||||||
ActionCable.server.broadcast "out_of_stock_channel", item_instance_code: i, status: true
|
ActionCable.server.broadcast "out_of_stock_channel", item_code: item_code, item_instance_code: i, status: true
|
||||||
end
|
end
|
||||||
elsif item_instance.first.is_out_of_stock?
|
elsif item_instance.first.is_out_of_stock?
|
||||||
item_instance.update(is_out_of_stock: false)
|
item_instance.update(is_out_of_stock: false)
|
||||||
@@ -42,8 +43,9 @@ class Settings::OutOfStockController < ApplicationController
|
|||||||
item_instance = MenuItemInstance.find_by_id(params[:id])
|
item_instance = MenuItemInstance.find_by_id(params[:id])
|
||||||
unless item_instance.nil?
|
unless item_instance.nil?
|
||||||
item_instance.update(is_out_of_stock: false)
|
item_instance.update(is_out_of_stock: false)
|
||||||
ActionCable.server.broadcast "out_of_stock_channel", item_instance_code: item_instance.item_instance_code, status: false
|
|
||||||
# OutOfStock.where(item_instance_code: item_instance.item_instance_code, created_at: Time.zone.now.beginning_of_day..Time.zone.now.end_of_day).destroy_all
|
item_code = item_instance.menu_item.item_code
|
||||||
|
ActionCable.server.broadcast "out_of_stock_channel", item_code: item_code, item_instance_code: item_instance.item_instance_code, status: false
|
||||||
flash[:message] = 'Out of stock was successfully destroyed.'
|
flash[:message] = 'Out of stock was successfully destroyed.'
|
||||||
render :json => {:status=> "Success", :url => settings_out_of_stock_index_url }.to_json
|
render :json => {:status=> "Success", :url => settings_out_of_stock_index_url }.to_json
|
||||||
end
|
end
|
||||||
@@ -54,8 +56,8 @@ class Settings::OutOfStockController < ApplicationController
|
|||||||
unless item_instance.nil?
|
unless item_instance.nil?
|
||||||
item_instance.update(is_out_of_stock: false)
|
item_instance.update(is_out_of_stock: false)
|
||||||
item_instance.each do |i|
|
item_instance.each do |i|
|
||||||
ActionCable.server.broadcast "out_of_stock_channel", item_instance_code: i.item_instance_code, status: false
|
item_code = i.menu_item.item_code
|
||||||
# OutOfStock.where(item_instance_code: i.item_instance_code, created_at: Time.zone.now.beginning_of_day..Time.zone.now.end_of_day).destroy_all
|
ActionCable.server.broadcast "out_of_stock_channel", item_code: item_code, item_instance_code: i.item_instance_code, status: false
|
||||||
end
|
end
|
||||||
flash[:message] = 'Out of stock was successfully destroyed.'
|
flash[:message] = 'Out of stock was successfully destroyed.'
|
||||||
render :json => {:status=> "Success", :url => settings_out_of_stock_index_url }.to_json
|
render :json => {:status=> "Success", :url => settings_out_of_stock_index_url }.to_json
|
||||||
|
|||||||
@@ -108,7 +108,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="col-md-7 col-lg-7 col-sm-7 m-t-10 d-flex flex-column h-100" style="margin-left: -10px;
|
<div class="col-md-7 col-lg-7 col-sm-7 m-t-10 d-flex flex-column h-100" id="menu-item-list" style="margin-left: -10px;
|
||||||
margin-right: -10px;">
|
margin-right: -10px;">
|
||||||
<div class="card h-100" style="margin-bottom: 10px;">
|
<div class="card h-100" style="margin-bottom: 10px;">
|
||||||
<div class="card-block d-flex flex-column h-100" style="">
|
<div class="card-block d-flex flex-column h-100" style="">
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
<%= stylesheet_link_tag 'addorder', media: 'all', 'data-turbolinks-track': 'reload' %>
|
<%= stylesheet_link_tag 'addorder', media: 'all', 'data-turbolinks-track': 'reload' %>
|
||||||
<%= javascript_include_tag 'addorder', 'data-turbolinks-track': 'reload' %>
|
<%= javascript_include_tag 'addorder', 'data-turbolinks-track': 'reload' %>
|
||||||
<div class="container-fluid " style="padding:0px 3px 0px 3px;">
|
<div class="container-fluid h-100" style="padding:0px 3px 0px 3px;">
|
||||||
<div id="oqs_loading_wrapper" style="display:none;">
|
<div id="oqs_loading_wrapper" style="display:none;">
|
||||||
<div id="oqs_loading"></div>
|
<div id="oqs_loading"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row m-t--20">
|
<div class="row m-t--25 h-100">
|
||||||
<div class="col-lg-2 col-md-2 col-sm-2 hidden" id="menu_data">
|
<div class="col-lg-2 col-md-2 col-sm-2 hidden d-flex flex-column h-100" id="menu_data">
|
||||||
<li class="list-menu">
|
<li class="list-menu">
|
||||||
<a href="javascript:void(0);" class="menu-toggle dropdown-toggle toggled my-toggle " style="">
|
<a href="javascript:void(0);" class="menu-toggle dropdown-toggle toggled my-toggle " style="">
|
||||||
|
|
||||||
@@ -23,7 +23,7 @@
|
|||||||
<%end%>
|
<%end%>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<div id="menu1-slimscroll" data-height="0">
|
<div id="menu1-slimscroll" class="flex-grow-1" data-height="0">
|
||||||
<ul class="nav nav-tabs flex-column category_list" role="tablist" id="ul-navbar">
|
<ul class="nav nav-tabs flex-column category_list" role="tablist" id="ul-navbar">
|
||||||
<li class="nav-item product" data-ref="<%= origami_get_all_product_path %>">
|
<li class="nav-item product" data-ref="<%= origami_get_all_product_path %>">
|
||||||
<a class="nav-link" data-toggle="tab" href="" role="tab">Products</a>
|
<a class="nav-link" data-toggle="tab" href="" role="tab">Products</a>
|
||||||
@@ -46,26 +46,30 @@
|
|||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-lg-2 col-md-2 col-sm-2 hidden" id="menu_cache">
|
<div class="col-lg-2 col-md-2 col-sm-2 h-100 d-flex flex-column hidden" id="menu_cache">
|
||||||
<li class="list-menu">
|
<div class="card h-100" style="margin-bottom: 10px;">
|
||||||
<a href="javascript:void(0);" class="menu-toggle dropdown-toggle toggled my-toggle " style="">
|
<div class="card-header">
|
||||||
<span class="main_menu menu_cache_name" id="main_menu menu_cache_name"></span>
|
<li class="list-menu" style="background-color: #fff;">
|
||||||
</a>
|
<a href="javascript:void(0);" class="menu-toggle dropdown-toggle toggled my-toggle " style="">
|
||||||
<ul class="ml-menu menu_list aria-hidden menu_cache_list" style="border-top: 1px solid #fff">
|
<span class="main_menu menu_cache_name" id="main_menu menu_cache_name"></span>
|
||||||
</ul>
|
</a>
|
||||||
</li>
|
<ul class="ml-menu menu_list aria-hidden menu_cache_list" style="border-top: 1px solid #fff">
|
||||||
<div id="menu-slimscroll" data-height="0">
|
</ul>
|
||||||
<ul class="nav nav-tabs flex-column category_list category_cache_list" role="tablist" id="ul-navbar">
|
|
||||||
<li class="nav-item product" data-ref="<%= origami_get_all_product_path %>">
|
|
||||||
<a class="nav-link" data-toggle="tab" href="" role="tab">Products</a>
|
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</div>
|
||||||
|
<div class="card-block d-flex flex-column h-100">
|
||||||
|
<div id="foodcourt-slimscroll" class="h-100">
|
||||||
|
<ul class="nav nav-tabs flex-column category_list category_cache_list" role="tablist" id="ul-navbar">
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-7 col-lg-7 col-sm-7 m-t-10" >
|
<div class="col-md-7 col-lg-7 col-sm-7 h-100 d-flex flex-column">
|
||||||
<div class="card">
|
<div class="card h-100" style="margin-bottom: 10px;">
|
||||||
<div class="card-block" style="">
|
<div class="card-block flex-column d-flex h-100" style="">
|
||||||
<div class="card-text" id="custom-slimscroll">
|
<div class="card-text h-100" id="foodcourt-menu-slimscroll">
|
||||||
<div class="row menu_items_list" style="margin:0px 1px 0px 1px ;">
|
<div class="row menu_items_list" style="margin:0px 1px 0px 1px ;">
|
||||||
<!-- append data -->
|
<!-- append data -->
|
||||||
</div>
|
</div>
|
||||||
@@ -73,38 +77,40 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-lg-3 col-md-3 col-sm-3 item-wrapper" >
|
<div class="col-lg-3 col-md-3 col-sm-3 h-100 d-flex flex-column item-wrapper" >
|
||||||
<button type="button" class="btn btn-lg btn-block btn-default waves-effect m-t-5" id='back' style="width: 75%;">
|
<div class="card h-100" style="margin-bottom: 10px;">
|
||||||
<i class="material-icons">reply</i>Back
|
<div class="card-header">
|
||||||
</button>
|
<button type="button" class="btn btn-lg btn-block btn-default waves-effect m-t-5" id='back' style="width: 75%;">
|
||||||
<button type="button" class="btn btn-xs btn-danger waves-effect" id='clear_all' style="width: 23%; padding: 10px; margin-top: 5px;">Clear</button>
|
<i class="material-icons">reply</i>Back
|
||||||
|
</button>
|
||||||
|
<button type="button" class="btn btn-xs btn-danger waves-effect" id='clear_all' style="width: 23%; padding: 10px; margin-top: 5px;"> Clear</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="card-block">
|
<div class="card-block d-flex flex-column h-100">
|
||||||
<div class="card-text" id="order-detail-slimscroll" data-height="140">
|
<div class="card-text h-100" id="foodcourt-order-slimscroll">
|
||||||
<table class="table table-striped summary-items" id="order-items-table" >
|
<table class="table table-striped summary-items" id="order-items-table" >
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>#</th>
|
<th>#</th>
|
||||||
<th class="item-name">Items</th>
|
<th class="item-name">Items</th>
|
||||||
<!-- <th class="item-qty">Min Qty</th>
|
<th class="item-qty">Action</th>
|
||||||
<th class="item-attr">Max Qty</th> -->
|
</tr>
|
||||||
<th></th>
|
</thead>
|
||||||
</tr>
|
<tbody class="font-13" >
|
||||||
</thead>
|
|
||||||
<tbody class="font-13" >
|
|
||||||
|
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
</div>
|
||||||
|
<div class="card-footer" style="padding: 0.2rem 1rem 0 1rem !important;">
|
||||||
|
<button type="button" class="btn btn-lg btn-block btn-primary waves-effect m-t-5" id='add_out_of_stock' disabled="disabled">
|
||||||
|
Add Out Of Stock
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="card-footer">
|
|
||||||
<button type="button" class="btn btn-lg btn-block btn-primary waves-effect m-t-5" id='add_out_of_stock' disabled="disabled">
|
|
||||||
Add Out Of Stock
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="item-modal modal sx_item_detailModal" id="sx_item_detailModal" tabindex="-1" role="dialog" aria-labelledby="myLargeModalLabel" aria-hidden="true">
|
<div class="item-modal modal sx_item_detailModal" id="sx_item_detailModal" tabindex="-1" role="dialog" aria-labelledby="myLargeModalLabel" aria-hidden="true">
|
||||||
<div class="modal-dialog custom-modal-dialog modal-lg">
|
<div class="modal-dialog custom-modal-dialog modal-lg">
|
||||||
@@ -140,7 +146,7 @@
|
|||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
<button type="button" class="btn btn-default " data-dismiss="modal" id="close">Close</button>
|
<button type="button" class="btn btn-default " data-dismiss="modal" id="close">Close</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-6">
|
<div class="col-md-6 m-l-5">
|
||||||
<button type="button" class="btn btn-primary submit " data-dismiss="modal" id="submit">Submit</button>
|
<button type="button" class="btn btn-primary submit " data-dismiss="modal" id="submit">Submit</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -148,6 +154,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<style type="text/css">
|
<style type="text/css">
|
||||||
.fadeInRight{
|
.fadeInRight{
|
||||||
-webkit-animation-duration: 350ms !important;
|
-webkit-animation-duration: 350ms !important;
|
||||||
@@ -475,7 +482,6 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (out_of_stock === true) {
|
if (out_of_stock === true) {
|
||||||
// oos_item = out_of_stock_item
|
|
||||||
oos_item = '<div class="card custom-card testimonial-card fadeInRight card-box"'
|
oos_item = '<div class="card custom-card testimonial-card fadeInRight card-box"'
|
||||||
+'data-toggle="modal" data-target=".'+data_target+'" '
|
+'data-toggle="modal" data-target=".'+data_target+'" '
|
||||||
+'style="height:100%;background-image:url(../../'+image_path+');background-repeat: no-repeat; pointer-events: none;opacity: 0.4;">'
|
+'style="height:100%;background-image:url(../../'+image_path+');background-repeat: no-repeat; pointer-events: none;opacity: 0.4;">'
|
||||||
@@ -527,11 +533,59 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$(document).on('click', '.menu_item_box, .add_icon', function(event){
|
$(document).on('click', '.menu_item_box, .add_icon, .set_item_box', function(event){
|
||||||
if($(this).hasClass('add_icon')) {
|
if($(this).hasClass('product_item')) {
|
||||||
var item_data = $(this);
|
$('.sx_item_detailModal').modal('hide');
|
||||||
console.log(item_data);
|
|
||||||
// show_item_detail(item_data,"add_to_order");
|
instance_code = $(this).data('instance-code')
|
||||||
|
instance_name = $(this).data('instance')
|
||||||
|
data = [{id: instance_code, text: instance_name}]
|
||||||
|
|
||||||
|
attribute_arr = get_selected_attributes('selected-attribute');
|
||||||
|
option_arr = get_selected_attributes('selected-option');
|
||||||
|
|
||||||
|
$(this).attr('data-item-code',$('#item_code').text());
|
||||||
|
$(this).attr('data-instance-arr',JSON.stringify(data));
|
||||||
|
$(this).attr('data-name',$(this).data('name'));
|
||||||
|
$(this).attr('data-attributes',JSON.stringify(attribute_arr));
|
||||||
|
$(this).attr('data-options',JSON.stringify(option_arr));
|
||||||
|
$(this).attr('data-opt',JSON.stringify(option_arr));
|
||||||
|
|
||||||
|
show_item_detail($(this));
|
||||||
|
// autoScrollToItem(instance_code)
|
||||||
|
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if($(this).hasClass('add_icon') || $(this).hasClass('set_item_box')) {
|
||||||
|
|
||||||
|
if ($(this).data('instances').length == 1) {
|
||||||
|
$('.sx_item_detailModal').modal('hide')
|
||||||
|
|
||||||
|
attribute_arr = get_selected_attributes('selected-attribute');
|
||||||
|
option_arr = get_selected_attributes('selected-option');
|
||||||
|
|
||||||
|
instance_code = $(this).data('instance-code')
|
||||||
|
instance_name = $(this).data('instance')
|
||||||
|
data = [{id: instance_code, text: instance_name}]
|
||||||
|
|
||||||
|
$(this).attr('data-item-code',$('#item_code').text());
|
||||||
|
$(this).attr('data-instance-arr',JSON.stringify(data));
|
||||||
|
$(this).attr('data-name',$(this).data('name'));
|
||||||
|
$(this).attr('data-attributes',JSON.stringify(attribute_arr));
|
||||||
|
$(this).attr('data-options',JSON.stringify(option_arr));
|
||||||
|
$(this).attr('data-opt',JSON.stringify(option_arr));
|
||||||
|
|
||||||
|
code = $(this).data('instance-code');
|
||||||
|
|
||||||
|
show_item_detail($(this))
|
||||||
|
autoScrollToItem(code)
|
||||||
|
|
||||||
|
return
|
||||||
|
|
||||||
|
} else {
|
||||||
|
var item_data = $(this);
|
||||||
|
console.log(item_data);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
var instances = $(this).data('menu-instances');
|
var instances = $(this).data('menu-instances');
|
||||||
var item_row = $('.summary-items tbody tr');
|
var item_row = $('.summary-items tbody tr');
|
||||||
@@ -729,6 +783,8 @@
|
|||||||
option_arr = get_selected_attributes('selected-option');
|
option_arr = get_selected_attributes('selected-option');
|
||||||
|
|
||||||
data = $("#instance_select").select2('data');
|
data = $("#instance_select").select2('data');
|
||||||
|
console.log('data');
|
||||||
|
console.log(data);
|
||||||
if (data != null){
|
if (data != null){
|
||||||
instance_code = data[0].id;
|
instance_code = data[0].id;
|
||||||
instance_name = data[0].text;
|
instance_name = data[0].text;
|
||||||
@@ -743,10 +799,10 @@
|
|||||||
$('.submit').attr('data-opt',JSON.stringify(option_arr));
|
$('.submit').attr('data-opt',JSON.stringify(option_arr));
|
||||||
var item_data = $(this);
|
var item_data = $(this);
|
||||||
console.log(item_data);
|
console.log(item_data);
|
||||||
show_item_detail(item_data,"add_to_order");
|
show_item_detail(item_data);
|
||||||
});
|
});
|
||||||
|
|
||||||
function show_item_detail(data,click_type){
|
function show_item_detail(data){
|
||||||
testqty = parseInt($('.item_box').children('data_qty').text());
|
testqty = parseInt($('.item_box').children('data_qty').text());
|
||||||
qty = parseInt(data.attr('data-qty'));
|
qty = parseInt(data.attr('data-qty'));
|
||||||
append = 0;
|
append = 0;
|
||||||
|
|||||||
@@ -1,33 +1,39 @@
|
|||||||
<% breadcrumb_add t('out_of_stock'), "", dashboard_path %>
|
<div class="container-fluid d-flex flex-column h-100" style="padding:0px 3px 0px 3px;">
|
||||||
|
<% breadcrumb_add t('out_of_stock'), "", dashboard_path %>
|
||||||
|
<div class="row flex-grow-1">
|
||||||
|
<div class="col-sm-12 col-xs-12 d-flex flex-column h-100">
|
||||||
|
<div class="card h-100">
|
||||||
|
<div class="card-header">
|
||||||
|
<div class="row ">
|
||||||
|
<div class="col-lg-4 col-md-4 col-sm-4" style="padding-left: 17px;">
|
||||||
|
<%= form_tag inventory_path, :id => "filter_form", :method => :get do %>
|
||||||
|
<input type="text" class="form-control" name="filter" id="Product" type="text" placeholder="Product" style="height: 32px;">
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="row ">
|
<div class="col-lg-2 col-md-2 col-sm-2 text-">
|
||||||
<div class="col-lg-4 col-md-4 col-sm-4" style="padding-left: 17px;">
|
<input type="submit" value="Filter" class='btn btn-primary'>
|
||||||
<%= form_tag inventory_path, :id => "filter_form", :method => :get do %>
|
</div>
|
||||||
<input type="text" class="form-control" name="filter" id="Product" type="text" placeholder="Product" style="height: 32px;">
|
<% end %>
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-lg-2 col-md-2 col-sm-2 text-">
|
<div class="col-lg-6 col-md-6 col-sm-6" style="padding-right: 15px;">
|
||||||
<input type="submit" value="Filter" class='btn btn-primary'>
|
<button type="button" id="reset_all" class="delete btn btn-danger btn-sm float-right waves-effect" style='margin-left:5px;' data-ref="<%= settings_reset_all_path %>" data-method="delete">
|
||||||
</div>
|
<%= t("views.btn.reset_all") %>
|
||||||
<% end %>
|
</button>
|
||||||
|
<button id='new_out_of_stock' class='btn btn-primary float-right waves-effect' style='margin-left:5px;'><%= (t :new_out_of_stock) +" " %> <%= t("views.right_panel.detail.item") %></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="col-lg-6 col-md-6 col-sm-6" style="padding-right: 15px;">
|
<div class="card-block d-flex flex-column h-100">
|
||||||
<button type="button" id="reset_all" class="delete btn btn-danger btn-sm float-right waves-effect" style='margin-left:5px;' data-ref="<%= settings_reset_all_path %>" data-method="delete">
|
<div class="card-text h-100" id="foodcourt-slimscroll">
|
||||||
<%= t("views.btn.reset_all") %>
|
<%= render 'out_of_stock_list' %>
|
||||||
</button>
|
</div>
|
||||||
<button id='new_out_of_stock' class='btn btn-primary float-right waves-effect' style='margin-left:5px;'><%= (t :new_out_of_stock) +" " %> <%= t("views.right_panel.detail.item") %></button>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
|
|
||||||
<div class="card">
|
|
||||||
<%= render 'out_of_stock_list' %>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
$(document).ready(function (){
|
$(document).ready(function (){
|
||||||
|
|||||||
Reference in New Issue
Block a user