add alert for new,send_to_kitchen and ready_to_delivery
This commit is contained in:
40
app/assets/javascripts/channels/check_new_order.js
Normal file
40
app/assets/javascripts/channels/check_new_order.js
Normal file
@@ -0,0 +1,40 @@
|
||||
App.check_new_order = App.cable.subscriptions.create('CheckNewOrderChannel', {
|
||||
connected: function() {},
|
||||
|
||||
disconnected: function() {},
|
||||
|
||||
received: function(data) {
|
||||
var order = data.data;
|
||||
if(order.length > 0){
|
||||
var order_lists = "";
|
||||
$.each(order, function(key, value){
|
||||
if(key==0){
|
||||
order_lists = value.order_reservation_id;
|
||||
}else if(key == (order.length - 1)){
|
||||
order_lists += ' and ' + value.order_reservation_id;
|
||||
}else{
|
||||
order_lists += ', ' + value.order_reservation_id;
|
||||
}
|
||||
});
|
||||
|
||||
// alert(order_lists);
|
||||
swal({
|
||||
html: true,
|
||||
title: 'Information',
|
||||
target: document.getElementById('notify_new_order'),
|
||||
text: "You have new orders. <br/>"+
|
||||
"Are you accept or reject for these orders <b>"+order_lists+"</b>?",
|
||||
type: 'success',
|
||||
timer: 1000,
|
||||
closeOnConfirm: false,
|
||||
closeOnCancel: false,
|
||||
allowOutsideClick: false
|
||||
},function(isConfirm){
|
||||
if(isConfirm){
|
||||
swal.close();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
App.check_order_ready_to_delivery = App.cable.subscriptions.create('CheckOrderReadyToDeliveryChannel', {
|
||||
connected: function() {},
|
||||
|
||||
disconnected: function() {},
|
||||
|
||||
received: function(data) {
|
||||
var order = data.data;
|
||||
if(order.length > 0){
|
||||
var order_lists = "";
|
||||
$.each(order, function(key, value){
|
||||
if(key==0){
|
||||
order_lists = value.order_reservation_id;
|
||||
}else if(key == (order.length - 1)){
|
||||
order_lists += ' and ' + value.order_reservation_id;
|
||||
}else{
|
||||
order_lists += ', ' + value.order_reservation_id;
|
||||
}
|
||||
});
|
||||
|
||||
// alert(order_lists);
|
||||
swal({
|
||||
html: true,
|
||||
title: 'Information',
|
||||
target: document.getElementById('notify_order_ready_to_delivery'),
|
||||
text: "You have orders that are ready to deliver. <br/>"+
|
||||
"Could you ready these orders <b>"+order_lists+"</b> to deliver?",
|
||||
type: 'success',
|
||||
timer: 1000,
|
||||
closeOnConfirm: false,
|
||||
closeOnCancel: false,
|
||||
allowOutsideClick: false
|
||||
},function(isConfirm){
|
||||
if(isConfirm){
|
||||
swal.close();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
App.check_order_send_to_kitchen = App.cable.subscriptions.create('CheckOrderSendToKitchenChannel', {
|
||||
connected: function() {},
|
||||
|
||||
disconnected: function() {},
|
||||
|
||||
received: function(data) {
|
||||
var order = data.data;
|
||||
if(order.length > 0){
|
||||
var order_lists = "";
|
||||
$.each(order, function(key, value){
|
||||
if(key==0){
|
||||
order_lists = value.order_reservation_id;
|
||||
}else if(key == (order.length - 1)){
|
||||
order_lists += ' and ' + value.order_reservation_id;
|
||||
}else{
|
||||
order_lists += ', ' + value.order_reservation_id;
|
||||
}
|
||||
});
|
||||
|
||||
// alert(order_lists);
|
||||
swal({
|
||||
html: true,
|
||||
title: 'Information',
|
||||
target: document.getElementById('notify_order_send_to_kitchen'),
|
||||
text: "You have to send order to kitchen. <br/>"+
|
||||
"Could you send these orders <b>"+order_lists+"</b> to kitchen?",
|
||||
type: 'success',
|
||||
timer: 1000,
|
||||
closeOnConfirm: false,
|
||||
closeOnCancel: false,
|
||||
allowOutsideClick: false
|
||||
},function(isConfirm){
|
||||
if(isConfirm){
|
||||
swal.close();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
App.checkin = App.cable.subscriptions.create('OrderReservationChannel', {
|
||||
// App.messages = App.cable.subscriptions.create('MessagesChannel', {
|
||||
|
||||
App.order_reservation = App.cable.subscriptions.create('OrderReservationChannel', {
|
||||
connected: function() {},
|
||||
|
||||
disconnected: function() {},
|
||||
@@ -14,15 +12,11 @@ App.checkin = App.cable.subscriptions.create('OrderReservationChannel', {
|
||||
var active_class = "";
|
||||
if(key==0){
|
||||
active_class = "tr-active";
|
||||
showNewOrder(order[key]);
|
||||
}
|
||||
var rowCount = key+1;
|
||||
var date = new Date(value.created_at);
|
||||
// var deliveries = value["delivery"];
|
||||
var isPM = date.getHours() >= 12;
|
||||
var isMidday = date.getHours() == 12;
|
||||
var time = [date.getHours() - (isPM && !isMidday ? 12 : 0),
|
||||
date.getMinutes() || '00'].join(':') +
|
||||
(isPM ? ' PM' : 'AM');
|
||||
var time = timeFormat(date);
|
||||
var created_at = date.getFullYear() +'-'+ (date.getMonth() > 10? date.getMonth() : '0' + (date.getMonth() + 1)) +'-'+ (date.getDate()>10?date.getDate() : '0'+date.getDate());
|
||||
|
||||
var delivery_type = "";
|
||||
@@ -48,11 +42,11 @@ App.checkin = App.cable.subscriptions.create('OrderReservationChannel', {
|
||||
+'</td>'
|
||||
+' </tr>';
|
||||
|
||||
$('.order_reserve_cable tbody').append(row);
|
||||
$('.custom-table.order_reserve_cable tbody').append(row);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
customTableClick();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -1,12 +1,19 @@
|
||||
|
||||
$(function() {
|
||||
$("#discount").hide();
|
||||
$(".expected_time").hide();
|
||||
$(function() {
|
||||
$('.first-1').click();
|
||||
});
|
||||
|
||||
customTableClick();
|
||||
|
||||
$(".nav-item").on("click", function(){
|
||||
type = $(this).attr("data-type");
|
||||
refreshDetailData();
|
||||
if (type == "pending") {
|
||||
$(".first-1").click();
|
||||
$('#accepted').text("Accepted");
|
||||
$('#accepted').text("ACCEPT");
|
||||
$('#accepted').attr("data-value","accepted");
|
||||
}else if(type == "processing"){
|
||||
$(".second-1").click();
|
||||
@@ -24,11 +31,53 @@ $(function() {
|
||||
// console.log(type);
|
||||
});
|
||||
|
||||
$(function(){
|
||||
$('.first-1').click();
|
||||
$("#accepted").on("click", function(){
|
||||
if($(this).text().trim() == "ACCEPT"){
|
||||
var requested_time = $("#requested_date_time").text();
|
||||
$("#requested_order_time").text(requested_time);
|
||||
showTimePicker(requested_time);
|
||||
$("#waiting_timeModal").modal({show : true, backdrop: false, keyboard : false});
|
||||
}else{
|
||||
var status = $(this).attr("data-value");
|
||||
var order_id = $('#order_id').text();
|
||||
var callback = $('#callback_url').text();
|
||||
var ref_no = $('#ref_no').text();
|
||||
callback_url(callback,ref_no,order_id,status);
|
||||
}
|
||||
});
|
||||
|
||||
$(".custom-tr").on("click", function(){
|
||||
$("#cancel").on("click", function(){
|
||||
var status = $(this).attr("data-value");
|
||||
var order_id = $('#order_id').text();
|
||||
var callback = $('#callback_url').text();
|
||||
var ref_no = $('#ref_no').text();
|
||||
callback_url(callback,ref_no,order_id,status);
|
||||
});
|
||||
|
||||
$("#save").on("click",function(){
|
||||
$("#waiting_timeErr").text("");
|
||||
var status = $("#status").text();
|
||||
var order_id = $('#order_id').text();
|
||||
var ref_no = $('#ref_no').text();
|
||||
var callback = $('#callback_url').text();
|
||||
var requested_time = new Date($("#requested_date_time").text());
|
||||
var date_time = requested_time.getFullYear()+'-'+(requested_time.getMonth() > 10? requested_time.getMonth() : '0'+ (requested_time.getMonth() + 1))+'-'+(requested_time.getDate()> 10? requested_time.getDate() : '0' + requested_time.getDate());
|
||||
var waiting_time = new Date(date_time+' '+$("#waiting_time").val());
|
||||
// requested_time.setHours(requested_time.getHours() - 1);
|
||||
// console.log(requested_time);
|
||||
if(waiting_time.getTime() < requested_time.getTime()){
|
||||
var time_diff = (requested_time.getTime() - waiting_time.getTime());
|
||||
var expected_time = (Math.floor(time_diff) / 1000) / 60;
|
||||
callback_url(callback,ref_no,order_id,status,expected_time,waiting_time);
|
||||
}else{
|
||||
$("#waiting_time").val("");
|
||||
$("#waiting_timeErr").text("Expected waiting time is greater than requested time!");
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
function customTableClick(){
|
||||
$(".custom-table .custom-tr").on("click", function(){
|
||||
$(".custom-tr").removeClass("tr-active");
|
||||
$(this).addClass("tr-active");
|
||||
var order_id = $(this).attr("data-id");
|
||||
@@ -36,6 +85,7 @@ $(function() {
|
||||
var url = "order_reservation/get_order/"+order_id;
|
||||
show_order_detail(url,sr_no);
|
||||
});
|
||||
}
|
||||
|
||||
function refreshDetailData(){
|
||||
$('#requested_date_time').text("");
|
||||
@@ -67,20 +117,12 @@ $(function() {
|
||||
var item_list = $('.summary-items');
|
||||
|
||||
var newDate = new Date(data.requested_time);
|
||||
var isPM = newDate.getHours() >= 12;
|
||||
var isMidday = newDate.getHours() == 12;
|
||||
var time = [newDate.getHours() - (isPM && !isMidday ? 12 : 0),
|
||||
newDate.getMinutes() || '00'].join(':') +
|
||||
(isPM ? ' PM' : 'AM');
|
||||
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;
|
||||
|
||||
if((data.expected_waiting_time!=undefined) && (data.expected_waiting_time!=null)){
|
||||
var expDate = new Date(data.expected_waiting_time);
|
||||
var isPM = expDate.getHours() >= 12;
|
||||
var isMidday = expDate.getHours() == 12;
|
||||
var exptime = [expDate.getHours() - (isPM && !isMidday ? 12 : 0),
|
||||
expDate.getMinutes() || '00'].join(':') +
|
||||
(isPM ? ' PM' : 'AM');
|
||||
var exptime = timeFormat(expDate);
|
||||
var expected_time = expDate.getFullYear() + '-' + (expDate.getMonth() > 10? expDate.getMonth() : '0' + (expDate.getMonth() + 1)) +'-'+ (expDate.getDate() > 10? expDate.getDate() : '0' + expDate.getDate()) +' '+exptime;
|
||||
$('.expected_time').show();
|
||||
$('#expected_time').text(expected_time? expected_time : '');
|
||||
@@ -165,36 +207,9 @@ $(function() {
|
||||
//end Ajax
|
||||
}
|
||||
|
||||
$("#accepted").on("click", function(){
|
||||
if($(this).text().trim() == "ACCEPT"){
|
||||
var requested_time = $("#requested_date_time").text();
|
||||
$("#requested_order_time").text(requested_time);
|
||||
showTimePicker(requested_time);
|
||||
$("#waiting_timeModal").modal({show : true, backdrop: false, keyboard : false});
|
||||
}else{
|
||||
var status = $(this).attr("data-value");
|
||||
var order_id = $('#order_id').text();
|
||||
var callback = $('#callback_url').text();
|
||||
var ref_no = $('#ref_no').text();
|
||||
callback_url(callback,ref_no,order_id,status);
|
||||
}
|
||||
});
|
||||
|
||||
$("#cancel").on("click", function(){
|
||||
var status = $(this).attr("data-value");
|
||||
var order_id = $('#order_id').text();
|
||||
var callback = $('#callback_url').text();
|
||||
var ref_no = $('#ref_no').text();
|
||||
callback_url(callback,ref_no,order_id,status);
|
||||
});
|
||||
|
||||
function showTimePicker(requested_time){
|
||||
// var date = new Date(requested_time);
|
||||
// var isPM = date.getHours() >= 12;
|
||||
// var isMidday = date.getHours() == 12;
|
||||
// var time = [date.getHours() - (isPM && !isMidday ? 12 : 0),
|
||||
// date.getMinutes() || '00'].join(':') +
|
||||
// (isPM ? 'pm' : 'am');
|
||||
// var time = timeFormat(date);
|
||||
// console.log(time);
|
||||
$('.timepicker').bootstrapMaterialDatePicker({
|
||||
format: 'HH:mm',
|
||||
@@ -260,26 +275,29 @@ $(function() {
|
||||
});
|
||||
}
|
||||
|
||||
$("#save").on("click",function(){
|
||||
$("#waiting_timeErr").text("");
|
||||
var status = $("#status").text();
|
||||
var order_id = $('#order_id').text();
|
||||
var ref_no = $('#ref_no').text();
|
||||
var callback = $('#callback_url').text();
|
||||
var requested_time = new Date($("#requested_date_time").text());
|
||||
var date_time = requested_time.getFullYear()+'-'+(requested_time.getMonth() > 10? requested_time.getMonth() : '0'+ (requested_time.getMonth() + 1))+'-'+(requested_time.getDate()> 10? requested_time.getDate() : '0' + requested_time.getDate());
|
||||
var waiting_time = new Date(date_time+' '+$("#waiting_time").val());
|
||||
// requested_time.setHours(requested_time.getHours() - 1);
|
||||
// console.log(requested_time);
|
||||
if(waiting_time.getTime() < requested_time.getTime()){
|
||||
var time_diff = (requested_time.getTime() - waiting_time.getTime());
|
||||
var expected_time = (Math.floor(time_diff) / 1000) / 60;
|
||||
callback_url(callback,ref_no,order_id,status,expected_time,waiting_time);
|
||||
}else{
|
||||
$("#waiting_time").val("");
|
||||
$("#waiting_timeErr").text("Expected waiting time is greater than requested time!");
|
||||
function timeFormat(date){
|
||||
var isPM = date.getHours() >= 12;
|
||||
var isMidday = date.getHours() == 12;
|
||||
var time = [date.getHours() - (isPM && !isMidday ? 12 : 0),
|
||||
date.getMinutes() || '00'].join(':') +
|
||||
(isPM ? ' PM' : 'AM');
|
||||
return time;
|
||||
}
|
||||
|
||||
function showNewOrder(order_reservation){
|
||||
// console.log(order_reservation);
|
||||
if((order_reservation!=undefined) && (order_reservation!=null) && (order_reservation!="")){
|
||||
var date = new Date(order_reservation.requested_time);
|
||||
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;
|
||||
swal({
|
||||
html: true,
|
||||
title: 'Information',
|
||||
text: "You have new order <b>" + order_reservation.order_reservation_id + "</b> at <b>"+requested_date+"</b>",
|
||||
type: 'success',
|
||||
closeOnConfirm: false,
|
||||
closeOnCancel: false,
|
||||
allowOutsideClick: false
|
||||
});
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
10
app/channels/check_new_order_channel.rb
Normal file
10
app/channels/check_new_order_channel.rb
Normal file
@@ -0,0 +1,10 @@
|
||||
class CheckNewOrderChannel < ApplicationCable::Channel
|
||||
def subscribed
|
||||
stream_from "check_new_order_channel"
|
||||
end
|
||||
|
||||
def unsubscribed
|
||||
stop_all_streams
|
||||
# Any cleanup needed when channel is unsubscribed
|
||||
end
|
||||
end
|
||||
10
app/channels/check_order_ready_to_delivery_channel.rb
Normal file
10
app/channels/check_order_ready_to_delivery_channel.rb
Normal file
@@ -0,0 +1,10 @@
|
||||
class CheckOrderReadyToDeliveryChannel < ApplicationCable::Channel
|
||||
def subscribed
|
||||
stream_from "check_order_ready_to_delivery_channel"
|
||||
end
|
||||
|
||||
def unsubscribed
|
||||
stop_all_streams
|
||||
# Any cleanup needed when channel is unsubscribed
|
||||
end
|
||||
end
|
||||
10
app/channels/check_order_send_to_kitchen_channel.rb
Normal file
10
app/channels/check_order_send_to_kitchen_channel.rb
Normal file
@@ -0,0 +1,10 @@
|
||||
class CheckOrderSendToKitchenChannel < ApplicationCable::Channel
|
||||
def subscribed
|
||||
stream_from "check_order_send_to_kitchen_channel"
|
||||
end
|
||||
|
||||
def unsubscribed
|
||||
stop_all_streams
|
||||
# Any cleanup needed when channel is unsubscribed
|
||||
end
|
||||
end
|
||||
@@ -3,6 +3,8 @@ class Origami::MoveroomController < BaseOrigamiController
|
||||
authorize_resource :class => false
|
||||
|
||||
def move_dining
|
||||
@webview = check_mobile
|
||||
|
||||
@tables = Table.all.active.order('status desc')
|
||||
@rooms = Room.all.active.order('status desc')
|
||||
@complete = Sale.all
|
||||
|
||||
@@ -3,6 +3,8 @@ class Origami::MovetableController < BaseOrigamiController
|
||||
authorize_resource :class => false
|
||||
|
||||
def move_dining
|
||||
@webview = check_mobile
|
||||
|
||||
@tables = Table.all.active.order('status desc')
|
||||
@rooms = Room.all.active.order('status desc')
|
||||
@complete = Sale.all
|
||||
|
||||
@@ -207,6 +207,35 @@ class OrderReservation < ApplicationRecord
|
||||
.order("order_reservations.order_reservation_id desc, order_reservations.created_at desc")
|
||||
end
|
||||
|
||||
def self.check_new_order
|
||||
order_reservation = OrderReservation.where("status='new'")
|
||||
if order_reservation.length > 0
|
||||
if ENV["SERVER_MODE"] == 'cloud'
|
||||
ActionCable.server.broadcast "check_new_order_channel",data: order_reservation
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def self.check_order_send_to_kitchen
|
||||
today = Time.now.utc
|
||||
order_reservation = OrderReservation.where("status='accepted' and requested_time > '#{today}'")
|
||||
if order_reservation.length > 0
|
||||
if ENV["SERVER_MODE"] == 'cloud'
|
||||
ActionCable.server.broadcast "check_order_send_to_kitchen_channel",data: order_reservation
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def self.check_order_ready_to_delivery
|
||||
today = Time.now.utc
|
||||
order_reservation = OrderReservation.where("status='send_to_kitchen' and requested_time > '#{today}'")
|
||||
if order_reservation.length > 0
|
||||
if ENV["SERVER_MODE"] == 'cloud'
|
||||
ActionCable.server.broadcast "check_order_ready_to_delivery_channel",data: order_reservation
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
def generate_custom_id
|
||||
self.order_reservation_id = SeedGenerator.generate_id(self.class.name, "ODRS")
|
||||
|
||||
@@ -166,6 +166,10 @@
|
||||
</div>
|
||||
<script>
|
||||
$(document).ready(function(){
|
||||
/* check webview loaded*/
|
||||
var webview = <%= @webview %>;
|
||||
showHideNavbar(webview);
|
||||
|
||||
$(".tables").on('click', function(){
|
||||
$('.tables').removeClass('selected-item');
|
||||
$(this).addClass('selected-item');
|
||||
|
||||
@@ -284,6 +284,10 @@ end
|
||||
</div>
|
||||
<script>
|
||||
$(document).ready(function(){
|
||||
/* check webview loaded*/
|
||||
var webview = <%= @webview %>;
|
||||
showHideNavbar(webview);
|
||||
|
||||
$(".tables").on('click', function(){
|
||||
$('.tables').removeClass('selected-item');
|
||||
$(this).addClass('selected-item');
|
||||
|
||||
@@ -409,11 +409,6 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
$(function(){
|
||||
$("#discount").hide();
|
||||
$(".expected_time").hide();
|
||||
$('.first-1').click();
|
||||
});
|
||||
|
||||
</script>
|
||||
<div id="notify_new_order"></div>
|
||||
<div id="notify_order_send_to_kitchen"></div>
|
||||
<div id="notify_order_ready_to_delivery"></div>
|
||||
@@ -13,3 +13,15 @@ end
|
||||
every 1.minutes do
|
||||
runner "DiningFacility.checkin_time"
|
||||
end
|
||||
|
||||
every 3.minutes do
|
||||
runner "OrderReservation.check_new_order"
|
||||
end
|
||||
|
||||
every 5.minutes do
|
||||
runner "OrderReservation.check_order_send_to_kitchen"
|
||||
end
|
||||
|
||||
every 5.minutes do
|
||||
runner "OrderReservation.check_order_ready_to_delivery"
|
||||
end
|
||||
Reference in New Issue
Block a user