91 lines
3.4 KiB
Ruby
91 lines
3.4 KiB
Ruby
class Api::ShiftsController < Api::ApiController
|
|
# skip_before_action :authenticate
|
|
|
|
|
|
def create
|
|
opening_balance = 0
|
|
cashier_terminal_param = params[:cashier_terminal]
|
|
|
|
# Multiple Cashier
|
|
cashier_terminal = CashierTerminal.find(cashier_terminal_param)
|
|
if cashier_terminal.is_currently_login
|
|
render json: JSON.generate({:status => false, :error_message => "Cashier Terminal already signin!"})
|
|
else
|
|
# Update Cashier Terminal
|
|
cashier_terminal.is_currently_login = 1
|
|
cashier_terminal.save
|
|
|
|
@shift_sale = ShiftSale.new
|
|
if @shift_sale.create(opening_balance,cashier_terminal_param, current_login_employee)
|
|
@status = true
|
|
@message = "Cashier Terminal successfully signin."
|
|
# render json: JSON.generate({:status => true, :message => "Cashier Terminal successfully signin.", :shift => ActiveSupport::JSON.encode(@shift_sale)})
|
|
else
|
|
@status = false
|
|
@error_message = "Some error occurred!"
|
|
# render json: JSON.generate({:status => false, :error_message => "Some error occurred!"})
|
|
end
|
|
end
|
|
end
|
|
|
|
def update
|
|
closing_balance = 0
|
|
shift_id = params[:shift_id]
|
|
|
|
@shift = ShiftSale.find_by_id(shift_id)
|
|
if !@shift.nil?
|
|
if @shift.shift_closed_at.nil?
|
|
@shift.shift_closed_at = Time.current
|
|
@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
|
|
|
|
@shop = current_shop
|
|
|
|
@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,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")
|
|
|
|
logout_status = Employee.logout(current_token)
|
|
if logout_status
|
|
@status = true
|
|
@message = "Shift close successfully."
|
|
else
|
|
@status = false
|
|
@message = "Session Token Invalid or Missing"
|
|
end
|
|
else
|
|
@status = false
|
|
@message = "Shift already close!"
|
|
end
|
|
else
|
|
@status = false
|
|
@message = "Wrong shift!"
|
|
end
|
|
end
|
|
end
|