73 lines
2.0 KiB
Ruby
73 lines
2.0 KiB
Ruby
class Origami::SplitBillController < BaseOrigamiController
|
|
authorize_resource :class => false
|
|
|
|
def index
|
|
dining_id = params[:dining_id]
|
|
@table = DiningFacility.find(dining_id)
|
|
@booking = @table.get_booking
|
|
@order_items = Array.new
|
|
if @booking
|
|
@booking.booking_orders.each do |booking_order|
|
|
@order = Order.find(booking_order.order_id)
|
|
if (@order.status == "new")
|
|
@order.order_items.each do |item|
|
|
@order_items.push(item)
|
|
end
|
|
end
|
|
end
|
|
else
|
|
@booking = nil
|
|
end
|
|
end
|
|
|
|
def create
|
|
order_items = JSON.parse(params[:order_items])
|
|
# byebug
|
|
status = false
|
|
if shift_by_terminal = ShiftSale.current_open_shift(get_cashier[0].id)
|
|
#create Bill by Booking ID
|
|
table = 0
|
|
if !params[:booking_id].empty?
|
|
booking = Booking.find(params[:booking_id])
|
|
# for Multiple Cashier by Zone
|
|
table = DiningFacility.find(booking.dining_facility_id)
|
|
|
|
cashier_zone = CashierTerminalByZone.find_by_zone_id(table.zone_id)
|
|
|
|
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)
|
|
|
|
if booking
|
|
if booking.sale_id.nil?
|
|
sale = Sale.new
|
|
status, sale_id = sale.generate_invoice_from_booking(params[:booking_id], current_user, get_cashier_by_terminal)
|
|
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
|
|
else
|
|
puts "new booking"
|
|
puts "new order"
|
|
puts "update order_id in order"
|
|
puts "do process"
|
|
end
|
|
|
|
# Bind shift sale id to sale
|
|
sale_data.shift_sale_id = shift_by_terminal.id
|
|
sale_data.save
|
|
|
|
Promotion.promo_activate(sale)
|
|
|
|
BillBroadcastJob.perform_later(table)
|
|
|
|
render :json => { status: status }
|
|
else
|
|
render :json => { status: false, error_message: 'No Current Open Shift!'}
|
|
end
|
|
end
|
|
|
|
end
|