diff --git a/app/controllers/origami/addorders_controller.rb b/app/controllers/origami/addorders_controller.rb index 500e1ff8..9da6b7a6 100755 --- a/app/controllers/origami/addorders_controller.rb +++ b/app/controllers/origami/addorders_controller.rb @@ -102,9 +102,13 @@ class Origami::AddordersController < ApplicationController#BaseOrigamiController if !params["booking_id"].nil? # check booking id is already completed. booking = Booking.find(params[:booking_id]) - + if !params[:table_id].nil? + table_status = booking.dining_facility_id.to_i == params[:table_id].to_i + else + table_status = true + end if booking - if booking.dining_facility_id.to_i == params[:table_id].to_i && booking.booking_status != 'moved' + if table_status && booking.booking_status != 'moved' if !booking.sale_id.nil? sale_status = check_order_with_booking(booking) if sale_status @@ -115,17 +119,21 @@ class Origami::AddordersController < ApplicationController#BaseOrigamiController @order.booking_id = params[:booking_id] end else + if !params[:table_id].nil? sale_status = check_order_with_table(params[:table_id]) if sale_status return return_json_status_with_code(400, "bill requested") end + end end end #booking exists else - sale_status = check_order_with_table(params[:table_id]) - if sale_status - # return false , @message = "bill requested" - return return_json_status_with_code(400, "bill requested") + if !params[:table_id].nil? + sale_status = check_order_with_table(params[:table_id]) + if sale_status + # return false , @message = "bill requested" + return return_json_status_with_code(400, "bill requested") + end end end diff --git a/app/models/order.rb b/app/models/order.rb index 0ca06316..5b022b57 100755 --- a/app/models/order.rb +++ b/app/models/order.rb @@ -25,23 +25,30 @@ class Order < ApplicationRecord booking = nil if self.new_booking + if !self.table_id.nil? + table_id = self.table_id + else + table_id = nil + end #add extra time if self.is_extra_time && self.extra_time - booking = Booking.create({:dining_facility_id => self.table_id,:type => "TableBooking", + booking = Booking.create({:dining_facility_id => table_id,:type => "TableBooking", :checkin_at => Time.now.utc,:checkout_at => Time.now.utc + self.extra_time.to_i, :checkin_by => self.employee_name, :booking_status => "assign" }) else - booking = Booking.create({:dining_facility_id => self.table_id,:type => "TableBooking", + booking = Booking.create({:dining_facility_id => table_id,:type => "TableBooking", :checkin_at => Time.now.utc, :checkin_by => self.employee_name, :booking_status => "assign" }) end #end extra time + if !self.table_id.nil? + table = DiningFacility.find(self.table_id) + table.status = "occupied" + table.save + end - table = DiningFacility.find(self.table_id) - table.status = "occupied" - table.save else booking = Booking.find(self.booking_id) #add extra time diff --git a/app/models/sale.rb b/app/models/sale.rb index 6c6f5795..f42b62a0 100755 --- a/app/models/sale.rb +++ b/app/models/sale.rb @@ -1225,57 +1225,6 @@ end return query end - def self.pending_order - query = Sale.all - query = query.joins("join sale_orders as sale_orders on sale_orders.sale_id = sales.sale_id") - .joins("join orders as orders on orders.order_id = sale_orders.order_id") - query = query.where("sales.sale_status = 'new' AND orders.status = 'billed' AND orders.source =? ","quick_service") - end - - def self.add_to_existing_pending_invoice(dining,sale_id) - puts sale_id - table = DiningFacility.find(dining) - existing_booking = Booking.find_by_sale_id(sale_id) - puts existing_booking.to_json - table.bookings.each do |booking| - # if !booking.checkout_at.nil? - # existing_booking.update_attributes(checkout_at: checkout_at) - # end - - if booking.sale_id.nil? - puts booking.to_json - booking.booking_orders.each do |booking_order| - - booking.booking_status = 'moved' - order = Order.find(booking_order.order_id) - order.status = 'billed' - order.order_items.each do |item| - item.order_item_status = 'billed' - end - # create sale item - saleobj = Sale.find(sale_id) - puts "saleobj" - puts saleobj.to_json - order.order_items.each do |orer_item| - saleobj.add_item (orer_item) - end - - # Re-compute for add - saleobj.compute - saleobj.save - order.save - booking.save - end - - booking_order = BookingOrder.where('booking_id=?',booking) - booking_order.each do |bo| - bo.booking_id = existing_booking.booking_id - bo.save - end - end - end - end - private def generate_custom_id