split bill process
This commit is contained in:
@@ -97,11 +97,11 @@ class Origami::SplitBillController < BaseOrigamiController
|
|||||||
cashier_zone = CashierTerminalByZone.find_by_zone_id(table.zone_id)
|
cashier_zone = CashierTerminalByZone.find_by_zone_id(table.zone_id)
|
||||||
else
|
else
|
||||||
table = nil
|
table = nil
|
||||||
|
cashier_zone = nil
|
||||||
end
|
end
|
||||||
|
|
||||||
# shift_by_terminal = ShiftSale.find_by_cashier_terminal_id_and_shift_closed_at(cashier_zone.cashier_terminal_id,nil)
|
# 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 = Employee.find(shift_by_terminal.employee_id)
|
||||||
get_cashier_by_terminal = current_user
|
|
||||||
|
|
||||||
if booking
|
if booking
|
||||||
if booking.sale_id.nil?
|
if booking.sale_id.nil?
|
||||||
@@ -208,17 +208,7 @@ class Origami::SplitBillController < BaseOrigamiController
|
|||||||
end
|
end
|
||||||
|
|
||||||
# begin
|
# begin
|
||||||
order = Order.new
|
create_order(params,order_type,order_items.count,current_user)
|
||||||
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!
|
|
||||||
|
|
||||||
BookingOrder.create({:booking_id => booking.booking_id, :order_id => order.order_id})
|
BookingOrder.create({:booking_id => booking.booking_id, :order_id => order.order_id})
|
||||||
|
|
||||||
@@ -260,17 +250,7 @@ class Origami::SplitBillController < BaseOrigamiController
|
|||||||
end
|
end
|
||||||
|
|
||||||
# begin
|
# begin
|
||||||
order = Order.new
|
create_order(params,order_type,order_items.count,current_user)
|
||||||
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!
|
|
||||||
|
|
||||||
BookingOrder.create({:booking_id => booking.booking_id, :order_id => order.order_id})
|
BookingOrder.create({:booking_id => booking.booking_id, :order_id => order.order_id})
|
||||||
|
|
||||||
@@ -297,17 +277,7 @@ class Origami::SplitBillController < BaseOrigamiController
|
|||||||
end
|
end
|
||||||
|
|
||||||
# begin
|
# begin
|
||||||
order = Order.new
|
create_order(params,order_type,order_items.count,current_user)
|
||||||
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!
|
|
||||||
|
|
||||||
BookingOrder.create({:booking_id => booking.booking_id, :order_id => order.order_id})
|
BookingOrder.create({:booking_id => booking.booking_id, :order_id => order.order_id})
|
||||||
|
|
||||||
@@ -319,7 +289,7 @@ class Origami::SplitBillController < BaseOrigamiController
|
|||||||
end
|
end
|
||||||
|
|
||||||
sale = Sale.new
|
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)
|
sale_data = Sale.find_by_sale_id(sale_id)
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -337,9 +307,36 @@ class Origami::SplitBillController < BaseOrigamiController
|
|||||||
end
|
end
|
||||||
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)
|
def update_order_item(order_id, order_item)
|
||||||
orderItem = OrderItem.find(order_item["id"])
|
orderItem = OrderItem.find(order_item["id"])
|
||||||
if orderItem.qty.to_f != order_item['qty'].to_f
|
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.processs_item(orderItem.item_code,
|
||||||
orderItem.item_instance_code,
|
orderItem.item_instance_code,
|
||||||
orderItem.item_name,
|
orderItem.item_name,
|
||||||
@@ -348,7 +345,7 @@ class Origami::SplitBillController < BaseOrigamiController
|
|||||||
order_item['qty'],
|
order_item['qty'],
|
||||||
orderItem.price,
|
orderItem.price,
|
||||||
orderItem.options,
|
orderItem.options,
|
||||||
orderItem.set_menu_items,
|
set_menu_items_obj.to_json,
|
||||||
order_id,
|
order_id,
|
||||||
orderItem.item_order_by,
|
orderItem.item_order_by,
|
||||||
orderItem.taxable)
|
orderItem.taxable)
|
||||||
|
|||||||
Reference in New Issue
Block a user