From c7b77aebfad0159c7afd69dd69ec8d1f111e2bbe Mon Sep 17 00:00:00 2001 From: Aung Myo Date: Thu, 22 Feb 2018 18:48:59 +0630 Subject: [PATCH] update taday list and addorder --- app/assets/javascripts/OQS.js | 10 +- .../origami/sale_edit_controller.rb | 30 +++-- app/models/menu_item.rb | 124 ++++++++++++++++++ app/models/order_queue_station.rb | 8 +- app/models/printer/order_queue_printer.rb | 6 +- app/models/sale.rb | 7 +- app/pdf/order_summary_pdf.rb | 2 +- app/views/oqs/home/index.html.erb | 7 +- app/views/origami/addorders/detail.html.erb | 27 ++-- 9 files changed, 191 insertions(+), 30 deletions(-) diff --git a/app/assets/javascripts/OQS.js b/app/assets/javascripts/OQS.js index 35e08b4f..f334b31c 100755 --- a/app/assets/javascripts/OQS.js +++ b/app/assets/javascripts/OQS.js @@ -77,11 +77,17 @@ $(document).on('turbolinks:load', function() { }); } } - + + if (data[field]["table_type"]=null) { + table_type = data[field]["table_type"] +'-'+data[field]["zone"] + }else{ + table_type = "No Table" + + } row ='
' +'
' +'
' - +''+data[field]["table_type"]+'-'+ data[field]["zone"] +'' + +''+table_type +'' +'' +''+data[field]["order_id"]+'' +'
' diff --git a/app/controllers/origami/sale_edit_controller.rb b/app/controllers/origami/sale_edit_controller.rb index 4c8bfd87..9c9d98d6 100755 --- a/app/controllers/origami/sale_edit_controller.rb +++ b/app/controllers/origami/sale_edit_controller.rb @@ -33,17 +33,17 @@ class Origami::SaleEditController < BaseOrigamiController saleObj = Sale.find(saleitemObj.sale_id) - order_id = SaleOrder.find_by_sale_id(saleitemObj.sale_id).order_id - order = Order.find(order_id) - puts saleitemObj.to_json - order.order_items.each do |o| - if saleitemObj.product_code == o.item_code - o.qty = saleitemObj.qty * -1 - o.price = saleitemObj.price * -1 - o.save + booking = Booking.find_by_sale_id(saleitemObj.sale_id) + booking.booking_orders.each do |bo| + order = Order.find(bo.order_id) + order.order_items.each do |o| + if saleitemObj.product_code == o.item_code + o.qty = saleitemObj.qty * -1 + o.price = saleitemObj.price * -1 + o.save + end end end - action_by = current_user.id remark = "Void Sale Item ID #{saleitemObj.sale_item_id} | Receipt No #{saleObj.receipt_no} | Item Name ->#{saleitemObj.product_name}-Product Code ->#{saleitemObj.product_code}-Instance Code ->#{saleitemObj.item_instance_code}" sale_audit = SaleAudit.record_audit_for_edit(saleitemObj.sale_id,saleObj.cashier_id, action_by,remark,"SALEITEMVOID" ) @@ -123,6 +123,18 @@ class Origami::SaleEditController < BaseOrigamiController # re-calc tax saleObj = Sale.find(saleitemObj.sale_id) + + order_id = SaleOrder.find_by_sale_id(saleitemObj.sale_id).order_id + order = Order.find(order_id) + + order.order_items.each do |o| + if saleitemObj.product_code == o.item_code + o.qty = update_qty + o.price = update_price + o.save + end + end + saleObj.compute_by_sale_items(saleObj.sale_id, saleObj.sale_items, saleObj.total_discount) ProductCommission.edit_product_commission(saleitemObj) diff --git a/app/models/menu_item.rb b/app/models/menu_item.rb index 67a3c823..818e5c1e 100755 --- a/app/models/menu_item.rb +++ b/app/models/menu_item.rb @@ -79,6 +79,130 @@ class MenuItem < ApplicationRecord end + def self.get_items(menu) + item = Array.new + if menu.menu_items + menu.menu_items do |item| + if item.is_available + # Format for attributes json + attr_format = [] + # Format for attributes json + if item.item_attributes.count > 0 + item.item_attributes.each do|attr_id| + menu_attr = MenuItemAttribute.find(attr_id) + if attr_format.count == 0 + attr_format.push({ type: menu_attr.attribute_type, values: [menu_attr.name] }) + next + end + + attr_format.each do |af| + if menu_attr.attribute_type.in? attr_format.map {|k| k[:type]} + if menu_attr.attribute_type == af[:type] + af[:values].push(menu_attr.name) + end + else + new_attr = {type: menu_attr.attribute_type, values: [ menu_attr.name ] } + attr_format.push(new_attr) + break + end + end + end + end + + # Format for option json + opt_format = [] + # Format for attributes json + if item.item_options.count > 0 + item.item_options.each do|opt| + menu_opt = MenuItemOption.find(opt) + if opt_format.count == 0 + opt_format.push({ type: menu_opt.option_type, values: [menu_opt.name] }) + next + end + + opt_format.each do |of| + if menu_opt.option_type.in? opt_format.map {|k| k[:type]} + if menu_opt.option_type == of[:type] + of[:values].push(menu_opt.name) + end + else + new_opt = {type: menu_opt.option_type, values: [ menu_opt.name ] } + opt_format.push(new_opt) + break + end + end + end + end + + #Menu Item Information + menu_items.id item.id + menu_items.code item.item_code + menu_items.name item.name + menu_items.alt_name item.alt_name + menu_items.image item.image_path.url + menu_items.description item.description + menu_items.information item.information + menu_items.type item.type + menu_items.account_id item.account_id + menu_items.min_qty item.min_qty + menu_items.is_available item.is_available + menu_items.is_sub_item item.is_sub_item + menu_items.unit item.unit + + # Item Sets of Menu Item + item_sets = Array.new() + item.item_sets do |its| + sets.id its.id + sets.name its.name + sets.alt_name its.alt_name + sets.min_selectable_qty its.min_selectable_qty + sets.max_selectable_qty its.max_selectable_qty + instances = Array.new() + its.menu_item_instances do |i| + instan.id i.id + instances.push(instan) + end + item_sets.push(sets) + end + + menu_items.attributes attr_format + menu_items.options opt_format + + instances = Array new() + item.menu_item_instances do |is| + if is.is_available + # Convert id to name for attributes + instance_attr = [] + + is.item_attributes.each do |ia| + # mItemAttr = MenuItemAttribute.find(is) + # instance_attr.push(ia) + mItemAttr = MenuItemAttribute.find(ia).name + instance_attr.push(mItemAttr) + end + + instance.id is.id + instance.code is.item_instance_code + instance.name is.item_instance_name + instance.price is.price + instance.is_available is.is_available + instance.is_default is.is_default + instance.is_on_promotion is.is_on_promotion + instance.promotion_price is.promotion_price + instance.values instance_attr + # json.item_sets is.item_sets + end + instances.push(instance) + end + end + item.push(menu_items) + end + return item + end + end + + + # private # def generate_menu_item_code diff --git a/app/models/order_queue_station.rb b/app/models/order_queue_station.rb index 5e9a2b56..af544ce5 100755 --- a/app/models/order_queue_station.rb +++ b/app/models/order_queue_station.rb @@ -46,10 +46,10 @@ class OrderQueueStation < ApplicationRecord # AssignedOrderItem.assigned_order_item(order, order_item.item_code, oqs) # else - # if (order_item.price != 0) + if (order_item.qty > 0) AssignedOrderItem.assigned_order_item(order, order_item.item_code, order_item.item_instance_code, oqs) oqs_order_items.push(order_item) - # end + end # end end end @@ -81,10 +81,10 @@ class OrderQueueStation < ApplicationRecord # AssignedOrderItem.assigned_order_item(order, order_item.item_code, oqs) # else - # if (order_item.price != 0) + if (order_item.qty > 0) AssignedOrderItem.assigned_order_item(order, order_item.item_code, order_item.item_instance_code, oqs) oqs_order_items.push(order_item) - # end + end # end end end diff --git a/app/models/printer/order_queue_printer.rb b/app/models/printer/order_queue_printer.rb index 4d6371d7..4a8b1653 100755 --- a/app/models/printer/order_queue_printer.rb +++ b/app/models/printer/order_queue_printer.rb @@ -242,7 +242,7 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker left join dining_facilities AS df ON df.id = b.dining_facility_id left join customers as cus ON cus.customer_id = orders.customer_id left join menu_items as item ON item.item_code = order_items.item_code") - .where("order_items.order_items_id = '#{ id }' and order_items.qty > 0") + .where("order_items.order_items_id = '#{ id }'") .group("order_items.item_code") elsif type == "order_summary" OrderItem.select("order_items.order_id, order_items.item_code, order_items.item_name, order_items.qty, order_items.price, order_items.options, order_items.item_order_by as order_by, order_items.created_at as order_at, order_items.set_menu_items, cus.name as customer, df.type, df.name as dining,item.alt_name as alt_name") @@ -252,7 +252,7 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker left join dining_facilities AS df ON df.id = b.dining_facility_id left join customers as cus ON cus.customer_id = orders.customer_id left join menu_items as item ON item.item_code = order_items.item_code") - .where("orders.order_id = '#{ id }' and order_items.qty > 0") + .where("orders.order_id = '#{ id }'") .group("order_items.order_items_id") else # order summary for booking @@ -263,7 +263,7 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker left join dining_facilities AS df ON df.id = b.dining_facility_id left join customers as cus ON cus.customer_id = orders.customer_id left join menu_items as item ON item.item_code = order_items.item_code") - .where("b.booking_id = '#{ id }' and order_items.qty > 0") + .where("b.booking_id = '#{ id }'") end end diff --git a/app/models/sale.rb b/app/models/sale.rb index f381ba39..cf45f3a6 100755 --- a/app/models/sale.rb +++ b/app/models/sale.rb @@ -92,7 +92,12 @@ class Sale < ApplicationRecord self.cashier_id = open_cashier[0].id self.cashier_name = open_cashier[0].name shift_id = ShiftSale.current_open_shift(open_cashier[0].id) - self.shift_sale_id = shift_id.id + if shift_id + self.shift_sale_id = shift_id.id + else + self.shift_sale_id = current_shift.id + end + else self.cashier_id = current_shift.employee_id self.cashier_name = Employee.find(current_shift.employee_id).name diff --git a/app/pdf/order_summary_pdf.rb b/app/pdf/order_summary_pdf.rb index d33ecec8..6c8dacac 100755 --- a/app/pdf/order_summary_pdf.rb +++ b/app/pdf/order_summary_pdf.rb @@ -36,7 +36,7 @@ class OrderSummaryPdf < Prawn::Document # font "public/fonts/Zawgyi-One.ttf" # font "public/fonts/padauk.ttf" - if order[0].dining.present? + if order[0].dining.to_i > 0 text "#{ order[0].type + '-' + order[0].dining + print_status }", :size => self.header_font_size,:align => :center, :left_margin => -20 else text "#{ print_status }", :size => self.header_font_size,:align => :center, :left_margin => -20 diff --git a/app/views/oqs/home/index.html.erb b/app/views/oqs/home/index.html.erb index 1f25e275..2912d38d 100755 --- a/app/views/oqs/home/index.html.erb +++ b/app/views/oqs/home/index.html.erb @@ -72,7 +72,12 @@
- <%= qid.type %>-<%= qid.zone %> + <%if qid.type.present?%> + <%= qid.type %>-<%= qid.zone %> + <%else%> + + <%end%> + <%= qid.order_id %>
diff --git a/app/views/origami/addorders/detail.html.erb b/app/views/origami/addorders/detail.html.erb index 94902672..de9e5750 100755 --- a/app/views/origami/addorders/detail.html.erb +++ b/app/views/origami/addorders/detail.html.erb @@ -46,7 +46,7 @@ <% if type %> <% if !menu.code.include? "SPL" %> -
-
-