136 lines
4.5 KiB
Ruby
Executable File
136 lines
4.5 KiB
Ruby
Executable File
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?
|
|
tax_data = TaxProfile.unscoped.where("group_type='cashier'").pluck(:id)
|
|
customer = Customer.find('CUS-000000000001')
|
|
|
|
puts "data => "
|
|
puts tax_data
|
|
puts customer.tax_profiles
|
|
arr_data = []
|
|
tax_data.each do |value1|
|
|
puts JSON.stringify(customer.tax_profiles)
|
|
if customer.include? value1
|
|
arr_data << value1
|
|
end
|
|
end
|
|
puts "unique => "
|
|
puts arr_data
|
|
# tax_profiles = TaxProfile.unscoped.where("id in ?",arr_data)
|
|
# puts tax_profiles.to_json
|
|
# 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)
|
|
|
|
# # in-duty update
|
|
# in_duties = InDuty.where("booking_id=?",bk_order.booking_id)
|
|
# if !in_duties.empty?
|
|
# in_duties.each do |in_duty|
|
|
# induty = InDuty.find(in_duty.id)
|
|
# induty.sale_id = @sale_id
|
|
# induty.save
|
|
# end
|
|
# end
|
|
# 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
|
|
|
|
# action_by = current_user.name
|
|
# type = "REQUEST_BILL"
|
|
|
|
# remark = "Request bill Receipt No #{@sale_data.receipt_no}"
|
|
# sale_audit = SaleAudit.record_audit_sale(@sale_data.sale_id,remark,action_by,type )
|
|
|
|
# # Promotion Activation
|
|
# Promotion.promo_activate(@sale)
|
|
|
|
# #bill channel
|
|
# if ENV["SERVER_MODE"] == 'cloud'
|
|
# from = request.subdomain + "." + request.domain
|
|
# else
|
|
# from = ""
|
|
# end
|
|
|
|
# ActionCable.server.broadcast "bill_channel",table: table, from: from
|
|
# if order.source == "quick_service"
|
|
# result = {:status=> @status, :data => @sale.sale_id }
|
|
# render :json => result.to_json
|
|
# else
|
|
|
|
# if ENV["SERVER_MODE"] != "cloud" #no print in cloud server
|
|
|
|
# printer = PrintSetting.find_by_unique_code("CheckInOutPdf")
|
|
# unique_code = "CheckInOutPdf"
|
|
# booking = Booking.find_by_booking_id(bk_order.booking_id)
|
|
|
|
# # print when complete click
|
|
# order_queue_printer = Printer::OrderQueuePrinter.new(printer)
|
|
|
|
# if !printer.nil?
|
|
# order_queue_printer.print_check_in_out(printer, booking, table)
|
|
# end
|
|
# end
|
|
# end
|
|
else
|
|
@status = false
|
|
@error_message = "No Current Open Shift for This Employee"
|
|
end
|
|
|
|
def difference(other)
|
|
h = other.each_with_object(Hash.new(0)) { |e,h| h[e] += 1 }
|
|
reject { |e| h[e] > 0 && h[e] -= 1 }
|
|
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
|