114 lines
4.0 KiB
Ruby
Executable File
114 lines
4.0 KiB
Ruby
Executable File
class Origami::ShiftsController < BaseOrigamiController
|
|
def index
|
|
end
|
|
|
|
def show
|
|
@shift = ShiftSale.current_open_shift(current_user.id)
|
|
#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
|
|
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
|
|
|
|
if ENV["SERVER_MODE"] != "cloud" #no print in cloud server
|
|
unique_code = "CloseCashierPdf"
|
|
shop_details = Shop.find(1)
|
|
#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)
|
|
@total_dinein = ShiftSale.get_total_dinein(@shift).total_dinein_amount
|
|
@total_takeway = ShiftSale.get_total_takeway(@shift).total_takeway_amount
|
|
|
|
# get printer info
|
|
print_settings = PrintSetting.find_by_unique_code(unique_code)
|
|
|
|
printer = Printer::CashierStationPrinter.new(print_settings)
|
|
|
|
printer.print_close_cashier(print_settings,cashier_terminal,@shift,shop_details,@sale_taxes,@other_payment,@total_amount_by_account,@total_discount_by_account,@total_member_discount,@total_dinein,@total_takeway)
|
|
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.id)
|
|
|
|
# @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
|