diff --git a/README.md b/README.md
index dfebed49..4ba6d51f 100755
--- a/README.md
+++ b/README.md
@@ -200,6 +200,12 @@ Add Feature for Order and Reservation
** '0' means can not use order reservation and '1' means can use order reservation **
=> settings/lookups => { type:order_reservation, name: OrderReservation, value:'{0 or 1}' }
+For Price 0 in receipt bill
+ 2) settings/lookups => { type:show_price, name:Shoe Price, value:1 }
+
+For Price 0 in receipt bill
+ 2) settings/lookups => { type:order_by, name:Order By, value:name }
+
* ToDo list
1. Migration
diff --git a/app/assets/javascripts/addorder.js b/app/assets/javascripts/addorder.js
index 611ffb17..5b3142e6 100755
--- a/app/assets/javascripts/addorder.js
+++ b/app/assets/javascripts/addorder.js
@@ -119,7 +119,6 @@ $(function() {
// $(".menu_sub_category").on("click", function(){
$('.sub_category_list').addClass("hidden");
var menu_id = $(this).attr("data-id");
- console.log(menu_id);
var url = "get_menu_category/"+menu_id;
show_menu_item_list(url,menu_id);
});
@@ -1092,7 +1091,12 @@ $(function() {
if (type == true) {
var table_type = $('#table_id').find("option:selected").data('type');
var table_id = $('#table_id').val();
- window.location.href = "/origami/dashboard";
+ if(window.location.href.includes("modify_order")){
+ var link_url = window.location.href.split("/");
+ window.location.href = "/origami/quick_service/pending_order/"+link_url[link_url.length - 1];
+ }else{
+ window.location.href = "/origami/dashboard";
+ }
}else{
var table_type = $('#table_type').text();
var table_id = $('#table_id').text();
diff --git a/app/assets/javascripts/channels/call_waiter.js b/app/assets/javascripts/channels/call_waiter.js
index f0a804a2..ed1fa0d3 100644
--- a/app/assets/javascripts/channels/call_waiter.js
+++ b/app/assets/javascripts/channels/call_waiter.js
@@ -6,68 +6,73 @@ App.call_waiter = App.cable.subscriptions.create('CallWaiterChannel', {
disconnected: function() {},
received: function(data) {
- table = data.table
- time = data.time
- // for Notificaiotn message
- var element = "#notify-wrapper"
- var animateEnter = "";
- var animateExit = "";
-
- if (time == 'print_error') {
- var colorName = "alert-danger";
- var placementFrom = "center";
- var placementAlign = "center";
- var text = " Hello "+table ;
- style =""
- }else{
- var colorName = "alert-warning";
- var placementFrom = "top";
- var placementAlign = "center";
- var text = " Calling Waiter "+table.name ;
- style ="width:180px !important;"
- }
-
-
- if (text != null || colorName != null){
- showNotification(element, colorName, text, placementFrom, placementAlign, animateEnter, animateExit);
- }
-
- function showNotification(element, colorName, text, placementFrom, placementAlign, animateEnter, animateExit) {
- if (colorName === null || colorName === '') { colorName = 'bg-black'; }
- if (animateEnter === null || animateEnter === '') { animateEnter = 'animated fadeInDown'; }
- if (animateExit === null || animateExit === '') { animateExit = 'animated fadeOutUp'; }
- var allowDismiss = true;
-
- $.notify({
- message: text
- },
+ var hostname = location.hostname.trim();
+ if(data.from == "" || hostname == data.from)
{
- element: element,
- type: colorName,
- allow_dismiss: allowDismiss,
- timer: 200000000000000,
- placement: {
- from: placementFrom,
- align: placementAlign
- },
- animate: {
- enter: animateEnter,
- exit: animateExit
- },
- template: '
' +
- '
× ' +
- '
' +
- '
{1} ' +
- '
{2} ' +
- '
' +
- '
' +
- '
'
- });
+ table = data.table
+ time = data.time
+
+ // for Notificaiotn message
+ var element = "#notify-wrapper"
+ var animateEnter = "";
+ var animateExit = "";
+
+ if (time == 'print_error') {
+ var colorName = "alert-danger";
+ var placementFrom = "center";
+ var placementAlign = "center";
+ var text = " Hello "+table ;
+ style =""
+ }else{
+ var colorName = "alert-warning";
+ var placementFrom = "top";
+ var placementAlign = "center";
+ var text = " Calling Waiter "+table.name ;
+ style ="width:180px !important;"
+ }
+
+
+ if (text != null || colorName != null){
+ showNotification(element, colorName, text, placementFrom, placementAlign, animateEnter, animateExit);
+ }
+
+ function showNotification(element, colorName, text, placementFrom, placementAlign, animateEnter, animateExit) {
+ if (colorName === null || colorName === '') { colorName = 'bg-black'; }
+ if (animateEnter === null || animateEnter === '') { animateEnter = 'animated fadeInDown'; }
+ if (animateExit === null || animateExit === '') { animateExit = 'animated fadeOutUp'; }
+ var allowDismiss = true;
+
+ $.notify({
+ message: text
+ },
+ {
+ element: element,
+ type: colorName,
+ allow_dismiss: allowDismiss,
+ timer: 200000000000000,
+ placement: {
+ from: placementFrom,
+ align: placementAlign
+ },
+ animate: {
+ enter: animateEnter,
+ exit: animateExit
+ },
+ template: '' +
+ '
× ' +
+ '
' +
+ '
{1} ' +
+ '
{2} ' +
+ '
' +
+ '
' +
+ '
'
+ });
+ }
+ //end Notificaiotn message
+ }
}
- //end Notificaiotn message
-}
});
diff --git a/app/assets/javascripts/channels/check_in_booking.js b/app/assets/javascripts/channels/check_in_booking.js
index 18597f4d..410d1c53 100644
--- a/app/assets/javascripts/channels/check_in_booking.js
+++ b/app/assets/javascripts/channels/check_in_booking.js
@@ -5,12 +5,15 @@ App.checkin = App.cable.subscriptions.create('CheckInBookingChannel', {
disconnected: function() {},
- received: function(data) {
- if($('.table_'+data.table.id).hasClass('green')){
- $('.table_'+data.table.id).removeClass('green');
- $('.table_'+data.table.id).addClass('blue');
- }
- $('.new_text_'+data.table.id).removeClass('hide');
- }
+ received: function(data) {
+ var hostname = location.hostname.trim();
+ if(data.from == "" || hostname == data.from){
+ if($('.table_'+data.table.id).hasClass('green')){
+ $('.table_'+data.table.id).removeClass('green');
+ $('.table_'+data.table.id).addClass('blue');
+ }
+ $('.new_text_'+data.table.id).removeClass('hide');
+ }
+ }
});
diff --git a/app/assets/javascripts/channels/check_new_order.js b/app/assets/javascripts/channels/check_new_order.js
index f4d4aa9f..9cf91522 100644
--- a/app/assets/javascripts/channels/check_new_order.js
+++ b/app/assets/javascripts/channels/check_new_order.js
@@ -3,38 +3,40 @@ App.check_new_order = App.cable.subscriptions.create('CheckNewOrderChannel', {
disconnected: function() {},
- received: function(data) {
- var order = data.data;
- var shop_code = data.shop_code;
- 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;
+ received: function(data) {
+ var hostname = location.hostname.trim();
+ if(data.from == "" || hostname == data.from){
+ var order = data.data;
+ var shop_code = data.shop_code;
+ 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);
+ if (typeof checkNewOrderAlert !== 'undefined' && $.isFunction(checkNewOrderAlert)) {
+ checkNewOrderAlert(shop_code, order_lists);
}
- });
-
- // alert(order_lists);
- if (typeof checkNewOrderAlert !== 'undefined' && $.isFunction(checkNewOrderAlert)) {
- checkNewOrderAlert(shop_code, order_lists);
+ // $("#notify_new_order_lists").text(order_lists);
+ // if($("#"+shop_code+"_notify_new_order").hasClass("hidden")){
+ // $("#"+shop_code+"_notify_new_order").removeClass("hidden");
+ // }
+ // $("#"+shop_code+"_notify_new_order").on('shown.bs.modal', function(e){
+ // // $(document).off('focusin.modal');
+ // $("#"+shop_code+"_notify_new_order").focus();
+ // $("#"+shop_code+"_doemal_new_order").addClass("hidden");
+ // $("#"+shop_code+"_notify_order_send_to_kitchen").addClass("hidden");
+ // $("#"+shop_code+"_notify_order_ready_to_delivery").addClass("hidden");
+ // }).on('hide.bs.modal', function (e) {
+ // $("#"+shop_code+"_notify_new_order").addClass("hidden");
+ // }).modal({show: true, keyboard: false, backdrop: false});
}
- // $("#notify_new_order_lists").text(order_lists);
- // if($("#"+shop_code+"_notify_new_order").hasClass("hidden")){
- // $("#"+shop_code+"_notify_new_order").removeClass("hidden");
- // }
- // $("#"+shop_code+"_notify_new_order").on('shown.bs.modal', function(e){
- // // $(document).off('focusin.modal');
- // $("#"+shop_code+"_notify_new_order").focus();
- // $("#"+shop_code+"_doemal_new_order").addClass("hidden");
- // $("#"+shop_code+"_notify_order_send_to_kitchen").addClass("hidden");
- // $("#"+shop_code+"_notify_order_ready_to_delivery").addClass("hidden");
- // }).on('hide.bs.modal', function (e) {
- // $("#"+shop_code+"_notify_new_order").addClass("hidden");
- // }).modal({show: true, keyboard: false, backdrop: false});
}
}
});
diff --git a/app/assets/javascripts/channels/check_order_ready_to_delivery.js b/app/assets/javascripts/channels/check_order_ready_to_delivery.js
index 3f7f53b1..54666735 100644
--- a/app/assets/javascripts/channels/check_order_ready_to_delivery.js
+++ b/app/assets/javascripts/channels/check_order_ready_to_delivery.js
@@ -3,20 +3,23 @@ App.check_order_ready_to_delivery = App.cable.subscriptions.create('CheckOrderRe
disconnected: function() {},
- received: function(data) {
- var order = data.data;
- var shop_code = data.shop_code;
- 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;
- }
- });
+ received: function(data) {
+ var hostname = location.hostname.trim();
+ if(data.from == "" || hostname == data.from)
+ {
+ var order = data.data;
+ var shop_code = data.shop_code;
+ 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);
if (typeof checkOrderReadyToKitchenAlert !== 'undefined' && $.isFunction(checkOrderReadyToKitchenAlert)) {
@@ -37,5 +40,6 @@ App.check_order_ready_to_delivery = App.cable.subscriptions.create('CheckOrderRe
// }).modal({show: true, keyboard: false, backdrop: false});
}
}
+}
});
diff --git a/app/assets/javascripts/channels/check_order_send_to_kitchen.js b/app/assets/javascripts/channels/check_order_send_to_kitchen.js
index 892e0590..fee2e3f6 100644
--- a/app/assets/javascripts/channels/check_order_send_to_kitchen.js
+++ b/app/assets/javascripts/channels/check_order_send_to_kitchen.js
@@ -4,19 +4,22 @@ App.check_order_send_to_kitchen = App.cable.subscriptions.create('CheckOrderSend
disconnected: function() {},
received: function(data) {
- var order = data.data;
- var shop_code = data.shop_code;
- 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;
- }
- });
+ var hostname = location.hostname.trim();
+ if(data.from == "" || hostname == data.from)
+ {
+ var order = data.data;
+ var shop_code = data.shop_code;
+ 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);
if (typeof checkOrderSendToKitchen !== 'undefined' && $.isFunction(checkOrderSendToKitchen)) {
@@ -37,5 +40,6 @@ App.check_order_send_to_kitchen = App.cable.subscriptions.create('CheckOrderSend
// }).modal({show: true, keyboard: false, backdrop: false});
}
}
+}
});
diff --git a/app/assets/javascripts/channels/checkin.js b/app/assets/javascripts/channels/checkin.js
index 03159170..a0712d65 100644
--- a/app/assets/javascripts/channels/checkin.js
+++ b/app/assets/javascripts/channels/checkin.js
@@ -6,6 +6,9 @@ App.order = App.cable.subscriptions.create('CheckinChannel', {
disconnected: function() {},
received: function(data) {
+ var hostname = location.hostname.trim();
+ if(data.from == "" || hostname == data.from)
+ {
$.each(data.table,function(key,value){
if($('.table_'+value.table_id).hasClass('blue')){
$('.table_'+value.table_id).removeClass('blue');
@@ -22,5 +25,6 @@ App.order = App.cable.subscriptions.create('CheckinChannel', {
$('.new_text_'+value.table_id).removeClass('hide');
});
}
+}
});
diff --git a/app/assets/javascripts/channels/order.js b/app/assets/javascripts/channels/order.js
index 26c7897e..87b08c4a 100755
--- a/app/assets/javascripts/channels/order.js
+++ b/app/assets/javascripts/channels/order.js
@@ -3,7 +3,12 @@ App.order = App.cable.subscriptions.create('OrderChannel', {
disconnected: function() {},
- received: function(data) {
+ received: function(data) {
+ var hostname = location.hostname.trim();
+ console.log(hostname)
+ console.log(data.from)
+ if(data.from == "" || hostname == data.from)
+ {
if (data.type == 'order') {
$('.table_'+data.table.id).removeClass('green');
$('.table_'+data.table.id).addClass('blue');
@@ -14,6 +19,7 @@ App.order = App.cable.subscriptions.create('OrderChannel', {
$('.new_text_'+data.table.id).html('');
$('.new_text_'+data.table.id).removeClass('hide')
}
+ }
}
});
diff --git a/app/assets/javascripts/channels/order_queue_station.js b/app/assets/javascripts/channels/order_queue_station.js
index a72a7893..ccb3b0d3 100755
--- a/app/assets/javascripts/channels/order_queue_station.js
+++ b/app/assets/javascripts/channels/order_queue_station.js
@@ -6,83 +6,86 @@ App.order_queue_station = App.cable.subscriptions.create('OrderQueueStationChann
disconnected: function() {},
received: function(data) {
- var oqs_id = $('.oqs_active').attr('data-id');
- items = data.order;
- for(var field in items) {
- var price = parseFloat(items[field].price).toFixed(2);
- if (items[field]["options"] == "[]" || items[field]["options"] == "") {
- var options = "";
- }else{
- var options = items[field]["options"];
- }
- //for count
- test = document.getElementsByClassName("oqs_count");
+ var hostname = location.hostname.trim();
+ if(data.from == "" || hostname == data.from){
+ var oqs_id = $('.oqs_active').attr('data-id');
+ items = data.order;
+ for(var field in items) {
+ var price = parseFloat(items[field].price).toFixed(2);
+ if (items[field]["options"] == "[]" || items[field]["options"] == "") {
+ var options = "";
+ }else{
+ var options = items[field]["options"];
+ }
+ //for count
+ test = document.getElementsByClassName("oqs_count");
- for (var i = 0; i < test.length; i++) {
- oqs_count_id = $(".oqs_count"+i).attr("data-id");
- oqs_count = $(".oqs_count"+i).text();
- if ( oqs_count_id == items[field]["order_queue_station_id"]) {
- oqs_count_total = +oqs_count +1 ;
- $(".oqs_count"+i).text(oqs_count_total)
- }
- }
- //end count
+ for (var i = 0; i < test.length; i++) {
+ oqs_count_id = $(".oqs_count"+i).attr("data-id");
+ oqs_count = $(".oqs_count"+i).text();
+ if ( oqs_count_id == items[field]["order_queue_station_id"]) {
+ oqs_count_total = +oqs_count +1 ;
+ $(".oqs_count"+i).text(oqs_count_total)
+ }
+ }
+ //end count
- var date = new Date(items[field]["created_at"]);
- // var show_date = date.getDate() + "-" + (date.getMonth()+1) + "-" + date.getFullYear() + ' ' + date.getHours()+ ':' + date.getMinutes();
- var show_date =date.getHours()+ ':' + date.getMinutes() +' '+(date.getHours() >= 12 ? 'PM' : 'AM');
+ var date = new Date(items[field]["created_at"]);
+ // var show_date = date.getDate() + "-" + (date.getMonth()+1) + "-" + date.getFullYear() + ' ' + date.getHours()+ ':' + date.getMinutes();
+ var show_date =date.getHours()+ ':' + date.getMinutes() +' '+(date.getHours() >= 12 ? 'PM' : 'AM');
- if (oqs_id == items[field]["order_queue_station_id"]) {
- var table_type = (items[field]["table_type"] != null) ? items[field]["table_type"]:"";
- var zone = (items[field]["zone"] != null) ? "-"+items[field]["zone"]:"No Table";
- (name === 'true') ? 'Y' :'N';
- row =''
- +'
'+items[field]["order_id"]+' '
- +'
'
-
+ if (oqs_id == items[field]["order_queue_station_id"]) {
+ var table_type = (items[field]["table_type"] != null) ? items[field]["table_type"]:"";
+ var zone = (items[field]["zone"] != null) ? "-"+items[field]["zone"]:"No Table";
+ (name === 'true') ? 'Y' :'N';
+ row ='
'
+ +'
'+items[field]["order_id"]+' '
+ +'
'
+
- +'
'
- +''+table_type+''+ zone+' '
- +''+ zone +' '
- +''+items[field]["order_id"]+' '
- +'
'
- +'
'
- +''+ items[field]["item_name"] +'- '
- +' [x'+ items[field]["qty"] +'] '
- +'
'
+ +'
'
+ +''+table_type+''+ zone+' '
+ +''+ zone +' '
+ +''+items[field]["order_id"]+' '
+ +'
'
+ +'
'
+ +''+ items[field]["item_name"] +'- '
+ +' [x'+ items[field]["qty"] +'] '
+ +'
'
- +'
'+ options +'
'
+ +'
'+ options +'
'
- +'
'
- +'Order at - '
- +''+ show_date +' '
+ +''
+ +'Order at - '
+ +''+ show_date +' '
- +'Order By - '+ items[field]["item_order_by"] +' '
- +' '
- +' '
+ +'Order By - '+ items[field]["item_order_by"] +' '
+ +' '
+ +' '
- +'
'+ items[field]["customer_name"] +'
'
- +'
'+ items[field]["assigned_order_item_id"] +'
'
- +'
'
+ +'
'+ items[field]["customer_name"] +'
'
+ +'
'+ items[field]["assigned_order_item_id"] +'
'
+ +'
'
- +''
- +'
';
- $('.oqs_append').append(row);
- }
- }//end looping
+ +''
+ +'
';
+ $('.oqs_append').append(row);
+ }
+ }//end looping
- var $divs = $("div.queue_station");
- var SortListDivs = $divs.sort(function (a, b) {
+ var $divs = $("div.queue_station");
+ var SortListDivs = $divs.sort(function (a, b) {
- first = $(a).attr('data-order-no');
- next = $(b).attr('data-order-no');
+ first = $(a).attr('data-order-no');
+ next = $(b).attr('data-order-no');
- return parseInt(next.substring(4, 16)) - parseInt(first.substring(4, 16));
- });
- $("#oqs_container").html(SortListDivs);
+ return parseInt(next.substring(4, 16)) - parseInt(first.substring(4, 16));
+ });
+ $("#oqs_container").html(SortListDivs);
+ }
},
});
diff --git a/app/assets/javascripts/channels/order_reservation.js b/app/assets/javascripts/channels/order_reservation.js
index 468e4c31..39b31b5a 100644
--- a/app/assets/javascripts/channels/order_reservation.js
+++ b/app/assets/javascripts/channels/order_reservation.js
@@ -4,50 +4,53 @@ App.order_reservation = App.cable.subscriptions.create('OrderReservationChannel'
disconnected: function() {},
received: function(data) {
- var shop_code = data.shop_code;
- var order = data.data;
- if(order.length > 0){
- $('.custom-table.'+shop_code+'_order_reserve_cable tbody').html("");
- $("."+shop_code+" > .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],shop_code);
- }
- var rowCount = key+1;
- var date = new Date(value.created_at);
- 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 hostname = location.hostname.trim();
+ if(data.from == "" || hostname == data.from){
+ var shop_code = data.shop_code;
+ var order = data.data;
+ if(order.length > 0){
+ $('.custom-table.'+shop_code+'_order_reserve_cable tbody').html("");
+ $("."+shop_code+" > .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],shop_code);
+ }
+ var rowCount = key+1;
+ var date = new Date(value.created_at);
+ 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(value.provider == "food2u" || value.provider == "yangondoor2door"){
- delivery_type = "DELIVERY";
- }else if(value.provider == "pick_up"){
- delivery_type = "PICK-UP";
- }else{
- delivery_type = "DIRECT DELIVERY";
- }
+ var delivery_type = "";
+ if(value.provider == "food2u" || value.provider == "yangondoor2door"){
+ delivery_type = "DELIVERY";
+ }else if(value.provider == "pick_up"){
+ delivery_type = "PICK-UP";
+ }else{
+ delivery_type = "DIRECT DELIVERY";
+ }
- row = ''
- +''+rowCount
- +' '
- +''+created_at
- +' '
- +''+time
- +' '
- +''+value.grand_total
- +' '
- +''
- +''+ delivery_type +' '
- +' '
- +' ';
-
- $('.custom-table.'+shop_code+'_order_reserve_cable tbody').append(row);
- });
+ row = ''
+ +''+rowCount
+ +' '
+ +''+created_at
+ +' '
+ +''+time
+ +' '
+ +''+value.grand_total
+ +' '
+ +''
+ +''+ delivery_type +' '
+ +' '
+ +' ';
+
+ $('.custom-table.'+shop_code+'_order_reserve_cable tbody').append(row);
+ });
+ }
+
+ customTableClick();
}
-
- customTableClick();
}
});
diff --git a/app/assets/javascripts/channels/second_display.js b/app/assets/javascripts/channels/second_display.js
index 79b59cac..cfe2de8f 100644
--- a/app/assets/javascripts/channels/second_display.js
+++ b/app/assets/javascripts/channels/second_display.js
@@ -5,33 +5,36 @@ App.checkin = App.cable.subscriptions.create('SecondDisplayChannel', {
disconnected: function() {},
- received: function(data) {
- var data_obj = data.data;
- var status = data.status;
- var count = 0
- var sub_total = 0
- if (data.status == "order") {
- for(var i in data_obj) {
+ received: function(data) {
+ var hostname = location.hostname.trim();
+ if(data.from == "" || hostname == data.from){
+ var data_obj = data.data;
+ var status = data.status;
+ var count = 0
+ var sub_total = 0
+ if (data.status == "order") {
+ for(var i in data_obj) {
- sub_total = sub_total + (data_obj[i].price * data_obj[i].qty)
- count += 1
- row =''
- +''+count+' '
- +''+data_obj[i].item_name+' '
- +''+data_obj[i].qty +' '
- + ''+data_obj[i].qty*data_obj[i].price +' '
- +' '
- $(".second_display_items").append(row);
- }//end looping
- }else{
- $('#s_sub_total').empty();
- $('#s_sub_total').append(data_obj.total_amount);
- $('#s_total_discount').empty();
- $('#s_total_discount').append(data_obj.total_discount);
- $('#s_tatal_tax').empty();
- $('#s_tatal_tax').append(data_obj.total_tax);
- $('#s_grand_total').empty();
- $('#s_grand_total').append(data_obj.grand_total);
+ sub_total = sub_total + (data_obj[i].price * data_obj[i].qty)
+ count += 1
+ row =''
+ +''+count+' '
+ +''+data_obj[i].item_name+' '
+ +''+data_obj[i].qty +' '
+ + ''+data_obj[i].qty*data_obj[i].price +' '
+ +' '
+ $(".second_display_items").append(row);
+ }//end looping
+ }else{
+ $('#s_sub_total').empty();
+ $('#s_sub_total').append(data_obj.total_amount);
+ $('#s_total_discount').empty();
+ $('#s_total_discount').append(data_obj.total_discount);
+ $('#s_tatal_tax').empty();
+ $('#s_tatal_tax').append(data_obj.total_tax);
+ $('#s_grand_total').empty();
+ $('#s_grand_total').append(data_obj.grand_total);
+ }
}
}
});
diff --git a/app/assets/javascripts/channels/second_display_view.js b/app/assets/javascripts/channels/second_display_view.js
index 1a1cba86..6a532f09 100644
--- a/app/assets/javascripts/channels/second_display_view.js
+++ b/app/assets/javascripts/channels/second_display_view.js
@@ -6,161 +6,163 @@ App.checkin = App.cable.subscriptions.create('SecondDisplayViewChannel', {
disconnected: function() {},
received: function(data) {
- var items = data.data;
- var tax = data.tax_profiles;
- var status= data.status
- if (status == "reload") {
- jQuery('#s_reload').click();
- }
- $('#second_display_slider').addClass("hidden")
- $('#second_display_items').removeClass("hidden")
-
-
- // append items
- if (status == "add") {
- for(var i in items) {
- qty = parseInt(items[i].qty);
- append = 0;
- price = items[i].price;
-
- instance_name = items[i].instance;
- if (instance_name == "undefined"){
- instance = '';
- }else{
- instance = "("+items[i].instance+")";
- }
-
- // d_option = items[i].options;
- // if (d_option){
- // option_name = "-"+items[i].options;
- // }else{
- // option_name = '';
- // }
-
- d_option = items[i].opt;
- if (items[i].click_type != "add_icon"){
- option_name = "-"+items[i].options;
- data_option = items[i].options ;
- }else{
- option_name = ' ';
- data_option = '[]';
- }
-
- var rowCount = $('.second_display_items tbody tr').length+1;
- var item_row = $('.second_display_items tbody tr');
-
- $(item_row).each(function(j){
- var item_code = $(item_row[j]).attr('data-code');
- var instance_code = $(item_row[j]).attr('data-instance-code');
- var r_option = $(item_row[j]).attr('data-options');
- if (item_code == items[i].item_code && instance_code == items[i].instance_code && r_option==d_option) {
- if (qty > 1) {
- qty = parseInt($(item_row[j]).children('#item_qty').text()) + qty;
- }else{
- qty = parseInt($(item_row[j]).children('#item_qty').text()) + 1;
- }
-
- $(item_row[j]).children('#item_qty').text(qty);
- parseFloat($(item_row[j]).children('#item_price').text(parseFloat(price*qty).toFixed(2)));
- append =1;
- }else{
- if (qty > 1) {
- qty = qty;
- }else{
- qty = 1;
- }
- }
- });
- if (append===0) {
- row =""
- +''+rowCount+' '
- +'' + items[i].name+ ' ' + instance + ' ' + option_name +' '
- +'' + qty + ' '
- +''
- + parseFloat(price).toFixed(2)
- +' '
- +' ';
- $(".second_display_items tbody").append(row);
-
- }
+ var hostname = location.hostname.trim();
+ if(data.from == "" || hostname == data.from){
+ var items = data.data;
+ var tax = data.tax_profiles;
+ var status= data.status
+ if (status == "reload") {
+ jQuery('#s_reload').click();
}
- }
- if (status == "set_add") {
- // var option_arr = [];
- var attribute_arr = [];
- var rowCount = $('.second_display_items tbody tr').length+1;
- for(var i in items) {
- code = items[i].code;
- item_code = items[i].item_code;
- name = items[i].name;
- item_name = items[i].item_name;
- qty = items[i].qty;
+ $('#second_display_slider').addClass("hidden")
+ $('#second_display_items').removeClass("hidden")
+
+
+ // append items
+ if (status == "add") {
+ for(var i in items) {
+ qty = parseInt(items[i].qty);
+ append = 0;
price = items[i].price;
- option = items[i].option;
- sub_item = items[i].sub_item;
- total = qty * price ;
- // option_arr.push(option);
- row =""
+
+ instance_name = items[i].instance;
+ if (instance_name == "undefined"){
+ instance = '';
+ }else{
+ instance = "("+items[i].instance+")";
+ }
+
+ // d_option = items[i].options;
+ // if (d_option){
+ // option_name = "-"+items[i].options;
+ // }else{
+ // option_name = '';
+ // }
+
+ d_option = items[i].opt;
+ if (items[i].click_type != "add_icon"){
+ option_name = "-"+items[i].options;
+ data_option = items[i].options ;
+ }else{
+ option_name = ' ';
+ data_option = '[]';
+ }
+
+ var rowCount = $('.second_display_items tbody tr').length+1;
+ var item_row = $('.second_display_items tbody tr');
+
+ $(item_row).each(function(j){
+ var item_code = $(item_row[j]).attr('data-code');
+ var instance_code = $(item_row[j]).attr('data-instance-code');
+ var r_option = $(item_row[j]).attr('data-options');
+ if (item_code == items[i].item_code && instance_code == items[i].instance_code && r_option==d_option) {
+ if (qty > 1) {
+ qty = parseInt($(item_row[j]).children('#item_qty').text()) + qty;
+ }else{
+ qty = parseInt($(item_row[j]).children('#item_qty').text()) + 1;
+ }
+
+ $(item_row[j]).children('#item_qty').text(qty);
+ parseFloat($(item_row[j]).children('#item_price').text(parseFloat(price*qty).toFixed(2)));
+ append =1;
+ }else{
+ if (qty > 1) {
+ qty = qty;
+ }else{
+ qty = 1;
+ }
+ }
+ });
+ if (append===0) {
+ row =" "
+''+rowCount+' '
- +'' + item_name+ ' ' + name + ''+option+' '
+ +'' + items[i].name+ ' ' + instance + ' ' + option_name +' '
+'' + qty + ' '
+''
- + parseFloat(total).toFixed(2)
+ + parseFloat(price).toFixed(2)
+' '
+' ';
$(".second_display_items tbody").append(row);
- rowCount = rowCount + 1;
-
- }
- }
- //end apend items
- var total_price = 0;
- var taxable_amount = 0;
- var total_discount = 0
- var total_tax_amount = 0
- var item_row = $('.second_display_items tbody tr');
- //calculate Sub Total
- $(item_row).each(function(i){
- var unit_price = parseFloat($(item_row[i]).attr('data-price'));
- var qty = parseFloat($(item_row[i]).children('#item_qty').text());
- total_price += qty*unit_price;
- });
- //calculate Tax Amount
- for(var i in tax) {
- // substract , to give after discount
- var total_tax = total_price - total_discount
- // include or execulive
- if (tax[i].inclusive){
- rate = tax[i].rate
- divided_value = (100 + rate)/rate
- total_tax_amount = total_tax_amount + (total_tax / divided_value)
- }else{
- total_tax_amount = total_tax_amount + (total_tax * tax[i].rate / 100)
+
+ }
}
}
- //end calculate Tax amount
- var fixed_total_price = parseFloat(total_price).toFixed(2);
- var fixed_taxable_amount = parseFloat(total_tax_amount).toFixed(2);
- var fixed_grand_total = parseFloat(total_price + total_tax_amount).toFixed(2);
+ if (status == "set_add") {
+ // var option_arr = [];
+ var attribute_arr = [];
+ var rowCount = $('.second_display_items tbody tr').length+1;
+ for(var i in items) {
+ code = items[i].code;
+ item_code = items[i].item_code;
+ name = items[i].name;
+ item_name = items[i].item_name;
+ qty = items[i].qty;
+ price = items[i].price;
+ option = items[i].option;
+ sub_item = items[i].sub_item;
+ total = qty * price ;
+ // option_arr.push(option);
+ row =""
+ +''+rowCount+' '
+ +'' + item_name+ ' ' + name + ''+option+' '
+ +'' + qty + ' '
+ +''
+ + parseFloat(total).toFixed(2)
+ +' '
+ +' ';
+ $(".second_display_items tbody").append(row);
+ rowCount = rowCount + 1;
+
+ }
+ }
+ //end apend items
+ var total_price = 0;
+ var taxable_amount = 0;
+ var total_discount = 0
+ var total_tax_amount = 0
+ var item_row = $('.second_display_items tbody tr');
+ //calculate Sub Total
+ $(item_row).each(function(i){
+ var unit_price = parseFloat($(item_row[i]).attr('data-price'));
+ var qty = parseFloat($(item_row[i]).children('#item_qty').text());
+ total_price += qty*unit_price;
+ });
+ //calculate Tax Amount
+ for(var i in tax) {
+ // substract , to give after discount
+ var total_tax = total_price - total_discount
+ // include or execulive
+ if (tax[i].inclusive){
+ rate = tax[i].rate
+ divided_value = (100 + rate)/rate
+ total_tax_amount = total_tax_amount + (total_tax / divided_value)
+ }else{
+ total_tax_amount = total_tax_amount + (total_tax * tax[i].rate / 100)
+ }
+ }
+ //end calculate Tax amount
+ var fixed_total_price = parseFloat(total_price).toFixed(2);
+ var fixed_taxable_amount = parseFloat(total_tax_amount).toFixed(2);
+ var fixed_grand_total = parseFloat(total_price + total_tax_amount).toFixed(2);
- $('#s_sub_total').empty();
- $('#s_sub_total').append(fixed_total_price);
- $('#s_tatal_tax').empty();
- $('#s_tatal_tax').append(fixed_taxable_amount);
- $('#s_grand_total').empty();
- $('#s_grand_total').append(fixed_grand_total);
+ $('#s_sub_total').empty();
+ $('#s_sub_total').append(fixed_total_price);
+ $('#s_tatal_tax').empty();
+ $('#s_tatal_tax').append(fixed_taxable_amount);
+ $('#s_grand_total').empty();
+ $('#s_grand_total').append(fixed_grand_total);
+ }
}
-
});
diff --git a/app/controllers/api/bill_controller.rb b/app/controllers/api/bill_controller.rb
index 2fb3d621..8d8af8b2 100755
--- a/app/controllers/api/bill_controller.rb
+++ b/app/controllers/api/bill_controller.rb
@@ -47,9 +47,12 @@ class Api::BillController < Api::ApiController
Promotion.promo_activate(@sale)
#BillBroadcastJob.perform_later(table)
- #if ENV["SERVER_MODE"] != 'cloud'
- ActionCable.server.broadcast "bill_channel",table: table
- #end
+ if ENV["SERVER_MODE"] == 'cloud'
+ from = request.subdomain + "." + request.domain
+ else
+ from = ""
+ end
+ ActionCable.server.broadcast "bill_channel",table: table, from: from
else
@status = false
@error_message = "No Current Open Shift"
diff --git a/app/controllers/api/call_waiters_controller.rb b/app/controllers/api/call_waiters_controller.rb
index b8c11897..9c6ad974 100644
--- a/app/controllers/api/call_waiters_controller.rb
+++ b/app/controllers/api/call_waiters_controller.rb
@@ -6,9 +6,12 @@ class Api::CallWaitersController < ActionController::API
@time = params[:time]
@table = DiningFacility.find(@table_id)
# CallWaiterJob.perform_later(@table,@time)
- #if ENV["SERVER_MODE"] != 'cloud'
- ActionCable.server.broadcast "call_waiter_channel",table: @table,time:@time
- #end
+ if ENV["SERVER_MODE"] == 'cloud'
+ from = request.subdomain + "." + request.domain
+ else
+ from = ""
+ end
+ ActionCable.server.broadcast "call_waiter_channel",table: @table,time:@time,from: from
# get printer info
@shop = Shop.first
unique_code = "CallWaiterPdf"
diff --git a/app/controllers/api/check_in_process_controller.rb b/app/controllers/api/check_in_process_controller.rb
index 4bd9434d..492e345e 100644
--- a/app/controllers/api/check_in_process_controller.rb
+++ b/app/controllers/api/check_in_process_controller.rb
@@ -6,7 +6,16 @@ class Api::CheckInProcessController < Api::ApiController
booking = dining_facility.get_current_checkout_booking
if !booking.nil?
- DiningFacility.check_in_booking(params[:dining_id])
+ # DiningFacility.check_in_booking(params[:dining_id])
+
+ table = DiningFacility.find(params[:dining_id])
+ #Send to background job for processing
+ if ENV["SERVER_MODE"] == 'cloud'
+ from = request.subdomain + "." + request.domain
+ else
+ from = ""
+ end
+ ActionCable.server.broadcast "check_in_booking_channel",table: table,from:from
check_in_time = booking.checkin_at.utc.getlocal.strftime("%Y-%m-%d %H:%M")
check_out_time = booking.checkout_at.utc.getlocal.strftime("%Y-%m-%d %H:%M")
diff --git a/app/controllers/api/order_reserve/order_reservation_controller.rb b/app/controllers/api/order_reserve/order_reservation_controller.rb
index a7929653..32e87a20 100644
--- a/app/controllers/api/order_reserve/order_reservation_controller.rb
+++ b/app/controllers/api/order_reserve/order_reservation_controller.rb
@@ -73,7 +73,12 @@ class Api::OrderReserve::OrderReservationController < Api::ApiController
result = { :status => true, :order_reservation_id => order_reservation_id, :message => "Order reservation is successfully created!" }
order_reservation = OrderReservation.get_pending_orders #find(order_reservation_id)
- ActionCable.server.broadcast "order_reservation_channel",data: order_reservation,shop_code: shop_code
+ if ENV["SERVER_MODE"] == 'cloud'
+ from = request.subdomain + "." + request.domain
+ else
+ from = ""
+ end
+ ActionCable.server.broadcast "order_reservation_channel",data: order_reservation,shop_code: shop_code,from:from
else
result = { :status => true, :order_reservation_id => order_reservation_id, :message => "Order reservation is already existed!" }
end
diff --git a/app/controllers/crm/customers_controller.rb b/app/controllers/crm/customers_controller.rb
old mode 100755
new mode 100644
diff --git a/app/controllers/origami/addorders_controller.rb b/app/controllers/origami/addorders_controller.rb
index 63cb8736..3fc11693 100755
--- a/app/controllers/origami/addorders_controller.rb
+++ b/app/controllers/origami/addorders_controller.rb
@@ -181,6 +181,12 @@ puts params[:id]
@status, @booking = @order.generate
+ if @status && @booking
+ if params[:order_source] != "quick_service"
+ process_order_queue(@order.order_id,@order.table_id,@order.source)
+ end
+ end
+
# Order.send_customer_view(@booking)
if current_user.role != "waiter" && params[:create_type] == "create_pay"
@@ -188,8 +194,12 @@ puts params[:id]
@status, @sale = Sale.request_bill(@order,current_user,current_login_employee)
# for second display
- #if ENV["SERVER_MODE"] != 'cloud'
- ActionCable.server.broadcast "second_display_channel",data: @sale,status:"sale"
+ if ENV["SERVER_MODE"] == 'cloud'
+ from = request.subdomain + "." + request.domain
+ else
+ from = ""
+ end
+ ActionCable.server.broadcast "second_display_channel",data: @sale,status:"sale",from:from
#end
result = {:status=> @status, :data => @sale }
render :json => result.to_json
@@ -240,6 +250,81 @@ puts params[:id]
return false
end
end
+
+ def process_order_queue(order_id,table_id,order_source)
+ print_status = nil
+ cup_status = nil
+
+ #Send to background job for processing
+ order = Order.find(order_id)
+ sidekiq = Lookup.find_by_lookup_type("sidekiq")
+
+ if ENV["SERVER_MODE"] != 'cloud'
+ cup_status = `#{"sudo service cups status"}`
+ print_status = check_cup_status(cup_status)
+ end
+
+ if print_status
+ if !sidekiq.nil?
+ OrderQueueProcessorJob.perform_later(order_id, table_id)
+ else
+ if order
+ oqs = OrderQueueStation.new
+ oqs.process_order(order, table_id, order_source)
+ end
+ # assign_order = AssignedOrderItem.assigned_order_item_by_job(order_id)
+ # ActionCable.server.broadcast "order_queue_station_channel",order: assign_order
+ end
+ else
+ if ENV["SERVER_MODE"] != 'cloud'
+ cup_start = `#{"sudo service cups start"}`
+ cup_status = `#{"sudo service cups status"}`
+ print_status = check_cup_status(cup_status)
+ end
+
+ if print_status
+ if !sidekiq.nil?
+ OrderQueueProcessorJob.perform_later(order_id, table_id)
+ else
+ if order
+ oqs = OrderQueueStation.new
+ oqs.process_order(order, table_id, order_source)
+ end
+ # assign_order = AssignedOrderItem.assigned_order_item_by_job(order_id)
+ # ActionCable.server.broadcast "order_queue_station_channel",order: assign_order
+ end
+ else
+ if ENV["SERVER_MODE"] != 'cloud'
+ from = ""
+ msg = ' Print Error ! Please contact to service'
+ ActionCable.server.broadcast "call_waiter_channel",table: msg,time:'print_error',from:from
+ end
+ if !sidekiq.nil?
+ OrderQueueProcessorJob.perform_later(order_id, table_id)
+ else
+ if order
+ oqs = OrderQueueStation.new
+ oqs.process_order(order, table_id, order_source)
+ end
+
+ if ENV["SERVER_MODE"] == 'cloud'
+ from = request.subdomain + "." + request.domain
+ else
+ from = ""
+ end
+ assign_order = AssignedOrderItem.assigned_order_item_by_job(order_id)
+ ActionCable.server.broadcast "order_queue_station_channel",order: assign_order,from:from
+ end
+ end
+ end
+ end
+
+ def check_cup_status(status)
+ if status.include? "Active: active (running)" || "Active: active (exited)" #"Cup Server is already running"
+ return true
+ end
+ return false
+ end
private
diff --git a/app/controllers/origami/customers_controller.rb b/app/controllers/origami/customers_controller.rb
old mode 100755
new mode 100644
diff --git a/app/controllers/origami/product_commissions_controller.rb b/app/controllers/origami/product_commissions_controller.rb
index 2f209a7a..31343fe5 100755
--- a/app/controllers/origami/product_commissions_controller.rb
+++ b/app/controllers/origami/product_commissions_controller.rb
@@ -88,41 +88,49 @@ class Origami::ProductCommissionsController < BaseOrigamiController
commissioner_id = params[:commissioner_id]
@sale_item = SaleItem.find(sale_item_id)
@menu_item = MenuItem.find_by_item_code(@sale_item.product_code)
- @commission = Commission.where('product_code = ? AND is_active = ?', @menu_item.id, true).take
+ # @commission = Commission.where('product_code = ? AND is_active = ?', @menu_item.item_code, true).take
+
+ Commission.all.each do |com|
+ if com.product_code.include? @menu_item.item_code && com.active == true
+ @commission = Commission.find(com.id)
+ break
+ end
+ end
@commissioner = Commissioner.where('id = ? AND is_active = ?', commissioner_id, true).take
@product_commission = ProductCommission.where('sale_item_id = ?', @sale_item.id).take
-
- if !@product_commission.nil?
- if @product_commission.commissioner_id == @commissioner.id
- @product_commission.destroy
- deselect = true
- else
- @product_commission.commissioner_id = @commissioner.id
- deselect = false
- end
- else
- @product_commission = ProductCommission.new
- @product_commission.product_code = @menu_item.id
- @product_commission.product_type = 'menu_item' # use for dummy data ToDo::need to change product type
- unless @commission.nil?
- @product_commission.commission_id = @commission.id
- if @commission.commission_type == 'Percentage'
- @product_commission.price = @sale_item.unit_price * (@commission.amount / 100.0)
- @product_commission.amount = @product_commission.price * @sale_item.qty
- elsif @commission.commission_type == 'Net Amount'
- @product_commission.price = @commission.amount
- @product_commission.amount = @product_commission.price * @sale_item.qty
+ if !@commission.nil? && @commissioner.commission_id == @commission.commission_id
+ if !@product_commission.nil?
+ if @product_commission.commissioner_id == @commissioner.id
+ @product_commission.destroy
+ deselect = true
+ else
+ @product_commission.commissioner_id = @commissioner.id
+ deselect = false
end
+ else
+ @product_commission = ProductCommission.new
+ @product_commission.product_code = @menu_item.item_code
+ @product_commission.product_type = 'menu_item' # use for dummy data ToDo::need to change product type
+ unless @commission.nil?
+ @product_commission.commission_id = @commission.id
+ if @commission.commission_type == 'Percentage'
+ @product_commission.price = @sale_item.unit_price * (@commission.amount / 100.0)
+ @product_commission.amount = @product_commission.price * @sale_item.qty
+ elsif @commission.commission_type == 'Net Amount'
+ @product_commission.price = @commission.amount
+ @product_commission.amount = @product_commission.price * @sale_item.qty
+ end
+ end
+ @product_commission.commissioner_id = @commissioner.id
+ @product_commission.qty = @sale_item.qty
+ @product_commission.sale_id = @sale_item.sale_id
+ @product_commission.sale_item_id = @sale_item.sale_item_id
+ end
+ if @product_commission.save
+ render json: {status: true, deselect: deselect}
+ else
+ render json: {status: false, deselect: deselect}
end
- @product_commission.commissioner_id = @commissioner.id
- @product_commission.qty = @sale_item.qty
- @product_commission.sale_id = @sale_item.sale_id
- @product_commission.sale_item_id = @sale_item.sale_item_id
- end
- if @product_commission.save
- render json: {status: true, deselect: deselect}
- else
- render json: {status: false, deselect: deselect}
end
end
diff --git a/app/controllers/origami/second_display_controller.rb b/app/controllers/origami/second_display_controller.rb
index ac869719..5f88bdfc 100644
--- a/app/controllers/origami/second_display_controller.rb
+++ b/app/controllers/origami/second_display_controller.rb
@@ -13,8 +13,12 @@ class Origami::SecondDisplayController < BaseOrigamiController
else
tax_profiles = nil
end
- #if ENV["SERVER_MODE"] != 'cloud'
- ActionCable.server.broadcast "second_display_view_channel",data: params[:data],tax_profiles: tax_profiles,status:params[:status]
+ if ENV["SERVER_MODE"] == 'cloud'
+ from = request.subdomain + "." + request.domain
+ else
+ from = ""
+ end
+ ActionCable.server.broadcast "second_display_view_channel",data: params[:data],tax_profiles: tax_profiles,status:params[:status],from:from
# end
end
#Shop Name in Navbor
diff --git a/app/controllers/origami/split_bill_controller.rb b/app/controllers/origami/split_bill_controller.rb
index 2d2ca4fb..77f4589a 100755
--- a/app/controllers/origami/split_bill_controller.rb
+++ b/app/controllers/origami/split_bill_controller.rb
@@ -337,9 +337,13 @@ class Origami::SplitBillController < BaseOrigamiController
end
Promotion.promo_activate(sale)
- #if ENV["SERVER_MODE"] != 'cloud'
- ActionCable.server.broadcast "bill_channel",table: table
- #end
+ if ENV["SERVER_MODE"] == 'cloud'
+ from = request.subdomain + "." + request.domain
+ else
+ from = ""
+ end
+ ActionCable.server.broadcast "bill_channel",table: table,from:from
+
render :json => { status: status }
else
render :json => { status: false, error_message: 'No Current Open Shift!'}
diff --git a/app/models/dining_facility.rb b/app/models/dining_facility.rb
index cff5fd60..c0843dbd 100755
--- a/app/models/dining_facility.rb
+++ b/app/models/dining_facility.rb
@@ -157,15 +157,25 @@ class DiningFacility < ApplicationRecord
#Send to background job for processing
# CheckInBookingJob.perform_later(table)
#if ENV["SERVER_MODE"] != 'cloud'
- ActionCable.server.broadcast "check_in_booking_channel",table: table
+ if ENV["SERVER_MODE"] == 'cloud'
+ from = request.subdomain + "." + request.domain
+ else
+ from = ""
+ end
+ ActionCable.server.broadcast "check_in_booking_channel",table: table,from:from
#end
end
def self.checkin_time
table = DiningFacility.get_checkin_booking
if table.length > 0
+ if ENV["SERVER_MODE"] == 'cloud'
+ from = request.subdomain + "." + request.domain
+ else
+ from = ""
+ end
if ENV["SERVER_MODE"] != 'cloud'
- ActionCable.server.broadcast "checkin_channel",table: table
+ ActionCable.server.broadcast "checkin_channel",table: table,from:from
end
end
end
diff --git a/app/models/display_image.rb b/app/models/display_image.rb
index 30d83566..73e88e31 100644
--- a/app/models/display_image.rb
+++ b/app/models/display_image.rb
@@ -1,3 +1,3 @@
class DisplayImage < ApplicationRecord
- belongs_to :shop
+ belongs_to :shop
end
diff --git a/app/models/menu_category.rb b/app/models/menu_category.rb
index 21d95770..218bacb8 100755
--- a/app/models/menu_category.rb
+++ b/app/models/menu_category.rb
@@ -9,7 +9,7 @@ class MenuCategory < ApplicationRecord
validates_presence_of :code, :name, :menu, :order_by
validates_uniqueness_of :code
- default_scope { order('name asc') }
+ default_scope { order('order_by asc') }
scope :active, -> {where("is_available = 1")}
def self.destroyCategory(menu_category)
diff --git a/app/models/menu_item.rb b/app/models/menu_item.rb
index e184cd51..03e90011 100755
--- a/app/models/menu_item.rb
+++ b/app/models/menu_item.rb
@@ -16,7 +16,7 @@ class MenuItem < ApplicationRecord
validates_presence_of :item_code, :name, :type, :min_qty,:account_id
validates_uniqueness_of :item_code
- default_scope { order('name asc') }
+ default_scope { order('item_code asc') }
scope :simple_menu_item, -> { where(type: 'SimpleMenuItem') }
scope :set_menu_item, -> { where(type: 'SetMenuItem') }
diff --git a/app/models/order.rb b/app/models/order.rb
index 8a0e52b3..9a52942e 100755
--- a/app/models/order.rb
+++ b/app/models/order.rb
@@ -71,9 +71,9 @@ class Order < ApplicationRecord
BookingOrder.create({:booking_id => booking.booking_id, :order => self})
#Send order to queue one it done!
- if self.source != "quick_service"
- process_order_queue
- end
+ # if self.source != "quick_service"
+ # process_order_queue
+ # end
#send order to broadcast job
send_order_broadcast(booking)
@@ -108,9 +108,9 @@ class Order < ApplicationRecord
BookingOrder.create({:booking_id => booking.booking_id, :order => self})
#Send order to queue one it done!
- if self.source != "quick_service"
- process_order_queue
- end
+ # if self.source != "quick_service"
+ # process_order_queue
+ # end
#send order to broadcast job
send_order_broadcast(booking)
@@ -283,69 +283,7 @@ class Order < ApplicationRecord
# Counter number of quantityf
end
- #Process order items and send to order queue
- def process_order_queue
- print_status = nil
- cup_status = nil
-
- #Send to background job for processing
- order = Order.find(self.id)
- sidekiq = Lookup.find_by_lookup_type("sidekiq")
-
- if ENV["SERVER_MODE"] != 'cloud'
- cup_status = `#{"sudo service cups status"}`
- print_status = check_cup_status(cup_status)
- end
-
- if print_status
- if !sidekiq.nil?
- OrderQueueProcessorJob.perform_later(self.id, self.table_id)
- else
- if order
- oqs = OrderQueueStation.new
- oqs.process_order(order, self.table_id, self.source)
- end
- # assign_order = AssignedOrderItem.assigned_order_item_by_job(self.id)
- # ActionCable.server.broadcast "order_queue_station_channel",order: assign_order
- end
- else
- if ENV["SERVER_MODE"] != 'cloud'
- cup_start = `#{"sudo service cups start"}`
- cup_status = `#{"sudo service cups status"}`
- print_status = check_cup_status(cup_status)
- end
-
- if print_status
- if !sidekiq.nil?
- OrderQueueProcessorJob.perform_later(self.id, self.table_id)
- else
- if order
- oqs = OrderQueueStation.new
- oqs.process_order(order, self.table_id, self.source)
- end
- # assign_order = AssignedOrderItem.assigned_order_item_by_job(self.id)
- # ActionCable.server.broadcast "order_queue_station_channel",order: assign_order
- end
- else
- if ENV["SERVER_MODE"] != 'cloud'
-
- msg = ' Print Error ! Please contact to service'
- ActionCable.server.broadcast "call_waiter_channel",table: msg,time:'print_error'
- end
- if !sidekiq.nil?
- OrderQueueProcessorJob.perform_later(self.id, self.table_id)
- else
- if order
- oqs = OrderQueueStation.new
- oqs.process_order(order, self.table_id, self.source)
- end
- assign_order = AssignedOrderItem.assigned_order_item_by_job(self.id)
- ActionCable.server.broadcast "order_queue_station_channel",order: assign_order
- end
- end
- end
- end
-
+
#Process order items and send to order queue
def self.pay_process_order_queue(id,table_id)
# if ENV["SERVER_MODE"] != 'cloud'
@@ -378,9 +316,13 @@ class Order < ApplicationRecord
type = 'order'
#Send to background job for processing
# OrderBroadcastJob.perform_later(table,type)
- #if ENV["SERVER_MODE"] != 'cloud'
- ActionCable.server.broadcast "order_channel",table: table,type:type
- #end
+ if ENV["SERVER_MODE"] == 'cloud'
+ from = request.subdomain + "." + request.domain
+ else
+ from = ""
+ end
+ ActionCable.server.broadcast "order_channel",table: table,type:type,from:from
+
end
end
@@ -534,11 +476,78 @@ class Order < ApplicationRecord
end
end
end
- #if ENV["SERVER_MODE"] != 'cloud'
- ActionCable.server.broadcast "second_display_channel",data: @data_array,status:@status
- #end
+ if ENV["SERVER_MODE"] == 'cloud'
+ from = request.subdomain + "." + request.domain
+ else
+ from = ""
+ end
+ ActionCable.server.broadcast "second_display_channel",data: @data_array,status:@status,from:from
end
+ #Process order items and send to order queue
+ # def process_order_queue
+ # print_status = nil
+ # cup_status = nil
+
+ # #Send to background job for processing
+ # order = Order.find(self.id)
+ # sidekiq = Lookup.find_by_lookup_type("sidekiq")
+
+ # if ENV["SERVER_MODE"] != 'cloud'
+ # cup_status = `#{"sudo service cups status"}`
+ # print_status = check_cup_status(cup_status)
+ # end
+
+ # if print_status
+ # if !sidekiq.nil?
+ # OrderQueueProcessorJob.perform_later(self.id, self.table_id)
+ # else
+ # if order
+ # oqs = OrderQueueStation.new
+ # oqs.process_order(order, self.table_id, self.source)
+ # end
+ # # assign_order = AssignedOrderItem.assigned_order_item_by_job(self.id)
+ # # ActionCable.server.broadcast "order_queue_station_channel",order: assign_order
+ # end
+ # else
+ # if ENV["SERVER_MODE"] != 'cloud'
+ # cup_start = `#{"sudo service cups start"}`
+ # cup_status = `#{"sudo service cups status"}`
+ # print_status = check_cup_status(cup_status)
+ # end
+
+ # if print_status
+ # if !sidekiq.nil?
+ # OrderQueueProcessorJob.perform_later(self.id, self.table_id)
+ # else
+ # if order
+ # oqs = OrderQueueStation.new
+ # oqs.process_order(order, self.table_id, self.source)
+ # end
+ # # assign_order = AssignedOrderItem.assigned_order_item_by_job(self.id)
+ # # ActionCable.server.broadcast "order_queue_station_channel",order: assign_order
+ # end
+ # else
+ # if ENV["SERVER_MODE"] != 'cloud'
+
+ # msg = ' Print Error ! Please contact to service'
+ # ActionCable.server.broadcast "call_waiter_channel",table: msg,time:'print_error'
+ # end
+ # if !sidekiq.nil?
+ # OrderQueueProcessorJob.perform_later(self.id, self.table_id)
+ # else
+ # if order
+ # oqs = OrderQueueStation.new
+ # oqs.process_order(order, self.table_id, self.source)
+ # end
+ # assign_order = AssignedOrderItem.assigned_order_item_by_job(self.id)
+ # ActionCable.server.broadcast "order_queue_station_channel",order: assign_order
+ # end
+ # end
+ # end
+ # end
+
+
private
def generate_custom_id
diff --git a/app/models/order_queue_station.rb b/app/models/order_queue_station.rb
index 70b28c1f..d731c3d2 100755
--- a/app/models/order_queue_station.rb
+++ b/app/models/order_queue_station.rb
@@ -116,7 +116,19 @@ class OrderQueueStation < ApplicationRecord
order = Order.find(order_id)
order_items = order.order_items
- Order.pay_process_order_queue(order_id,table_id)
+ # Order.pay_process_order_queue(order_id,table_id)
+ # if order
+ # oqs = OrderQueueStation.new
+ # oqs.process_order(order, table_id)
+ # end
+ assign_order = AssignedOrderItem.assigned_order_item_by_job(order_id)
+ if ENV["SERVER_MODE"] == 'cloud'
+ from = request.subdomain + "." + request.domain
+ else
+ from = ""
+ end
+ ActionCable.server.broadcast "order_queue_station_channel",order: assign_order,from:from
+
if table_id.to_i > 0
# get dining
dining = DiningFacility.find(table_id)
diff --git a/app/models/order_reservation.rb b/app/models/order_reservation.rb
index 0b4ccc77..89e45021 100644
--- a/app/models/order_reservation.rb
+++ b/app/models/order_reservation.rb
@@ -317,9 +317,15 @@ class OrderReservation < ApplicationRecord
end
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, shop_code: shop_code
- end
+ if ENV["SERVER_MODE"] == 'cloud'
+ from = request.subdomain + "." + request.domain
+ ActionCable.server.broadcast "check_new_order_channel",data: order_reservation, shop_code: shop_code,from:from
+ else
+ from = ""
+ end
+ # if ENV["SERVER_MODE"] == 'cloud'
+ # ActionCable.server.broadcast "check_new_order_channel",data: order_reservation, shop_code: shop_code
+ # end
end
end
@@ -332,9 +338,15 @@ class OrderReservation < ApplicationRecord
end
order_reservation = OrderReservation.where("status='accepted' and requested_time <= '#{Time.now.utc}'")
if order_reservation.length > 0
- if ENV["SERVER_MODE"] == 'cloud'
- ActionCable.server.broadcast "check_order_send_to_kitchen_channel",data: order_reservation, shop_code: shop_code
- end
+ if ENV["SERVER_MODE"] == 'cloud'
+ from = request.subdomain + "." + request.domain
+ ActionCable.server.broadcast "check_order_send_to_kitchen_channel",data: order_reservation, shop_code: shop_code,from:from
+ else
+ from = ""
+ end
+ # if ENV["SERVER_MODE"] == 'cloud'
+ # ActionCable.server.broadcast "check_order_send_to_kitchen_channel",data: order_reservation, shop_code: shop_code
+ # end
end
end
@@ -347,9 +359,15 @@ class OrderReservation < ApplicationRecord
end
order_reservation = OrderReservation.where("status='send_to_kitchen' and requested_time <= '#{Time.now.utc}'")
if order_reservation.length > 0
- if ENV["SERVER_MODE"] == 'cloud'
- ActionCable.server.broadcast "check_order_ready_to_delivery_channel",data: order_reservation, shop_code: shop_code
- end
+ if ENV["SERVER_MODE"] == 'cloud'
+ from = request.subdomain + "." + request.domain
+ ActionCable.server.broadcast "check_order_ready_to_delivery_channel",data: order_reservation, shop_code: shop_code,from:from
+ else
+ from = ""
+ end
+ # if ENV["SERVER_MODE"] == 'cloud'
+ # ActionCable.server.broadcast "check_order_ready_to_delivery_channel",data: order_reservation, shop_code: shop_code
+ # end
end
end
diff --git a/app/models/promotion.rb b/app/models/promotion.rb
index 028847f3..f1e19d98 100755
--- a/app/models/promotion.rb
+++ b/app/models/promotion.rb
@@ -136,7 +136,9 @@ class Promotion < ApplicationRecord
else
item = OrderItem.find_by_item_code(promo_product)
end
- update_existing_item(foc_qty, item, sale_id, "promotion", item.price)
+ source = Order.find(item.order_id).source
+
+ update_existing_item(foc_qty, item, sale_id, "promotion", item.price,source)
puts "Charged - " + charge_qty.to_s
puts "FOC - " + foc_qty.to_s
@@ -150,10 +152,12 @@ class Promotion < ApplicationRecord
promotion_qty = foc_qty
end
item = OrderItem.find_by_item_instance_code(promo_product)
- update_existing_item(promotion_qty, item, sale_id, "promotion", item.price)
+ source = Order.find(item.order_id).source
+ update_existing_item(promotion_qty, item, sale_id, "promotion", item.price,source)
end
- def self.update_existing_item(qty, item, sale_id, type, item_price)
+
+ def self.update_existing_item(qty, item, sale_id, type, item_price,source)
sale_item = SaleItem.new
sale_item.product_code = item.item_code
@@ -171,50 +175,54 @@ class Promotion < ApplicationRecord
sale_item.sale_id = sale_id
sale_item.save
sale = Sale.find(sale_id)
- sale.compute_by_sale_items(sale.id, sale.sale_items, sale.total_discount)
+ sale.compute_by_sale_items(sale.id, sale.sale_items, sale.total_discount,nil,source)
end
def self.give_promotion_nett_off(same, promo_product, foc_min_qty, orderitem, sale_id)
puts " same: " + same.to_s + " promo_product: " + promo_product.item_code.to_s + " foc_min_qty: " + foc_min_qty.to_s + " orderitem: " + orderitem.to_s
-
+
if same
foc_qty = orderitem[1].to_i / foc_min_qty
item = OrderItem.find_by_item_instance_code(orderitem[0])
- update_existing_item(foc_qty, item, sale_id, "promotion nett off", promo_product.net_off)
+ source = Order.find(item.order_id).source
+ update_existing_item(foc_qty, item, sale_id, "promotion nett off", promo_product.net_off,source)
else
foc_qty = find_second_item_qty(sale_id, promo_product.item_code)
item = OrderItem.find_by_item_instance_code(promo_product.item_code)
- update_existing_item(foc_qty, item, sale_id, "promotion nett off", promo_product.net_off)
+ source = Order.find(item.order_id).source
+ update_existing_item(foc_qty, item, sale_id, "promotion nett off", promo_product.net_off,source)
end
end
def self.give_promotion_nett_price(same, promo_product, foc_min_qty, orderitem, sale_id)
puts " same: " + same.to_s + " promo_product: " + promo_product.item_code.to_s + " foc_min_qty: " + foc_min_qty.to_s + " orderitem: " + orderitem.to_s
-
if same
foc_qty = orderitem[1].to_i / foc_min_qty
item = OrderItem.find_by_item_instance_code(orderitem[0]) # need to specify with menu item instance
price = item.price.to_i - promo_product.net_price.to_i
- update_existing_item(foc_qty, item, sale_id, "promotion nett price", price)
+
+ source = Order.find(item.order_id).source
+ update_existing_item(foc_qty, item, sale_id, "promotion nett price", price,source)
else
foc_qty = find_second_item_qty(sale_id, promo_product.item_code)
item = OrderItem.find_by_item_instance_code(promo_product.item_code)
price = item.price - promo_product.net_price
- update_existing_item(foc_qty, item, sale_id, "promotion nett price", price)
+ source = Order.find(item.order_id).source
+ update_existing_item(foc_qty, item, sale_id, "promotion nett price", price,source)
end
end
def self.give_promotion_discount(same, promo_product, foc_min_qty, orderitem, sale_id)
puts " same: " + same.to_s + " promo_product: " + promo_product.item_code.to_s + " foc_min_qty: " + foc_min_qty.to_s + " orderitem: " + orderitem.to_s
-
if same
foc_qty = orderitem[1].to_i / foc_min_qty
item = OrderItem.find_by_item_instance_code(orderitem[0])
# total = orderitem[1].to_i * item.price
total = item.price
price = calculate_discount(total, promo_product.percentage)
- update_existing_item(foc_qty, item, sale_id, "promotion discount", price)
+ source = Order.find(item.order_id).source
+ update_existing_item(foc_qty, item, sale_id, "promotion discount", price,source)
else
foc_qty = find_second_item_qty(sale_id, promo_product.item_code)
# give total qty is 1
@@ -224,7 +232,8 @@ class Promotion < ApplicationRecord
# total = item.price * foc_qty
total = item.price
price = calculate_discount(total, promo_product.percentage)
- update_existing_item(foc_qty, item, sale_id, "promotion discount", price)
+ source = Order.find(item.order_id).source
+ update_existing_item(foc_qty, item, sale_id, "promotion discount", price,source)
end
end
diff --git a/app/models/sale.rb b/app/models/sale.rb
index 1441c759..7ceecebd 100644
--- a/app/models/sale.rb
+++ b/app/models/sale.rb
@@ -425,6 +425,7 @@ class Sale < ApplicationRecord
tax_profiles = TaxProfile.all.order("order_by asc")
customer = Customer.find(sale.customer_id)
# #Creat new tax records
+
if sale.payment_status != 'foc'
tax_profiles.each do |tax|
# customer.tax_profiles.each do |cus_tax|
@@ -456,28 +457,27 @@ class Sale < ApplicationRecord
sale_tax.save
end
else
- sale_tax = SaleTax.new(:sale => sale)
- sale_tax.tax_name = tax.name
- sale_tax.tax_rate = tax.rate
+ sale_tax = SaleTax.new(:sale => sale)
+ sale_tax.tax_name = tax.name
+ sale_tax.tax_rate = tax.rate
- # substract , to give after discount
- total_tax = total_taxable - total_discount
- #include or execulive
- if tax.inclusive
- rate = tax.rate
- divided_value = (100 + rate)/rate
- sale_tax.tax_payable_amount = total_tax / divided_value
- else
- sale_tax.tax_payable_amount = total_tax * tax.rate / 100
- total_tax_amount = total_tax_amount + sale_tax.tax_payable_amount
- end
- #new taxable amount is standard rule for step by step
- if shop.calc_tax_order
- total_taxable = total_taxable + sale_tax.tax_payable_amount
- end
-
- sale_tax.inclusive = tax.inclusive
- sale_tax.save
+ # substract , to give after discount
+ total_tax = total_taxable - total_discount
+ #include or execulive
+ if tax.inclusive
+ rate = tax.rate
+ divided_value = (100 + rate)/rate
+ sale_tax.tax_payable_amount = total_tax / divided_value
+ else
+ sale_tax.tax_payable_amount = total_tax * tax.rate / 100
+ total_tax_amount = total_tax_amount + sale_tax.tax_payable_amount
+ end
+ #new taxable amount is standard rule for step by step
+ if shop.calc_tax_order
+ total_taxable = total_taxable + sale_tax.tax_payable_amount
+ end
+ sale_tax.inclusive = tax.inclusive
+ sale_tax.save
end
end
# end
@@ -2542,32 +2542,32 @@ end
if current_user.nil?
query = Sale.joins("JOIN sale_items as a ON a.sale_id = sales.sale_id")
if !from_time.nil? && !to_time.nil?
- query = query.where("sales.sale_status = 'completed' and a.remark='foc' and a.product_name not like '%FOC%' and DATE_FORMAT(CONVERT_TZ(sales.receipt_date,'+00:00','+06:30'),'%Y-%m-%d') between ? and ? and DATE_FORMAT(CONVERT_TZ(sales.receipt_date,'+00:00','+06:30'),'%H:%i') between ? and ?",from,to,from_time,to_time)
- .sum("a.qty")
+ query = query.where("sales.sale_status = 'completed' and a.status='foc' and a.product_name like '%FOC%' and DATE_FORMAT(CONVERT_TZ(sales.receipt_date,'+00:00','+06:30'),'%Y-%m-%d') between ? and ? and DATE_FORMAT(CONVERT_TZ(sales.receipt_date,'+00:00','+06:30'),'%H:%i') between ? and ?",from,to,from_time,to_time)
+ .count()
else
- query = query.where("sales.sale_status = 'completed' and a.remark='foc' and a.product_name not like '%FOC%' and DATE_FORMAT(CONVERT_TZ(sales.receipt_date,'+00:00','+06:30'),'%Y-%m-%d') between ? and ?",from,to)
- .sum("a.qty")
+ query = query.where("sales.sale_status = 'completed' and a.status='foc' and a.product_name like '%FOC%' and DATE_FORMAT(CONVERT_TZ(sales.receipt_date,'+00:00','+06:30'),'%Y-%m-%d') between ? and ?",from,to)
+ .count()
end
else
if current_user.role == 'administrator' || current_user.role == 'manager' || current_user.role == 'account'
query = Sale.joins("JOIN sale_items as a ON a.sale_id = sales.sale_id")
if !from_time.nil? && !to_time.nil?
- query = query.where("sales.sale_status = 'completed' and a.remark='foc' and a.product_name not like '%FOC%' and DATE_FORMAT(CONVERT_TZ(sales.receipt_date,'+00:00','+06:30'),'%Y-%m-%d') between ? and ? and DATE_FORMAT(CONVERT_TZ(sales.receipt_date,'+00:00','+06:30'),'%H:%i') between ? and ?",from,to,from_time,to_time)
- .sum("a.qty")
+ query = query.where("sales.sale_status = 'completed' and a.status='foc' and a.product_name like '%FOC%' and DATE_FORMAT(CONVERT_TZ(sales.receipt_date,'+00:00','+06:30'),'%Y-%m-%d') between ? and ? and DATE_FORMAT(CONVERT_TZ(sales.receipt_date,'+00:00','+06:30'),'%H:%i') between ? and ?",from,to,from_time,to_time)
+ .count()
else
- query = query.where("sales.sale_status = 'completed' and a.remark='foc' and a.product_name not like '%FOC%' and DATE_FORMAT(CONVERT_TZ(sales.receipt_date,'+00:00','+06:30'),'%Y-%m-%d') between ? and ?",from,to)
- .sum("a.qty")
+ query = query.where("sales.sale_status = 'completed' and a.status='foc' and a.product_name like '%FOC%' and DATE_FORMAT(CONVERT_TZ(sales.receipt_date,'+00:00','+06:30'),'%Y-%m-%d') between ? and ?",from,to)
+ .count()
end
else
shift = ShiftSale.current_open_shift(current_user.id)
if !shift.nil?
query = Sale.joins("JOIN sale_items as a ON a.sale_id = sales.sale_id")
if !from_time.nil? && !to_time.nil?
- query = query.where("sales.sale_status = 'completed' and a.remark='foc' and a.product_name not like '%FOC%' and DATE_FORMAT(CONVERT_TZ(sales.receipt_date,'+00:00','+06:30'),'%Y-%m-%d') between ? and ? and DATE_FORMAT(CONVERT_TZ(sales.receipt_date,'+00:00','+06:30'),'%H:%i') between ? and ? and sales.shift_sale_id=?",from,to,from_time,to_time,shift.id)
- .sum("a.qty")
+ query = query.where("sales.sale_status = 'completed' and a.status='foc' and a.product_name like '%FOC%' and DATE_FORMAT(CONVERT_TZ(sales.receipt_date,'+00:00','+06:30'),'%Y-%m-%d') between ? and ? and DATE_FORMAT(CONVERT_TZ(sales.receipt_date,'+00:00','+06:30'),'%H:%i') between ? and ? and sales.shift_sale_id=?",from,to,from_time,to_time,shift.id)
+ .count()
else
- query = query.where("sales.sale_status = 'completed' and a.remark='foc' and a.product_name not like '%FOC%' and DATE_FORMAT(CONVERT_TZ(sales.receipt_date,'+00:00','+06:30'),'%Y-%m-%d') between ? and ? and sales.shift_sale_id=?",from,to,shift.id)
- .sum("a.qty")
+ query = query.where("sales.sale_status = 'completed' and a.status='foc' and a.product_name like '%FOC%' and DATE_FORMAT(CONVERT_TZ(sales.receipt_date,'+00:00','+06:30'),'%Y-%m-%d') between ? and ? and sales.shift_sale_id=?",from,to,shift.id)
+ .count()
end
end
end
@@ -2575,19 +2575,19 @@ end
else
if current_user.nil?
query = Sale.joins("JOIN sale_items as a ON a.sale_id = sales.sale_id")
- .where("sales.sale_status = 'completed' and a.remark='foc' and a.product_name not like '%FOC%' and DATE_FORMAT(sales.receipt_date,'%Y-%m-%d') = ?",today)
- .sum("a.qty")
+ .where("sales.sale_status = 'completed' and a.status='foc' and a.product_name like '%FOC%' and DATE_FORMAT(sales.receipt_date,'%Y-%m-%d') = ?",today)
+ .count()
else
if current_user.role == 'administrator' || current_user.role == 'manager' || current_user.role == 'account'
query = Sale.joins("JOIN sale_items as a ON a.sale_id = sales.sale_id")
- .where("sales.sale_status = 'completed' and a.remark='foc' and a.product_name not like '%FOC%' and DATE_FORMAT(sales.receipt_date,'%Y-%m-%d') = ?",today)
- .sum("a.qty")
+ .where("sales.sale_status = 'completed' and a.status='foc' and a.product_name like '%FOC%' and DATE_FORMAT(sales.receipt_date,'%Y-%m-%d') = ?",today)
+ .count()
else
shift = ShiftSale.current_open_shift(current_user.id)
if !shift.nil?
query = Sale.joins("JOIN sale_items as a ON a.sale_id = sales.sale_id")
- .where("sales.sale_status = 'completed' and a.remark='foc' and a.product_name not like '%FOC%' and DATE_FORMAT(sales.receipt_date,'%Y-%m-%d') = ? and sales.shift_sale_id=?",today,shift.id)
- .sum("a.qty")
+ .where("sales.sale_status = 'completed' and a.status='foc' and a.product_name like '%FOC%' and DATE_FORMAT(sales.receipt_date,'%Y-%m-%d') = ? and sales.shift_sale_id=?",today,shift.id)
+ .count()
end
end
end
@@ -2697,7 +2697,7 @@ end
end
def self.all_receipts
- query = Sale.select("sale_payments.created_at as receipt_close_time,
+ query = Sale.select("sales.*,sale_payments.created_at as receipt_close_time,
case when (sale_audits.action='SALEPAYMENT') then sale_audits.remark else 0 end as remark,
case when (sale_taxes.tax_name='Service Charges') then sale_taxes.tax_payable_amount else 0 end as service_charges,
SUM(case when (sale_payments.payment_method='mpu') then sale_payments.payment_amount else 0 end) as mpu_amount,
diff --git a/app/models/sale_payment.rb b/app/models/sale_payment.rb
index 5f372581..5fbc8c24 100755
--- a/app/models/sale_payment.rb
+++ b/app/models/sale_payment.rb
@@ -609,7 +609,12 @@ class SalePayment < ApplicationRecord
#Send to background job for processing
# OrderBroadcastJob.perform_later(table,type)
#if ENV["SERVER_MODE"] != 'cloud'
- ActionCable.server.broadcast "order_channel",table: table,type:type
+ if ENV["SERVER_MODE"] == 'cloud'
+ from = request.subdomain + "." + request.domain
+ else
+ from = ""
+ end
+ ActionCable.server.broadcast "order_channel",table: table,type:type,from:from
#end
end
end
diff --git a/app/pdf/receipt_bill_a5_pdf.rb b/app/pdf/receipt_bill_a5_pdf.rb
index 0819c94a..382633de 100644
--- a/app/pdf/receipt_bill_a5_pdf.rb
+++ b/app/pdf/receipt_bill_a5_pdf.rb
@@ -186,6 +186,51 @@ class ReceiptBillA5Pdf < Prawn::Document
end
def add_line_item_row(sale_items,precision,delimiter)
+
+ y_position = cursor
+ move_down line_move
+ sub_total = 0.0
+ total_qty = 0.0
+ sale_items.each do |item|
+ # check for item not to show
+
+ show_price = Lookup.find_by_lookup_type("show_price").value
+
+ sub_total += item.price #(item.qty*item.unit_price) - comment for room charges
+ if item.status != 'Discount' && item.qty > 0
+ total_qty += item.qty
+ end
+ qty = item.qty
+ total_price = item.price #item.qty*item.unit_price - comment for room charges
+ price = item.unit_price
+ product_name = item.product_name
+
+ if !show_price.nil? && show_price.value.to_i>0
+ item_row(item,precision,delimiter,product_name,price,qty ,total_price)
+ else
+ if item.price != 0
+ item_row(item,precision,delimiter,product_name,price,qty ,total_price)
+ end
+ end
+ end
+
+ stroke_horizontal_rule
+
+ move_down line_move
+ y_position = cursor
+ bounding_box([0,y_position], :width =>self.item_width + self.price_width, :height => self.item_height) do
+ text "Sub Total", :size => self.item_font_size,:align => :left
+ end
+ bounding_box([self.item_width + self.price_width + 11,y_position], :width =>self.qty_width, :height => self.item_height) do
+ text "#{number_with_precision(total_qty, :precision => precision.to_i, :delimiter => delimiter)}", :size => self.item_font_size,:align => :center
+ end
+ bounding_box([self.item_width + self.price_width + 8,y_position], :width =>self.total_width, :height => self.item_height) do
+ text "#{number_with_precision(sub_total, :precision => precision.to_i, :delimiter => delimiter)}", :size => self.item_font_size,:align => :right
+ end
+ end
+
+ def item_row(item,precision,delimiter,product_name,price,qty ,total_price)
+
if precision.to_i > 0
item_name_width = (self.item_width+self.price_width)
item_qty_front_width = (self.item_width+self.price_width) + 5
@@ -199,58 +244,30 @@ class ReceiptBillA5Pdf < Prawn::Document
item_total_front_width = item_name_width + 5
item_total_end_width = self.total_width + 4
end
+
y_position = cursor
- move_down line_move
- sub_total = 0.0
- total_qty = 0.0
- sale_items.each do |item|
- # check for item not to show
- if item.price != 0
- sub_total += item.price #(item.qty*item.unit_price) - comment for room charges
- if item.status != 'Discount' && item.qty > 0
- total_qty += item.qty
- end
- qty = item.qty
- total_price = item.price #item.qty*item.unit_price - comment for room charges
- price = item.unit_price
- product_name = item.product_name
-
- y_position = cursor
-
- pad_top(15) {
- bounding_box([0,y_position], :width =>self.item_width) do
- text "#{product_name}", :size => self.item_font_size,:align => :left
- end
+ pad_top(15) {
+ bounding_box([0,y_position], :width =>self.item_width) do
+ text "#{product_name}", :size => self.item_font_size,:align => :left
+ end
# text_box "#{product_name}", :at =>[0,y_position], :width => self.item_width, :size => self.item_font_size
text_box "#{number_with_precision(price, :precision => precision.to_i, :delimiter => delimiter)}", :at =>[self.item_width,y_position], :width => self.price_width, :size => self.item_font_size, :align => :right, :overflow => :shrink_to_fix
text_box "#{number_with_precision(qty, :precision => precision.to_i)}", :at =>[item_qty_front_width,y_position], :width => item_qty_end_width, :size => self.item_font_size, :align => :center, :overflow => :shrink_to_fix
text_box "#{number_with_precision(total_price, :precision => precision.to_i, :delimiter => delimiter)}", :at =>[item_total_front_width,y_position], :width =>item_total_end_width, :size => self.item_font_size, :align => :right, :overflow => :shrink_to_fix
-
- if show_alt_name
- if !(item.product_alt_name).empty?
- move_down 2
- font("public/fonts/NotoSansCJKtc-Regular.ttf") do
- text "(#{item.product_alt_name})", :size => self.item_font_size,:align => :left, :inline_format => true
- end
+
+ if show_alt_name
+ if !(item.product_alt_name).empty?
+ move_down 2
+ font("public/fonts/NotoSansCJKtc-Regular.ttf") do
+ text "(#{item.product_alt_name})", :size => self.item_font_size,:align => :left, :inline_format => true
end
end
- move_down line_move
- }
- end
+ end
+ move_down line_move
+ }
end
- stroke_horizontal_rule
-
- move_down line_move
- y_position = cursor
- bounding_box([0,y_position], :width =>self.item_width + self.price_width, :height => self.item_height) do
- text "Sub Total", :size => self.item_font_size,:align => :left
- end
- text_box "#{number_with_precision(total_qty, :precision => precision.to_i)}", :at =>[item_qty_front_width,y_position], :width => item_qty_end_width, :size => self.item_font_size, :align => :center, :overflow => :shrink_to_fix
- text_box "#{number_with_precision(sub_total, :precision => precision.to_i, :delimiter => delimiter)}", :at =>[item_total_front_width,y_position], :width =>item_total_end_width, :size => self.item_font_size, :align => :right, :overflow => :shrink_to_fix
- end
-
def all_total(sale_data,precision,delimiter)
move_down line_move
item_name_width = self.item_width
diff --git a/app/pdf/receipt_bill_pdf.rb b/app/pdf/receipt_bill_pdf.rb
index 466263c9..862a91a5 100755
--- a/app/pdf/receipt_bill_pdf.rb
+++ b/app/pdf/receipt_bill_pdf.rb
@@ -180,6 +180,50 @@ class ReceiptBillPdf < Prawn::Document
end
def add_line_item_row(sale_items,precision,delimiter)
+
+ y_position = cursor
+ move_down line_move
+ sub_total = 0.0
+ total_qty = 0.0
+ sale_items.each do |item|
+ # check for item not to show
+ show_price = Lookup.find_by_lookup_type("show_price")
+
+ sub_total += item.price #(item.qty*item.unit_price) - comment for room charges
+ if item.status != 'Discount' && item.qty > 0
+ total_qty += item.qty
+ end
+ qty = item.qty
+ total_price = item.price #item.qty*item.unit_price - comment for room charges
+ price = item.unit_price
+ product_name = item.product_name
+
+ if !show_price.nil? && show_price.value.to_i>0
+ item_row(item,precision,delimiter,product_name,price,qty ,total_price)
+ else
+ if item.price != 0
+ item_row(item,precision,delimiter,product_name,price,qty ,total_price)
+ end
+ end
+
+ end
+
+ stroke_horizontal_rule
+
+ move_down line_move
+ y_position = cursor
+ bounding_box([0,y_position], :width =>self.item_width + self.price_width, :height => self.item_height) do
+ text "Sub Total", :size => self.item_font_size,:align => :left
+ end
+ bounding_box([self.item_width + self.price_width + 11,y_position], :width =>self.qty_width, :height => self.item_height) do
+ text "#{number_with_precision(total_qty, :precision => precision.to_i, :delimiter => delimiter)}", :size => self.item_font_size,:align => :center
+ end
+ bounding_box([self.item_width + self.price_width + 8,y_position], :width =>self.total_width, :height => self.item_height) do
+ text "#{number_with_precision(sub_total, :precision => precision.to_i, :delimiter => delimiter)}", :size => self.item_font_size,:align => :right
+ end
+ end
+
+ def item_row(item,precision,delimiter,product_name,price,qty ,total_price)
if precision.to_i > 0
item_name_width = (self.item_width+self.price_width)
item_qty_front_width = (self.item_width+self.price_width) + 5
@@ -194,55 +238,27 @@ class ReceiptBillPdf < Prawn::Document
item_total_end_width = self.total_width + 4
end
y_position = cursor
- move_down line_move
- sub_total = 0.0
- total_qty = 0.0
- sale_items.each do |item|
- # check for item not to show
- if item.price != 0
- sub_total += item.price #(item.qty*item.unit_price) - comment for room charges
- if item.status != 'Discount' && item.qty > 0
- total_qty += item.qty
- end
- qty = item.qty
- total_price = item.price #item.qty*item.unit_price - comment for room charges
- price = item.unit_price
- product_name = item.product_name
- y_position = cursor
+ pad_top(15) {
+ bounding_box([0,y_position], :width =>self.item_width) do
+ text "#{product_name}", :size => self.item_font_size,:align => :left
+ end
+ # text_box "#{product_name}", :at =>[0,y_position], :width => self.item_width, :size => self.item_font_size
+ text_box "#{number_with_precision(price, :precision => precision.to_i, :delimiter => delimiter)}", :at =>[self.item_width,y_position], :width => self.price_width, :size => self.item_font_size, :align => :right, :overflow => :shrink_to_fix
+ text_box "#{number_with_precision(qty, :precision => precision.to_i)}", :at =>[item_qty_front_width,y_position], :width => item_qty_end_width, :size => self.item_font_size, :align => :center, :overflow => :shrink_to_fix
+ text_box "#{number_with_precision(total_price, :precision => precision.to_i, :delimiter => delimiter)}", :at =>[item_total_front_width,y_position], :width =>item_total_end_width, :size => self.item_font_size, :align => :right, :overflow => :shrink_to_fix
- pad_top(15) {
- bounding_box([0,y_position], :width =>self.item_width) do
- text "#{product_name}", :size => self.item_font_size,:align => :left
- end
- # text_box "#{product_name}", :at =>[0,y_position], :width => self.item_width, :size => self.item_font_size
- text_box "#{number_with_precision(price, :precision => precision.to_i, :delimiter => delimiter)}", :at =>[self.item_width,y_position], :width => self.price_width, :size => self.item_font_size, :align => :right, :overflow => :shrink_to_fix
- text_box "#{number_with_precision(qty, :precision => precision.to_i)}", :at =>[item_qty_front_width,y_position], :width => item_qty_end_width, :size => self.item_font_size, :align => :center, :overflow => :shrink_to_fix
- text_box "#{number_with_precision(total_price, :precision => precision.to_i, :delimiter => delimiter)}", :at =>[item_total_front_width,y_position], :width =>item_total_end_width, :size => self.item_font_size, :align => :right, :overflow => :shrink_to_fix
-
- if show_alt_name
- if !(item.product_alt_name).empty?
- move_down 2
- font("public/fonts/NotoSansCJKtc-Regular.ttf") do
- text "(#{item.product_alt_name})", :size => self.item_font_size,:align => :left, :inline_format => true
- end
- end
+ if show_alt_name
+ if !(item.product_alt_name).empty?
+ move_down 2
+ font("public/fonts/NotoSansCJKtc-Regular.ttf") do
+ text "(#{item.product_alt_name})", :size => self.item_font_size,:align => :left, :inline_format => true
end
- move_down line_move
- }
-
+ end
end
- end
-
- stroke_horizontal_rule
-
move_down line_move
- y_position = cursor
- bounding_box([0,y_position], :width =>self.item_width + self.price_width, :height => self.item_height) do
- text "Sub Total", :size => self.item_font_size,:align => :left
- end
- text_box "#{number_with_precision(total_qty, :precision => precision.to_i)}", :at =>[item_qty_front_width,y_position], :width => item_qty_end_width, :size => self.item_font_size, :align => :center, :overflow => :shrink_to_fix
- text_box "#{number_with_precision(sub_total, :precision => precision.to_i, :delimiter => delimiter)}", :at =>[item_total_front_width,y_position], :width =>item_total_end_width, :size => self.item_font_size, :align => :right, :overflow => :shrink_to_fix
+ }
+
end
diff --git a/app/views/crm/customers/_card_read_form.html.erb b/app/views/crm/customers/_card_read_form.html.erb
old mode 100755
new mode 100644
diff --git a/app/views/crm/customers/_crm_customer.json.jbuilder b/app/views/crm/customers/_crm_customer.json.jbuilder
old mode 100755
new mode 100644
diff --git a/app/views/crm/customers/_form.html.erb b/app/views/crm/customers/_form.html.erb
old mode 100755
new mode 100644
diff --git a/app/views/crm/customers/_new_form.html.erb b/app/views/crm/customers/_new_form.html.erb
old mode 100755
new mode 100644
diff --git a/app/views/crm/customers/edit.html.erb b/app/views/crm/customers/edit.html.erb
old mode 100755
new mode 100644
diff --git a/app/views/crm/customers/edit.json.jbuilder b/app/views/crm/customers/edit.json.jbuilder
old mode 100755
new mode 100644
diff --git a/app/views/crm/customers/index.html.erb b/app/views/crm/customers/index.html.erb
old mode 100755
new mode 100644
diff --git a/app/views/crm/customers/index.json.jbuilder b/app/views/crm/customers/index.json.jbuilder
old mode 100755
new mode 100644
diff --git a/app/views/crm/customers/new.html.erb b/app/views/crm/customers/new.html.erb
old mode 100755
new mode 100644
diff --git a/app/views/crm/customers/show.html.erb b/app/views/crm/customers/show.html.erb
old mode 100755
new mode 100644
diff --git a/app/views/crm/customers/show.json.jbuilder b/app/views/crm/customers/show.json.jbuilder
old mode 100755
new mode 100644
diff --git a/app/views/oqs/edit/index.html.erb b/app/views/oqs/edit/index.html.erb
index d9485b3a..64015e82 100644
--- a/app/views/oqs/edit/index.html.erb
+++ b/app/views/oqs/edit/index.html.erb
@@ -104,10 +104,12 @@ $(document).ready(function(){
$('#qty-update').on('click', function(){
var qty_weight = $("input[name='qty_weight']").val();
- if(parseInt(qty_weight) > parseInt(original_value)){
+ if(parseInt(qty_weight) >= parseInt(original_value)){
swal("Alert!", "Not allowed over quantity", "warning");
return;
}
+
+
var remarks = $("textarea[name='remarks']").val();
var order_items_id = $(this).attr('data-id');
diff --git a/app/views/origami/customers/index.html.erb b/app/views/origami/customers/index.html.erb
old mode 100755
new mode 100644
diff --git a/app/views/origami/dashboard/_menu.json.jbuilder b/app/views/origami/dashboard/_menu.json.jbuilder
index 5fe53223..8d17208c 100644
--- a/app/views/origami/dashboard/_menu.json.jbuilder
+++ b/app/views/origami/dashboard/_menu.json.jbuilder
@@ -5,7 +5,13 @@ json.valid_time_from menu.valid_time_from.strftime("%H:%M")
json.valid_time_to menu.valid_time_to.strftime("%H:%M")
if (menu.menu_categories)
- json.categories menu.menu_categories do |category|
+ order_by = Lookup.find_by_lookup_type("order_by")
+ if !order_by.nil? && order_by.value == "name"
+ categories = MenuCategory.unscoped.where("menu_id ='#{menu.id}'").order("name asc")
+ else
+ categories = menu.menu_categories
+ end
+ json.categories categories do |category|
menu_category = MenuCategory.find_by_menu_category_id(category.id)
if !menu_category.nil?
@@ -25,10 +31,14 @@ if (menu.menu_categories)
json.parent_id category.menu_category_id
json.is_available category.is_available
-
+ if !order_by.nil? && order_by.value == "name"
+ menu_items = MenuItem.unscoped.where("menu_category_id = ?",category.id).order("name asc")
+ else
+ menu_items = category.menu_items
+ end
if category.menu_items
- json.items category.menu_items do |item|
+ json.items menu_items do |item|
if item.is_available
json.partial! 'origami/addorders/menu_item', item: item
end
diff --git a/app/views/origami/dinga/index.html.erb b/app/views/origami/dinga/index.html.erb
index dba236e1..3e4a909f 100644
--- a/app/views/origami/dinga/index.html.erb
+++ b/app/views/origami/dinga/index.html.erb
@@ -113,6 +113,12 @@
+
+
Card Tap
+
+ Cancel
+
+
@@ -256,6 +262,7 @@
getCardNo();
$("#sxModal").hide();
customer_mamber_card_no = $("#paypar_account_no").val();
+
if(sale_id != 0 && customer_mamber_card_no != 0){
$.ajax({
type: "POST",
@@ -429,7 +436,7 @@
});
}
- $("#sxModal .btn_cancel").on('click',function(){
+ $(".btn_cancel").on('click',function(){
$("#sxModal").hide();
});
diff --git a/app/views/origami/paymal/index.html.erb b/app/views/origami/paymal/index.html.erb
index df5464dd..b6444384 100644
--- a/app/views/origami/paymal/index.html.erb
+++ b/app/views/origami/paymal/index.html.erb
@@ -108,6 +108,13 @@
reply Back
+
+
+
Card Tap
+
+ Cancel
+
+
diff --git a/app/views/origami/payments/show.html.erb b/app/views/origami/payments/show.html.erb
index 246bbcfe..ae7245a4 100755
--- a/app/views/origami/payments/show.html.erb
+++ b/app/views/origami/payments/show.html.erb
@@ -601,10 +601,11 @@ var customer_name = "<%= @customer.name %>";
$("#back").on('click', function() {
localStorage.removeItem('cash');
customer_display_view(null,"reload");
+ var sale_id = $('#sale_id').text();
if (cashier_type=="cashier") {
window.location.href = '/origami/table/'+ dining_id;
}else{
- window.location.href = '/origami/quick_service';
+ window.location.href = '/origami/quick_service/pending_order/'+sale_id;
}
});
diff --git a/app/views/origami/pending_order/show.html.erb b/app/views/origami/pending_order/show.html.erb
index 15d3aa12..e979d6d5 100644
--- a/app/views/origami/pending_order/show.html.erb
+++ b/app/views/origami/pending_order/show.html.erb
@@ -170,7 +170,7 @@
reply Back
<% if current_user.role != "waiter" || @status != "sale"%>
-
Add Order
+
Update Order
<%end%>
reply Back
-
<% if @sale.sale_status != 'void' && @sale.sale_status != 'waste' && @sale.sale_status != 'spoile' %>
<% if current_login_employee.role == "cashier" %>
Void
@@ -224,6 +223,30 @@
Re.Print
+
+
@@ -344,7 +367,6 @@ $(document).on('click', '.access_modal', function(event){
if (isConfirm) {
var sale_id = $('#sale_id').val();
var ajax_url = "/origami/sale/" + sale_id +'/'+'cashier'+ '/void';
- // var ajax_url = "/origami/sale/" + sale_id + '/void';
$.ajax({
type: 'POST',
url: ajax_url,
diff --git a/app/views/reports/commission/index.xls.erb b/app/views/reports/commission/index.xls.erb
index 4ea1f2f0..6ec88072 100755
--- a/app/views/reports/commission/index.xls.erb
+++ b/app/views/reports/commission/index.xls.erb
@@ -1,3 +1,10 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/views/reports/credit_payment/index.xls.erb b/app/views/reports/credit_payment/index.xls.erb
index ebf360a9..3eeb6f5c 100755
--- a/app/views/reports/credit_payment/index.xls.erb
+++ b/app/views/reports/credit_payment/index.xls.erb
@@ -1,4 +1,10 @@
-
+
+
+
+
+
+
+
<% unless @sale_data.blank? %>
@@ -38,3 +44,5 @@
<% end %>
+
+
\ No newline at end of file
diff --git a/app/views/reports/dailysale/index.xls.erb b/app/views/reports/dailysale/index.xls.erb
index e0a5842e..0f2767c5 100755
--- a/app/views/reports/dailysale/index.xls.erb
+++ b/app/views/reports/dailysale/index.xls.erb
@@ -1,4 +1,10 @@
-
+
+
+
+
+
+
+
-
\ No newline at end of file
+
+
+
\ No newline at end of file
diff --git a/app/views/reports/order_reservation/index.xls.erb b/app/views/reports/order_reservation/index.xls.erb
index c674cc9b..5a3bc4ea 100755
--- a/app/views/reports/order_reservation/index.xls.erb
+++ b/app/views/reports/order_reservation/index.xls.erb
@@ -1,4 +1,10 @@
-
+
+
+
+
+
+
+
-
\ No newline at end of file
+
+
+
\ No newline at end of file
diff --git a/app/views/reports/payment_method/index.xls.erb b/app/views/reports/payment_method/index.xls.erb
index 73c8683b..73a53005 100755
--- a/app/views/reports/payment_method/index.xls.erb
+++ b/app/views/reports/payment_method/index.xls.erb
@@ -1,3 +1,10 @@
+
+
+
+
+
+
+
\ No newline at end of file
+
+
+
\ No newline at end of file
diff --git a/app/views/reports/product_sale/index.xls.erb b/app/views/reports/product_sale/index.xls.erb
index 0ff60964..98885861 100644
--- a/app/views/reports/product_sale/index.xls.erb
+++ b/app/views/reports/product_sale/index.xls.erb
@@ -1,3 +1,10 @@
+
+
+
+
+
+
+
-
\ No newline at end of file
+
+
+
\ No newline at end of file
diff --git a/app/views/reports/receipt_no/index.xls.erb b/app/views/reports/receipt_no/index.xls.erb
index 0b6a4dd0..ff74ef5a 100755
--- a/app/views/reports/receipt_no/index.xls.erb
+++ b/app/views/reports/receipt_no/index.xls.erb
@@ -1,4 +1,10 @@
-
+
+
+
+
+
+
+
-
\ No newline at end of file
+
+
+
\ No newline at end of file
diff --git a/app/views/reports/saleitem/index.xls.erb b/app/views/reports/saleitem/index.xls.erb
index 82b11aef..78d0aaec 100755
--- a/app/views/reports/saleitem/index.xls.erb
+++ b/app/views/reports/saleitem/index.xls.erb
@@ -1,3 +1,10 @@
+
+
+
+
+
+
+
-
\ No newline at end of file
+
+
+
\ No newline at end of file
diff --git a/app/views/reports/shiftsale/index.xls.erb b/app/views/reports/shiftsale/index.xls.erb
index aa1d0231..46fe502d 100755
--- a/app/views/reports/shiftsale/index.xls.erb
+++ b/app/views/reports/shiftsale/index.xls.erb
@@ -1,3 +1,10 @@
+
+
+
+
+
+
+
-
\ No newline at end of file
+
+
+
\ No newline at end of file
diff --git a/app/views/reports/stock_check/index.xls.erb b/app/views/reports/stock_check/index.xls.erb
index 4ea1f2f0..6ec88072 100755
--- a/app/views/reports/stock_check/index.xls.erb
+++ b/app/views/reports/stock_check/index.xls.erb
@@ -1,3 +1,10 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/views/reports/void_sale/index.xls.erb b/app/views/reports/void_sale/index.xls.erb
index e07b60b0..587ca509 100755
--- a/app/views/reports/void_sale/index.xls.erb
+++ b/app/views/reports/void_sale/index.xls.erb
@@ -1,4 +1,10 @@
-
+
+
+
+
+
+
+
@@ -63,4 +69,6 @@
<% end %>
-
\ No newline at end of file
+
+
+
\ No newline at end of file
diff --git a/app/views/reports/waste_and_spoilage/index.xls.erb b/app/views/reports/waste_and_spoilage/index.xls.erb
index 48f26650..7e71fbdc 100755
--- a/app/views/reports/waste_and_spoilage/index.xls.erb
+++ b/app/views/reports/waste_and_spoilage/index.xls.erb
@@ -1,3 +1,10 @@
+
+
+
+
+
+
+
-
\ No newline at end of file
+
+
+
\ No newline at end of file
diff --git a/config/puma.rb.production b/config/puma-production.rb
similarity index 100%
rename from config/puma.rb.production
rename to config/puma-production.rb
diff --git a/config/secrets.yml b/config/secrets.yml
index 2768d134..aef81223 100755
--- a/config/secrets.yml
+++ b/config/secrets.yml
@@ -24,7 +24,7 @@ test:
# instead read values from the environment.
production:
secret_key_base: c4bc81065013f9a3506d385bcbd49586c42e586488144b0de90c7da36867de9fa880f46b5c4f86f0ce9b7c783bb5a73bdb0e5605a47716567294390e726d3e22
- sx_provision_url: connect.pos-myanmar.com/api #192.168.1.147:3002/api
+ sx_provision_url: connect.smartsales.asia/api #192.168.1.147:3002/api
server_mode: application
cipher_type: AES-256-CBC
sx_key: Wh@t1$C2L
diff --git a/db/migrate/20180213053009_create_display_images.rb b/db/migrate/20180521041850_create_display_images.rb
similarity index 82%
rename from db/migrate/20180213053009_create_display_images.rb
rename to db/migrate/20180521041850_create_display_images.rb
index f40a9179..f139d227 100644
--- a/db/migrate/20180213053009_create_display_images.rb
+++ b/db/migrate/20180521041850_create_display_images.rb
@@ -2,13 +2,11 @@ class CreateDisplayImages < ActiveRecord::Migration[5.1]
def change
create_table :display_images do |t|
t.integer :shop_id
+ t.string :name
t.binary :image
t.string :created_by
+
t.timestamps
end
end
-
- def down
- drop_table :display_images
- end
end
diff --git a/lib/tasks/receipt.rake b/lib/tasks/receipt.rake
index fce410fa..08692a0e 100644
--- a/lib/tasks/receipt.rake
+++ b/lib/tasks/receipt.rake
@@ -3,11 +3,11 @@ namespace :consolidate do
task :receipt => :environment do
# Receipt.delete_all
sales = Sale.all_receipts
-puts sales.to_json
shop = Shop.find(1)
sales.each do |sale|
- puts sale.to_json
- shift = ShiftSale.find(sale.shift_sale_id)
+
+ if sale.shift_sale_id.present?
+ shift = ShiftSale.find(sale.shift_sale_id)
receipt = Receipt.new
receipt.client_code = shop.client_code
receipt.client_name = shop.client_name
@@ -48,6 +48,7 @@ puts sales.to_json
receipt.cancle = (sale.payment_status=="void") ? false : true # void is cancel
receipt.remarks = sale.remark
receipt.save
+ end
end
end
@@ -68,10 +69,10 @@ puts sales.to_json
@item_sequence = 1
sale_count = sales.to_a.count
sales.each do |sale|
-
if sale.qty > 0
if sale.item_instance_code !=nil
+ byebug
menu_category = MenuCategory.find(MenuItem.find_by_item_code(sale.product_code).menu_category_id)
name = menu_category.name
code = menu_category.code
@@ -90,7 +91,9 @@ puts sales.to_json
@receipt_no = sale.receipt_no
@requested_at = sale.requested_at
-
+ if @receipt_no == '20171130-10464'
+ byebug
+ end
if sale_id == sale.sale_id || count == 0 || @z ==0
@total_qty += sale.qty
@total_gross_sales += sale.price
@@ -109,14 +112,14 @@ puts sales.to_json
receipt.receipt_date = @requested_at #requet-at
receipt.transaction_date = @requested_at #before disco/after tax /after/ser_char
receipt.item_sequence = @item_sequence
- receipt.category_code = ''
- receipt.category_name = ''
+ receipt.category_code = sale.product_code
+ receipt.category_name = sale.product_name
receipt.sub_category_code = 0
receipt.sub_category_name = 0
receipt.report_group_code = 0
receipt.report_group_name = 0
- receipt.item_code = ''
- receipt.item_name = ''
+ receipt.item_code = (sale.product_code.to_s=="NULL") ? "0" : sale.product_code
+ receipt.item_name = sale.product_name
receipt.qty = @total_qty
receipt.transaction_type = "Tender"
receipt.gross_sales = @total_gross_sales
@@ -158,14 +161,14 @@ puts sales.to_json
receipt.receipt_date = sale.requested_at #requet-at
receipt.transaction_date = sale.requested_at #before disco/after tax /after/ser_char
receipt.item_sequence = @item_sequence
- receipt.category_code = name
- receipt.category_name = code
+ receipt.category_code = sale.product_code
+ receipt.category_name = sale.product_name
receipt.sub_category_code = 0
receipt.sub_category_name = 0
receipt.report_group_code = 0
receipt.report_group_name = 0
- receipt.item_code = menu_name
- receipt.item_name = menu_code
+ receipt.item_code = (menu_code.to_s=="NULL") ? "0" : sale.product_code
+ receipt.item_name = menu_name
receipt.qty = sale.qty
receipt.transaction_type = (sale.status==nil) ? "Sales" : sale.status
receipt.gross_sales = sale.price
@@ -208,14 +211,14 @@ puts sales.to_json
receipt.receipt_date = @requested_at #requet-at
receipt.transaction_date = @requested_at #before disco/after tax /after/ser_char
receipt.item_sequence = @item_sequence
- receipt.category_code = ''
- receipt.category_name = ''
+ receipt.category_code = sale.product_code
+ receipt.category_name = sale.product_name
receipt.sub_category_code = 0
receipt.sub_category_name = 0
receipt.report_group_code = 0
receipt.report_group_name = 0
- receipt.item_code = ''
- receipt.item_name = ''
+ receipt.item_code = (menu_code.to_s=="NULL") ? "0" : sale.product_code
+ receipt.item_name = menu_name
receipt.qty = @total_qty
receipt.transaction_type = "Tender"
receipt.gross_sales = @total_gross_sales
diff --git a/spec/models/display_image_spec.rb b/spec/models/display_image_spec.rb
new file mode 100644
index 00000000..1c6a0666
--- /dev/null
+++ b/spec/models/display_image_spec.rb
@@ -0,0 +1,5 @@
+require 'rails_helper'
+
+RSpec.describe DisplayImage, type: :model do
+ pending "add some examples to (or delete) #{__FILE__}"
+end