class Origami::RequestBillsController < ApplicationController before_action :check_user def check_user if current_user.nil? redirect_to root_path end end # Print Request Bill and add to sale tables def print @sale = Sale.new sale_order=SaleOrder.new if !ShiftSale.current_shift.nil? order_id = params[:id] # order_id bk_order = BookingOrder.find_by_order_id(order_id) order = Order.find(order_id) check_booking = Booking.find_by_booking_id(bk_order.booking_id) if check_booking.dining_facility_id.to_i > 0 table = DiningFacility.find(check_booking.dining_facility_id) else table = nil end if check_booking.sale_id.nil? # Create Sale if it doesn't exist @status, @sale_id = @sale.generate_invoice_from_booking(check_booking.id,current_login_employee, current_user, order.source) @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 # Bind shift sale id to sale # @sale_data.shift_sale_id = shift.id # @sale_data.save # Promotion Activation Promotion.promo_activate(@sale) #bill channel #if ENV["SERVER_MODE"] != 'cloud' ActionCable.server.broadcast "bill_channel",table: table #end if order.source == "quick_service" result = {:status=> @status, :data => @sale.sale_id } render :json => result.to_json end else @status = false @error_message = "No Current Open Shift for This Employee" end # Not Use for these printed bill cannot give customer # unique_code = "ReceiptBillPdf" # #shop detail # shop_details = Shop.find(1) # # 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 price_by_accounts # item_price_by_accounts = SaleItem.calculate_price_by_accounts(@sale_items) # 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 end