diff --git a/app/models/sale.rb b/app/models/sale.rb index a5858544..4dcbba14 100644 --- a/app/models/sale.rb +++ b/app/models/sale.rb @@ -81,11 +81,15 @@ class Sale < ApplicationRecord #Default Tax - Values self.tax_type = "exclusive" + # current cashier login + open_cashier = Employee.where("role = 'cashier' AND token_session <> ''") + current_shift = ShiftSale.current_shift + # shift with terminal zone + table = DiningFacility.find(booking.dining_facility_id) + cashier_zone = CashierTerminalByZone.find_by_zone_id(table.zone_id) # set cashier if order_source.downcase == "emenu" - table = DiningFacility.find(booking.dining_facility_id) - cashier_zone = CashierTerminalByZone.find_by_zone_id(table.zone_id) shift = ShiftSale.where("shift_started_at is not null and shift_closed_at is null and cashier_terminal_id = #{cashier_zone.cashier_terminal_id}").first #for multiple zone with terminal if shift.nil? @@ -98,24 +102,30 @@ class Sale < ApplicationRecord end end else - open_cashier = Employee.where("role = 'cashier' AND token_session <> ''") - current_shift = ShiftSale.current_shift shift = ShiftSale.current_open_shift(cashier.id) end - # set cashier - if shift != nil + # set cashier + if shift != nil #if current login employee open shift self.cashier_id = cashier.id self.cashier_name = cashier.name self.shift_sale_id = shift.id else - if open_cashier.count>0 - self.cashier_id = open_cashier[0].id - self.cashier_name = open_cashier[0].name - shift_id = ShiftSale.current_open_shift(open_cashier[0].id) - if shift_id - self.shift_sale_id = shift_id.id + if open_cashier.count>0 # if we have two open cashier + # table and terminal in multiple shift + shift = ShiftSale.where("shift_started_at is not null and shift_closed_at is null and cashier_terminal_id = #{cashier_zone.cashier_terminal_id}").first + if shift.nil? + self.cashier_id = open_cashier[0].id + self.cashier_name = open_cashier[0].name + shift_id = ShiftSale.current_open_shift(open_cashier[0].id) + if shift_id + self.shift_sale_id = shift_id.id + else + self.shift_sale_id = current_shift.id + end else - self.shift_sale_id = current_shift.id + self.cashier_id = shift.employee_id + self.cashier_name = Employee.find(shift.employee_id).name + self.shift_sale_id = shift.id end else self.cashier_id = current_shift.employee_id