check no order
This commit is contained in:
@@ -11,45 +11,50 @@ class Api::BillController < Api::ApiController
|
|||||||
table = 0
|
table = 0
|
||||||
if (params[:booking_id])
|
if (params[:booking_id])
|
||||||
booking = Booking.find(params[:booking_id])
|
booking = Booking.find(params[:booking_id])
|
||||||
if booking.checkin_at.utc.strftime("%Y-%m-%d %H:%M") > Time.now.utc.strftime("%Y-%m-%d %H:%M") && booking.checkout_at.nil?
|
if booking.booking_orders.count > 0
|
||||||
@status = false
|
if booking.checkin_at.utc.strftime("%Y-%m-%d %H:%M") > Time.now.utc.strftime("%Y-%m-%d %H:%M") && booking.checkout_at.nil?
|
||||||
@error_message = "Operation failed, Could not request bill!"
|
@status = false
|
||||||
else
|
@error_message = "Operation failed, Could not request bill!"
|
||||||
# for Multiple Cashier by Zone
|
|
||||||
table = DiningFacility.find(booking.dining_facility_id)
|
|
||||||
|
|
||||||
bk_order = BookingOrder.find_by_booking_id(booking.booking_id)
|
|
||||||
order = Order.find(bk_order.order_id)
|
|
||||||
|
|
||||||
cashier_zone = CashierTerminalByZone.find_by_zone_id(table.zone_id)
|
|
||||||
|
|
||||||
shift = ShiftSale.where("shift_started_at is not null and shift_closed_at is null and cashier_terminal_id = #{cashier_zone.cashier_terminal_id}").first
|
|
||||||
|
|
||||||
#for multiple zone with terminal
|
|
||||||
if !shift.nil?
|
|
||||||
cashier = Employee.find(shift.employee_id)
|
|
||||||
else
|
else
|
||||||
multiple_zone = CashierTerminalByZone.where("zone_id = #{table.zone_id}")
|
# for Multiple Cashier by Zone
|
||||||
multiple_zone.each do |zone|
|
table = DiningFacility.find(booking.dining_facility_id)
|
||||||
shift = ShiftSale.where("shift_started_at is not null and shift_closed_at is null and cashier_terminal_id = #{zone.cashier_terminal_id}").first
|
|
||||||
if !shift.nil? then
|
bk_order = BookingOrder.find_by_booking_id(booking.booking_id)
|
||||||
cashier = Employee.find(shift.employee_id)
|
order = Order.find(bk_order.order_id)
|
||||||
break
|
|
||||||
|
cashier_zone = CashierTerminalByZone.find_by_zone_id(table.zone_id)
|
||||||
|
|
||||||
|
shift = ShiftSale.where("shift_started_at is not null and shift_closed_at is null and cashier_terminal_id = #{cashier_zone.cashier_terminal_id}").first
|
||||||
|
|
||||||
|
#for multiple zone with terminal
|
||||||
|
if !shift.nil?
|
||||||
|
cashier = Employee.find(shift.employee_id)
|
||||||
|
else
|
||||||
|
multiple_zone = CashierTerminalByZone.where("zone_id = #{table.zone_id}")
|
||||||
|
multiple_zone.each do |zone|
|
||||||
|
shift = ShiftSale.where("shift_started_at is not null and shift_closed_at is null and cashier_terminal_id = #{zone.cashier_terminal_id}").first
|
||||||
|
if !shift.nil? then
|
||||||
|
cashier = Employee.find(shift.employee_id)
|
||||||
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if booking
|
||||||
|
if booking.sale_id.nil?
|
||||||
|
@sale = Sale.new
|
||||||
|
@status, @sale_id = @sale.generate_invoice_from_booking(params[:booking_id], current_login_employee, cashier, order.source)
|
||||||
|
@sale_data = Sale.find_by_sale_id(@sale_id)
|
||||||
|
else
|
||||||
|
@status = true
|
||||||
|
@sale_id = booking.sale_id
|
||||||
|
@sale_data = Sale.find_by_sale_id(@sale_id)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
else
|
||||||
if booking
|
@status = false
|
||||||
if booking.sale_id.nil?
|
@error_message = "There is no order for '#{params[:booking_id]}'"
|
||||||
@sale = Sale.new
|
|
||||||
@status, @sale_id = @sale.generate_invoice_from_booking(params[:booking_id], current_login_employee, cashier, order.source)
|
|
||||||
@sale_data = Sale.find_by_sale_id(@sale_id)
|
|
||||||
else
|
|
||||||
@status = true
|
|
||||||
@sale_id = booking.sale_id
|
|
||||||
@sale_data = Sale.find_by_sale_id(@sale_id)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
elsif (params[:order_id])
|
elsif (params[:order_id])
|
||||||
order = Order.find(params[:order_id])
|
order = Order.find(params[:order_id])
|
||||||
|
|||||||
@@ -37,8 +37,9 @@ if (@booking)
|
|||||||
json.remark item.remark
|
json.remark item.remark
|
||||||
json.item_status item.order_item_status
|
json.item_status item.order_item_status
|
||||||
@total_amount = @total_amount + (item.price * item.qty)
|
@total_amount = @total_amount + (item.price * item.qty)
|
||||||
|
else
|
||||||
|
json.success false
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
json.sub_total @total_amount
|
json.sub_total @total_amount
|
||||||
|
|||||||
Reference in New Issue
Block a user