diff --git a/README.md b/README.md index dd979330..aa292813 100755 --- a/README.md +++ b/README.md @@ -34,7 +34,11 @@ ruby 2.4.1p111 java -jar ~/Documents/Jade.jar http://192.168.1.88:3002 Person and Extra Time - category_code = SPL... //for menu categories + category_code = SPL... //for menu categories special + 1) must create Person in settings/accounts + 2) must create Adult and Child in settings/item_attributes + 3) must be P00001 for Adult and P00002 for Child in settings/menu_categories/[cat_id]/simple_menu_items + 3) must be PI0001 for Adult and PI0002 for Child in settings/simple_menu_items/[item_id]/menu_item_instances For Extra Time item_instance_code diff --git a/app/assets/javascripts/OQS.js b/app/assets/javascripts/OQS.js index 3de713c7..da50ac34 100755 --- a/app/assets/javascripts/OQS.js +++ b/app/assets/javascripts/OQS.js @@ -68,11 +68,14 @@ $(document).on('turbolinks:load', function() { var show_date = date.getDate() + "-" + (date.getMonth()+1) + "-" + date.getFullYear() + ' ' + date.getHours()+ ':' + date.getMinutes(); var set_menu_items = data[field]["set_menu_items"]; var set_instance_items = ""; - if(set_menu_items.length > 0){ - $.each(set_menu_items, function(k,val){ - set_instance_items += '
'+val+''; - }); - } + if(set_menu_items!=null){ + if(set_menu_items.length > 0){ + $.each(set_menu_items, function(k,val){ + set_instance_items += '
'+val+''; + }); + } + } + row ='
' +'
' +'
' @@ -146,10 +149,12 @@ $(document).on('turbolinks:load', function() { var parse_data = JSON.parse(data); var set_menu_items = parse_data.set_menu_items; var set_instance_items = ""; - if(set_menu_items.length > 0){ - $.each(set_menu_items, function(k,val){ - set_instance_items += '
'+val+''; - }); + if(set_menu_items!=null){ + if(set_menu_items.length > 0){ + $.each(set_menu_items, function(k,val){ + set_instance_items += '
'+val+''; + }); + } } var order_item_row = "" + "" + parse_data.item_name + set_instance_items + "" + diff --git a/app/controllers/oqs/home_controller.rb b/app/controllers/oqs/home_controller.rb index 07df2504..0d22d199 100755 --- a/app/controllers/oqs/home_controller.rb +++ b/app/controllers/oqs/home_controller.rb @@ -14,7 +14,7 @@ class Oqs::HomeController < BaseOqsController @queue_completed_item = completed_order(@filter) if !@queue_completed_item.empty? @queue_completed_item.each do |queue_item| - if !queue_item.set_menu_items.empty? + if !queue_item.set_menu_items.nil? instance_item_sets = JSON.parse(queue_item.set_menu_items) arr_instance_item_sets = Array.new instance_item_sets.each do |instance_item| @@ -84,8 +84,11 @@ class Oqs::HomeController < BaseOqsController OrderItem.where("order_id='#{ order_no }'").find_each do |oi| items.push(oi) - if !items.empty? - items.each do |item| + end + + if !items.empty? + items.each do |item| + if !item.set_menu_items.nil? instance_item_sets = JSON.parse(item.set_menu_items) arr_instance_item_sets = Array.new instance_item_sets.each do |instance_item| @@ -106,13 +109,15 @@ class Oqs::HomeController < BaseOqsController items = queue_items_query(false,oqs_id,filter) if !items.empty? items.each do |item| - instance_item_sets = JSON.parse(JSON.parse(item.set_menu_items)) - arr_instance_item_sets = Array.new - instance_item_sets.each do |instance_item| - item_instance_name = MenuItemInstance.find_by_item_instance_code(instance_item["item_instance_code"]).item_instance_name - arr_instance_item_sets.push(item_instance_name) + if !item.set_menu_items.nil? + instance_item_sets = JSON.parse(JSON.parse(item.set_menu_items)) + arr_instance_item_sets = Array.new + instance_item_sets.each do |instance_item| + item_instance_name = MenuItemInstance.find_by_item_instance_code(instance_item["item_instance_code"]).item_instance_name + arr_instance_item_sets.push(item_instance_name) + end + item.set_menu_items = arr_instance_item_sets end - item.set_menu_items = arr_instance_item_sets end end render :json => items.to_json diff --git a/app/controllers/origami/home_controller.rb b/app/controllers/origami/home_controller.rb index 8af0759d..536defe7 100755 --- a/app/controllers/origami/home_controller.rb +++ b/app/controllers/origami/home_controller.rb @@ -41,7 +41,7 @@ class Origami::HomeController < BaseOrigamiController @date = order.created_at @booking= booking order.order_items.each do |item| - if !item.set_menu_items.empty? + if !item.set_menu_items.nil? instance_item_sets = JSON.parse(item.set_menu_items) arr_instance_item_sets = Array.new instance_item_sets.each do |instance_item| diff --git a/app/controllers/origami/rooms_controller.rb b/app/controllers/origami/rooms_controller.rb index 60f93d85..bd375d63 100755 --- a/app/controllers/origami/rooms_controller.rb +++ b/app/controllers/origami/rooms_controller.rb @@ -35,7 +35,7 @@ class Origami::RoomsController < BaseOrigamiController @date = order.created_at @booking = booking order.order_items.each do |item| - if !item.set_menu_items.empty? + if !item.set_menu_items.nil? instance_item_sets = JSON.parse(item.set_menu_items) arr_instance_item_sets = Array.new instance_item_sets.each do |instance_item| diff --git a/app/models/ability.rb b/app/models/ability.rb index 8877fc61..a72a47d2 100755 --- a/app/models/ability.rb +++ b/app/models/ability.rb @@ -183,7 +183,9 @@ class Ability can :index, :home can :show, :home - + elsif user.role == "waiter" + can :index, :home + can :show, :home end end end diff --git a/app/models/order.rb b/app/models/order.rb index 5b696e20..13e0e62b 100755 --- a/app/models/order.rb +++ b/app/models/order.rb @@ -145,6 +145,9 @@ class Order < ApplicationRecord set_order_items.push({"item_instance_code"=>si[:item_instance_code], "quantity"=>si[:quantity], "price"=>set_item[:price]}) end end + set_order_items = set_order_items.to_json + else + set_order_items = nil end # not insert with price 0 @@ -157,7 +160,7 @@ class Order < ApplicationRecord # end OrderItem.processs_item(menu_item[:item_code], item[:item_instance_code], menu_item[:name], menu_item[:alt_name], menu_item[:account_id], - item[:quantity],menu_item[:price], item[:options], set_order_items.to_json, self.id, + item[:quantity],menu_item[:price], item[:options], set_order_items, self.id, self.employee_name, menu_item[:taxable]) #end diff --git a/app/models/sale.rb b/app/models/sale.rb index c5b5fa8b..b5026a9c 100755 --- a/app/models/sale.rb +++ b/app/models/sale.rb @@ -98,7 +98,7 @@ class Sale < ApplicationRecord order.order_items.each do |item| add_item(item) - if item.set_menu_items != "[]" + if !item.set_menu_items.nil? add_sub_item(item.set_menu_items) end end @@ -147,7 +147,7 @@ class Sale < ApplicationRecord items.each do |item| add_item(item) - if item.set_menu_items != "[]" + if !item.set_menu_items.nil? add_sub_item(item.set_menu_items) end @@ -700,8 +700,8 @@ def self.get_item_query() # "JOIN employee_accesses ea ON ea.`employee_id` = sales.cashier_id ") query = query.joins(" JOIN accounts acc ON acc.id = mi.account_id") # query = query.where("i.item_instance_code IS NOT NULL") - query = query.group("acc.title,mi.account_id,i.product_name") - .order("acc.title desc, mi.account_id desc, i.unit_price asc") + query = query.group("acc.title,mi.account_id,mi.menu_category_id,i.product_name") + .order("acc.title desc, mi.account_id desc, mi.menu_category_id desc, i.unit_price asc") end def self.get_other_charges() diff --git a/app/pdf/order_set_item_pdf.rb b/app/pdf/order_set_item_pdf.rb index 1851e93a..30a800b4 100644 --- a/app/pdf/order_set_item_pdf.rb +++ b/app/pdf/order_set_item_pdf.rb @@ -114,7 +114,7 @@ class OrderSetItemPdf < Prawn::Document end #add set menu items - if !order_set_item.set_menu_items.empty? + if !order_set_item.set_menu_items.nil? set_menu_items = JSON.parse(order_set_item.set_menu_items) if !set_menu_items.empty? # json_item_instance_code = nil diff --git a/app/pdf/order_summary_set_pdf.rb b/app/pdf/order_summary_set_pdf.rb index 5a72901c..baab15b8 100644 --- a/app/pdf/order_summary_set_pdf.rb +++ b/app/pdf/order_summary_set_pdf.rb @@ -132,7 +132,7 @@ class OrderSummarySetPdf < Prawn::Document end #add set menu items - if !odi.set_menu_items.empty? + if !odi.set_menu_items.nil? set_menu_items = JSON.parse(odi.set_menu_items) if !set_menu_items.empty? # json_item_instance_code = nil diff --git a/app/views/api/orders/view_orders.json.jbuilder b/app/views/api/orders/view_orders.json.jbuilder index 9f0b14b3..a7759514 100755 --- a/app/views/api/orders/view_orders.json.jbuilder +++ b/app/views/api/orders/view_orders.json.jbuilder @@ -61,12 +61,12 @@ if (@booking) # For YGN BBQ # if adult_count > 0 - # json.per_adult_spent (adult_spent/adult_count) * 0.05 + # json.per_adult_spent adult_spent + ((adult_spent/adult_count) * 0.05) # else json.per_adult_spent 0 # end # if child_count > 0 - # json.per_child_spent (child_spent/child_count) * 0.05 + # json.per_child_spent child_spent + ((child_spent/child_count) * 0.05) # else json.per_child_spent 0 # end diff --git a/app/views/oqs/home/index.html.erb b/app/views/oqs/home/index.html.erb index 2f851919..1f25e275 100755 --- a/app/views/oqs/home/index.html.erb +++ b/app/views/oqs/home/index.html.erb @@ -83,7 +83,7 @@ <%= qid.qty %> ] - <% if !qid.set_menu_items.empty? + <% if !qid.set_menu_items.nil? qid.set_menu_items.each do |item_instance|%>
<%= item_instance %> diff --git a/app/views/origami/home/show.html.erb b/app/views/origami/home/show.html.erb index 0bad6857..1f387be9 100755 --- a/app/views/origami/home/show.html.erb +++ b/app/views/origami/home/show.html.erb @@ -257,7 +257,7 @@ <%= count %> <%= order_item.item_name %> - <% if !order_item.set_menu_items.empty? + <% if !order_item.set_menu_items.nil? order_item.set_menu_items.each do |item_instance| %>
<%= item_instance %> <% end @@ -337,7 +337,7 @@ <%= count %> <%= order_item.item_name %> - <% if !order_item.set_menu_items.empty? + <% if !order_item.set_menu_items.nil? order_item.set_menu_items.each do |item_instance| %>
<%= item_instance %> <% end diff --git a/app/views/origami/rooms/show.html.erb b/app/views/origami/rooms/show.html.erb index 4dc92c53..c6c749cd 100755 --- a/app/views/origami/rooms/show.html.erb +++ b/app/views/origami/rooms/show.html.erb @@ -246,7 +246,7 @@ <%= count %> <%= order_item.item_name %> - <% if !order_item.set_menu_items.empty? + <% if !order_item.set_menu_items.nil? order_item.set_menu_items.each do |item_instance| %>
<%= item_instance %> <% end @@ -315,7 +315,7 @@ <%= count %> <%= order_item.item_name %> - <% if !order_item.set_menu_items.empty? + <% if !order_item.set_menu_items.nil? order_item.set_menu_items.each do |item_instance| %>
<%= item_instance %> <% end diff --git a/app/views/origami/sales/show.html.erb b/app/views/origami/sales/show.html.erb index 827c906a..0eaabce1 100755 --- a/app/views/origami/sales/show.html.erb +++ b/app/views/origami/sales/show.html.erb @@ -201,7 +201,7 @@ <% if @sale.sale_status != 'void' %> <% end %> - +
@@ -271,10 +271,10 @@ $('#back').on('click',function(){ }); }); -// $('#re-print').click(function() { -// var sale_id = $('#sale_id').val(); -// window.location.href = '/origami/'+ sale_id + "/reprint" +$('#re-print').click(function() { + var sale_id = $('#sale_id').val(); + window.location.href = '/origami/'+ sale_id + "/reprint" -// return false; -// }); + return false; + });