add API for order reservation

This commit is contained in:
phyusin
2018-05-10 12:37:17 +06:30
parent d2ae16177b
commit abbff492e8
8 changed files with 97 additions and 49 deletions

View File

@@ -222,7 +222,8 @@ function show_order_detail(url,sr_no){
var newDate = new Date(data.requested_time); var newDate = new Date(data.requested_time);
var time = timeFormat(newDate); 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; // var requested_date = newDate.getFullYear() + '-' + (newDate.getMonth() >= 10? newDate.getMonth() : '0' + (newDate.getMonth() + 1)) +'-'+ (newDate.getDate() >= 10? newDate.getDate() : '0' + newDate.getDate()) +' '+time;
var requested_date = getOrderMonth(newDate.getMonth()) +' '+ (newDate.getDate() >= 10? newDate.getDate() : '0' + newDate.getDate()) +', '+newDate.getFullYear()+'('+getOrderDay(newDate.getDay())+')'+' '+time;
if((data.expected_waiting_time!=undefined) && (data.expected_waiting_time!=null)){ if((data.expected_waiting_time!=undefined) && (data.expected_waiting_time!=null)){
// var expDate = new Date(data.expected_waiting_time); // var expDate = new Date(data.expected_waiting_time);
@@ -260,7 +261,8 @@ function show_order_detail(url,sr_no){
$("#discount").show(); $("#discount").show();
} }
$('#requested_date_time').text(requested_date); //customer info detail
// $('#requested_date_time').text(requested_date);
$('#sub_total').text(data.total_amount); $('#sub_total').text(data.total_amount);
$('#delivery_fee').text((parseFloat(delivery.delivery_fee) > 0)? delivery.delivery_fee : '0.0'); $('#delivery_fee').text((parseFloat(delivery.delivery_fee) > 0)? delivery.delivery_fee : '0.0');
$('#total_charges').text((parseFloat(data.convenience_charge) > 0)? data.convenience_charge : '0.0'); $('#total_charges').text((parseFloat(data.convenience_charge) > 0)? data.convenience_charge : '0.0');
@@ -299,6 +301,15 @@ function show_order_detail(url,sr_no){
$("#order_remark").text(data.reservation_remark); $("#order_remark").text(data.reservation_remark);
} }
if(data.remark!=null && data.remark!=""){
var doemal_remark = data.remark.split("||");
var remark = doemal_remark[0] +", "+ doemal_remark[1];
$("#remark").text(remark);
}else{
$("#remark").text("");
}
//no and order id info
$("#sr_number").text("NO."+sr_no); $("#sr_number").text("NO."+sr_no);
$("#order_status").text(data.status); $("#order_status").text(data.status);
if (data["receipt_no"]) { if (data["receipt_no"]) {
@@ -400,7 +411,7 @@ function showNewOrder(order_reservation){
var time = timeFormat(date); var time = timeFormat(date);
var requested_date = date.getFullYear() + '-' + (date.getMonth() >= 10? date.getMonth() : '0' + (date.getMonth() + 1)) +'-'+ (date.getDate() >= 10? date.getDate() : '0' + date.getDate()) +' '+time; var requested_date = date.getFullYear() + '-' + (date.getMonth() >= 10? date.getMonth() : '0' + (date.getMonth() + 1)) +'-'+ (date.getDate() >= 10? date.getDate() : '0' + date.getDate()) +' '+time;
//audio play //audio play
var audio = new Audio('/beep-07.wav'); // define your audio var audio = new Audio('/beep.wav'); // define your audio
// setTimeout(function(){ // setTimeout(function(){
// audio.loop = true; // audio.loop = true;
audio.play(); audio.play();
@@ -417,3 +428,13 @@ function showNewOrder(order_reservation){
}); });
} }
} }
function getOrderMonth(month){
var MONTHS = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sept","Oct","Nov","Dec"];
return MONTHS[month];
}
function getOrderDay(day){
var DAYS = ["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"];
return DAYS[day];
}

View File

@@ -81,6 +81,36 @@ class Api::OrderReserve::OrderReservationController < Api::ApiController
status = params[:status] status = params[:status]
remark = params[:remark] remark = params[:remark]
if params[:status] && params[:remark]
reason = status +"||"+remark
order_reservation = OrderReservation.find(order_reservation_id)
if status == 'REMOVE'
if order_reservation.status == "new" || order_reservation.status == "accepted"
OrderReservation.update_order_reservation(order_reservation_id, nil, "rejected",nil,remark)
result = {:status=> true, :message => "rejected" }
else
result = {:status=> false, :message => "Status :: "+order_reservation.status+" cann't remove!" }
end
elsif status == 'FOC'
if order_reservation.status == "new" || order_reservation.status == "accepted" || order_reservation.status == "send_to_kitchen"
OrderReservation.update_order_reservation(order_reservation_id, nil, nil,nil,reason)
result = {:status=> true, :message => "FOC successfully" }
else
result = {:status=> false, :message => "Status :: "+order_reservation.status+" cann't get FOC!" }
end
elsif status == 'VOID'
if order_reservation.status == "ready_to_delivery"
OrderReservation.update_order_reservation(order_reservation_id, nil, nil,nil,reason)
result = {:status=> true, :message => "VOID successfully" }
else
result = {:status=> false, :message => "Status :: "+order_reservation.status+" cann't VOID!" }
end
end
else
result = { :status => false, :order_reservation_id => order_reservation_id, :message => "status and remark is required!" }
end
render :json => result
end end
end end

View File

@@ -1,6 +1,7 @@
class Origami::OrderReservationController < BaseOrigamiController class Origami::OrderReservationController < BaseOrigamiController
def index def index
puts Time.now.utc
@order = OrderReservation.latest_order #.active @order = OrderReservation.latest_order #.active
@count_on_order = OrderReservation.get_count_on_order @count_on_order = OrderReservation.get_count_on_order
@count_on_completed = OrderReservation.get_count_on_completed @count_on_completed = OrderReservation.get_count_on_completed
@@ -19,9 +20,6 @@ class Origami::OrderReservationController < BaseOrigamiController
access_code = params[:access_code] access_code = params[:access_code]
@order_reservation = OrderReservation.find(@id) @order_reservation = OrderReservation.find(@id)
status = true
if status
if @status == "processed" if @status == "processed"
result = OrderReservation.create_doemal_order(@order_reservation,current_user) result = OrderReservation.create_doemal_order(@order_reservation,current_user)
elsif @status == "delivery" elsif @status == "delivery"
@@ -40,10 +38,6 @@ class Origami::OrderReservationController < BaseOrigamiController
end end
end end
render :json => result.to_json render :json => result.to_json
else
result = {:status=> false, :message => "Order not accepted !" }
render :json => result.to_json
end
end end
def get_order def get_order

View File

@@ -40,7 +40,7 @@ class OrderReservation < ApplicationRecord
end end
if order_reserve[:reservation_info] if order_reserve[:reservation_info]
order_reservation.total_customer = order_reserve[:reservation_info][:total_user] order_reservation.total_customer = order_reserve[:reservation_info][:total_user]
order_reservation.reservation_remark = order_reserve[:reservation_info][:reservation_note] order_reservation.order_remark = order_reserve[:reservation_info][:reservation_note]
end end
order_reservation.save! order_reservation.save!
if order_reserve[:order_info][:items] if order_reserve[:order_info][:items]
@@ -102,7 +102,7 @@ class OrderReservation < ApplicationRecord
#order reservation status updated #order reservation status updated
update_order_reservation(order.id, @sale.sale_id, SEND_TO_KITCHEN) update_order_reservation(order.id, @sale.sale_id, SEND_TO_KITCHEN)
result = {:status=> @status, :data => @sale, :message => "created" } result = {:status=> @status, :data => @sale, :message => "send to kitchen" }
return result return result
end end
end end
@@ -195,20 +195,20 @@ class OrderReservation < ApplicationRecord
if !expected_waiting_time.nil? if !expected_waiting_time.nil?
order_reservation.expected_waiting_time = expected_waiting_time order_reservation.expected_waiting_time = expected_waiting_time
end end
if !status.nil?
order_reservation.status = status order_reservation.status = status
end
if !remark.nil? if !remark.nil?
order_reservation.order_remark = remark order_reservation.order_remark = remark
end end
if status == "delivered" if status == "delivered"
order_reservation.payment_status = "paid" order_reservation.payment_status = "paid"
end end
order_reservation.save order_reservation.save
if !order_reservation.sale_id.nil? && status == "rejected" # if !order_reservation.sale_id.nil? && status == "rejected"
void_doemal_payment(order_reservation.sale_id, remark, access_code, current_user) # void_doemal_payment(order_reservation.sale_id, remark, access_code, current_user)
end # end
end end
def self.void_doemal_payment(sale_id, remark, access_code, current_user) def self.void_doemal_payment(sale_id, remark, access_code, current_user)
@@ -277,8 +277,7 @@ class OrderReservation < ApplicationRecord
end end
def self.check_order_send_to_kitchen def self.check_order_send_to_kitchen
today = Time.now.utc order_reservation = OrderReservation.where("status='accepted' and requested_time <= '#{Time.now.utc}'")
order_reservation = OrderReservation.where("status='accepted' and requested_time > '#{today}' and expected_waiting_time < '#{today}'")
if order_reservation.length > 0 if order_reservation.length > 0
if ENV["SERVER_MODE"] == 'cloud' if ENV["SERVER_MODE"] == 'cloud'
ActionCable.server.broadcast "check_order_send_to_kitchen_channel",data: order_reservation ActionCable.server.broadcast "check_order_send_to_kitchen_channel",data: order_reservation
@@ -287,8 +286,7 @@ class OrderReservation < ApplicationRecord
end end
def self.check_order_ready_to_delivery def self.check_order_ready_to_delivery
today = Time.now.utc order_reservation = OrderReservation.where("status='send_to_kitchen' and requested_time <= '#{Time.now.utc}'")
order_reservation = OrderReservation.where("status='send_to_kitchen' and requested_time > '#{today}' and expected_waiting_time < '#{today}'")
if order_reservation.length > 0 if order_reservation.length > 0
if ENV["SERVER_MODE"] == 'cloud' if ENV["SERVER_MODE"] == 'cloud'
ActionCable.server.broadcast "check_order_ready_to_delivery_channel",data: order_reservation ActionCable.server.broadcast "check_order_ready_to_delivery_channel",data: order_reservation

View File

@@ -4,7 +4,7 @@ if @order
:requested_time,:expected_waiting_time,:callback_url,:transaction_ref,:item_count,:total_customer,:payment_type, :requested_time,:expected_waiting_time,:callback_url,:transaction_ref,:item_count,:total_customer,:payment_type,
:payment_status,:payment_ref,:taxes,:total_amount,:total_tax, :payment_status,:payment_ref,:taxes,:total_amount,:total_tax,
:discount_amount,:convenience_charge,:grand_total,:status,:order_remark, :discount_amount,:convenience_charge,:grand_total,:status,:order_remark,
:reservation_remark,:sale_id) :remark,:sale_id)
@delivery = Delivery.find_by_order_reservation_id(@order.order_reservation_id) @delivery = Delivery.find_by_order_reservation_id(@order.order_reservation_id)
if @delivery if @delivery
json.delivery do |json| json.delivery do |json|

View File

@@ -441,6 +441,11 @@
<b id="order_remark"></b> <b id="order_remark"></b>
</td> </td>
</tr> </tr>
<tr>
<td colspan="2" class="body-td align-left">
<b><i><span id="remark"></span></i></b>
</td>
</tr>
</tbody> </tbody>
</table> </table>
</div> </div>

View File

@@ -239,7 +239,7 @@ scope "(:locale)", locale: /en|mm/ do
get '/addorders/get_menu_sub_category/:id' => "addorders#get_menu_sub_category",:as => "get_menu_sub_category", :defaults => { :format => 'json' } get '/addorders/get_menu_sub_category/:id' => "addorders#get_menu_sub_category",:as => "get_menu_sub_category", :defaults => { :format => 'json' }
get '/addorders/products/list' => "addorders#get_all_product",:as => "get_all_product", :defaults => { :format => 'json' } get '/addorders/products/list' => "addorders#get_all_product",:as => "get_all_product", :defaults => { :format => 'json' }
match '/:addorders/:id' => "addorders#detail", via: [:post, :get] # match '/:addorders/:id' => "addorders#detail", via: [:post, :get]
post '/:addorders/create' => "addorders#create",:as => "addorder_create", :defaults => { :format => 'json' } post '/:addorders/create' => "addorders#create",:as => "addorder_create", :defaults => { :format => 'json' }