diff --git a/app/assets/javascripts/addorder.js b/app/assets/javascripts/addorder.js index 25b9aa9b..c55525bc 100755 --- a/app/assets/javascripts/addorder.js +++ b/app/assets/javascripts/addorder.js @@ -1,5 +1,5 @@ $(function() { - + var role = $('#role').val(); type = $('#type').val(); modify_order = $('#modify_order').val(); //click menu sidebar menu category @@ -758,7 +758,11 @@ $(function() { type = $('#type').val(); if (type == 'true') { - type = 'cashier' + // if (role == 'waiter') { + type = 'quick_service' + // }else{ + // type = 'cashier' + // } var table_type = $('#table_type').text(); var table_id = $('#table_id').val(); @@ -773,42 +777,45 @@ $(function() { var booking_id = $('#booking_id').text(); var ajax_url = '../addorders/create'; } - if (!booking_id.length > 0) { + var order_items = JSON.stringify(get_order_item_rows()); + if (booking_id.length > 0) { var params = {'order_source': type, 'order_type': "dine_in", 'customer_id': customer_id, 'guest_info': "",'booking_id':booking_id, 'table_id': table_id, 'order_items': order_items }; - } - - var order_items = JSON.stringify(get_order_item_rows()); - - var params = {'order_source': type, 'order_type': "dine_in", + }else{ + var params = {'order_source': type, 'order_type': "dine_in", 'customer_id': customer_id, 'guest_info': "", 'table_id': table_id, 'order_items': order_items }; - if (table_id.length>0) { - $.ajax({ - type: "POST", - url: ajax_url, - data: params, - dataType: "json", - success:function(result){ - - if(table_type == "Table"){ - window.location.href = "/origami/table/" + table_id - } - else { - window.location.href = "/origami/room/" + table_id - } - } - }); - }else{ - $(this).removeAttr('disabled', ''); - $("#oqs_loading_wrapper").hide(); - - swal("Opps","Please Select Table or Room","warning"); } + + if (table_id.length>0 || role == 'waiter') { + $.ajax({ + type: "POST", + url: ajax_url, + data: params, + dataType: "json", + success:function(result){ + if (type == "quick_service") { + window.location.href = "/origami/quick_service" + }else{ + if(table_type == "Table"){ + window.location.href = "/origami/table/" + table_id + } + else { + window.location.href = "/origami/room/" + table_id + } + } + } + }); + }else{ + $(this).removeAttr('disabled', ''); + $("#oqs_loading_wrapper").hide(); + + swal("Opps","Please Select Table or Room","warning"); + } }); @@ -835,21 +842,20 @@ $(function() { var booking_id = $('#booking_id').text(); var sale_id = "" } - - if (!booking_id.length > 0) { + var order_items = JSON.stringify(get_order_item_rows()); + if (booking_id.length > 0) { var params = {'order_source': type, 'order_type': "dine_in", 'customer_id': customer_id, 'guest_info': "",'booking_id':booking_id, 'table_id': table_id, - 'order_items': order_items }; - } - var order_items = JSON.stringify(get_order_item_rows()); - - var params = {'order_source': type, 'order_type': "dine_in", + 'order_items': order_items,'sale_id': sale_id }; + }else{ + var params = {'order_source': type, 'order_type': "dine_in", 'customer_id': customer_id, 'guest_info': "", 'table_id': table_id, 'order_items': order_items,'sale_id': sale_id }; - console.log(params) + } + $.ajax({ type: "POST", url: ajax_url, @@ -858,7 +864,11 @@ $(function() { success:function(result){ console.log(result) if (result.status) { + if (result.data == null){ + window.location.href = '/origami/quick_service/pending_order/' + $('#sale_id').text(); + }else{ window.location.href = "/origami/sale/"+result.data["sale_id"]+"/"+type+"/payment" + } } } }); diff --git a/app/controllers/origami/addorders_controller.rb b/app/controllers/origami/addorders_controller.rb index add3065b..42412c51 100755 --- a/app/controllers/origami/addorders_controller.rb +++ b/app/controllers/origami/addorders_controller.rb @@ -153,13 +153,18 @@ class Origami::AddordersController < ApplicationController#BaseOrigamiController end @status, @booking = @order.generate - - if @status && @booking && @order.source == 'quick_service' + if current_user.role != "waiter" + if @status && @booking && @order.source == 'quick_service' - @status, @sale = Sale.request_bill(@order,current_user,current_login_employee) - result = {:status=> @status, :data => @sale } + @status, @sale = Sale.request_bill(@order,current_user,current_login_employee) + result = {:status=> @status, :data => @sale } + render :json => result.to_json + end + else + result = {:status=> @status, :data => 0 } render :json => result.to_json end + end # render json for http status code diff --git a/app/controllers/origami/payments_controller.rb b/app/controllers/origami/payments_controller.rb index e79e92f6..404f8c6b 100755 --- a/app/controllers/origami/payments_controller.rb +++ b/app/controllers/origami/payments_controller.rb @@ -93,7 +93,7 @@ class Origami::PaymentsController < BaseOrigamiController #end rounding adjustment sale_payment = SalePayment.new - sale_payment.process_payment(saleObj, @usercurrent_user.name, cash, "cash") + sale_payment.process_payment(saleObj, current_user.name, cash, "cash") render json: JSON.generate({:status => saleObj.rebate_status, :message => "Can't Rebate coz of Sever Error "}) rebate_amount = nil diff --git a/app/controllers/origami/pending_order_controller.rb b/app/controllers/origami/pending_order_controller.rb index a1942a27..4ed81121 100644 --- a/app/controllers/origami/pending_order_controller.rb +++ b/app/controllers/origami/pending_order_controller.rb @@ -2,21 +2,46 @@ class Origami::PendingOrderController < BaseOrigamiController def index # @dining= DiningFacility.where("status = 'occupied'") # @order = Order.where("DATE_FORMAT(date,'%Y-%m-%d') = ? and status = 'billed' and source = 'quick_service'",DateTime.now.strftime('%Y-%m-%d')) - @sale = Sale.pending_order + @sale = Sale.pending_sale + @order = Sale.pending_order + end def show - @sales = Sale.pending_order - @sale = Sale.find(params[:sale_id]) - @order = SaleOrder.find_by_sale_id(@sale.sale_id).order_id - @booking = BookingOrder.find_by_order_id(@order).booking_id - if Booking.find(@booking).dining_facility_id.to_i > 0 - @table_id = Booking.find(@booking).dining_facility_id + @sales = Sale.pending_sale + @orders = Sale.pending_order + @id = params[:sale_id] + if(@id[0,3] == "SAL") + @sale = Sale.find(@id) + @order = SaleOrder.find_by_sale_id(@sale.sale_id).order_id + @booking = BookingOrder.find_by_order_id(@order).booking_id + @bookings = Booking.find(@booking) + @status = "sale" + else + # @booking = BookingOrder.find_by_order_id(@order).booking_id + @bookings = Booking.find(@id) + @status = "order" + + @order_items = Array.new + @bookings.booking_orders.each do |booking_order| + order = Order.find(booking_order.order_id) + if (order.status == "new") + order.order_items.each do |item| + @order_items.push(item) + end + end + end + end + + if @bookings.dining_facility_id.to_i > 0 + @table_id = Booking.find(@bookings.booking_id).dining_facility_id @dining = DiningFacility.find(@table_id) else @table_id = nil @dining = nil end + end + helper_method :shop_detail def shop_detail @shop = Shop.first diff --git a/app/controllers/origami/quick_service_controller.rb b/app/controllers/origami/quick_service_controller.rb index ef170480..2b943e7e 100644 --- a/app/controllers/origami/quick_service_controller.rb +++ b/app/controllers/origami/quick_service_controller.rb @@ -134,21 +134,26 @@ class Origami::QuickServiceController < ApplicationController end @status, @booking = @order.generate - - if @status && @booking && @order.source == 'quick_service' - if params[:sale_id] - @sale = Sale.find(params[:sale_id]) - if @order.table_id.to_i > 0 - @table_id = @order.table_id - else - @table_id = nil + if(params[:sale_id][0,3] == "SAL") + if @status && @booking && @order.source == 'quick_service' + if params[:sale_id] + @sale = Sale.find(params[:sale_id]) + if @order.table_id.to_i > 0 + @table_id = @order.table_id + else + @table_id = nil + end + update = Sale.add_to_existing_pending_invoice(@table_id,params[:sale_id],@booking) end - update = Sale.add_to_existing_pending_invoice(@table_id,params[:sale_id],@booking) - end - - result = {:status=> true, :data => @sale } - render :json => result.to_json - end + + result = {:status=> true, :data => @sale } + render :json => result.to_json + end + else + result = {:status=> true, :data => nil } + render :json => result.to_json + end + end def get_menu_category () diff --git a/app/controllers/origami/request_bills_controller.rb b/app/controllers/origami/request_bills_controller.rb index ad46ede6..409177fe 100755 --- a/app/controllers/origami/request_bills_controller.rb +++ b/app/controllers/origami/request_bills_controller.rb @@ -8,6 +8,9 @@ class Origami::RequestBillsController < ApplicationController if !ShiftSale.current_shift.nil? order_id = params[:id] # order_id bk_order = BookingOrder.find_by_order_id(order_id) + puts params[:id] + puts bk_order + puts bk_order.booking_id check_booking = Booking.find_by_booking_id(bk_order.booking_id) if check_booking.sale_id.nil? diff --git a/app/models/sale.rb b/app/models/sale.rb index cf45f3a6..8ae6656d 100755 --- a/app/models/sale.rb +++ b/app/models/sale.rb @@ -1315,12 +1315,19 @@ end end end - def self.pending_order + def self.pending_sale 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.pending_order + query = Booking.all + query = query.joins("join booking_orders as booking_orders on booking_orders.booking_id = bookings.booking_id") + .joins("join orders as orders on orders.order_id = booking_orders.order_id") + query = query.where("bookings.booking_status = 'assign' AND orders.status = 'new' AND orders.source =? ","quick_service") + .group("bookings.booking_id") + end private diff --git a/app/views/origami/addorders/detail.html.erb b/app/views/origami/addorders/detail.html.erb index 58011788..c2bd6deb 100755 --- a/app/views/origami/addorders/detail.html.erb +++ b/app/views/origami/addorders/detail.html.erb @@ -9,6 +9,8 @@ <% modify_order = request.path_info.include?('modify_order')%> + +