diff --git a/app/controllers/origami/split_bill_controller.rb b/app/controllers/origami/split_bill_controller.rb index 4c74d4a7..cb01cbfd 100644 --- a/app/controllers/origami/split_bill_controller.rb +++ b/app/controllers/origami/split_bill_controller.rb @@ -97,11 +97,11 @@ class Origami::SplitBillController < BaseOrigamiController cashier_zone = CashierTerminalByZone.find_by_zone_id(table.zone_id) else table = nil + cashier_zone = nil end # shift_by_terminal = ShiftSale.find_by_cashier_terminal_id_and_shift_closed_at(cashier_zone.cashier_terminal_id,nil) # get_cashier_by_terminal = Employee.find(shift_by_terminal.employee_id) - get_cashier_by_terminal = current_user if booking if booking.sale_id.nil? @@ -208,17 +208,7 @@ class Origami::SplitBillController < BaseOrigamiController end # begin - order = Order.new - order.source = "cashier" - order.order_type = order_type - order.customer_id = params[:customer_id] == ""? "CUS-000000000001" : params[:customer_id] # for no customer id from mobile - order.item_count = order_items.count - order.status = "new" - order.table_id = params[:dining_id] # this is dining facilities's id - order.waiters = current_user.name - order.employee_name = current_user.name - order.guest_info = nil - order.save! + create_order(params,order_type,order_items.count,current_user) BookingOrder.create({:booking_id => booking.booking_id, :order_id => order.order_id}) @@ -260,17 +250,7 @@ class Origami::SplitBillController < BaseOrigamiController end # begin - order = Order.new - order.source = "cashier" - order.order_type = order_type - order.customer_id = params[:customer_id] == ""? "CUS-000000000001" : params[:customer_id] # for no customer id from mobile - order.item_count = order_items.count - order.status = "new" - order.table_id = params[:dining_id] # this is dining facilities's id - order.waiters = current_user.name - order.employee_name = current_user.name - order.guest_info = nil - order.save! + create_order(params,order_type,order_items.count,current_user) BookingOrder.create({:booking_id => booking.booking_id, :order_id => order.order_id}) @@ -297,17 +277,7 @@ class Origami::SplitBillController < BaseOrigamiController end # begin - order = Order.new - order.source = "cashier" - order.order_type = order_type - order.customer_id = params[:customer_id] == ""? "CUS-000000000001" : params[:customer_id] # for no customer id from mobile - order.item_count = order_items.count - order.status = "new" - order.table_id = params[:dining_id] # this is dining facilities's id - order.waiters = current_user.name - order.employee_name = current_user.name - order.guest_info = nil - order.save! + create_order(params,order_type,order_items.count,current_user) BookingOrder.create({:booking_id => booking.booking_id, :order_id => order.order_id}) @@ -319,7 +289,7 @@ class Origami::SplitBillController < BaseOrigamiController end sale = Sale.new - status, sale_id = sale.generate_invoice_from_booking(booking.booking_id, current_user, get_cashier_by_terminal) + status, sale_id = sale.generate_invoice_from_booking(booking.booking_id, current_user, current_user) sale_data = Sale.find_by_sale_id(sale_id) end @@ -337,9 +307,36 @@ class Origami::SplitBillController < BaseOrigamiController end end + def create_order(params,order_type,items_count,current_user) + order = Order.new + order.source = "cashier" + order.order_type = order_type + order.customer_id = params[:customer_id] == ""? "CUS-000000000001" : params[:customer_id] # for no customer id from mobile + order.item_count = items_count + order.status = "new" + order.table_id = params[:dining_id] # this is dining facilities's id + order.waiters = current_user.name + order.employee_name = current_user.name + order.guest_info = nil + order.save! + end + def update_order_item(order_id, order_item) orderItem = OrderItem.find(order_item["id"]) if orderItem.qty.to_f != order_item['qty'].to_f + set_menu_items_obj = Array.new + if !orderItem.set_menu_items.nil? + instance_item_sets = JSON.parse(orderItem.set_menu_items) + instance_item_sets.each_with_index do |instance_item, instance_index| + instance_item_sets[instance_index]["quantity"] = (instance_item["quantity"].to_i - order_item['qty'].to_i).to_s + "[{\"item_instance_code\":\"psi002in001\",\"quantity\":\"2\",\"price\":\"5500.0\"}]" + set_menu_items_obj.push({'item_instance_code' => instance_item["item_instance_code"], 'quantity' => order_item['qty'], 'price' => instance_item["price"]}) + end + orderItem.set_menu_items = instance_item_sets.to_json + else + set_menu_items_obj = nil + end + OrderItem.processs_item(orderItem.item_code, orderItem.item_instance_code, orderItem.item_name, @@ -348,7 +345,7 @@ class Origami::SplitBillController < BaseOrigamiController order_item['qty'], orderItem.price, orderItem.options, - orderItem.set_menu_items, + set_menu_items_obj.to_json, order_id, orderItem.item_order_by, orderItem.taxable)