diff --git a/app/controllers/origami/payments_controller.rb b/app/controllers/origami/payments_controller.rb index a01e30df..d45e4039 100755 --- a/app/controllers/origami/payments_controller.rb +++ b/app/controllers/origami/payments_controller.rb @@ -17,8 +17,11 @@ class Origami::PaymentsController < BaseOrigamiController # else # table = DiningFacility.find(bookings[0].dining_facility_id) # end - - if bookings[0].dining_facility_id.to_i > 0 + shift = ShiftSale.current_open_shift(current_user.id) + if !shift.nil? + cashier_terminal = CashierTerminal.find(shift.cashier_terminal_id) + else + if bookings[0].dining_facility_id.to_i > 0 table = DiningFacility.find(bookings[0].dining_facility_id) cashier_zone = CashierTerminalByZone.find_by_zone_id(table.zone_id) cashier_terminal = CashierTerminal.find(cashier_zone.cashier_terminal_id) @@ -26,6 +29,7 @@ class Origami::PaymentsController < BaseOrigamiController shift = ShiftSale.find(saleObj.shift_sale_id) cashier_terminal = CashierTerminal.find(shift.cashier_terminal_id) end + end # if ENV["SERVER_MODE"] != "cloud" #no print in cloud server receipt_bill_a5_pdf = Lookup.collection_of("print_settings") #print_settings with name:ReceiptBillA5Pdf @@ -141,17 +145,23 @@ class Origami::PaymentsController < BaseOrigamiController # For Cashier by Zone # bookings = Booking.where("sale_id='#{sale_id}'") bookings = Booking.find_by_sale_id(sale_id) - if bookings.dining_facility_id.to_i > 0 - table = DiningFacility.find(bookings.dining_facility_id) - cashier_zone = CashierTerminalByZone.find_by_zone_id(table.zone_id) - cashier_terminal = CashierTerminal.find(cashier_zone.cashier_terminal_id) - - type = 'payment' - from = getCloudDomain #get sub domain in cloud mode - ActionCable.server.broadcast "order_channel",table: table,type:type,from:from - else - shift = ShiftSale.find(saleObj.shift_sale_id) + + shift = ShiftSale.current_open_shift(current_user.id) + if !shift.nil? cashier_terminal = CashierTerminal.find(shift.cashier_terminal_id) + else + if bookings.dining_facility_id.to_i > 0 + table = DiningFacility.find(bookings.dining_facility_id) + cashier_zone = CashierTerminalByZone.find_by_zone_id(table.zone_id) + cashier_terminal = CashierTerminal.find(cashier_zone.cashier_terminal_id) + + type = 'payment' + from = getCloudDomain #get sub domain in cloud mode + ActionCable.server.broadcast "order_channel",table: table,type:type,from:from + else + shift = ShiftSale.find(saleObj.shift_sale_id) + cashier_terminal = CashierTerminal.find(shift.cashier_terminal_id) + end end # For Print @@ -443,15 +453,19 @@ class Origami::PaymentsController < BaseOrigamiController # else # table = DiningFacility.find(bookings[0].dining_facility_id) # end - - if bookings[0].dining_facility_id.to_i > 0 + shift = ShiftSale.current_open_shift(current_user.id) + if !shift.nil? + cashier_terminal = CashierTerminal.find(shift.cashier_terminal_id) + else + if bookings[0].dining_facility_id.to_i > 0 table = DiningFacility.find(bookings[0].dining_facility_id) cashier_zone = CashierTerminalByZone.find_by_zone_id(table.zone_id) cashier_terminal = CashierTerminal.find(cashier_zone.cashier_terminal_id) - else - shift = ShiftSale.find(saleObj.shift_sale_id) - cashier_terminal = CashierTerminal.find(shift.cashier_terminal_id) - end + else + shift = ShiftSale.find(saleObj.shift_sale_id) + cashier_terminal = CashierTerminal.find(shift.cashier_terminal_id) + end + end # if ENV["SERVER_MODE"] != "cloud" #no print in cloud server receipt_bill_a5_pdf = Lookup.collection_of("print_settings") #print_settings with name:ReceiptBillA5Pdf @@ -551,22 +565,21 @@ class Origami::PaymentsController < BaseOrigamiController # For Cashier by Zone bookings = Booking.where("sale_id='#{sale_id}'") - # if bookings.count > 1 - # # for Multiple Booking - # table = DiningFacility.find(bookings[0].dining_facility_id) - # else - # table = DiningFacility.find(bookings[0].dining_facility_id) - # end - if bookings[0].dining_facility_id.to_i > 0 - table = DiningFacility.find(bookings[0].dining_facility_id) - cashier_zone = CashierTerminalByZone.find_by_zone_id(table.zone_id) - cashier_terminal = CashierTerminal.find(cashier_zone.cashier_terminal_id) - else - shift = ShiftSale.find(saleObj.shift_sale_id) - cashier_terminal = CashierTerminal.find(shift.cashier_terminal_id) - end - + shift = ShiftSale.current_open_shift(current_user.id) + if !shift.nil? + cashier_terminal = CashierTerminal.find(shift.cashier_terminal_id) + else + if bookings[0].dining_facility_id.to_i > 0 + table = DiningFacility.find(bookings[0].dining_facility_id) + cashier_zone = CashierTerminalByZone.find_by_zone_id(table.zone_id) + cashier_terminal = CashierTerminal.find(cashier_zone.cashier_terminal_id) + else + shift = ShiftSale.find(saleObj.shift_sale_id) + cashier_terminal = CashierTerminal.find(shift.cashier_terminal_id) + end + end + # Re-call Sale Data saleObj = Sale.find(sale_id) diff --git a/app/models/sale.rb b/app/models/sale.rb index 104a7280..129c211c 100644 --- a/app/models/sale.rb +++ b/app/models/sale.rb @@ -84,12 +84,12 @@ class Sale < ApplicationRecord # 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) + # shift with terminal zone # 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? @@ -112,8 +112,6 @@ class Sale < ApplicationRecord else 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) @@ -122,11 +120,6 @@ class Sale < ApplicationRecord else self.shift_sale_id = current_shift.id end - else - 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 self.cashier_name = Employee.find(current_shift.employee_id).name