diff --git a/app/assets/javascripts/channels/check_new_order.js b/app/assets/javascripts/channels/check_new_order.js
new file mode 100644
index 00000000..5bd64013
--- /dev/null
+++ b/app/assets/javascripts/channels/check_new_order.js
@@ -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. "+
+ "Are you accept or reject for these orders "+order_lists+" ?",
+ type: 'success',
+ timer: 1000,
+ closeOnConfirm: false,
+ closeOnCancel: false,
+ allowOutsideClick: false
+ },function(isConfirm){
+ if(isConfirm){
+ swal.close();
+ }
+ });
+ }
+ }
+});
+
diff --git a/app/assets/javascripts/channels/check_order_ready_to_delivery.js b/app/assets/javascripts/channels/check_order_ready_to_delivery.js
new file mode 100644
index 00000000..84dd1982
--- /dev/null
+++ b/app/assets/javascripts/channels/check_order_ready_to_delivery.js
@@ -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. "+
+ "Could you ready these orders "+order_lists+" to deliver?",
+ type: 'success',
+ timer: 1000,
+ closeOnConfirm: false,
+ closeOnCancel: false,
+ allowOutsideClick: false
+ },function(isConfirm){
+ if(isConfirm){
+ swal.close();
+ }
+ });
+ }
+ }
+});
+
diff --git a/app/assets/javascripts/channels/check_order_send_to_kitchen.js b/app/assets/javascripts/channels/check_order_send_to_kitchen.js
new file mode 100644
index 00000000..6727dbdb
--- /dev/null
+++ b/app/assets/javascripts/channels/check_order_send_to_kitchen.js
@@ -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. "+
+ "Could you send these orders "+order_lists+" to kitchen?",
+ type: 'success',
+ timer: 1000,
+ closeOnConfirm: false,
+ closeOnCancel: false,
+ allowOutsideClick: false
+ },function(isConfirm){
+ if(isConfirm){
+ swal.close();
+ }
+ });
+ }
+ }
+});
+
diff --git a/app/assets/javascripts/channels/order_reservation.js b/app/assets/javascripts/channels/order_reservation.js
index 0a3ef37c..68da8d87 100644
--- a/app/assets/javascripts/channels/order_reservation.js
+++ b/app/assets/javascripts/channels/order_reservation.js
@@ -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() {},
@@ -9,27 +7,28 @@ App.checkin = App.cable.subscriptions.create('OrderReservationChannel', {
var order = data.data;
if(order.length > 0){
$('.order_reserve_cable tbody').html("");
+ $(".nav-item.red > a > p.num").text(order.length);
$.each(order, function(key,value){
+ 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 created_at = date.getFullYear() +'-'+ (date.getMonth() > 10? date.getMonth() : '0' + (date.getMonth() + 1)) +'-'+ date.getDate();
+ 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 = "";
- if(deliveries.delivery_type == "service"){
+ if(value.delivery_type == "service"){
delivery_type = "DELIVERY";
- }else if(deliveries.delivery_type == "pick_up"){
+ }else if(value.delivery_type == "pick_up"){
delivery_type = "PICK-UP";
}else{
delivery_type = "DIRECT DELIVERY";
}
- row = '
'
+ row = ' '
+''+rowCount
+' '
+''+created_at
@@ -41,13 +40,13 @@ App.checkin = App.cable.subscriptions.create('OrderReservationChannel', {
+' '
+''+ delivery_type +' '
+' '
- +' '
+ +' ';
- $('.order_reserve_cable tbody').append(row);
+ $('.custom-table.order_reserve_cable tbody').append(row);
});
}
-
+ customTableClick();
}
});
diff --git a/app/assets/javascripts/order_reservation.js b/app/assets/javascripts/order_reservation.js
index b99dad8d..c60accdf 100644
--- a/app/assets/javascripts/order_reservation.js
+++ b/app/assets/javascripts/order_reservation.js
@@ -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,152 +31,19 @@ $(function() {
// 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 = ''
- +''+items[i].item_name
- +' '+items[i].qty+ ' X '+items[i].unit_price+' '
- +' '
- +''+ total +' '
- +' ';
- $('.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(){
- 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});
+ 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(){
@@ -180,78 +54,6 @@ $(function() {
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(){
$("#waiting_timeErr").text("");
var status = $("#status").text();
@@ -271,7 +73,231 @@ $(function() {
$("#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");
+ 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 = ''
+ +''+items[i].item_name
+ +' '+items[i].qty+ ' X '+items[i].unit_price+' '
+ +' '
+ +''+ total +' '
+ +' ';
+ $('.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 " + order_reservation.order_reservation_id + " at "+requested_date+" ",
+ type: 'success',
+ closeOnConfirm: false,
+ closeOnCancel: false,
+ allowOutsideClick: false
+ });
+ }
+}
\ No newline at end of file
diff --git a/app/assets/javascripts/origami.js b/app/assets/javascripts/origami.js
index 715a9fe1..27b85958 100755
--- a/app/assets/javascripts/origami.js
+++ b/app/assets/javascripts/origami.js
@@ -192,6 +192,41 @@ $(document).on('turbolinks:load', function() {
return false;
});
+
+ $(document).on('click', '.access_modal', function(event){
+ type = $(this).data("type");
+ $(".ok").attr("data-action",type)
+ $('#AccessCodeModal').modal('show');
+ });
+
+ $(document).on('click', '.access_number', function(event){
+ if(event.handled !== true) {
+ var original_value = $('#access_code').val();
+ var input_type = $(this).attr("data-type");
+
+ switch (input_type) {
+ case 'num':
+ var input_value = $(this).attr("data-value");
+ if (original_value){
+ $('#access_code').val(original_value + input_value);
+ }else{
+ $('#access_code').val(original_value + input_value);
+ }
+ break;
+ case 'ok':
+ var type = $(this).attr("data-action");
+ code = $('#access_code').val();
+ check_emp_access_code(code,type)
+ break;
+ case 'clr':
+ $('#access_code').val("");
+ break;
+ }
+ event.handled = true;
+ } else {
+ return false;
+ }
+ });
});
/* start check first bill or not funs: */
@@ -424,3 +459,8 @@ function showHideNavbar(webview,page){
}
}
}
+
+function createAccessCode(code) {
+ localStorage.setItem("access_code",code);
+}
+
diff --git a/app/assets/stylesheets/origami.scss b/app/assets/stylesheets/origami.scss
index 1de250a3..212c5288 100755
--- a/app/assets/stylesheets/origami.scss
+++ b/app/assets/stylesheets/origami.scss
@@ -93,6 +93,19 @@ select.form-control {
// cursor:pointer;
}
+.access_number{
+ width: 33%;
+ height:58px;
+ line-height:58px;
+ text-align:center;
+ background:#54A5AF;
+ // float:left;
+ // margin:2px;
+ font-size:20px;
+ color:white;
+ // cursor:pointer;
+}
+
.del_cashier_number{
opacity:0.6,
}
diff --git a/app/channels/check_new_order_channel.rb b/app/channels/check_new_order_channel.rb
new file mode 100644
index 00000000..8a7dfcfb
--- /dev/null
+++ b/app/channels/check_new_order_channel.rb
@@ -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
diff --git a/app/channels/check_order_ready_to_delivery_channel.rb b/app/channels/check_order_ready_to_delivery_channel.rb
new file mode 100644
index 00000000..6f5e1a06
--- /dev/null
+++ b/app/channels/check_order_ready_to_delivery_channel.rb
@@ -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
diff --git a/app/channels/check_order_send_to_kitchen_channel.rb b/app/channels/check_order_send_to_kitchen_channel.rb
new file mode 100644
index 00000000..c0821483
--- /dev/null
+++ b/app/channels/check_order_send_to_kitchen_channel.rb
@@ -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
diff --git a/app/controllers/api/order_reserve/order_reservation_controller.rb b/app/controllers/api/order_reserve/order_reservation_controller.rb
index 57337b5e..f34c0f6f 100644
--- a/app/controllers/api/order_reserve/order_reservation_controller.rb
+++ b/app/controllers/api/order_reserve/order_reservation_controller.rb
@@ -59,9 +59,8 @@ class Api::OrderReserve::OrderReservationController < Api::ApiController
order_reservation = params
order_reservation_id, flag = OrderReservation.addOrderReservationInfo(order_reservation)
- order_reservation = OrderReservation.get_pending_orders #find(order_reservation_id)
-
if flag #&& ENV["SERVER_MODE"] != 'cloud'
+ order_reservation = OrderReservation.get_pending_orders #find(order_reservation_id)
ActionCable.server.broadcast "order_reservation_channel",data: order_reservation
end
diff --git a/app/controllers/base_origami_controller.rb b/app/controllers/base_origami_controller.rb
index 66cc2880..3cb1eacc 100755
--- a/app/controllers/base_origami_controller.rb
+++ b/app/controllers/base_origami_controller.rb
@@ -5,7 +5,6 @@ class BaseOrigamiController < ActionController::Base
before_action :check_user
#before_action :check_installation
- protect_from_forgery with: :exception
helper_method :shop_detail, :current_token
@@ -23,6 +22,10 @@ class BaseOrigamiController < ActionController::Base
}.to_json
end
else
+ if ENV["SERVER_MODE"] != 'cloud'
+ protect_from_forgery with: :exception
+ end
+
if current_user.nil?
redirect_to root_path
end
diff --git a/app/controllers/origami/home_controller.rb b/app/controllers/origami/home_controller.rb
index 745d6f33..ed857104 100755
--- a/app/controllers/origami/home_controller.rb
+++ b/app/controllers/origami/home_controller.rb
@@ -129,6 +129,18 @@ class Origami::HomeController < BaseOrigamiController
end
end
+def check_emp_access_code
+ pin_code = params[:code]
+ employee = Employee.find_by_emp_id(pin_code)
+ if employee && employee.role == "manager"
+ result = {:status=> true, :message=>"Success" }
+ else
+ result = {:status=> false, :message=>"Invalid Access Code" }
+ end
+ render :json => result.to_json
+
+end
+
private
def set_dining
diff --git a/app/controllers/origami/moveroom_controller.rb b/app/controllers/origami/moveroom_controller.rb
index 316ab894..b7260863 100755
--- a/app/controllers/origami/moveroom_controller.rb
+++ b/app/controllers/origami/moveroom_controller.rb
@@ -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
diff --git a/app/controllers/origami/movetable_controller.rb b/app/controllers/origami/movetable_controller.rb
index bbc02bdc..eaf7fca1 100755
--- a/app/controllers/origami/movetable_controller.rb
+++ b/app/controllers/origami/movetable_controller.rb
@@ -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
diff --git a/app/controllers/origami/payments_controller.rb b/app/controllers/origami/payments_controller.rb
index 3baed9f3..3c5219af 100755
--- a/app/controllers/origami/payments_controller.rb
+++ b/app/controllers/origami/payments_controller.rb
@@ -446,8 +446,7 @@ class Origami::PaymentsController < BaseOrigamiController
end
saleObj.update_attributes(grand_total: 0, rounding_adjustment: 0, amount_received: 0, amount_changed: 0)
- puts "FOC"
- puts saleObj.to_json
+
sale_payment = SalePayment.new
sale_payment.process_payment(saleObj, current_user.name, cash, "foc" ,remark)
# For Cashier by Zone
diff --git a/app/controllers/origami/sale_edit_controller.rb b/app/controllers/origami/sale_edit_controller.rb
index 1743f881..1c5b5430 100755
--- a/app/controllers/origami/sale_edit_controller.rb
+++ b/app/controllers/origami/sale_edit_controller.rb
@@ -17,6 +17,7 @@ class Origami::SaleEditController < BaseOrigamiController
def item_void
saleitemId = params[:sale_item_id]
remark = params[:remark]
+ access_code = params[:access_code]
saleitemObj = SaleItem.find(saleitemId)
saleitemObj.status = 'void'
saleitemObj.remark = remark
@@ -48,8 +49,9 @@ class Origami::SaleEditController < BaseOrigamiController
end
end
action_by = current_user.id
+ approved_by = Employee.find_by_emp_id(access_code)
remark = "Void Sale Item ID #{saleitemObj.sale_item_id} | Receipt No #{saleObj.receipt_no} | Item Name ->#{saleitemObj.product_name}-Product Code ->#{saleitemObj.product_code}-Instance Code ->#{saleitemObj.item_instance_code}"
- sale_audit = SaleAudit.record_audit_for_edit(saleitemObj.sale_id,saleObj.cashier_id, action_by,remark,"SALEITEMVOID" )
+ sale_audit = SaleAudit.record_audit_for_edit(saleitemObj.sale_id,saleObj.cashier_id, approved_by.name,remark,"SALEITEMVOID" )
saleObj.compute_by_sale_items(saleObj.sale_id, saleObj.sale_items, saleObj.total_discount)
ProductCommission.create_product_commission(@newsaleitem, saleitemObj)
@@ -58,6 +60,7 @@ class Origami::SaleEditController < BaseOrigamiController
def item_foc
saleitemId = params[:sale_item_id]
remark = params[:remark]
+ access_code = params[:access_code]
saleitemObj = SaleItem.find(saleitemId)
saleitemObj.status = 'foc'
saleitemObj.remark = remark
@@ -80,8 +83,9 @@ class Origami::SaleEditController < BaseOrigamiController
order = Order.find(order_id)
action_by = current_user.id
+ approved_by = Employee.find_by_emp_id(access_code)
remark = "FOC Sale Item ID #{saleitemObj.sale_item_id} | Receipt No #{saleObj.receipt_no} | Item Name ->#{saleitemObj.product_name}-Product Code ->#{saleitemObj.product_code}-Instance Code ->#{saleitemObj.item_instance_code}Receipt No #{saleObj.receipt_no}"
- sale_audit = SaleAudit.record_audit_for_edit(saleitemObj.sale_id,saleObj.cashier_id, action_by,remark,"SALEITEMFOC" )
+ sale_audit = SaleAudit.record_audit_for_edit(saleitemObj.sale_id,saleObj.cashier_id, approved_by.name,remark,"SALEITEMFOC" )
saleObj.compute_by_sale_items(saleObj.sale_id, saleObj.sale_items, saleObj.total_discount,order.source)
ProductCommission.create_product_commission(@newsaleitem, saleitemObj)
@@ -111,6 +115,7 @@ class Origami::SaleEditController < BaseOrigamiController
saleitemId = params[:sale_item_id]
update_qty = params[:update_qty]
update_price = params[:update_price]
+ access_code = params[:access_code]
saleitemObj = SaleItem.find(saleitemId)
sale = Sale.find(saleitemObj.sale_id)
@@ -120,8 +125,9 @@ class Origami::SaleEditController < BaseOrigamiController
saleitemObj.taxable_price = update_qty.to_f * update_price.to_f
action_by = current_user.id
+ approved_by = Employee.find_by_emp_id(access_code)
remark = "Update Qty #{update_qty} Price [#{saleitemObj.price}]| Receipt No #{sale.receipt_no} | Item Name ->#{saleitemObj.product_name}-Product Code ->#{saleitemObj.product_code}-Instance Code ->#{saleitemObj.item_instance_code}"
- sale_audit = SaleAudit.record_audit_for_edit(saleitemObj.sale_id,sale.cashier_id, action_by,remark,"SALEITEMEDIT" )
+ sale_audit = SaleAudit.record_audit_for_edit(saleitemObj.sale_id,sale.cashier_id, approved_by.name,remark,"SALEITEMEDIT" )
# saleitemObj.remark = 'edit'
unless saleitemObj.product_name.include? 'updated'
@@ -152,6 +158,7 @@ class Origami::SaleEditController < BaseOrigamiController
# make cancel void item
def item_void_cancel
saleitemId = params[:sale_item_id]
+ access_code = params[:access_code]
saleitemObj = SaleItem.find(saleitemId)
both = SaleItem.where('product_code=?', saleitemObj.product_code)
both.each do |item|
@@ -169,8 +176,9 @@ class Origami::SaleEditController < BaseOrigamiController
order = Order.find(order_id)
action_by = current_user.id
+ approved_by = Employee.find_by_emp_id(access_code)
remark = "Cancle Void Sale Item ID #{saleitemObj.sale_item_id} | Item Name ->#{saleitemObj.product_name}-Product Code ->#{saleitemObj.product_code}-Instance Code ->#{saleitemObj.item_instance_code}|Receipt No #{saleObj.receipt_no}"
- sale_audit = SaleAudit.record_audit_for_edit(saleitemObj.sale_id,saleObj.cashier_id, action_by,remark,"ITEMCANCELVOID" )
+ sale_audit = SaleAudit.record_audit_for_edit(saleitemObj.sale_id,saleObj.cashier_id, approved_by.name,remark,"ITEMCANCELVOID" )
saleObj.compute_by_sale_items(saleObj.sale_id, saleObj.sale_items, saleObj.total_discount, order.source)
ProductCommission.remove_product_commission(saleitemObj)
diff --git a/app/controllers/origami/void_controller.rb b/app/controllers/origami/void_controller.rb
index 83dce707..d601b0c0 100755
--- a/app/controllers/origami/void_controller.rb
+++ b/app/controllers/origami/void_controller.rb
@@ -5,6 +5,7 @@ class Origami::VoidController < BaseOrigamiController
sale_id = params[:sale_id]
remark = params[:remark]
order_source = params[:type] #tax profile source
+ access_code = params[:access_code]
if Sale.exists?(sale_id)
sale = Sale.find_by_sale_id(sale_id)
@@ -71,8 +72,9 @@ class Origami::VoidController < BaseOrigamiController
# FOr Sale Audit
action_by = current_user.name
+ approved_by = Employee.find_by_emp_id(access_code)
# remark = "Void Sale ID #{sale_id} | Receipt No #{sale.receipt_no} | Receipt No #{sale.receipt_no} | Table ->#{table.name}"
- sale_audit = SaleAudit.record_audit_for_edit(sale_id,sale.cashier_id, action_by,remark,"SALEVOID" )
+ sale_audit = SaleAudit.record_audit_for_edit(sale_id,sale.cashier_id, approved_by.name,remark,"SALEVOID" )
# For Print
diff --git a/app/controllers/origami/waste_spoile_controller.rb b/app/controllers/origami/waste_spoile_controller.rb
index 2b2d9c33..de7df434 100755
--- a/app/controllers/origami/waste_spoile_controller.rb
+++ b/app/controllers/origami/waste_spoile_controller.rb
@@ -3,7 +3,8 @@ class Origami::WasteSpoileController < BaseOrigamiController
sale_id = params[:sale_id]
remark = params[:remark]
- order_source = params[:type] #tax profile source
+ order_source = params[:type]
+ access_code = params[:access_code] #tax profile source
if Sale.exists?(sale_id)
sale = Sale.find_by_sale_id(sale_id)
SaleTax.where("sale_id='#{sale_id}'").find_each do |existing_tax|
@@ -54,8 +55,9 @@ class Origami::WasteSpoileController < BaseOrigamiController
# FOr Sale Audit
action_by = current_user.name
+ approved_by = Employee.find_by_emp_id(access_code)
# remark = "Void Sale ID #{sale_id} | Receipt No #{sale.receipt_no} | Receipt No #{sale.receipt_no} | Table ->#{table.name}"
- sale_audit = SaleAudit.record_audit_for_edit(sale_id,sale.cashier_id, action_by,remark,remark )
+ sale_audit = SaleAudit.record_audit_for_edit(sale_id,sale.cashier_id, approved_by.name,remark,remark )
# For Print
diff --git a/app/models/ability.rb b/app/models/ability.rb
index 5eab518f..497e9322 100755
--- a/app/models/ability.rb
+++ b/app/models/ability.rb
@@ -126,6 +126,7 @@ class Ability
# can :overall_void, :void
can :index, :home
can :show, :home
+ can :check_emp_access_code, :home
can :read, Order
can :update, Order
can :manage, Booking
@@ -151,6 +152,7 @@ class Ability
can :create, :payment
can :reprint, :payment
can :rounding_adj, :payment
+ can :foc, :payment
can :print, :payment
can :move_dining, :movetable
@@ -183,6 +185,16 @@ class Ability
can :print, :print
can :print_order_summary, :print
+
+ can :edit, :sale_edit
+ can :item_void, :sale_edit
+ can :item_void_cancel, :sale_edit
+ can :cancel_all_void, :sale_edit
+ can :apply_void, :sale_edit
+ can :item_foc, :sale_edit
+ can :item_edit, :sale_edit
+
+ can :overall_void, :void
elsif user.role == "account"
diff --git a/app/models/order_reservation.rb b/app/models/order_reservation.rb
index d60d908e..e5b95f8c 100644
--- a/app/models/order_reservation.rb
+++ b/app/models/order_reservation.rb
@@ -201,12 +201,41 @@ class OrderReservation < ApplicationRecord
end
def self.get_pending_orders
- order_reservation = OrderReservation.select("order_reservations.*,deliveries.provider,deliveries.delivery_type")
+ order_reservation = OrderReservation.select("order_reservations.*,del.provider,del.delivery_type")
.joins(" JOIN deliveries as del on del.order_reservation_id=order_reservations.order_reservation_id")
.where("order_reservations.status='new'")
.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")
diff --git a/app/models/sale.rb b/app/models/sale.rb
index acf76f0d..e8a203fa 100644
--- a/app/models/sale.rb
+++ b/app/models/sale.rb
@@ -1139,8 +1139,14 @@ def self.get_wastes_and_spoilages(from,to,status)
else
type = "and sales.sale_status = 'waste'"
end
- query = Sale.all.where("sales.receipt_date between ? and ? #{type}",from,to)
- .group("sales.receipt_no")
+ query = Sale.select("sales.sale_id,sales.receipt_no,sales.created_at,sales.total_amount,sales.grand_total,sales.rounding_adjustment,sales.shift_sale_id,sale_items.product_name,sale_items.product_code,sale_items.item_instance_code,sale_items.qty,sale_items.price,sale_items.unit_price,menu_categories.name")
+ .joins("JOIN sale_items ON sales.sale_id = sale_items.sale_id" +
+ " JOIN menu_item_instances ON sale_items.item_instance_code = menu_item_instances.item_instance_code" +
+ " JOIN menu_items ON menu_item_instances.menu_item_id = menu_items.id" +
+ " JOIN menu_categories ON menu_items.menu_category_id = menu_categories.id")
+ .where("sales.receipt_date between ? and ? #{type}",from,to)
+ .group("sales.receipt_no,menu_categories.id,sale_items.item_instance_code")
+ .order("sales.sale_id,menu_categories.name,sale_items.product_name")
end
# def self.get_separate_tax(from,to,payment_method=nil)
diff --git a/app/views/origami/home/show.html.erb b/app/views/origami/home/show.html.erb
index cc5e0f2f..54dd9e41 100755
--- a/app/views/origami/home/show.html.erb
+++ b/app/views/origami/home/show.html.erb
@@ -485,8 +485,10 @@
<% end %>
Customer
<% if current_login_employee.role != "waiter" %>
- active="true">Edit
- > Void
+
+ Edit
+ Void
<% end %>
<% if current_login_employee.role != "waiter" %>
active="true">Discount
@@ -579,26 +581,35 @@
-
-
+
+
+
-
-
-
- Waste
-
-
- Spoile
-
-
- CLOSE
-
-
-
-
@@ -957,6 +968,7 @@
});
$('#void').on('click', function () {
+ var access_code = localStorage.getItem("access_code");
if ($(this).attr('active')=== "true") {
swal({
title: "Alert",
@@ -975,7 +987,7 @@
$.ajax({
type: 'POST',
url: ajax_url,
- data: "remark="+ remark + "&sale_id=" + sale_id,
+ data: "remark="+ remark + "&sale_id=" + sale_id+ "&access_code=" + access_code,
success: function (result) {
// For Server Print - from jade
if ($("#server_mode").val() == "cloud") {
@@ -1052,6 +1064,12 @@
return attribute_arr;
}
+ $(document).on('click', '.access_modal', function(event){
+ type = $(this).data("type");
+ $(".ok").attr("data-action",type)
+ $('#AccessCodeModal').modal('show');
+ });
+
function waste_and_spoilage(remark) {
swal({
title: "Alert",
@@ -1081,4 +1099,34 @@
}
});
}
+
+ function check_emp_access_code(access_code,type) {
+ var url = "/origami/check_emp_access_code/" + access_code ;
+ $.ajax({
+ type: 'POST',
+ url: url,
+ data: {},
+ success: function (result) {
+ console.log(result);
+ if (result.status == true) {
+ createAccessCode(code);
+ if (type == "edit") {
+ var dining_id = "<%= @dining.id %>";
+ var sale_id = "<%= @obj_sale.sale_id rescue "" %>";
+ window.location.href = '/origami/table/' + dining_id + "/sale/" + sale_id + "/"+cashier_type +"/edit";
+ }else if(type == "void"){
+ $('#AccessCodeModal').modal('hide');
+ $('#voidModal').modal('show');
+
+ // overall_void();
+ }else if(type == "waste_and_spoilage"){
+
+ }
+ }else{
+ swal("Opps",result.message,"warning")
+ }
+ }
+ });
+ }
+
diff --git a/app/views/origami/moveroom/move_dining.html.erb b/app/views/origami/moveroom/move_dining.html.erb
index b46834ca..240d3b20 100755
--- a/app/views/origami/moveroom/move_dining.html.erb
+++ b/app/views/origami/moveroom/move_dining.html.erb
@@ -166,6 +166,10 @@
\ No newline at end of file
+
+
+
\ No newline at end of file
diff --git a/app/views/origami/payments/show.html.erb b/app/views/origami/payments/show.html.erb
index d1a9eef4..41f02b5d 100755
--- a/app/views/origami/payments/show.html.erb
+++ b/app/views/origami/payments/show.html.erb
@@ -350,16 +350,20 @@
reply
Back
-
active="true"> FOC
+
+
FOC
+
Void
+
Waste
+
Spoile
+<% if @cashier_type=="quick_service" %>
<%= t("views.right_panel.detail.survey") %>
Customer
-
active="true">Edit
+
Edit
active="true">Discount
Charges
@@ -487,7 +491,40 @@
-
+
+
+
@@ -730,44 +767,7 @@ var customer_name = "<%= @customer.name %>";
// swal("Opps","You are not authorized for void","warning")
// }
// });
- $('#void').on('click', function () {
- if ($(this).attr('active')=== "true") {
- swal({
- title: "Alert",
- text: "Are you sure want to Void?",
- type: "warning",
- showCancelButton: true,
- confirmButtonColor: "#DD6B55",
- confirmButtonText: "Yes, void it!",
- closeOnConfirm: false
- }, function (isConfirm) {
- if (isConfirm) {
- var sale_id = $('#sale_id').text();
- var remark = $("#remark").val();
- var ajax_url = "/origami/sale/" + sale_id +'/'+cashier_type+ '/void';
- $.ajax({
- type: 'POST',
- url: ajax_url,
- data: "remark="+ remark + "&sale_id=" + sale_id,
- success: function (result) {result
- customer_display_view(null,"reload");
- // For Server Print - from jade
- if ($("#server_mode").val() == "cloud") {
- code2lab.printFile(result.filepath.substr(6), result.printer_url);
- }
- if (cashier_type=="cashier") {
- window.location.href = '/origami';
- }else{
- window.location.href = '/origami/quick_service';
- }
- }
- })
- }
- });
- }else{
- swal("Oops","You are not authorized for void","warning")
- }
- });
+
});
// bind survey to order or sale
@@ -940,59 +940,6 @@ var customer_name = "<%= @customer.name %>";
$('#balance').text(parseFloat(result));
<% end %>
}
-
- $('#foc').click(function() {
- //$( "#loading_wrapper" ).show();
- // payment
- var remark = $("#foc_remark").val();
- var cash = $('#grand_total').text();
- var sub_total = $('#sub-total').text();
- var sale_id = $('#sale_id').text();
- var params = { 'cash':cash,'sale_id':sale_id,'sub_total':sub_total,'remark':remark,'type':cashier_type };
-
- if ($(this).attr('active')=== "true") {
- swal({
- title: "Alert",
- text: "Are you sure want to FOC This Receipt?",
- type: "warning",
- showCancelButton: true,
- confirmButtonColor: "#DD6B55",
- confirmButtonText: "Yes, FOC it!",
- closeOnConfirm: false
- }, function (isConfirm) {
- if (isConfirm) {
- $.ajax({
- type: "POST",
- url: "/origami/payment/"+cashier_type+"/foc",
- data: params,
- success:function(result){
- customer_display_view(null,"reload");
- if (cash >= 0) {
- swal({
- title: "Information!",
- text: 'Thank You !',
- }, function () {
- // For Server Print - from jade
- if ($("#server_mode").val() == "cloud") {
- code2lab.printFile(result.filepath.substr(6), result.printer_url);
- }
- if (cashier_type=="cashier") {
- window.location.href = '/origami';
- }else{
- window.location.href = '/origami/quick_service';
- }
- });
- }
- }
- });
- }
- });
-
- }else{
- swal("Oops","You are not authorized for foc","warning")
- }
- });
-
function customer_display_view(data,status) {
$.ajax({
type: "POST",
@@ -1220,28 +1167,157 @@ var customer_name = "<%= @customer.name %>";
update_sale("", customer_id, customer_name, sale_id);
});
- function waste_and_spoilage(remark) {
+ $(document).on('click', '.access_modal', function(event){
+ type = $(this).data("type");
+ $(".ok").attr("data-action",type)
+ $('#AccessCodeModal').modal('show');
+ });
+
+ function check_emp_access_code(access_code,type) {
+ var url = "/origami/check_emp_access_code/" + access_code ;
+ $.ajax({
+ type: 'POST',
+ url: url,
+ data: {},
+ success: function (result) {
+ console.log(result)
+ if (result.status == true) {
+ createAccessCode(code);
+ if (type == "edit") {
+ var dining_id = $('#dining').text();
+ var sale_id = $('#sale_id').text();
+ if (dining_id) {
+ window.location.href = '/origami/table/' + dining_id + "/sale/" + sale_id + "/"+cashier_type+"/edit";
+ }else{
+ window.location.href = "/origami/table/sale/" + sale_id + "/"+cashier_type+"/edit";
+ }
+ }else if(type == "void"){
+ $('#AccessCodeModal').modal('hide');
+ $('#voidModal').modal('show');
+ // overall_void();
+ }else if(type == "waste") {
+ // $('#AccessCodeModal').modal('hide');
+ // $('#focModal').modal('show');
+ waste_and_spoilage("waste")
+ }else if(type == "spoile") {
+ // $('#AccessCodeModal').modal('hide');
+ // $('#voidModal').modal('show');
+ waste_and_spoilage("spoile")
+ }else if(type == "foc"){
+ $('#AccessCodeModal').modal('hide');
+ $('#focModal').modal('show');
+ // overall_foc();
+ }
+ }else{
+ swal("Opps",result.message,"warning")
+ }
+ }
+ });
+ }
+
+ $('#foc').on('click', function () {
+ var access_code = localStorage.getItem("access_code");
+ var remark = $("#foc_remark").val();
+ var cash = $('#grand_total').text();
+ var sub_total = $('#sub-total').text();
+ var sale_id = $('#sale_id').text();
+ var params = { 'cash':cash,'sale_id':sale_id,'sub_total':sub_total,'remark':remark,'type':cashier_type,'access_code':access_code };
+ swal({
+ title: "Alert",
+ text: "Are you sure want to FOC This Receipt?",
+ type: "warning",
+ showCancelButton: true,
+ confirmButtonColor: "#DD6B55",
+ confirmButtonText: "Yes, FOC it!",
+ closeOnConfirm: false
+ }, function (isConfirm) {
+ if (isConfirm) {
+ $.ajax({
+ type: "POST",
+ url: "/origami/payment/"+cashier_type+"/foc",
+ data: params,
+ success:function(result){
+ customer_display_view(null,"reload");
+ if (cash >= 0) {
+ swal({
+ title: "Information!",
+ text: 'Thank You !',
+ }, function () {
+ // For Server Print - from jade
+ if ($("#server_mode").val() == "cloud") {
+ code2lab.printFile(result.filepath.substr(6), result.printer_url);
+ }
+ if (cashier_type=="cashier") {
+ window.location.href = '/origami';
+ }else{
+ window.location.href = '/origami/quick_service';
+ }
+ });
+ }
+ }
+ });
+ }
+ });
+ });
+
+ $('#void').on('click', function () {
+ var access_code = localStorage.getItem("access_code");
+ swal({
+ title: "Alert",
+ text: "Are you sure want to Void?",
+ type: "warning",
+ showCancelButton: true,
+ confirmButtonColor: "#DD6B55",
+ confirmButtonText: "Yes, void it!",
+ closeOnConfirm: false
+ }, function (isConfirm) {
+ if (isConfirm) {
var sale_id = $('#sale_id').text();
- console.log(sale_id)
- swal({
- title: "Alert",
- text: "Are you sure want to " + remark +" ?",
- type: "warning",
- showCancelButton: true,
- confirmButtonColor: "#DD6B55",
- confirmButtonText: "Yes, " +remark+ " it!",
- closeOnConfirm: false
- }, function (isConfirm) {
- if (isConfirm) {
- var url = "/origami/sale/" + sale_id +'/'+cashier_type+'/waste_and_spoilage';
- $.ajax({
- type: 'POST',
- url: url,
- data: "remark="+ remark + "&sale_id=" + sale_id,
- success: function (result) {
- console.log(result)
+ var remark = $("#remark").val();
+ var ajax_url = "/origami/sale/" + sale_id +'/'+cashier_type+ '/void';
+ $.ajax({
+ type: 'POST',
+ url: ajax_url,
+ data: "remark="+ remark + "&sale_id=" + sale_id+ "&access_code=" + access_code,
+ success: function (result) {result
+ customer_display_view(null,"reload");
+ // For Server Print - from jade
+ if ($("#server_mode").val() == "cloud") {
+ code2lab.printFile(result.filepath.substr(6), result.printer_url);
+ }
+ if (cashier_type=="cashier") {
+ window.location.href = '/origami';
+ }else{
+ window.location.href = '/origami/quick_service';
+ }
+ }
+ })
+ }
+ });
+ });
+
+ function waste_and_spoilage(remark) {
+ var access_code = localStorage.getItem("access_code");
+ var sale_id = $('#sale_id').text();
+ swal({
+ title: "Alert",
+ text: "Are you sure want to " + remark +" ?",
+ type: "warning",
+ showCancelButton: true,
+ confirmButtonColor: "#DD6B55",
+ confirmButtonText: "Yes, " +remark+ " it!",
+ closeOnConfirm: false
+ }, function (isConfirm) {
+ if (isConfirm) {
+ var url = "/origami/sale/" + sale_id +'/'+cashier_type+'/waste_and_spoilage';
+ $.ajax({
+ type: 'POST',
+ url: url,
+ data: "remark="+ remark + "&sale_id=" + sale_id+ "&access_code=" + access_code,
+ success: function (result) {
+ console.log(result)
// For Server Print - from jade
- if ($("#server_mode").val() == "cloud") {
+ if ($("#server_mode").val() == "cloud") {
code2lab.printFile(result.filepath.substr(6), result.printer_url);
}
if (cashier_type=="cashier") {
@@ -1251,8 +1327,8 @@ var customer_name = "<%= @customer.name %>";
customer_display_view(null,"reload");
}
}
- });
- }
- });
- }
+ });
+ }
+ });
+ }
\ No newline at end of file
diff --git a/app/views/origami/sale_edit/edit.html.erb b/app/views/origami/sale_edit/edit.html.erb
index 3079d76c..6b38ad3c 100755
--- a/app/views/origami/sale_edit/edit.html.erb
+++ b/app/views/origami/sale_edit/edit.html.erb
@@ -187,6 +187,7 @@