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.order_reservation = App.cable.subscriptions.create('OrderReservationChannel', {
|
||||||
// App.messages = App.cable.subscriptions.create('MessagesChannel', {
|
|
||||||
|
|
||||||
connected: function() {},
|
connected: function() {},
|
||||||
|
|
||||||
disconnected: function() {},
|
disconnected: function() {},
|
||||||
@@ -14,15 +12,11 @@ App.checkin = App.cable.subscriptions.create('OrderReservationChannel', {
|
|||||||
var active_class = "";
|
var active_class = "";
|
||||||
if(key==0){
|
if(key==0){
|
||||||
active_class = "tr-active";
|
active_class = "tr-active";
|
||||||
|
showNewOrder(order[key]);
|
||||||
}
|
}
|
||||||
var rowCount = key+1;
|
var rowCount = key+1;
|
||||||
var date = new Date(value.created_at);
|
var date = new Date(value.created_at);
|
||||||
// var deliveries = value["delivery"];
|
var time = 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');
|
|
||||||
var created_at = date.getFullYear() +'-'+ (date.getMonth() > 10? date.getMonth() : '0' + (date.getMonth() + 1)) +'-'+ (date.getDate()>10?date.getDate() : '0'+date.getDate());
|
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 = "";
|
var delivery_type = "";
|
||||||
@@ -48,11 +42,11 @@ App.checkin = App.cable.subscriptions.create('OrderReservationChannel', {
|
|||||||
+'</td>'
|
+'</td>'
|
||||||
+' </tr>';
|
+' </tr>';
|
||||||
|
|
||||||
$('.order_reserve_cable tbody').append(row);
|
$('.custom-table.order_reserve_cable tbody').append(row);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
customTableClick();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -1,12 +1,19 @@
|
|||||||
|
|
||||||
$(function() {
|
$(function() {
|
||||||
|
$("#discount").hide();
|
||||||
|
$(".expected_time").hide();
|
||||||
|
$(function() {
|
||||||
|
$('.first-1').click();
|
||||||
|
});
|
||||||
|
|
||||||
|
customTableClick();
|
||||||
|
|
||||||
$(".nav-item").on("click", function(){
|
$(".nav-item").on("click", function(){
|
||||||
type = $(this).attr("data-type");
|
type = $(this).attr("data-type");
|
||||||
refreshDetailData();
|
refreshDetailData();
|
||||||
if (type == "pending") {
|
if (type == "pending") {
|
||||||
$(".first-1").click();
|
$(".first-1").click();
|
||||||
$('#accepted').text("Accepted");
|
$('#accepted').text("ACCEPT");
|
||||||
$('#accepted').attr("data-value","accepted");
|
$('#accepted').attr("data-value","accepted");
|
||||||
}else if(type == "processing"){
|
}else if(type == "processing"){
|
||||||
$(".second-1").click();
|
$(".second-1").click();
|
||||||
@@ -24,147 +31,6 @@ $(function() {
|
|||||||
// console.log(type);
|
// console.log(type);
|
||||||
});
|
});
|
||||||
|
|
||||||
$(function(){
|
|
||||||
$('.first-1').click();
|
|
||||||
});
|
|
||||||
|
|
||||||
$(".custom-tr").on("click", function(){
|
|
||||||
$(".custom-tr").removeClass("tr-active");
|
|
||||||
$(this).addClass("tr-active");
|
|
||||||
var order_id = $(this).attr("data-id");
|
|
||||||
var sr_no = $(this).attr("data-sr-no");
|
|
||||||
var url = "order_reservation/get_order/"+order_id;
|
|
||||||
show_order_detail(url,sr_no);
|
|
||||||
});
|
|
||||||
|
|
||||||
function refreshDetailData(){
|
|
||||||
$('#requested_date_time').text("");
|
|
||||||
$("#sr_number").text("");
|
|
||||||
$("#delivery_info").text("");
|
|
||||||
$("#contact_info").text("");
|
|
||||||
$('.summary-items').html("");
|
|
||||||
$('#sub_total').text("0.00");
|
|
||||||
$('#delivery_fee').text("0.00");
|
|
||||||
$('#total_charges').text("0.00");
|
|
||||||
$('#discount_amount').text("0.00");
|
|
||||||
$('#total_tax').text("0.00");
|
|
||||||
$('#grand_total').text("0.00");
|
|
||||||
}
|
|
||||||
|
|
||||||
//show order list
|
|
||||||
function show_order_detail(url,sr_no){
|
|
||||||
$('.summary-items').html("");
|
|
||||||
//Start Ajax
|
|
||||||
$.ajax({
|
|
||||||
type: "GET",
|
|
||||||
url: url,
|
|
||||||
data: {},
|
|
||||||
dataType: "json",
|
|
||||||
success: function(data) {
|
|
||||||
// console.log(data);
|
|
||||||
var delivery = data["delivery"];
|
|
||||||
var items = data["order_items"];
|
|
||||||
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 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 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 : '');
|
|
||||||
}else{
|
|
||||||
$('.expected_time').hide();
|
|
||||||
$('#expected_time').text('');
|
|
||||||
}
|
|
||||||
|
|
||||||
item_list.empty();
|
|
||||||
|
|
||||||
if(items!=undefined && items!=""){
|
|
||||||
if(items.length > 0){
|
|
||||||
for(var i in items) {
|
|
||||||
var item_price = 0;
|
|
||||||
if(items[i].price > 0){
|
|
||||||
item_price = items[i].price;
|
|
||||||
}else{
|
|
||||||
item_price = items[i].unit_price;
|
|
||||||
}
|
|
||||||
var total = items[i].qty * item_price;
|
|
||||||
row = '<tr>'
|
|
||||||
+'<td width ="70%" class="body-td align-left">'+items[i].item_name
|
|
||||||
+' <br><span class="font-13">'+items[i].qty+ '<span class="col-blue"> <b>X</b>'+items[i].unit_price+'</span></span>'
|
|
||||||
+'</td>'
|
|
||||||
+'<td width ="30%" class="body-td align-right">'+ total +'</td>'
|
|
||||||
+'</tr>';
|
|
||||||
$('.summary-items').append(row);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(data.discount_amount > 0){
|
|
||||||
$("#discount").show();
|
|
||||||
}
|
|
||||||
|
|
||||||
$('#requested_date_time').text(requested_date);
|
|
||||||
$('#sub_total').text(data.total_amount);
|
|
||||||
$('#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');
|
|
||||||
$('#discount_amount').text((parseFloat(data.discount_amount) > 0)? data.discount_amount : '0.0');
|
|
||||||
$('#total_tax').text(data.total_tax);
|
|
||||||
$('#grand_total').text(data.grand_total);
|
|
||||||
|
|
||||||
var address = delivery.address;
|
|
||||||
if(delivery.township != null && delivery.township!=""){
|
|
||||||
address += ', ' +delivery.township;
|
|
||||||
}else if(delivery.direction_address!=null && delivery.direction_address!=""){
|
|
||||||
address += ", (" +delivery.direction_address+")";
|
|
||||||
}
|
|
||||||
$('#requested_time').text(requested_date);
|
|
||||||
$('#customer_name').text(data.customer_name);
|
|
||||||
$('#phone').text(data.phone);
|
|
||||||
$('#address').text(address);
|
|
||||||
$('#delivery_to').text(delivery.provider);
|
|
||||||
|
|
||||||
$('#ref_no').text(data.transaction_ref);
|
|
||||||
$('#callback_url').text(data.callback_url);
|
|
||||||
$('#order_id').text(data.order_reservation_id);
|
|
||||||
|
|
||||||
if(delivery.delivery_type == "service"){
|
|
||||||
$("#delivery_info").text("(DELIVERY)");
|
|
||||||
}else if(delivery.delivery_type == "pick_up"){
|
|
||||||
$("#delivery_info").text("(PICK-UP)");
|
|
||||||
}else{
|
|
||||||
$("#delivery_info").text("(DIRECT DELIVERY)");
|
|
||||||
}
|
|
||||||
|
|
||||||
if(data.order_remark!=null && data.order_remark!=""){
|
|
||||||
$("#order_remark").text(data.order_remark);
|
|
||||||
}else if(data.reservation_remark!=null && data.reservation_remark!=""){
|
|
||||||
$("#order_remark").text(data.reservation_remark);
|
|
||||||
}
|
|
||||||
$("#sr_number").text("NO."+sr_no);
|
|
||||||
if (data["receipt_no"]) {
|
|
||||||
$("#contact_info").text(data["receipt_no"]);
|
|
||||||
}else{
|
|
||||||
$("#contact_info").text(data["order_reservation_id"]);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
//end Ajax
|
|
||||||
}
|
|
||||||
|
|
||||||
$("#accepted").on("click", function(){
|
$("#accepted").on("click", function(){
|
||||||
if($(this).text().trim() == "ACCEPT"){
|
if($(this).text().trim() == "ACCEPT"){
|
||||||
var requested_time = $("#requested_date_time").text();
|
var requested_time = $("#requested_date_time").text();
|
||||||
@@ -188,78 +54,6 @@ $(function() {
|
|||||||
callback_url(callback,ref_no,order_id,status);
|
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');
|
|
||||||
// console.log(time);
|
|
||||||
$('.timepicker').bootstrapMaterialDatePicker({
|
|
||||||
format: 'HH:mm',
|
|
||||||
useSeconds: false,
|
|
||||||
clearButton: true,
|
|
||||||
date: false
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function callback_url(callback,ref_no,order_id,status,time,exptime){
|
|
||||||
var url = 'order_reservation/update';
|
|
||||||
var post_url = "order_reservation/send_status";
|
|
||||||
var waiting_time = "";
|
|
||||||
if(time!=undefined && time!=""){
|
|
||||||
waiting_time = time;
|
|
||||||
}
|
|
||||||
var expected_time = "";
|
|
||||||
if(exptime!=undefined && exptime!=""){
|
|
||||||
expected_time = exptime;
|
|
||||||
}
|
|
||||||
$.ajax({
|
|
||||||
type: "POST",
|
|
||||||
url: post_url,
|
|
||||||
data: {url: callback, ref_no: ref_no, status: status, waiting_time: waiting_time},
|
|
||||||
dataType: "json",
|
|
||||||
success: function(data) {
|
|
||||||
if(data.status){
|
|
||||||
$.ajax({
|
|
||||||
type: "POST",
|
|
||||||
url: url,
|
|
||||||
data: {'order_id': order_id, 'status': status, 'expected_time' : expected_time},
|
|
||||||
dataType: "json",
|
|
||||||
success: function(data) {
|
|
||||||
if (data.status) {
|
|
||||||
swal({
|
|
||||||
title: 'Information',
|
|
||||||
text: "Order has been "+data.message,
|
|
||||||
type: 'success',
|
|
||||||
html: true,
|
|
||||||
closeOnConfirm: false,
|
|
||||||
closeOnCancel: false,
|
|
||||||
allowOutsideClick: false
|
|
||||||
}, function () {
|
|
||||||
window.location.href = '/origami/order_reservation';
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}else{
|
|
||||||
swal({
|
|
||||||
title: 'Oops',
|
|
||||||
text: data.message,
|
|
||||||
type: 'error',
|
|
||||||
html: true,
|
|
||||||
closeOnConfirm: false,
|
|
||||||
closeOnCancel: false,
|
|
||||||
allowOutsideClick: false
|
|
||||||
}, function () {
|
|
||||||
window.location.href = '/origami/order_reservation';
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
$("#save").on("click",function(){
|
$("#save").on("click",function(){
|
||||||
$("#waiting_timeErr").text("");
|
$("#waiting_timeErr").text("");
|
||||||
var status = $("#status").text();
|
var status = $("#status").text();
|
||||||
@@ -279,7 +73,231 @@ $(function() {
|
|||||||
$("#waiting_time").val("");
|
$("#waiting_time").val("");
|
||||||
$("#waiting_timeErr").text("Expected waiting time is greater than requested time!");
|
$("#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");
|
||||||
|
var sr_no = $(this).attr("data-sr-no");
|
||||||
|
var url = "order_reservation/get_order/"+order_id;
|
||||||
|
show_order_detail(url,sr_no);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function refreshDetailData(){
|
||||||
|
$('#requested_date_time').text("");
|
||||||
|
$("#sr_number").text("");
|
||||||
|
$("#delivery_info").text("");
|
||||||
|
$("#contact_info").text("");
|
||||||
|
$('.summary-items').html("");
|
||||||
|
$('#sub_total').text("0.00");
|
||||||
|
$('#delivery_fee').text("0.00");
|
||||||
|
$('#total_charges').text("0.00");
|
||||||
|
$('#discount_amount').text("0.00");
|
||||||
|
$('#total_tax').text("0.00");
|
||||||
|
$('#grand_total').text("0.00");
|
||||||
|
}
|
||||||
|
|
||||||
|
//show order list
|
||||||
|
function show_order_detail(url,sr_no){
|
||||||
|
$('.summary-items').html("");
|
||||||
|
//Start Ajax
|
||||||
|
$.ajax({
|
||||||
|
type: "GET",
|
||||||
|
url: url,
|
||||||
|
data: {},
|
||||||
|
dataType: "json",
|
||||||
|
success: function(data) {
|
||||||
|
// console.log(data);
|
||||||
|
var delivery = data["delivery"];
|
||||||
|
var items = data["order_items"];
|
||||||
|
var item_list = $('.summary-items');
|
||||||
|
|
||||||
|
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;
|
||||||
|
|
||||||
|
if((data.expected_waiting_time!=undefined) && (data.expected_waiting_time!=null)){
|
||||||
|
var expDate = new Date(data.expected_waiting_time);
|
||||||
|
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 : '');
|
||||||
|
}else{
|
||||||
|
$('.expected_time').hide();
|
||||||
|
$('#expected_time').text('');
|
||||||
|
}
|
||||||
|
|
||||||
|
item_list.empty();
|
||||||
|
|
||||||
|
if(items!=undefined && items!=""){
|
||||||
|
if(items.length > 0){
|
||||||
|
for(var i in items) {
|
||||||
|
var item_price = 0;
|
||||||
|
if(items[i].price > 0){
|
||||||
|
item_price = items[i].price;
|
||||||
|
}else{
|
||||||
|
item_price = items[i].unit_price;
|
||||||
|
}
|
||||||
|
var total = items[i].qty * item_price;
|
||||||
|
row = '<tr>'
|
||||||
|
+'<td width ="70%" class="body-td align-left">'+items[i].item_name
|
||||||
|
+' <br><span class="font-13">'+items[i].qty+ '<span class="col-blue"> <b>X</b>'+items[i].unit_price+'</span></span>'
|
||||||
|
+'</td>'
|
||||||
|
+'<td width ="30%" class="body-td align-right">'+ total +'</td>'
|
||||||
|
+'</tr>';
|
||||||
|
$('.summary-items').append(row);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(data.discount_amount > 0){
|
||||||
|
$("#discount").show();
|
||||||
|
}
|
||||||
|
|
||||||
|
$('#requested_date_time').text(requested_date);
|
||||||
|
$('#sub_total').text(data.total_amount);
|
||||||
|
$('#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');
|
||||||
|
$('#discount_amount').text((parseFloat(data.discount_amount) > 0)? data.discount_amount : '0.0');
|
||||||
|
$('#total_tax').text(data.total_tax);
|
||||||
|
$('#grand_total').text(data.grand_total);
|
||||||
|
|
||||||
|
var address = delivery.address;
|
||||||
|
if(delivery.township != null && delivery.township!=""){
|
||||||
|
address += ', ' +delivery.township;
|
||||||
|
}else if(delivery.direction_address!=null && delivery.direction_address!=""){
|
||||||
|
address += ", (" +delivery.direction_address+")";
|
||||||
|
}
|
||||||
|
$('#requested_time').text(requested_date);
|
||||||
|
$('#customer_name').text(data.customer_name);
|
||||||
|
$('#phone').text(data.phone);
|
||||||
|
$('#address').text(address);
|
||||||
|
$('#delivery_to').text(delivery.provider);
|
||||||
|
|
||||||
|
$('#ref_no').text(data.transaction_ref);
|
||||||
|
$('#callback_url').text(data.callback_url);
|
||||||
|
$('#order_id').text(data.order_reservation_id);
|
||||||
|
|
||||||
|
if(delivery.delivery_type == "service"){
|
||||||
|
$("#delivery_info").text("(DELIVERY)");
|
||||||
|
}else if(delivery.delivery_type == "pick_up"){
|
||||||
|
$("#delivery_info").text("(PICK-UP)");
|
||||||
|
}else{
|
||||||
|
$("#delivery_info").text("(DIRECT DELIVERY)");
|
||||||
|
}
|
||||||
|
|
||||||
|
if(data.order_remark!=null && data.order_remark!=""){
|
||||||
|
$("#order_remark").text(data.order_remark);
|
||||||
|
}else if(data.reservation_remark!=null && data.reservation_remark!=""){
|
||||||
|
$("#order_remark").text(data.reservation_remark);
|
||||||
|
}
|
||||||
|
$("#sr_number").text("NO."+sr_no);
|
||||||
|
if (data["receipt_no"]) {
|
||||||
|
$("#contact_info").text(data["receipt_no"]);
|
||||||
|
}else{
|
||||||
|
$("#contact_info").text(data["order_reservation_id"]);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
//end Ajax
|
||||||
|
}
|
||||||
|
|
||||||
|
function showTimePicker(requested_time){
|
||||||
|
// var date = new Date(requested_time);
|
||||||
|
// var time = timeFormat(date);
|
||||||
|
// console.log(time);
|
||||||
|
$('.timepicker').bootstrapMaterialDatePicker({
|
||||||
|
format: 'HH:mm',
|
||||||
|
useSeconds: false,
|
||||||
|
clearButton: true,
|
||||||
|
date: false
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function callback_url(callback,ref_no,order_id,status,time,exptime){
|
||||||
|
var url = 'order_reservation/update';
|
||||||
|
var post_url = "order_reservation/send_status";
|
||||||
|
var waiting_time = "";
|
||||||
|
if(time!=undefined && time!=""){
|
||||||
|
waiting_time = time;
|
||||||
|
}
|
||||||
|
var expected_time = "";
|
||||||
|
if(exptime!=undefined && exptime!=""){
|
||||||
|
expected_time = exptime;
|
||||||
|
}
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url: post_url,
|
||||||
|
data: {url: callback, ref_no: ref_no, status: status, waiting_time: waiting_time},
|
||||||
|
dataType: "json",
|
||||||
|
success: function(data) {
|
||||||
|
if(data.status){
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url: url,
|
||||||
|
data: {'order_id': order_id, 'status': status, 'expected_time' : expected_time},
|
||||||
|
dataType: "json",
|
||||||
|
success: function(data) {
|
||||||
|
if (data.status) {
|
||||||
|
swal({
|
||||||
|
title: 'Information',
|
||||||
|
text: "Order has been "+data.message,
|
||||||
|
type: 'success',
|
||||||
|
html: true,
|
||||||
|
closeOnConfirm: false,
|
||||||
|
closeOnCancel: false,
|
||||||
|
allowOutsideClick: false
|
||||||
|
}, function () {
|
||||||
|
window.location.href = '/origami/order_reservation';
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}else{
|
||||||
|
swal({
|
||||||
|
title: 'Oops',
|
||||||
|
text: data.message,
|
||||||
|
type: 'error',
|
||||||
|
html: true,
|
||||||
|
closeOnConfirm: false,
|
||||||
|
closeOnCancel: false,
|
||||||
|
allowOutsideClick: false
|
||||||
|
}, function () {
|
||||||
|
window.location.href = '/origami/order_reservation';
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
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
|
authorize_resource :class => false
|
||||||
|
|
||||||
def move_dining
|
def move_dining
|
||||||
|
@webview = check_mobile
|
||||||
|
|
||||||
@tables = Table.all.active.order('status desc')
|
@tables = Table.all.active.order('status desc')
|
||||||
@rooms = Room.all.active.order('status desc')
|
@rooms = Room.all.active.order('status desc')
|
||||||
@complete = Sale.all
|
@complete = Sale.all
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ class Origami::MovetableController < BaseOrigamiController
|
|||||||
authorize_resource :class => false
|
authorize_resource :class => false
|
||||||
|
|
||||||
def move_dining
|
def move_dining
|
||||||
|
@webview = check_mobile
|
||||||
|
|
||||||
@tables = Table.all.active.order('status desc')
|
@tables = Table.all.active.order('status desc')
|
||||||
@rooms = Room.all.active.order('status desc')
|
@rooms = Room.all.active.order('status desc')
|
||||||
@complete = Sale.all
|
@complete = Sale.all
|
||||||
|
|||||||
@@ -207,6 +207,35 @@ class OrderReservation < ApplicationRecord
|
|||||||
.order("order_reservations.order_reservation_id desc, order_reservations.created_at desc")
|
.order("order_reservations.order_reservation_id desc, order_reservations.created_at desc")
|
||||||
end
|
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
|
private
|
||||||
def generate_custom_id
|
def generate_custom_id
|
||||||
self.order_reservation_id = SeedGenerator.generate_id(self.class.name, "ODRS")
|
self.order_reservation_id = SeedGenerator.generate_id(self.class.name, "ODRS")
|
||||||
|
|||||||
@@ -166,6 +166,10 @@
|
|||||||
</div>
|
</div>
|
||||||
<script>
|
<script>
|
||||||
$(document).ready(function(){
|
$(document).ready(function(){
|
||||||
|
/* check webview loaded*/
|
||||||
|
var webview = <%= @webview %>;
|
||||||
|
showHideNavbar(webview);
|
||||||
|
|
||||||
$(".tables").on('click', function(){
|
$(".tables").on('click', function(){
|
||||||
$('.tables').removeClass('selected-item');
|
$('.tables').removeClass('selected-item');
|
||||||
$(this).addClass('selected-item');
|
$(this).addClass('selected-item');
|
||||||
|
|||||||
@@ -284,6 +284,10 @@ end
|
|||||||
</div>
|
</div>
|
||||||
<script>
|
<script>
|
||||||
$(document).ready(function(){
|
$(document).ready(function(){
|
||||||
|
/* check webview loaded*/
|
||||||
|
var webview = <%= @webview %>;
|
||||||
|
showHideNavbar(webview);
|
||||||
|
|
||||||
$(".tables").on('click', function(){
|
$(".tables").on('click', function(){
|
||||||
$('.tables').removeClass('selected-item');
|
$('.tables').removeClass('selected-item');
|
||||||
$(this).addClass('selected-item');
|
$(this).addClass('selected-item');
|
||||||
|
|||||||
@@ -409,11 +409,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script type="text/javascript">
|
<div id="notify_new_order"></div>
|
||||||
$(function(){
|
<div id="notify_order_send_to_kitchen"></div>
|
||||||
$("#discount").hide();
|
<div id="notify_order_ready_to_delivery"></div>
|
||||||
$(".expected_time").hide();
|
|
||||||
$('.first-1').click();
|
|
||||||
});
|
|
||||||
|
|
||||||
</script>
|
|
||||||
@@ -12,4 +12,16 @@ end
|
|||||||
|
|
||||||
every 1.minutes do
|
every 1.minutes do
|
||||||
runner "DiningFacility.checkin_time"
|
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
|
end
|
||||||
Reference in New Issue
Block a user