diff --git a/app/assets/javascripts/order_reservation.js b/app/assets/javascripts/order_reservation.js index bffd65fb..00d04f89 100644 --- a/app/assets/javascripts/order_reservation.js +++ b/app/assets/javascripts/order_reservation.js @@ -8,6 +8,9 @@ $(function() { $(".tbl_customer").hide(); $(".order_close_cashier").hide(); $(".order_payment_type").hide(); + $(".accepted_time").hide(); + $(".kitchen_time").hide(); + $(".ready_time").hide(); $(function() { $('.first-1').click(); }); @@ -290,7 +293,36 @@ function show_order_detail(url,sr_no){ var delivery = data["delivery"]; var items = data["order_items"]; var item_list = $('.summary-items'); + var action_times = ""; + $("#accepted_time").html(""); + $("#send_kitchen_time").html(""); + $("#ready_delivery_time").html(""); + if((data["action_times"]!=undefined) && (data["action_times"]!=null)){ + action_times = JSON.parse(data["action_times"]); + if((action_times.accepted_time!=undefined) && (action_times.accepted_time!="")){ + $(".accepted_time").show(); + var acceptedDate = new Date(action_times.accepted_time); + var acceptedTime = timeFormat(acceptedDate); + var accepted_time = getOrderMonth(acceptedDate.getMonth()) +' '+ (acceptedDate.getDate() >= 10? acceptedDate.getDate() : '0' + acceptedDate.getDate()) +', '+acceptedDate.getFullYear()+'('+getOrderDay(acceptedDate.getDay())+')'+' '+acceptedTime; + $("#accepted_time").html(accepted_time); + } + if((action_times.kitchen_time!=undefined) && (action_times.kitchen_time!="")){ + $(".kitchen_time").show(); + var kitchenDate = new Date(action_times.kitchen_time); + var kitchenTime = timeFormat(kitchenDate); + var kitchen_time = getOrderMonth(kitchenDate.getMonth()) +' '+ (kitchenDate.getDate() >= 10? kitchenDate.getDate() : '0' + kitchenDate.getDate()) +', '+kitchenDate.getFullYear()+'('+getOrderDay(kitchenDate.getDay())+')'+' '+kitchenTime; + $("#send_kitchen_time").html(kitchen_time); + } + if((action_times.ready_time!=undefined) && (action_times.ready_time!="")){ + $(".ready_time").show(); + var readyDate = new Date(action_times.ready_time); + var readyTime = timeFormat(readyDate); + var ready_time = getOrderMonth(readyDate.getMonth()) +' '+ (readyDate.getDate() >= 10? readyDate.getDate() : '0' + readyDate.getDate()) +', '+readyDate.getFullYear()+'('+getOrderDay(readyDate.getDay())+')'+' '+readyTime; + $("#ready_delivery_time").html(ready_time); + } + } + var newDate = new Date(data.requested_time); var time = timeFormat(newDate); // var requested_date = newDate.getFullYear() + '-' + (newDate.getMonth() >= 10? newDate.getMonth() : '0' + (newDate.getMonth() + 1)) +'-'+ (newDate.getDate() >= 10? newDate.getDate() : '0' + newDate.getDate()) +' '+time; diff --git a/app/models/order_reservation.rb b/app/models/order_reservation.rb index 43d0145e..2eceb8de 100644 --- a/app/models/order_reservation.rb +++ b/app/models/order_reservation.rb @@ -11,7 +11,7 @@ class OrderReservation < ApplicationRecord scope :latest_order, -> { order("order_reservation_id desc, created_at desc") } SEND_TO_KITCHEN = "send_to_kitchen" - READY_TO_DELIVERY = "ready_to_deliver" + READY_TO_DELIVERY = "ready_to_delivery" DELIVERED = "delivered" COMPLETED = "completed" @@ -134,7 +134,7 @@ class OrderReservation < ApplicationRecord #order status send to doemal callback_response = send_status_to_ordering(order.callback_url,order.transaction_ref,SEND_TO_KITCHEN) - #order reservation status updated + # order reservation status updated update_order_reservation(order.id, @sale.sale_id, SEND_TO_KITCHEN) result = {:status=> @status, :data => @sale, :message => "send to kitchen" } @@ -237,6 +237,7 @@ class OrderReservation < ApplicationRecord def self.update_order_reservation(id, sale_id, status, expected_waiting_time=nil, remark=nil, access_code=nil, current_user=nil) order_reservation = OrderReservation.find(id) + action_times = {} if sale_id.present? order_reservation.sale_id = sale_id end @@ -252,11 +253,27 @@ class OrderReservation < ApplicationRecord if status == "delivered" order_reservation.payment_status = "paid" end + if status == "accepted" + action_times = {"accepted_time" => DateTime.now.utc, "kitchen_time" => "", "ready_time" => ""} + order_reservation.action_times = action_times.to_json + elsif status == SEND_TO_KITCHEN + if !order_reservation.action_times.nil? + action_data = JSON.parse(order_reservation.action_times) + action_data["kitchen_time"] = DateTime.now.utc + order_reservation.action_times = action_data.to_json + end + elsif status == READY_TO_DELIVERY + if !order_reservation.action_times.nil? + action_data = JSON.parse(order_reservation.action_times) + action_data["ready_time"] = DateTime.now.utc + order_reservation.action_times = action_data.to_json + end + end order_reservation.save - # if !order_reservation.sale_id.nil? && status == "rejected" - # void_doemal_payment(order_reservation.sale_id, remark, access_code, current_user) - # end + if !order_reservation.sale_id.nil? && status == "rejected" + void_doemal_payment(order_reservation.sale_id, remark, access_code, current_user) + end end def self.void_doemal_payment(sale_id, remark, access_code, current_user) diff --git a/app/views/origami/order_reservation/get_order.json.jbuilder b/app/views/origami/order_reservation/get_order.json.jbuilder index 9ab022ed..3217dc5c 100644 --- a/app/views/origami/order_reservation/get_order.json.jbuilder +++ b/app/views/origami/order_reservation/get_order.json.jbuilder @@ -4,7 +4,7 @@ if @order :requested_time,:pickup_time,:expected_waiting_time,:callback_url,:transaction_ref,:item_count,:total_customer,:payment_type, :payment_status,:payment_ref,:taxes,:total_amount,:total_tax, :discount_amount,:convenience_charge,:grand_total,:status,:order_remark, - :remark,:sale_id) + :remark,:sale_id,:action_times) @delivery = Delivery.find_by_order_reservation_id(@order.order_reservation_id) if @delivery json.delivery do |json| diff --git a/app/views/origami/order_reservation/index.html.erb b/app/views/origami/order_reservation/index.html.erb index 1d7f5615..d4c4e9cf 100644 --- a/app/views/origami/order_reservation/index.html.erb +++ b/app/views/origami/order_reservation/index.html.erb @@ -468,26 +468,26 @@ - +