158 lines
6.0 KiB
Ruby
Executable File
158 lines
6.0 KiB
Ruby
Executable File
class Origami::ShiftsController < BaseOrigamiController
|
|
def index
|
|
end
|
|
|
|
def show
|
|
@cashier_type = params[:type]
|
|
@shift = ShiftSale.current_open_shift(current_user)
|
|
#for bank integration
|
|
bank_integration = Lookup.collection_of('bank_integration')
|
|
@bank_integration = 0
|
|
if !bank_integration[0].nil?
|
|
@bank_integration = bank_integration[0][1]
|
|
end
|
|
|
|
end
|
|
|
|
def new
|
|
@float = Lookup.where('lookup_type=?','float_value')
|
|
@terminal = CashierTerminal.available
|
|
end
|
|
|
|
def create
|
|
opening_balance = params[:opening_balance]
|
|
cashier_terminal_param = params[:cashier_terminal]
|
|
|
|
# Multiple Cashier
|
|
cashier_terminal = CashierTerminal.find(cashier_terminal_param)
|
|
if cashier_terminal.is_currently_login
|
|
respond_to do |format|
|
|
format.html { redirect_to settings_order_queue_stations_url, notice: 'Cashier Terminal already signin!' }
|
|
end
|
|
end
|
|
|
|
# Update Cashier Terminal
|
|
cashier_terminal.is_currently_login = 1
|
|
cashier_terminal.save
|
|
|
|
@shift_sale = ShiftSale.new
|
|
@shift_sale.create(opening_balance,cashier_terminal_param, current_user)
|
|
end
|
|
|
|
|
|
|
|
def update_shift
|
|
closing_balance = params[:closing_balance]
|
|
shift_id = params[:shift_id]
|
|
@shift = ShiftSale.find_by_id(shift_id)
|
|
if @shift
|
|
@shift.shift_closed_at = DateTime.now.utc
|
|
@shift.closing_balance = closing_balance.to_f
|
|
@shift.save
|
|
|
|
# Multiple Cashier
|
|
cashier_terminal = @shift.cashier_terminal
|
|
cashier_terminal.is_currently_login = 0
|
|
cashier_terminal.save
|
|
|
|
#add shift_sale_id to card_settle_trans
|
|
bank_integration = Lookup.find_by_lookup_type('bank_integration')
|
|
if !bank_integration.nil?
|
|
card_settle_trans = CardSettleTran.select('id').where(['shift_sale_id IS NULL and status IS NOT NULL'])
|
|
|
|
card_settle_trans.each do |data|
|
|
card_sett_trans = CardSettleTran.find(data.id)
|
|
card_sett_trans.shift_sale_id = @shift.id
|
|
card_sett_trans.save()
|
|
end
|
|
end
|
|
|
|
if ENV["SERVER_MODE"] != "cloud" #no print in cloud server
|
|
|
|
|
|
|
|
# if !close_cashier_print[0].nil?
|
|
# @close_cashier_print = close_cashier_print[0][1]
|
|
# end
|
|
close_cashier_pdf = Lookup.collection_of("print_settings")
|
|
unique_code = "CloseCashierPdf"
|
|
|
|
if !close_cashier_pdf.empty?
|
|
close_cashier_pdf.each do |close_cashier|
|
|
if close_cashier[0] == 'CloseCashierCustomisePdf'
|
|
if close_cashier[1] == '1'
|
|
unique_code="CloseCashierCustomisePdf"
|
|
else
|
|
unique_code="CloseCashierPdf"
|
|
end
|
|
end
|
|
end
|
|
end
|
|
#get tax
|
|
shift_obj = ShiftSale.where('id =?',@shift.id)
|
|
sale_items = ''
|
|
@lookup = Lookup.shift_sale_items_lookup_value
|
|
if @lookup.to_i == 1
|
|
@sale_items = Sale.get_shift_sale_items(@shift.id)
|
|
other_charges = Sale.get_other_charges()
|
|
@total_other_charges_info = other_charges.where("sales.shift_sale_id IN (?) and sale_status='completed'",@shift)
|
|
end
|
|
@sale_taxes = Sale.get_separate_tax(shift_obj,from=nil,to=nil,type='')
|
|
@total_waste = Sale.get_total_waste(shift_id).sum(:grand_total)
|
|
@total_spoile = Sale.get_total_spoile(shift_id).sum(:grand_total)
|
|
#other payment details for mpu or visa like card
|
|
@other_payment = ShiftSale.get_by_shift_other_payment(@shift)
|
|
|
|
# Calculate price_by_accounts
|
|
@total_amount_by_account = ShiftSale.calculate_total_price_by_accounts(@shift,'amount')
|
|
@total_discount_by_account = ShiftSale.calculate_total_price_by_accounts(@shift,'discount')
|
|
@total_member_discount = ShiftSale.get_total_member_discount(@shift)
|
|
@total_dinein = ShiftSale.get_total_dinein(@shift).total_dinein_amount
|
|
@total_takeway = ShiftSale.get_total_takeway(@shift).total_takeway_amount
|
|
@total_other_charges = ShiftSale.get_total_other_charges(@shift).total_other_charges_amount
|
|
@total_credit_payments = ShiftSale.get_shift_sales_with_credit_payment(shift_id).total_credit_payments
|
|
@payment_methods = PaymentMethodSetting.where("is_active='1'").pluck("payment_method")
|
|
# get printer info
|
|
print_settings = PrintSetting.find_by_unique_code(unique_code)
|
|
printer = Printer::CashierStationPrinter.new(print_settings)
|
|
|
|
# print close cashier setting
|
|
close_cashier_print = Lookup.collection_of('close_cashier_print')
|
|
if close_cashier_print.empty?
|
|
@settings_lookup = Lookup.new(lookup_type: "close_cashier_print", name: "CloseCashierPrint", value: "1")
|
|
@settings_lookup.save
|
|
end
|
|
find_close_cashier_print = Lookup.collection_of('close_cashier_print')
|
|
if find_close_cashier_print[0][1].to_i > 0
|
|
printer.print_close_cashier(print_settings,cashier_terminal, @shift, @sale_items, @total_other_charges_info, shop_details,@sale_taxes,@other_payment,@total_amount_by_account,@total_discount_by_account,@total_member_discount,@total_dinein,@total_takeway,@total_other_charges,@total_waste,@total_spoile,@total_credit_payments,@payment_methods)
|
|
end
|
|
end
|
|
end
|
|
Employee.logout(session[:session_token])
|
|
session[:session_token] = nil
|
|
end
|
|
|
|
def edit
|
|
end
|
|
|
|
def sale_summary
|
|
@shift = ShiftSale.current_open_shift(current_user)
|
|
|
|
# @shift = ShiftSale.find_by_id(shift_id)
|
|
if @shift
|
|
#get tax
|
|
shift_obj = ShiftSale.where('id =?',@shift.id)
|
|
@sale_taxes = Sale.get_separate_tax(shift_obj,from=nil,to=nil,type='')
|
|
#other payment details for mpu or visa like card
|
|
@other_payment = ShiftSale.get_by_shift_other_payment(@shift)
|
|
|
|
# Calculate price_by_accounts
|
|
@total_amount_by_account = ShiftSale.calculate_total_price_by_accounts(@shift,'amount')
|
|
@total_discount_by_account = ShiftSale.calculate_total_price_by_accounts(@shift,'discount')
|
|
@total_member_discount = ShiftSale.get_total_member_discount(@shift)
|
|
end
|
|
|
|
end
|
|
|
|
end
|