45 lines
1.6 KiB
Ruby
45 lines
1.6 KiB
Ruby
class Origami::RequestBillsController < BaseOrigamiController
|
|
|
|
# Print Request Bill and add to sale tables
|
|
def print
|
|
@sale = Sale.new
|
|
sale_order=SaleOrder.new
|
|
|
|
order_id = params[:id] # order_id
|
|
bk_order = BookingOrder.find_by_order_id(order_id)
|
|
check_booking = Booking.find_by_booking_id(bk_order.booking_id)
|
|
if check_booking.sale_id.nil?
|
|
# Create Sale if it doesn't exist
|
|
puts "current_login_employee"
|
|
puts current_login_employee.name
|
|
@status, @sale_id = @sale.generate_invoice_from_booking(check_booking.id,current_login_employee)
|
|
@sale_data = Sale.find_by_sale_id(@sale_id)
|
|
@sale_items = SaleItem.where("sale_id=?",@sale_id)
|
|
else
|
|
@sale_data = Sale.find_by_sale_id(check_booking.sale_id)
|
|
@sale_items = SaleItem.where("sale_id=?",@sale_data.sale_id)
|
|
end
|
|
|
|
unique_code = "ReceiptBillPdf"
|
|
# customer= Customer.where('customer_id=' +.customer_id)
|
|
|
|
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)
|
|
|
|
# find order id by sale id
|
|
# sale_order = SaleOrder.find_by_sale_id(@sale_data.sale_id)
|
|
|
|
# Calculate Food and Beverage Total
|
|
food_total, beverage_total = SaleItem.calculate_food_beverage(@sale_items)
|
|
|
|
printer = Printer::ReceiptPrinter.new(print_settings)
|
|
|
|
printer.print_receipt_bill(print_settings,@sale_items,@sale_data,customer.name, food_total, beverage_total,member_info)
|
|
# redirect_to origami_path(@sale_data.sale_id)
|
|
|
|
end
|
|
end
|