Merge branch 'foodcourt' of gitlab.com:code2lab/SXRestaurant into foodcourt

This commit is contained in:
NyanLinHtut
2019-12-18 14:19:06 +06:30
22 changed files with 179 additions and 171 deletions

View File

@@ -1,5 +1,5 @@
class Api::CustomersController < ActionController::API
class Api::CustomersController < Api::ApiController
skip_before_action :authenticate
#List all active customers by name
def index
@customers = Customer.order("name asc")
@@ -17,6 +17,6 @@ class Api::CustomersController < ActionController::API
#Show customer last five order
def get_customer_last_orders
@customer = Customer.find(params[:customer_id])
@sales =Sale.where("sales.customer_id=? and sales.sale_status =?",params[:customer_id],'completed').order("created_at desc").limit(5)
end
end

View File

@@ -46,7 +46,7 @@ class Api::OrdersController < Api::ApiController
@tax_profile = TaxProfile.where("lower(group_type)='cashier'")
# end
#
#
return @shop.to_json
end
@@ -122,8 +122,8 @@ class Api::OrdersController < Api::ApiController
end
@status, @booking = @order.generate
if @status && @booking
Order.process_order_queue(@order.order_id,@order.table_id,@order.source)
if params[:order_source] != "app"
@order.process_order_queue(@order.order_id,@order.table_id,@order.source)
end
if @order.table_id.to_i > 0
table = DiningFacility.find(@booking.dining_facility_id)
@@ -131,12 +131,6 @@ class Api::OrdersController < Api::ApiController
from = getCloudDomain #get sub domain in cloud mode
ActionCable.server.broadcast "order_channel",table: table,type:type,from:from
end
# # for parallel order
# remoteIP = ""
# begin
# @status, @booking = @order.generate
# remoteIP = request.remote_ip
# end while request.remote_ip != remoteIP
if current_user.role != "waiter" && params[:create_type] == "create_pay"
if @status && @booking && (@order.source == 'quick_service') || (@order.source == 'food_court') || (@order.source == 'app')
@status, @sale = Sale.request_bill(@order,current_user,current_user)

View File

@@ -5,7 +5,7 @@ class Api::VerificationsController < Api::ApiController
#TODO - user generate
cus = Customer.new
@cus = cus.draft_customer(phone_number, rand(1000..9999))
@cus = cus.draft_customer(params, rand(1000..9999))
if @cus.verify_status == false
VerifyNumber.send_message(phone_number, @cus.pin_code)
@result = true

View File

@@ -305,5 +305,56 @@ class Foodcourt::AddordersController < BaseFoodcourtController
return from
end
def add_to_existing_order
if params[:booking_id].present? && params[:sale_id].present?
booking = Booking.find(params[:booking_id])
saleobj =Sale.find(params[:sale_id])
order =saleobj.orders[0]
items_arr = []
JSON.parse(params[:order_items]).each { |i|
i["item_instance_code"] = i["item_instance_code"].downcase.to_s
if i["item_instance_code"].include? "ext"
is_extra_time = true
arr_exts = i["item_instance_code"].split("_")
if arr_exts[1].match(/^(\d)+$/)
time = arr_exts[1].to_i*60*i["quantity"].to_i
extra_time = Time.at(time)
end
end
if i["parent_order_item_id"];
items = {"order_item_id": i["order_item_id"],"item_instance_code": i["item_instance_code"],"quantity": i["quantity"],"parent_order_item_id": i["parent_order_item_id"],"options": JSON.parse(i["options"])}
else
items = {"order_item_id": i["order_item_id"],"item_instance_code": i["item_instance_code"],"quantity": i["quantity"],"options": JSON.parse(i["options"])}
end
items_arr.push(items)
}
order.items = items_arr
order.new_booking = false
order.booking_id = booking.booking_id
@status, booking = order.generate
order_array = []
items_arr.each do |item|
order_item =order.order_items.where("item_instance_code=?",item[:item_instance_code]).last
saleobj.add_item (order_item)
if !order_item.set_menu_items.nil?
saleobj.add_sub_item(order_item.set_menu_items)
end
end
# Re-compute for add
saleobj.compute(order.source)
saleobj.save
order.save
booking.save
order_array.push(order.order_id)
receipt_no = saleobj.receipt_no
action_by = current_user.name
type = "ADD_TO_EXISTING"
remark = "#{action_by} add to existing order #{order_array} to Receipt No=>#{receipt_no}"
sale_audit = SaleAudit.record_audit_sale(saleobj.sale_id,remark,action_by,type )
end
result = {:status=> @status}
render :json => result.to_json
end
end

View File

@@ -8,6 +8,15 @@ class Foodcourt::FoodCourtController < ApplicationController
end
def index
if params[:sale_id].present?
sale =Sale.find(params[:sale_id])
if sale
@sale_id =sale.sale_id
@booking_id =sale.bookings[0].booking_id
end
end
today = DateTime.now
day = Date.today.wday
@menus = []

View File

@@ -6,7 +6,7 @@ class Foodcourt::HomeController < BaseFoodcourtController
@webview = check_mobile
@tables = Table.unscoped.all.active.where("shop_code='#{@shop.shop_code}'").order('status desc')
@rooms = Room.unscoped.all.active.where("shop_code='#{@shop.shop_code}'").order('status desc')
@complete = Sale.completed_sale("cashier",@shop.shop_code)
@complete = Sale.completed_sale("cashier")
@orders = Order.includes("sale_orders").where("shop_code='#{@shop.shop_code}' and DATE_FORMAT(date,'%Y-%m-%d') = ? and status != 'billed' and source != 'quick_service'",DateTime.now.strftime('%Y-%m-%d')).order('date desc')
@customers = Customer.pluck("customer_id, name")
@@ -21,7 +21,7 @@ class Foodcourt::HomeController < BaseFoodcourtController
@webview = check_mobile
@tables = Table.unscoped.all.active.where("shop_code='#{@shop.shop_code}'").order('status desc')
@rooms = Room.unscoped.all.active.where("shop_code='#{@shop.shop_code}'").order('status desc')
@complete = Sale.completed_sale("cashier",@shop.shop_code)
@complete = Sale.completed_sale("cashier")
@orders = Order.includes("sale_orders").where("shop_code='#{@shop.shop_code}' and DATE_FORMAT(date,'%Y-%m-%d') = ? and status != 'billed' and source != 'quick_service'",DateTime.now.strftime('%Y-%m-%d')).order('date desc')
@customers = Customer.pluck("customer_id, name")
@shift = ShiftSale.current_open_shift(current_user)

View File

@@ -38,19 +38,6 @@ class Foodcourt::SaleEditController < BaseFoodcourtController
# re-calc tax
saleObj = Sale.find(saleitemObj.sale_id)
# 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
# FOr Sale Audit
action_by = current_user.name
if access_code != "null" && current_user.role == "cashier"
@@ -99,26 +86,6 @@ class Foodcourt::SaleEditController < BaseFoodcourtController
ProductCommission.create_product_commission(@newsaleitem, saleitemObj)
end
# def item_edit
# saleitemId = params[:sale_item_id]
# update_qty = params[:update_qty]
# update_price = params[:update_price]
# saleitemObj = SaleItem.find(saleitemId)
# saleitemObj.status = 'void'
# saleitemObj.save
# @newsaleitem = SaleItem.new
# @newsaleitem = saleitemObj.dup
# @newsaleitem.save
# @newsaleitem.qty = update_qty
# @newsaleitem.price = update_price
# @newsaleitem.unit_price = update_price
# @newsaleitem.taxable_price = update_price
# @newsaleitem.is_taxable = 0
# @newsaleitem.remark = 'edit'
# @newsaleitem.product_name = saleitemObj.product_name + " - updated"
# @newsaleitem.save
# end
def item_edit
saleitemId = params[:sale_item_id]
update_qty = params[:update_qty]
@@ -149,20 +116,6 @@ class Foodcourt::SaleEditController < BaseFoodcourtController
saleitemObj.save
# 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
sale.compute_by_sale_items(sale.total_discount, nil, order_source)
ProductCommission.edit_product_commission(saleitemObj,sale.shop_code)

View File

@@ -5,7 +5,7 @@ class Origami::PendingOrderController < BaseOrigamiController
@cashier_type = params[:type]
@sale = Sale.pending_sale(@cashier_type)
@order = Sale.pending_order(@cashier_type)
@completed = Sale.completed_sale(@cashier_type,@shop.shop_code)
@completed = Sale.completed_sale(@cashier_type)
@customers = Customer.pluck("customer_id, name")
@occupied_table = @sale.count.length + @order.count.length
@@ -36,7 +36,7 @@ class Origami::PendingOrderController < BaseOrigamiController
@cashier_type = params[:type]
@sales = Sale.pending_sale(@cashier_type)
@orders = Sale.pending_order(@cashier_type)
@completed = Sale.completed_sale(@cashier_type,@shop.shop_code)
@completed = Sale.completed_sale(@cashier_type)
@customers = Customer.pluck("customer_id, name")
@occupied_table = @sales.count.length + @orders.count.length
@@ -46,7 +46,7 @@ class Origami::PendingOrderController < BaseOrigamiController
@cashier_type = params[:type]
@sales = Sale.pending_sale(@cashier_type)
@orders = Sale.pending_order(@cashier_type)
@completed = Sale.completed_sale(@cashier_type,@shop.shop_code)
@completed = Sale.completed_sale(@cashier_type)
@customers = Customer.pluck("customer_id, name")
@occupied_table = @sales.count.length + @orders.count.length
@@ -81,7 +81,7 @@ class Origami::PendingOrderController < BaseOrigamiController
@cashier_type = params[:type]
@sales = Sale.pending_sale(@cashier_type)
@orders = Sale.pending_order(@cashier_type)
@completed = Sale.completed_sale(@cashier_type,@shop.shop_code)
@completed = Sale.completed_sale(@cashier_type)
@occupied_table = @sales.count.length + @orders.count.length

View File

@@ -6,7 +6,7 @@ class Settings::OrderQueueStationsController < ApplicationController
# GET /settings/order_queue_stations
# GET /settings/order_queue_stations.json
def index
@settings_order_queue_stations = OrderQueueStation.all
@settings_order_queue_stations = OrderQueueStation.where("shop_code=?",@shop.shop_code)
@settings_order_queue_stations = Kaminari.paginate_array(@settings_order_queue_stations).page(params[:page]).per(50)
end
@@ -29,7 +29,7 @@ class Settings::OrderQueueStationsController < ApplicationController
# POST /settings/order_queue_stations
# POST /settings/order_queue_stations.json
def create
@settings_order_queue_station = OrderQueueStation.new(settings_order_queue_station_params)
@settings_order_queue_station.created_by = current_login_employee.name
@settings_order_queue_station.processing_items = "[]"