78 lines
2.4 KiB
Ruby
78 lines
2.4 KiB
Ruby
class Api::BillController < Api::ApiController
|
|
|
|
#Create invoice based on booking
|
|
#Output and invoice
|
|
def create
|
|
@status = false
|
|
@error_message = "Order ID or Booking ID is require to request for a bill."
|
|
if ShiftSale.current_shift
|
|
#create Bill by Booking ID
|
|
table = 0
|
|
if (params[:booking_id])
|
|
booking = Booking.find(params[:booking_id])
|
|
# for Job
|
|
table = DiningFacility.find(booking.dining_facility_id)
|
|
|
|
if booking
|
|
if booking.sale_id.nil?
|
|
@sale = Sale.new
|
|
@status, @sale_id = @sale.generate_invoice_from_booking(params[:booking_id], current_login_employee, get_cashier)
|
|
else
|
|
@status = true
|
|
@sale_id = booking.sale_id
|
|
end
|
|
end
|
|
|
|
elsif (params[:order_id])
|
|
@sale = Sale.new
|
|
@status, @sale_id = @sale.generate_invoice_from_order(params[:order_id], current_login_employee, get_cashier)
|
|
|
|
# for Job
|
|
booking = Booking.find_by_sale_id(@sale_id)
|
|
table = DiningFacility.find(booking.dining_facility_id)
|
|
end
|
|
Promotion.promo_activate(@sale)
|
|
|
|
BillBroadcastJob.perform_later(table)
|
|
else
|
|
@status = false
|
|
@error_message = "No Current Open Shift"
|
|
end
|
|
|
|
#@sale_data = Sale.find_by_sale_id(@sale_id)
|
|
#@sale_items = SaleItem.where("sale_id=?",@sale_id)
|
|
|
|
# Not Use for these printed bill cannot give customer
|
|
# @sale_data = Sale.find_by_sale_id(@sale_id)
|
|
# @sale_items = SaleItem.where("sale_id=?",@sale_id)
|
|
|
|
# unique_code = "ReceiptBillPdf"
|
|
# #shop detail
|
|
# shop_details = Shop.find(1)
|
|
|
|
# customer= Customer.find(@sale_data.customer_id)
|
|
# # get member information
|
|
# member_info = Customer.get_member_account(customer)
|
|
|
|
|
|
# # get printer info
|
|
# print_settings=PrintSetting.find_by_unique_code(unique_code)
|
|
|
|
# # Calculate Price by accounts
|
|
# item_price_by_accounts = SaleItem.calculate_price_by_accounts(@sale_items)
|
|
|
|
#customer= Customer.find(@sale_data.customer_id)
|
|
# get member information
|
|
#member_info = Customer.get_member_account(customer)
|
|
|
|
# printer = Printer::ReceiptPrinter.new(print_settings)
|
|
# printer.print_receipt_bill(print_settings,@sale_items,@sale_data,customer.name, item_price_by_accounts, member_info, shop_details)
|
|
end
|
|
|
|
|
|
private
|
|
def bill_params
|
|
params.permit(:booking_id, :order_id)
|
|
end
|
|
end
|