Files
sx-fc/app/controllers/api/shifts_controller.rb
Thein Lin Kyaw 944f7a7259 fix timezone
2023-02-09 14:55:43 +06:30

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