print settings ActionCable

This commit is contained in:
Thein Lin Kyaw
2020-08-18 16:11:17 +06:30
parent 583d7ee473
commit 5dfdc7353e
25 changed files with 1050 additions and 802 deletions

View File

@@ -18,7 +18,7 @@ gem 'pg'
gem 'mysql2', '~> 0.5.2' gem 'mysql2', '~> 0.5.2'
#Use PosgreSQL #Use PosgreSQL
gem "select2-rails"
# redis server for cable # redis server for cable
gem 'redis', '~> 3.0' gem 'redis', '~> 3.0'

View File

@@ -264,6 +264,7 @@ GEM
tilt (>= 1.1, < 3) tilt (>= 1.1, < 3)
schema_to_scaffold (0.8.0) schema_to_scaffold (0.8.0)
activesupport (>= 3.2.1) activesupport (>= 3.2.1)
select2-rails (4.0.13)
shoulda-matchers (3.1.3) shoulda-matchers (3.1.3)
activesupport (>= 4.0.0) activesupport (>= 4.0.0)
sidekiq (5.2.7) sidekiq (5.2.7)
@@ -367,6 +368,7 @@ DEPENDENCIES
rubyzip (= 1.0.0) rubyzip (= 1.0.0)
sass-rails (~> 5.0) sass-rails (~> 5.0)
schema_to_scaffold schema_to_scaffold
select2-rails
shoulda-matchers (~> 3.1) shoulda-matchers (~> 3.1)
sidekiq sidekiq
simple_form simple_form

View File

@@ -77,6 +77,9 @@ For Using Star Printer
**_ Need to change these print settings 1) settings/print_settings/unique_code => OrderItemStarPdf 2) settings/print_settings/unique_code => ReceiptBillStarPdf 3) settings/print_settings/unique_code => SaleItemsStarPdf **_ Need to change these print settings 1) settings/print_settings/unique_code => OrderItemStarPdf 2) settings/print_settings/unique_code => ReceiptBillStarPdf 3) settings/print_settings/unique_code => SaleItemsStarPdf
_** Other print settings aren't need to change. _** Other print settings aren't need to change.
For Cloud ActionCable Print
settings/lookups => { type: print_settings, name: ActionCable, value: 1 }
For Show Sale Items Summary at CloseCashierPrint 1) settings/print_settings For Show Sale Items Summary at CloseCashierPrint 1) settings/print_settings
a) Check => Shift Sale Items a) Check => Shift Sale Items

View File

@@ -402,17 +402,17 @@ $(document).on('turbolinks:load', function() {
url: '/oqs/print/print/'+assigned_item_id, url: '/oqs/print/print/'+assigned_item_id,
data: params, data: params,
success: function(result){ success: function(result){
// For Server Print - from jade if (!$('#print_settings').data('action-cable')) {
if ($("#server_mode").val() == "cloud") { // For Server Print - from jade
if(typeof code2lab != 'undefined'){ if ($("#server_mode").val() == "cloud") {
code2lab.printFile(result.filepath.substr(6), result.printer_url); if(typeof code2lab != 'undefined'){
} code2lab.printFile(result.filepath.substr(6), result.printer_url);
} }
location.reload(); }
}
location.reload();
} }
}); });
}); });
// Print Order Summary // Print Order Summary
@@ -428,13 +428,15 @@ $(document).on('turbolinks:load', function() {
url: '/oqs/print/print_order_summary/'+assigned_item_id, url: '/oqs/print/print_order_summary/'+assigned_item_id,
data: params, data: params,
success: function(result){ success: function(result){
// For Server Print - from jade if (!$('#print_settings').data('action-cable')) {
if ($("#server_mode").val() == "cloud") { // For Server Print - from jade
if(typeof code2lab != 'undefined'){ if ($("#server_mode").val() == "cloud") {
code2lab.printFile(result.filepath.substr(6), result.printer_url); if(typeof code2lab != 'undefined'){
} code2lab.printFile(result.filepath.substr(6), result.printer_url);
} }
location.reload(); }
}
location.reload();
} }
}); });
}); });

View File

@@ -36,6 +36,7 @@
//= require custom.js //= require custom.js
//= require jquery-fileupload/basic //= require jquery-fileupload/basic
//= require induties/induties.js //= require induties/induties.js
//= require select2
$(document).ready(function() { $(document).ready(function() {
$('.count-to').countTo(); $('.count-to').countTo();
@@ -65,7 +66,7 @@ $(document).ready(function() {
clearButton: true, clearButton: true,
date: false date: false
}); });
// Image Upload // Image Upload
$("#simple_menu_item_image_path").fileinput({ $("#simple_menu_item_image_path").fileinput({
previewFileType: "image", previewFileType: "image",
@@ -148,7 +149,7 @@ $(document).ready(function() {
'</div>\n', '</div>\n',
} }
}); });
$("#commissioner_image_path").fileinput({ $("#commissioner_image_path").fileinput({
previewFileType: "image", previewFileType: "image",
allowedFileExtensions: ["jpg", "gif", "png"], allowedFileExtensions: ["jpg", "gif", "png"],
@@ -167,7 +168,7 @@ $(document).ready(function() {
' <img src="{data}" class="file-preview-image" title="{caption}" alt="{caption}" style="width: 200px;height: 200px;">\n' + ' <img src="{data}" class="file-preview-image" title="{caption}" alt="{caption}" style="width: 200px;height: 200px;">\n' +
'</div>\n', '</div>\n',
} }
}); });
$("#employee_image_path").fileinput({ $("#employee_image_path").fileinput({
previewFileType: "image", previewFileType: "image",
@@ -187,7 +188,7 @@ $(document).ready(function() {
' <img src="{data}" class="file-preview-image" title="{caption}" alt="{caption}" style="width: 200px;height: 200px;">\n' + ' <img src="{data}" class="file-preview-image" title="{caption}" alt="{caption}" style="width: 200px;height: 200px;">\n' +
'</div>\n', '</div>\n',
} }
}); });
$("#shop_image").fileinput({ $("#shop_image").fileinput({
previewFileType: "image", previewFileType: "image",
@@ -227,7 +228,7 @@ $(document).ready(function() {
' <img src="{data}" class="file-preview-image" title="{caption}" alt="{caption}" style="width: 200px;height: 200px;">\n' + ' <img src="{data}" class="file-preview-image" title="{caption}" alt="{caption}" style="width: 200px;height: 200px;">\n' +
'</div>\n', '</div>\n',
} }
}); });
// first input focus for all form // first input focus for all form
$('form:first *input[data-behaviour!=datepicker]:input[type!=hidden]:first').focus(); $('form:first *input[data-behaviour!=datepicker]:input[type!=hidden]:first').focus();
@@ -252,4 +253,4 @@ Chart.scaleService.updateScaleDefaults('linear', {
} }
} }
}); });
/* chartkick js YAxis value override */ /* chartkick js YAxis value override */

View File

@@ -1,6 +1,6 @@
//= require custom.js //= require custom.js
$(function() { $(function() {
$("#discount").hide(); $("#discount").hide();
$(".expected_time").hide(); $(".expected_time").hide();
$('#accepted').hide(); $('#accepted').hide();
@@ -11,7 +11,7 @@ $(function() {
$(".accepted_time").hide(); $(".accepted_time").hide();
$(".kitchen_time").hide(); $(".kitchen_time").hide();
$(".ready_time").hide(); $(".ready_time").hide();
$(function() { $(function() {
$('.first-1').click(); $('.first-1').click();
}); });
@@ -213,8 +213,8 @@ $(function() {
function warnBeforeRedirect(linkURL) { function warnBeforeRedirect(linkURL) {
swal({ swal({
title: "Alert!", title: "Alert!",
text: "Are you sure you want to close cashier?", text: "Are you sure you want to close cashier?",
type: "warning", type: "warning",
showCancelButton: true showCancelButton: true
}, function() { }, function() {
@@ -278,13 +278,13 @@ function refreshDetailData(){
$("#payment_type").text(""); $("#payment_type").text("");
} }
//show order list //show order list
function show_order_detail(url,sr_no){ function show_order_detail(url,sr_no){
// $('.summary-items').html(""); // $('.summary-items').html("");
//Start Ajax //Start Ajax
$.ajax({ $.ajax({
type: "GET", type: "GET",
url: url, url: url,
data: {}, data: {},
dataType: "json", dataType: "json",
success: function(data) { success: function(data) {
@@ -334,12 +334,12 @@ function show_order_detail(url,sr_no){
$("#ready_delivery_time").html(ready_time); $("#ready_delivery_time").html(ready_time);
} }
} }
var newDate = new Date(data.requested_time); var newDate = new Date(data.requested_time);
var time = timeFormat(newDate); var time = timeFormat(newDate);
// var requested_date = newDate.getFullYear() + '-' + (newDate.getMonth() >= 10? newDate.getMonth() : '0' + (newDate.getMonth() + 1)) +'-'+ (newDate.getDate() >= 10? newDate.getDate() : '0' + newDate.getDate()) +' '+time; // var requested_date = newDate.getFullYear() + '-' + (newDate.getMonth() >= 10? newDate.getMonth() : '0' + (newDate.getMonth() + 1)) +'-'+ (newDate.getDate() >= 10? newDate.getDate() : '0' + newDate.getDate()) +' '+time;
var requested_date = getOrderMonth(newDate.getMonth()) +' '+ (newDate.getDate() >= 10? newDate.getDate() : '0' + newDate.getDate()) +', '+newDate.getFullYear()+'('+getOrderDay(newDate.getDay())+')'+' '+time; var requested_date = getOrderMonth(newDate.getMonth()) +' '+ (newDate.getDate() >= 10? newDate.getDate() : '0' + newDate.getDate()) +', '+newDate.getFullYear()+'('+getOrderDay(newDate.getDay())+')'+' '+time;
if((data.expected_waiting_time!=undefined) && (data.expected_waiting_time!=null)){ if((data.expected_waiting_time!=undefined) && (data.expected_waiting_time!=null)){
// var expDate = new Date(data.expected_waiting_time); // var expDate = new Date(data.expected_waiting_time);
// var exptime = timeFormat(expDate); // var exptime = timeFormat(expDate);
@@ -367,7 +367,7 @@ function show_order_detail(url,sr_no){
if(items!=undefined && items!=""){ if(items!=undefined && items!=""){
if(items.length > 0){ if(items.length > 0){
for(var i in items) { for(var i in items) {
var item_price = 0; var item_price = 0;
if(items[i].price > 0){ if(items[i].price > 0){
item_price = items[i].price; item_price = items[i].price;
@@ -378,7 +378,7 @@ function show_order_detail(url,sr_no){
var check_mobile =document.getElementsByName("summary_items_mobile")[0].value; var check_mobile =document.getElementsByName("summary_items_mobile")[0].value;
if (check_mobile == "true"){ if (check_mobile == "true"){
if(items[i].options!='[]' && items[i].options!="" && items[i].options!=null){ if(items[i].options!='[]' && items[i].options!="" && items[i].options!=null){
row = row =
'<tr>' '<tr>'
+'<td width ="70%" class="body-td align-left">'+items[i].item_name +'<td width ="70%" class="body-td align-left">'+items[i].item_name
+' <br>' +' <br>'
@@ -417,8 +417,8 @@ function show_order_detail(url,sr_no){
} }
} }
$('.summary-items').append(row); $('.summary-items').append(row);
} }
@@ -452,7 +452,7 @@ function show_order_detail(url,sr_no){
}else if(data.payment_type == "dinga"){ }else if(data.payment_type == "dinga"){
$("#payment_type").text("DINGA"); $("#payment_type").text("DINGA");
} }
$('#ref_no').text(data.transaction_ref); $('#ref_no').text(data.transaction_ref);
$('#callback_url').text(data.callback_url); $('#callback_url').text(data.callback_url);
$('#order_id').text(data.order_reservation_id); $('#order_id').text(data.order_reservation_id);
@@ -494,16 +494,16 @@ function show_order_detail(url,sr_no){
}else{ }else{
$("#invoice_no").text(data["order_reservation_id"]); $("#invoice_no").text(data["order_reservation_id"]);
} }
} }
} }
} }
}); });
//end Ajax //end Ajax
} }
function callback_url(callback,ref_no,order_id,status,min_type,time,exptime,reason,approved_code){ function callback_url(callback,ref_no,order_id,status,min_type,time,exptime,reason,approved_code){
var url = 'order_reservation/update'; var url = 'order_reservation/update';
var post_url = "order_reservation/send_status"; var post_url = "order_reservation/send_status";
var waiting_time = ""; var waiting_time = "";
@@ -527,16 +527,16 @@ function callback_url(callback,ref_no,order_id,status,min_type,time,exptime,reas
access_code = approved_code; access_code = approved_code;
} }
// $.ajax({ // $.ajax({
// type: "POST", // type: "POST",
// url: post_url, // url: post_url,
// data: {url: callback, ref_no: ref_no, status: status, waiting_time: waiting_time, min_type: type, reason: reject_reason}, // data: {url: callback, ref_no: ref_no, status: status, waiting_time: waiting_time, min_type: type, reason: reject_reason},
// dataType: "json", // dataType: "json",
// success: function(data) { // success: function(data) {
// if(data.status){ // if(data.status){
$.ajax({ $.ajax({
type: "POST", type: "POST",
url: url, url: url,
data: {order_id: order_id, ref_no: ref_no, status: status, min_type: min_type, expected_time: waiting_time, remark: reason, access_code: access_code}, data: {order_id: order_id, ref_no: ref_no, status: status, min_type: min_type, expected_time: waiting_time, remark: reason, access_code: access_code},
dataType: "json", dataType: "json",
success: function(data) { success: function(data) {
@@ -711,7 +711,7 @@ function getOrderDay(day){
function timeFormat(date){ function timeFormat(date){
var isPM = date.getHours() >= 12; var isPM = date.getHours() >= 12;
var isMidday = date.getHours() == 12; var isMidday = date.getHours() == 12;
var time = [(date.getHours()>10? date.getHours() : '0'+date.getHours()) - (isPM && !isMidday ? 12 : 0), var time = [(date.getHours()>10? date.getHours() : '0'+date.getHours()) - (isPM && !isMidday ? 12 : 0),
(date.getMinutes()>10? date.getMinutes() : '0'+date.getMinutes()) || '00'].join(':') + (date.getMinutes()>10? date.getMinutes() : '0'+date.getMinutes()) || '00'].join(':') +
(isPM ? ' PM' : ' AM'); (isPM ? ' PM' : ' AM');
return time; return time;
@@ -722,8 +722,8 @@ function timeFormat(date){
function getOnlineOrderCount(){ function getOnlineOrderCount(){
var count = 0; var count = 0;
//Start Ajax //Start Ajax
$.ajax({ $.ajax({
async: false, async: false,
type: "GET", type: "GET",
url: "/origami/get_order_info", url: "/origami/get_order_info",
dataType: "json", dataType: "json",
@@ -733,7 +733,7 @@ function getOnlineOrderCount(){
} }
} }
}); });
//end Ajax //end Ajax
// alert(count); // alert(count);
return count; return count;
} }
@@ -748,31 +748,33 @@ function print_receipt(){
var params = { 'filename':filename, 'receipt_no':receipt_no, 'printer_name':printer_name }; var params = { 'filename':filename, 'receipt_no':receipt_no, 'printer_name':printer_name };
console.log(params); console.log(params);
$.ajax({ $.ajax({
type: "POST", type: "POST",
url: "/origami/sale/"+sale_id+"/doemal_order/payment/print", url: "/origami/sale/"+sale_id+"/doemal_order/payment/print",
data: params, data: params,
success:function(result){ success:function(result){
// For Server Print - from jade if (!$('#print_settings').data('action-cable')) {
if ($("#server_mode").val() == "cloud") { // For Server Print - from jade
if(typeof code2lab != 'undefined'){ if ($("#server_mode").val() == "cloud") {
code2lab.printFile(result.filepath.substr(6), result.printer_url); if(typeof code2lab != 'undefined'){
code2lab.printFile(result.filepath.substr(6), result.printer_url);
}
window.location.href = '/origami/order_reservation';
}
else{
swal({
title: "Print Success",
text: "Complete Order",
type: 'success',
html: true,
closeOnConfirm: false,
closeOnCancel: false,
allowOutsideClick: false
}, function () {
window.location.href = '/origami/order_reservation';
});
} }
window.location.href = '/origami/order_reservation';
}
else{
swal({
title: "Print Success",
text: "Complete Order",
type: 'success',
html: true,
closeOnConfirm: false,
closeOnCancel: false,
allowOutsideClick: false
}, function () {
window.location.href = '/origami/order_reservation';
});
} }
} }
}); });
} }
/* pdf print out */ /* pdf print out */

View File

@@ -12,6 +12,8 @@
@import "BSBMaterial/themes/all-themes"; @import "BSBMaterial/themes/all-themes";
@import "reset"; @import "reset";
@import "induties/assign_in_duties"; @import "induties/assign_in_duties";
@import "select2";
@import "select2-material";
/*@import "bootstrap-select/css/bootstrap-select.min";*/ /*@import "bootstrap-select/css/bootstrap-select.min";*/

View File

@@ -0,0 +1,231 @@
.select2-container--material {
width: 100% !important; }
.select2-container--material .select2-selection--single {
background-color: transparent;
border: none;
border-bottom: 1px solid rgba(0,0,0,0.26);
border-radius: 0;
box-shadow: none;
box-sizing: content-box;
height: auto;
margin: 0;
outline: none;
padding: 0.46875rem 0 0.40625rem 0;
transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }
.select2-container--material .select2-selection--single .select2-selection__rendered {
color: #444;
font-size: 1rem;
line-height: 18px;
padding-left: 0; }
.select2-container--material .select2-selection--single .select2-selection__clear {
cursor: pointer;
float: right;
font-weight: bold; }
.select2-container--material .select2-selection--single .select2-selection__placeholder {
color: #999; }
.select2-container--material .select2-selection--single .select2-selection__arrow {
height: 20px;
margin: 0.5rem 0 0.2rem 0;
position: absolute;
line-height: 1rem;
top: 1px;
right: 1px;
width: 20px; }
.select2-container--material .select2-selection--single .select2-selection__arrow b {
border-color: #888 transparent transparent transparent;
border-style: solid;
border-width: 5px 4px 0 4px;
height: 0;
left: 50%;
margin-left: -4px;
margin-top: -2px;
position: absolute;
top: 50%;
width: 0; }
.select2-container--material[dir="rtl"] .select2-selection--single .select2-selection__clear {
float: left; }
.select2-container--material[dir="rtl"] .select2-selection--single .select2-selection__arrow {
left: 1px;
right: auto; }
.select2-container--material.select2-container--disabled .select2-selection--single {
background-color: #eee;
cursor: default; }
.select2-container--material.select2-container--disabled .select2-selection--single .select2-selection__clear {
display: none; }
.select2-container--material.select2-container--open .select2-selection--single .select2-selection__arrow b {
border-color: transparent transparent #888 transparent;
border-width: 0 4px 5px 4px; }
.select2-container--material .select2-selection--multiple {
background-color: transparent;
border: none;
border-bottom: 1px solid #ced4da;
border-radius: 0;
box-shadow: none;
box-sizing: content-box;
cursor: text;
height: auto;
margin: 0;
outline: none;
padding: 5px 0 0 0;
transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }
.select2-container--material .select2-selection--multiple .select2-selection__rendered {
box-sizing: border-box;
list-style: none;
margin: 0;
padding: 0 5px;
width: 100%; }
.select2-container--material .select2-selection--multiple .select2-selection__rendered li {
list-style: none; }
.select2-container--material .select2-selection--multiple .select2-selection__placeholder {
color: #999;
margin-top: 5px;
float: left; }
.select2-container--material .select2-selection--multiple .select2-selection__clear {
cursor: pointer;
float: right;
font-weight: bold;
margin-top: 5px;
margin-right: 10px; }
.select2-container--material .select2-selection--multiple .select2-selection__choice {
background-color: #ffca28;
border-radius: 16px;
color: rgba(0, 0, 0, 0.6);
cursor: default;
float: left;
margin-right: 5px;
margin-top: 6px;
padding: 0 12px; }
.select2-container--material .select2-selection--multiple .select2-selection__choice__remove {
cursor: pointer;
display: inline-block;
font-weight: bold;
float: right;
margin-left: 5px; }
.select2-container--material .select2-selection--multiple .select2-selection__choice__remove:hover {
color: #333; }
.select2-container--material[dir="rtl"] .select2-selection--multiple .select2-selection__choice, .select2-container--material[dir="rtl"] .select2-selection--multiple .select2-selection__placeholder, .select2-container--material[dir="rtl"] .select2-selection--multiple .select2-search--inline {
float: right; }
.select2-container--material[dir="rtl"] .select2-selection--multiple .select2-selection__choice {
margin-left: 5px;
margin-right: auto; }
.select2-container--material[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove {
margin-left: 2px;
margin-right: auto; }
.select2-container--material.select2-container--disabled .select2-selection--multiple {
background-color: #eee;
cursor: default; }
.select2-container--material.select2-container--disabled .select2-selection__choice__remove {
display: none; }
.select2-container--material.select2-container--open.select2-container--above .select2-selection--single, .select2-container--material.select2-container--open.select2-container--above .select2-selection--multiple {
border-top-left-radius: 0;
border-top-right-radius: 0; }
.select2-container--material.select2-container--open.select2-container--below .select2-selection--single, .select2-container--material.select2-container--open.select2-container--below .select2-selection--multiple {
border-bottom-left-radius: 0;
border-bottom-right-radius: 0; }
.select2-container--material.select2-container--focus .select2-selection--single {
transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
outline: 0; }
.select2-container--material.select2-container--focus .select2-selection--multiple {
transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
outline: 0; }
.select2-container--material .select2-search--dropdown .select2-search__field {
border: none;
border-bottom: 1px solid #ced4da;
border-radius: 0;
outline: none; }
.select2-container--material .select2-search--dropdown .select2-search__field:focus:not([readonly]) {
box-shadow: 0 1px 0 0 #ced4da;
border-bottom: 1px solid #ced4da; }
.select2-container--material .select2-search--inline .select2-search__field {
background: transparent;
border: none !important;
outline: 0;
box-shadow: none !important;
-webkit-appearance: textfield; }
.select2-container--material .select2-results > .select2-results__options {
overflow-y: auto; }
.select2-container--material .select2-results__option[role=group] {
padding: 0; }
.select2-container--material .select2-results__option[aria-disabled=true] {
color: #999; }
.select2-container--material .select2-results__option[aria-selected=true] {
background-color: #ddd; }
.select2-container--material .select2-results__option .select2-results__option {
padding-left: 1em; }
.select2-container--material .select2-results__option .select2-results__option .select2-results__group {
padding-left: 0; }
.select2-container--material .select2-results__option .select2-results__option .select2-results__option {
margin-left: -1em;
padding-left: 2em; }
.select2-container--material .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
margin-left: -2em;
padding-left: 3em; }
.select2-container--material .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
margin-left: -3em;
padding-left: 4em; }
.select2-container--material .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
margin-left: -4em;
padding-left: 5em; }
.select2-container--material .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
margin-left: -5em;
padding-left: 6em; }
.select2-container--material .select2-results__option--highlighted[aria-selected] {
background-color: #3f729b;
color: white; }
.select2-container--material .select2-results__group {
cursor: default;
display: block;
padding: 6px; }
.select2-dropdown {
background-color: white;
border: 1px solid #ced4da;
border-radius: 4px;
box-sizing: border-box;
box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12);
display: block;
position: absolute;
left: -100000px;
width: 100%;
z-index: 1051;
-webkit-box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12); }
.select2-results {
display: block; }
.select2-results__options {
list-style: none;
margin: 0;
padding: 0; }
.select2-results__option {
padding: 6px;
user-select: none;
-webkit-user-select: none; }
.select2-results__option[aria-selected] {
cursor: pointer; }
.select2-container--open .select2-dropdown {
left: 0; }
.select2-container--open .select2-dropdown--above {
border-bottom: none;
border-bottom-left-radius: 0;
border-bottom-right-radius: 0; }
.select2-container--open .select2-dropdown--below {
border-top: none;
border-top-left-radius: 0;
border-top-right-radius: 0; }
.select2-search--dropdown {
display: block;
padding: 4px; }
.select2-search--dropdown .select2-search__field {
padding: 4px;
width: 100%;
box-sizing: border-box; }
.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button {
-webkit-appearance: none; }
.select2-search--dropdown.select2-search--hide {
display: none; }

View File

@@ -51,7 +51,6 @@ class Oqs::PrintController < ApplicationController
ai.save ai.save
end end
# filename, receipt_no, cashier_printer = printer.print_receipt_bill(print_settings, false, nil,cashier_terminal,sale_items,sale_data,customer.name, item_price_by_accounts, discount_price_by_accounts, member_info, shop_detail, "Frt",current_balance,nil,other_amount)
if ENV["SERVER_MODE"] == "cloud" if ENV["SERVER_MODE"] == "cloud"
result = { result = {
:filepath => filename, :filepath => filename,
@@ -119,7 +118,6 @@ class Oqs::PrintController < ApplicationController
ai.save ai.save
end end
# filename, receipt_no, cashier_printer = printer.print_receipt_bill(print_settings, false, nil,cashier_terminal,sale_items,sale_data,customer.name, item_price_by_accounts, discount_price_by_accounts, member_info, shop_detail, "Frt",current_balance,nil,other_amount)
if ENV["SERVER_MODE"] == "cloud" if ENV["SERVER_MODE"] == "cloud"
result = { result = {
:filepath => filename, :filepath => filename,

View File

@@ -1,2 +1,5 @@
module PrintSettingsHelper module PrintSettingsHelper
def print_settings
tag.div id: 'print_settings', class: 'hidden', data: { action_cable: Lookup.collection_of('print_settings').any? { |x| x == ["ActionCable", "1"] } }
end
end end

View File

@@ -38,90 +38,91 @@ class Printer::CashierStationPrinter < Printer::PrinterWorker
# self.print(filename, cashier_terminal.printer_name) # self.print(filename, cashier_terminal.printer_name)
# end # end
def print_close_cashier(printer_settings,cashier_terminal,shift_sale, sale_items, total_other_charges_info,shop_details,sale_taxes,other_payment,amount,discount,member_discount,total_dinein,total_takeway,total_other_charges,total_waste,total_spoile,total_credit_payments,payment_methods,other_charges) def print_close_cashier(printer_settings, cashier_terminal, shift_sale, sale_items, total_other_charges_info, shop_details, sale_taxes, other_payment, amount, discount, member_discount, total_dinein, total_takeway, total_other_charges, total_waste, total_spoile, total_credit_payments, payment_methods, other_charges)
if Lookup.collection_of('print_settings').none? { |x| x == ["ActionCable", "1"] }
if !sale_items.blank? or !sale_items.nil?
@account_cate_count = Hash.new {|hash, key| hash[key] = 0}
sale_items.each {|acc_cate| @account_cate_count[acc_cate.account_id] += 1}
if !sale_items.blank? or !sale_items.nil? @menu_cate_count = Hash.new {|hash, key| hash[key] = 0}
@account_cate_count = Hash.new {|hash, key| hash[key] = 0} sale_items.each {|cate| @menu_cate_count[cate.menu_category_id] += 1}
sale_items.each {|acc_cate| @account_cate_count[acc_cate.account_id] += 1}
@totalByAccount = Hash.new {|hash, key| hash[key] = 0}
sale_items.each {|acc| @totalByAccount[acc.account_id] += acc.grand_total}
end
@menu_cate_count = Hash.new {|hash, key| hash[key] = 0} #Use CUPS service
sale_items.each {|cate| @menu_cate_count[cate.menu_category_id] += 1} #Generate PDF
#Print
cashier = shift_sale.employee.name
shift_name = shift_sale.shift_started_at.utc.getlocal.strftime("%d-%m-%Y %I:%M %p") + "_" + shift_sale.shift_closed_at.utc.getlocal.strftime("%d-%m-%Y %I:%M %p")
filename = "tmp/close_cashier_#{cashier}_#{shift_name}.pdf"
pdf = CloseCashierPdf.new(printer_settings, shift_sale, sale_items, total_other_charges_info, @account_cate_count, @menu_cate_count, @totalByAccount, shop_details, sale_taxes, other_payment, amount, discount, member_discount, total_dinein, total_takeway, total_other_charges, total_waste, total_spoile, total_credit_payments, payment_methods)
close_cashier_pdf = Lookup.collection_of("print_settings") #print_settings with name:CloseCashierPdf
if !close_cashier_pdf.empty?
@totalByAccount = Hash.new {|hash, key| hash[key] = 0} close_cashier_pdf.each do |close_cashier|
sale_items.each {|acc| @totalByAccount[acc.account_id] += acc.grand_total} if close_cashier[0] == 'CloseCashierCustomisePdf'
end if close_cashier[1] == '1'
pdf = CloseCashierCustomisePdf.new(printer_settings, shift_sale, shop_details, sale_taxes, other_payment, amount, discount, member_discount, total_dinein, total_takeway, total_other_charges, total_waste, total_spoile, total_credit_payments)
#Use CUPS service else
#Generate PDF pdf = CloseCashierPdf.new(printer_settings, shift_sale, sale_items, total_other_charges_info, @account_cate_count, @menu_cate_count, @totalByAccount, shop_details, sale_taxes, other_payment, amount,discount, member_discount, total_dinein, total_takeway, total_other_charges, total_waste, total_spoile, total_credit_payments, payment_methods)
#Print end
cashier = shift_sale.employee.name
shift_name = shift_sale.shift_started_at.utc.getlocal.strftime("%d-%m-%Y %I:%M %p") + "_" + shift_sale.shift_closed_at.utc.getlocal.strftime("%d-%m-%Y %I:%M %p")
filename = "tmp/close_cashier_#{cashier}_#{shift_name}.pdf"
pdf = CloseCashierPdf.new(printer_settings,shift_sale, sale_items, total_other_charges_info, @account_cate_count, @menu_cate_count, @totalByAccount, shop_details,sale_taxes,other_payment,amount,discount,member_discount,total_dinein,total_takeway,total_other_charges,total_waste,total_spoile,total_credit_payments,payment_methods)
close_cashier_pdf = Lookup.collection_of("print_settings") #print_settings with name:CloseCashierPdf
if !close_cashier_pdf.empty?
close_cashier_pdf.each do |close_cashier|
if close_cashier[0] == 'CloseCashierCustomisePdf'
if close_cashier[1] == '1'
pdf = CloseCashierCustomisePdf.new(printer_settings,shift_sale,shop_details,sale_taxes,other_payment,amount,discount,member_discount,total_dinein,total_takeway,total_other_charges,total_waste,total_spoile,total_credit_payments)
else
pdf = CloseCashierPdf.new(printer_settings,shift_sale, sale_items, total_other_charges_info, @account_cate_count, @menu_cate_count, @totalByAccount, shop_details,sale_taxes,other_payment,amount,discount,member_discount,total_dinein,total_takeway,total_other_charges,total_waste,total_spoile,total_credit_payments,payment_methods)
end end
end end
end end
end pdf.render_file filename
pdf.render_file filename #no print in cloud server
#no print in cloud server if ENV["SERVER_MODE"] != "cloud"
if ENV["SERVER_MODE"] != "cloud" self.print(filename, cashier_terminal.printer_name)
self.print(filename, cashier_terminal.printer_name) end
else else
ActionCable.server.broadcast("print_channel_#{Shop.current_shop.shop_code}", ActionCable.server.broadcast("print_channel_#{Shop.current_shop.shop_code}",
queue: "Cashier", queue: cashier_terminal.printer_name,
unique_code: print_settings.unique_code, unique_code: print_settings.unique_code,
print_copies: print_settings.print_copies, print_copies: print_settings.print_copies,
data: { data: {
shop_details: shop_details.as_json, shop_details: shop_details.as_json,
shift_sale: shift_sale, shift_sale: shift_sale,
cashier_terminal: cashier_terminal, cashier_terminal: cashier_terminal,
shift_employee: shift_sale.employee, shift_employee: shift_sale.employee,
sale_items: sale_items, sale_items: sale_items,
sale_taxes: sale_taxes, sale_taxes: sale_taxes,
other_payment: other_payment, other_payment: other_payment,
total_amount_by_account: amount, total_amount_by_account: amount,
total_discount_by_account: discount, total_discount_by_account: discount,
total_member_discount: member_discount, total_member_discount: member_discount,
total_waste: total_waste, total_waste: total_waste,
total_spoile: total_spoile, total_spoile: total_spoile,
other_charges: other_charges, other_charges: other_charges,
total_other_charges: total_other_charges, total_other_charges: total_other_charges,
total_credit_payments: total_credit_payments total_credit_payments: total_credit_payments
} }
) )
end end
end end
def print_sale_items_report(print_settings, shop_details, period_name, type, account, from_date, to_date, shift_name, sale_items, total_other_charges) def print_sale_items_report(print_settings, shop_details, period_name, type, account, from_date, to_date, shift_name, sale_items, total_other_charges)
filename = "tmp/reports_sale_items.pdf" if Lookup.collection_of('print_settings').none? { |x| x == ["ActionCable", "1"] }
filename = "tmp/reports_sale_items.pdf"
if print_settings.unique_code == "SaleItemsPdf" if print_settings.unique_code == "SaleItemsPdf"
pdf = SaleItemsPdf.new(print_settings, shop_details, period_name, type, account, from_date, to_date, shift_name, sale_items, total_other_charges) pdf = SaleItemsPdf.new(print_settings, shop_details, period_name, type, account, from_date, to_date, shift_name, sale_items, total_other_charges)
end end
if print_settings.unique_code == "SaleItemsStarPdf" if print_settings.unique_code == "SaleItemsStarPdf"
pdf = SaleItemsStarPdf.new(print_settings, shop_details, period_name, type, account, from_date, to_date, shift_name, sale_items, total_other_charges) pdf = SaleItemsStarPdf.new(print_settings, shop_details, period_name, type, account, from_date, to_date, shift_name, sale_items, total_other_charges)
end end
pdf.render_file filename pdf.render_file filename
#no print in cloud server #no print in cloud server
if ENV["SERVER_MODE"] != "cloud" if ENV["SERVER_MODE"] != "cloud"
self.print(filename, print_settings.printer_name) self.print(filename, print_settings.printer_name)
end
else else
ActionCable.server.broadcast("print_channel_#{Shop.current_shop.shop_code}", ActionCable.server.broadcast("print_channel_#{Shop.current_shop.shop_code}",
queue: 'Cashier', queue: print_settings.printer_name,
unique_code: print_settings.unique_code, unique_code: print_settings.unique_code,
print_copies: print_settings.print_copies, print_copies: print_settings.print_copies,
data: { data: {

View File

@@ -1,94 +1,66 @@
class Printer::OrderQueuePrinter < Printer::PrinterWorker class Printer::OrderQueuePrinter < Printer::PrinterWorker
def print_order_item(print_settings, oqs, order_id, order_item_id, print_status, before_updated_qty="", options="") def print_order_item(print_settings, oqs, order_id, order_item_id, print_status, before_updated_qty="", options="")
# Must be one print
if print_settings.print_copies == 0
print_settings.print_copies = 1
print_settings.save!
end
order_item = print_query('order_item', order_item_id) #OrderItem.find_by_item_code(item_code)
options = order_item[0].options
# check for item not to show
# if order_item[0].price != 0
pdf = print_settings.unique_code.constantize.new(print_settings,order_item[0], print_status, options, oqs.use_alternate_name, before_updated_qty)
booking_id = Booking.get_booking_id(order_id) booking_id = Booking.get_booking_id(order_id)
# end order_item = print_query('order_item', order_item_id).first #OrderItem.find_by_item_code(item_code)
shop = Shop.current_shop if Lookup.collection_of('print_settings').none? { |x| x == ["ActionCable", "1"] }
directory_name = 'public/orders_'+shop.shop_code # Must be one print
Dir.mkdir(directory_name) unless File.exists?(directory_name) if print_settings.print_copies == 0
print_settings.print_copies = 1
print_settings.save!
end
filename = directory_name + "/order_item_#{order_id}_#{order_item_id}" + ".pdf" options = order_item.options
# check for item not to show
pdf = print_settings.unique_code.constantize.new(print_settings, order_item, print_status, options, oqs.use_alternate_name, before_updated_qty)
pdf.render_file filename shop = Shop.current_shop
directory_name = "public/orders_#{shop.shop_code}"
Dir.mkdir(directory_name) unless File.exists?(directory_name)
if ENV["SERVER_MODE"] != "cloud" filename = directory_name + "/order_item_#{order_id}_#{order_item_id}" + ".pdf"
self.print(filename, oqs.printer_name)
pdf.render_file filename
if ENV["SERVER_MODE"] != "cloud"
self.print(filename, oqs.printer_name)
end
return filename, order_id, oqs.printer_name
else else
ActionCable.server.broadcast("print_channel_#{Shop.current_shop.shop_code}", ActionCable.server.broadcast("print_channel_#{Shop.current_shop.shop_code}",
queue: oqs.station_name, queue: oqs.station_name,
unique_code: print_settings.unique_code, unique_code: print_settings.unique_code,
print_copies: print_settings.print_copies, print_copies: print_settings.print_copies,
data: { data: {
order_item: order_item[0].as_json(methods: :type), order_item: order_item.as_json(methods: :type),
print_status: print_status.gsub(/[()]/, ""), print_status: print_status.gsub(/[()]/, ""),
booking_id: booking_id, booking_id: booking_id,
precision: print_settings.precision precision: print_settings.precision
} }
) )
end end
#For print copy
# pdf.render_file filename.gsub(".","-copy.")
# self.print(filename.gsub(".","-copy."), oqs.printer_name)
return filename, order_id, oqs.printer_name
end end
# Query for per order # Query for per order
def print_order_summary(print_settings, oqs, order_id, order_items, print_status, before_updated_qty="", options="") def print_order_summary(print_settings, oqs, order_id, order_items, print_status, before_updated_qty="", options="")
#Use CUPS service booking_id = Booking.get_booking_id(order_id) #order[0].order_id
#Generate PDF order = print_query('order_summary', order_id)
#Print
# Must be one print
if print_settings.print_copies == 0
print_settings.print_copies = 1
print_settings.save!
end
shop = Shop.current_shop if Lookup.collection_of('print_settings').none? { |x| x == ["ActionCable", "1"] }
directory_name = "public/orders_#{shop.shop_code}" #Use CUPS service
Dir.mkdir(directory_name) unless File.exists?(directory_name) #Generate PDF
#Print
# For Print Per Item # Must be one print
if oqs.cut_per_item if print_settings.print_copies == 0
print_settings.print_copies = 1
order_items.each do |odi| print_settings.save!
odi_item = print_query('order_item', odi.order_items_id)
filename = directory_name + "/order_item_#{order_id}.pdf"
# filename = "tmp/order_item_#{order_id}" + ".pdf"
# For Item Options
options = odi.options == "[]" ? "" : odi.options
# check for item not to show
#if odi.price != 0
pdf = print_settings.unique_code.constantize.new(print_settings, odi_item[0], print_status, options, oqs.use_alternate_name, before_updated_qty)
# pdf.render_file "tmp/order_item.pdf"
pdf.render_file filename
#no print in cloud server
if ENV["SERVER_MODE"] != "cloud"
self.print(filename, oqs.printer_name)
# self.print(filename.gsub(".","-copy."), oqs.printer_name)
end
#end
end end
# For Print Order Summary
else shop = Shop.current_shop
booking_id = Booking.get_booking_id(order_id) #order[0].order_id directory_name = "public/orders_#{shop.shop_code}"
order = print_query('order_summary', order_id) Dir.mkdir(directory_name) unless File.exists?(directory_name)
filename = directory_name + "/order_summary_#{order_id}.pdf" filename = directory_name + "/order_summary_#{order_id}.pdf"
# filename = "tmp/order_summary_#{order_id}" + ".pdf" # filename = "tmp/order_summary_#{order_id}" + ".pdf"
@@ -98,29 +70,27 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker
#no print in cloud server #no print in cloud server
if ENV["SERVER_MODE"] != "cloud" if ENV["SERVER_MODE"] != "cloud"
self.print(filename, oqs.printer_name) self.print(filename, oqs.printer_name)
else
ActionCable.server.broadcast("print_channel_#{Shop.current_shop.shop_code}",
queue: oqs.station_name,
unique_code: print_settings.unique_code,
print_copies: print_settings.print_copies,
data: {
order_item: order_items,
order: order.as_json(methods: :type),
print_status: "",
booking_id: booking_id,
precision: print_settings.precision}
)
end end
#For print copy return filename, order_id, oqs.printer_name
# pdf.render_file filename.gsub(".","-copy.") else
# self.print(filename.gsub(".","-copy."), oqs.printer_name) ActionCable.server.broadcast("print_channel_#{Shop.current_shop.shop_code}",
queue: oqs.station_name,
unique_code: print_settings.unique_code,
print_copies: print_settings.print_copies,
data: {
order_item: order_items,
order: order.as_json(methods: :type),
print_status: "",
booking_id: booking_id,
precision: print_settings.precision
}
)
end end
return filename, order_id, oqs.printer_name
end end
# Print for orders in booking # Print for orders in booking
def print_booking_summary(print_settings, oqs, booking_id, print_status,before_updated_qty="") def print_booking_summary(print_settings, oqs, booking_id, print_status, before_updated_qty="")
# Must be one print # Must be one print
if print_settings.print_copies == 0 if print_settings.print_copies == 0
print_settings.print_copies = 1 print_settings.print_copies = 1

View File

@@ -91,61 +91,29 @@ class Printer::ReceiptPrinter < Printer::PrinterWorker
#Bill Receipt Print #Bill Receipt Print
def print_receipt_bill(printer_settings, kbz_pay_status, qr_code, cashier_terminal,sale_items,sale_data, customer_name, item_price_by_accounts, discount_price_by_accounts, member_info = nil,rebate_amount=nil,shop_details, printed_status,balance,card_data,other_amount,latest_order_no,card_balance_amount,order_reservation) def print_receipt_bill(printer_settings, kbz_pay_status, qr_code, cashier_terminal,sale_items,sale_data, customer_name, item_price_by_accounts, discount_price_by_accounts, member_info = nil,rebate_amount=nil,shop_details, printed_status,balance,card_data,other_amount,latest_order_no,card_balance_amount,order_reservation)
#Use CUPS service if Lookup.collection_of('print_settings').none? { |x| x == ["ActionCable", "1"] }
#Generate PDF #Use CUPS service
#Print #Generate PDF
if printer_settings #Print
if !printer_settings.unique_code.match?(/receiptbillorder/i) if printer_settings
if Lookup.collection_of("print_settings").any? { |x| x == ["ReceiptBillA5Pdf", "1"] } #print_settings with name:ReceiptBillA5Pdf if !printer_settings.unique_code.match?(/receiptbillorder/i)
pdf = ReceiptBillA5Pdf.new(printer_settings, sale_items, sale_data, customer_name, item_price_by_accounts, discount_price_by_accounts, member_info,rebate_amount,shop_details,printed_status,balance,card_data,other_amount,latest_order_no,card_balance_amount) if Lookup.collection_of("print_settings").any? { |x| x == ["ReceiptBillA5Pdf", "1"] } #print_settings with name:ReceiptBillA5Pdf
pdf = ReceiptBillA5Pdf.new(printer_settings, sale_items, sale_data, customer_name, item_price_by_accounts, discount_price_by_accounts, member_info,rebate_amount,shop_details,printed_status,balance,card_data,other_amount,latest_order_no,card_balance_amount)
else
pdf = PrintSetting.where("unique_code REGEXP ?", "receipt.*bill.*pdf").first.unique_code.constantize.new(printer_settings, kbz_pay_status, qr_code, sale_items, sale_data, customer_name, item_price_by_accounts, discount_price_by_accounts, member_info,rebate_amount,shop_details,printed_status,balance,card_data,other_amount,latest_order_no,card_balance_amount)
end
else else
pdf = PrintSetting.where("unique_code REGEXP ?", "receipt.*bill.*pdf").first.unique_code.constantize.new(printer_settings, kbz_pay_status, qr_code, sale_items, sale_data, customer_name, item_price_by_accounts, discount_price_by_accounts, member_info,rebate_amount,shop_details,printed_status,balance,card_data,other_amount,latest_order_no,card_balance_amount) #doemal online order pdf template
pdf = ReceiptBillOrderPdf.new(printer_settings, sale_items, sale_data, customer_name, item_price_by_accounts, discount_price_by_accounts, member_info,rebate_amount,shop_details,printed_status,balance,card_data,other_amount,latest_order_no,card_balance_amount,order_reservation)
end end
else
#doemal online order pdf template # print as print copies in printer setting
pdf = ReceiptBillOrderPdf.new(printer_settings, sale_items, sale_data, customer_name, item_price_by_accounts, discount_price_by_accounts, member_info,rebate_amount,shop_details,printed_status,balance,card_data,other_amount,latest_order_no,card_balance_amount,order_reservation) count = printer_settings.print_copies
end end
if ENV["SERVER_MODE"] == "cloud" directory_name = 'public/receipts'
ActionCable.server.broadcast("print_channel_#{Shop.current_shop.shop_code}", Dir.mkdir(directory_name) unless File.exists?(directory_name)
queue: "Cashier", Rails.logger.debug "############## dir::" + directory_name
unique_code: print_settings.unique_code,
print_copies: print_settings.print_copies,
data: {
shop_details: shop_details.as_json,
body: { sale_data: sale_data,
booking: sale_data.bookings,
dining_facility: sale_data.bookings[0].dining_facility.as_json(methods: :type),
sale_taxes: sale_data.sale_taxes,
latest_order_no: latest_order_no,
sale_items: sale_items,
precision: print_settings.precision,
delimiter: print_settings.delimiter,
member_info: member_info,
customer_name: customer_name,
rebate_amount: rebate_amount,
current_balance: balance,
card_data: card_data,
card_balance_amount: card_balance_amount,
discount_price_by_accounts: discount_price_by_accounts,
item_price_by_accounts: item_price_by_accounts,
sale_payments: sale_data.sale_payments,
},
footer: { printed_status: printed_status, footer_text: "Thank You! See you Again" }
}
)
end
# print as print copies in printer setting
count = printer_settings.print_copies
# override print copies for print worker loop
# print_settings.print_copies = 1
# print_settings.save!
end
directory_name = 'public/receipts'
Dir.mkdir(directory_name) unless File.exists?(directory_name)
Rails.logger.debug "############## dir::" + directory_name
if count == 1 if count == 1
filename = directory_name + "/receipt_bill_#{sale_data.receipt_no}.pdf" filename = directory_name + "/receipt_bill_#{sale_data.receipt_no}.pdf"
pdf.render_file filename pdf.render_file filename
@@ -169,12 +137,44 @@ class Printer::ReceiptPrinter < Printer::PrinterWorker
end end
end end
end end
Rails.logger.debug "############## filename::" + filename
return filename, sale_data.receipt_no, cashier_terminal.printer_name Rails.logger.debug "############## filename::" + filename
return filename, sale_data.receipt_no, cashier_terminal.printer_name
else
ActionCable.server.broadcast("print_channel_#{Shop.current_shop.shop_code}",
queue: cashier_terminal.printer_name,
unique_code: print_settings.unique_code,
print_copies: print_settings.print_copies,
data: {
shop_details: shop_details.as_json,
body: { sale_data: sale_data,
booking: sale_data.bookings,
dining_facility: sale_data.bookings[0].dining_facility.as_json(methods: :type),
sale_taxes: sale_data.sale_taxes,
latest_order_no: latest_order_no,
sale_items: sale_items,
precision: print_settings.precision,
delimiter: print_settings.delimiter,
member_info: member_info,
customer_name: customer_name,
rebate_amount: rebate_amount,
current_balance: balance,
card_data: card_data,
card_balance_amount: card_balance_amount,
discount_price_by_accounts: discount_price_by_accounts,
item_price_by_accounts: item_price_by_accounts,
sale_payments: sale_data.sale_payments
},
footer: {
printed_status: printed_status, footer_text: "Thank You! See you Again"
}
}
)
end
end end
# stock check # stock check
def print_stock_check_result(print_settings,stockcheck, stockcheck_items,checker_name, shop_details) def print_stock_check_result(print_settings, stockcheck, stockcheck_items, checker_name, shop_details)
pdf = StockResultPdf.new(print_settings,stockcheck, stockcheck_items,checker_name, shop_details) pdf = StockResultPdf.new(print_settings,stockcheck, stockcheck_items,checker_name, shop_details)
pdf.render_file "tmp/print_stock_check_result.pdf" pdf.render_file "tmp/print_stock_check_result.pdf"
#no print in cloud server #no print in cloud server
@@ -197,37 +197,39 @@ class Printer::ReceiptPrinter < Printer::PrinterWorker
end end
#Move Table Print #Move Table Print
def print_move_table(printer_settings,to,from,shop_detail,date,type,moved_by,order_items,oqs) def print_move_table(printer_settings, to, from, shop_detail, date, type, moved_by, order_items, oqs)
#Use CUPS service if Lookup.collection_of('print_settings').none? { |x| x == ["ActionCable", "1"] }
#Generate PDF #Use CUPS service
#Print #Generate PDF
pdf = MoveTablePdf.new(printer_settings,to,from,shop_detail,date,type,moved_by,order_items) #Print
pdf.render_file "tmp/print_move_table.pdf" pdf = MoveTablePdf.new(printer_settings, to, from, shop_detail, date, type, moved_by, order_items)
pdf.render_file "tmp/print_move_table.pdf"
if ENV["SERVER_MODE"] != "cloud" if ENV["SERVER_MODE"] != "cloud"
if oqs.print_copy if oqs.print_copy
self.print("tmp/print_move_table.pdf",oqs.printer_name) self.print("tmp/print_move_table.pdf",oqs.printer_name)
else else
print_settings.print_copies = 1 print_settings.print_copies = 1
print_settings.save! print_settings.save!
#no print in cloud server #no print in cloud server
self.print("tmp/print_move_table.pdf", oqs.printer_name) self.print("tmp/print_move_table.pdf", oqs.printer_name)
end
end end
else else
ActionCable.server.broadcast("print_channel_#{Shop.current_shop.shop_code}", ActionCable.server.broadcast("print_channel_#{Shop.current_shop.shop_code}",
queue: oqs.station_name, queue: oqs.station_name,
unique_code: print_settings.unique_code, unique_code: print_settings.unique_code,
print_copies: print_settings.print_copies, print_copies: print_settings.print_copies,
data: { data: {
type: type, type: type,
body: { body: {
to: to, to: to,
from: from, from: from,
date: date, date: date,
moved_by: moved_by, moved_by: moved_by,
order_items: order_items.as_json, order_items: order_items.as_json,
}, },
} }
) )
end end
end end

View File

@@ -1,6 +1,6 @@
<!-- Column One --> <!-- Column One -->
<div class="row clearfix m-top-100" style=""> <div class="row clearfix m-top-100" style="">
<div class="col-lg-7 col-md-7 col-sm-7"> <div class="col-lg-7 col-md-7 col-sm-7">
<p class="hidden filter"><%= @filter %></p> <p class="hidden filter"><%= @filter %></p>
<div class="card"> <div class="card">
<div class="card-block"> <div class="card-block">
@@ -20,7 +20,7 @@
<p class="hidden oqs-id"><%= qsi.id %></p> <p class="hidden oqs-id"><%= qsi.id %></p>
<option value="<%= qsi.id %>" data-id="<%= qsi.id %>" <%=selected%> style="padding:5px 20px !important;"> <%= qsi.station_name %></option> <option value="<%= qsi.id %>" data-id="<%= qsi.id %>" <%=selected%> style="padding:5px 20px !important;"> <%= qsi.station_name %></option>
<% end %> <% end %>
<% end %> <% end %>
</select> </select>
</div> </div>
@@ -38,8 +38,8 @@
<div class="tab-content" id="custom-slimscroll" style=""> <div class="tab-content" id="custom-slimscroll" style="">
<div class="tab-pane in active" id="completed" role="tabpanel"> <div class="tab-pane in active" id="completed" role="tabpanel">
<div class="card-columns" style="padding-top:10px; column-gap: 1.2rem;column-count: ;"> <div class="card-columns" style="padding-top:10px; column-gap: 1.2rem;column-count: ;">
<% <%
@queue_completed_item.each do |qid| @queue_completed_item.each do |qid|
%> %>
<div class="card queue_station" data-order-no="<%= qid.order_id %>"> <div class="card queue_station" data-order-no="<%= qid.order_id %>">
<div class="card-block"> <div class="card-block">
@@ -52,38 +52,38 @@
<span class="order-zone hidden font-13"><%= qid.zone %></span> <span class="order-zone hidden font-13"><%= qid.zone %></span>
<span class="col-md-8"><small class="float-right font-13"><%= qid.order_id %></small></span> <span class="col-md-8"><small class="float-right font-13"><%= qid.order_id %></small></span>
</div> </div>
<p class="m-b--10"> <p class="m-b--10">
<span class="order-item font-16"> <span class="order-item font-16">
<%= qid.item_name %> <%= qid.item_name %>
</span> [x </span> [x
<span class="order-qty"> <span class="order-qty">
<%= qid.qty %> <%= qid.qty %>
</span> ] </span> ]
<% if !qid.set_menu_items.nil? %> <% if !qid.set_menu_items.nil? %>
<% qid.set_menu_items.each do |item_instance|%> <% qid.set_menu_items.each do |item_instance|%>
<br><span class="font-12"> <br><span class="font-12">
<%= item_instance %> <%= item_instance %>
</span> </span>
<% end %> <% end %>
<% end %> <% end %>
</p> </p>
<br/><p class="card-text item-options"><%= qid.options == "[]"? "" : qid.options %></p> <br/><p class="card-text item-options"><%= qid.options == "[]"? "" : qid.options %></p>
<span class="card-text"> <span class="card-text">
<span class="text-muted">Order at - <span class="text-muted">Order at -
<span class="order-at font-13"> <span class="order-at font-13">
<%= qid.created_at.utc.getlocal.strftime("%d-%m-%Y %I:%M %p") %> <%= qid.created_at.utc.getlocal.strftime("%d-%m-%Y %I:%M %p") %>
</span> <br> </span> <br>
Order By - <span class="order-by font-13"> Order By - <span class="order-by font-13">
<%= qid.item_order_by %> <%= qid.item_order_by %>
</span> </span>
</span> </span>
</span> </span>
<p class="hidden order-status">completed</p> <p class="hidden order-status">completed</p>
<p class="hidden order-customer"><%= qid.customer_name %></p> <p class="hidden order-customer"><%= qid.customer_name %></p>
<p class="hidden assigned-order-item"><%= qid.assigned_order_item_id %></p> <p class="hidden assigned-order-item"><%= qid.assigned_order_item_id %></p>
</div> </div>
<% if !qid.delivery_status %> <% if !qid.delivery_status %>
<div class="card-footer"> <div class="card-footer">
@@ -91,11 +91,11 @@
<button id="assigned_queue_<%= qid.assigned_order_item_id %>" class="btn btn-primary order-item order-complete">COMPLETE</button> <button id="assigned_queue_<%= qid.assigned_order_item_id %>" class="btn btn-primary order-item order-complete">COMPLETE</button>
</div> </div>
<%end%> <%end%>
</div> </div>
<% end %> <% end %>
</div> </div>
</div> </div>
<div class="card-columns oqs_append" id="oqs_container" style="padding-top:10px; column-gap: 1.2rem;"> <div class="card-columns oqs_append" id="oqs_container" style="padding-top:10px; column-gap: 1.2rem;">
</div> </div>
</div> </div>
</div> </div>
@@ -127,7 +127,7 @@
<td id="order-customer" colspan="2"></td> <td id="order-customer" colspan="2"></td>
</tr> --> </tr> -->
<!-- </tbody> <!-- </tbody>
</table> </table>
</div> </div>
<div class="card-text" id="order-detail-slimscroll" style="min-height:; max-height:; overflow:"> <div class="card-text" id="order-detail-slimscroll" style="min-height:; max-height:; overflow:">
<table class="table" id="oqs-order-details-table"> <table class="table" id="oqs-order-details-table">
@@ -137,7 +137,7 @@
<th style="width:20%; text-align:right">QTY</th> <th style="width:20%; text-align:right">QTY</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
</tbody> </tbody>
</table> </table>
</div> </div>
@@ -163,7 +163,7 @@
<div class="col-lg-4 col-md-4 col-sm-4 table-float"> <div class="col-lg-4 col-md-4 col-sm-4 table-float">
<button class='btn btn-lg waves-effect green tables table-width' value="<%= table.id %>" data-id="<%= table.id %>"> <%= table.name %> <br> <%= table.zone.name %></button> <button class='btn btn-lg waves-effect green tables table-width' value="<%= table.id %>" data-id="<%= table.id %>"> <%= table.name %> <br> <%= table.zone.name %></button>
</div> </div>
<% end %> <% end %>
</div> </div>
<%if !@rooms.empty? %> <%if !@rooms.empty? %>
<div id="room" class="tab-pane fade"> <div id="room" class="tab-pane fade">
@@ -171,21 +171,21 @@
<div class="col-lg-4 col-md-4 col-sm-4 table-float"> <div class="col-lg-4 col-md-4 col-sm-4 table-float">
<button class='btn btn-lg waves-effect green tables table-width' value="<%= room.id %>" data-id="<%= room.id %>"> <%= room.name %> <br> <%= room.zone.name %></button> <button class='btn btn-lg waves-effect green tables table-width' value="<%= room.id %>" data-id="<%= room.id %>"> <%= room.name %> <br> <%= room.zone.name %></button>
</div> </div>
<% end %> <% end %>
</div> </div>
<% end %> <% end %>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="col-lg-1 col-md-1 col-sm-1"> <div class="col-lg-1 col-md-1 col-sm-1">
<!-- OQS Buttons --> <!-- OQS Buttons -->
<!-- <br> --> <!-- <br> -->
<% if current_user.role != "kitchen" %> <% if current_user.role != "kitchen" %>
<a href="<%= dashboard_path %>" class="btn btn-sm btn-block btn-default waves-effect" role="button" aria-haspopup="true"><i class="material-icons">reply</i> Back </a> <a href="<%= dashboard_path %>" class="btn btn-sm btn-block btn-default waves-effect" role="button" aria-haspopup="true"><i class="material-icons">reply</i> Back </a>
<%end%> <%end%>
<button type="button" title="Print Order Item" id="print_order_item" class="btn bg-blue btn-block btn-lg waves-effect">Print</a> <button type="button" title="Print Order Item" id="print_order_item" class="btn bg-blue btn-block btn-lg waves-effect">Print</a>
<!-- <button type="button" class="btn bg-blue btn-block btn-lg waves-effect" id="print_order_summary">Print <br/>Order<br/>Summary</button> <!-- <button type="button" class="btn bg-blue btn-block btn-lg waves-effect" id="print_order_summary">Print <br/>Order<br/>Summary</button>
@@ -195,6 +195,8 @@
</div> </div>
<input type="hidden" id="server_mode" value="<%=ENV["SERVER_MODE"]%>"> <input type="hidden" id="server_mode" value="<%=ENV["SERVER_MODE"]%>">
<%= print_settings %>
<script type="text/javascript"> <script type="text/javascript">
$(document).on('turbolinks:load', function() { $(document).on('turbolinks:load', function() {
$('#back').on('click', function () { $('#back').on('click', function () {
@@ -202,12 +204,10 @@
}); });
}); });
document.getElementById("defaultOpen").click(); document.getElementById("defaultOpen").click();
</script> </script>
<style type="text/css"> <style type="text/css">
.oqs-btn { .oqs-btn {
padding: .46875rem 0.25rem;color: #fff !important;position: relative;margin-bottom: .3125rem;font-size: .875rem;text-decoration: none;text-transform: uppercase;letter-spacing: 0;cursor: pointer;border: 0; padding: .46875rem 0.25rem;color: #fff !important;position: relative;margin-bottom: .3125rem;font-size: .875rem;text-decoration: none;text-transform: uppercase;letter-spacing: 0;cursor: pointer;border: 0;
} }
</style> </style>

View File

@@ -380,7 +380,7 @@
<% end %></strong><br> <% end %></strong><br>
<%if !@webview && @changable_tax %> <%if !@webview && @changable_tax %>
<% if @current_user.role == 'cashier' %> <% if @current_user.role == 'cashier' %>
<button class="btn btn-link waves-effect bg-info access_modal" data-type = 'change_tax' >Change Tax</button> <button class="btn btn-link waves-effect bg-info access_modal" data-type = 'change_tax' >Change Tax</button>
<% else %> <% else %>
<button class="btn btn-link waves-effect bg-info change_tax">Change Tax</button> <button class="btn btn-link waves-effect bg-info change_tax">Change Tax</button>
<% end %> <% end %>
@@ -597,6 +597,8 @@
</div> </div>
</div> </div>
<%= print_settings %>
<div class="modal fade" id="voidModal" tabindex="-1" role="dialog"> <div class="modal fade" id="voidModal" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document"> <div class="modal-dialog" role="document">
<div class="modal-content"> <div class="modal-content">
@@ -973,13 +975,15 @@
if((receipt_no!=undefined) && (receipt_no!="")) if((receipt_no!=undefined) && (receipt_no!=""))
createReceiptNoInFirstBillData(receipt_no,""); createReceiptNoInFirstBillData(receipt_no,"");
// For Server Print - from jade if (!$('#print_settings').data('action-cable')) {
if ($("#server_mode").val() == "cloud") { // For Server Print - from jade
if(typeof code2lab != 'undefined'){ if ($("#server_mode").val() == "cloud") {
code2lab.printFile(result.filepath.substr(6), result.printer_url); if(typeof code2lab != 'undefined'){
code2lab.printFile(result.filepath.substr(6), result.printer_url);
}
} }
} }
location.reload(); location.reload();
} }
}); });
} }
@@ -1004,80 +1008,82 @@
$(".choose_payment").on('click', function () { $(".choose_payment").on('click', function () {
$( "#loading_wrapper").show(); $( "#loading_wrapper").show();
var sale_id = $('#sale_id').val(); var sale_id = $('#sale_id').val();
// type = $('.payment_method').val(); // type = $('.payment_method').val();
type = get_selected_attributes('selected-payment'); type = get_selected_attributes('selected-payment');
var tax_type = localStorage.getItem("tax_type") ? localStorage.getItem("tax_type") : 'all'; var tax_type = localStorage.getItem("tax_type") ? localStorage.getItem("tax_type") : 'all';
if(parseInt(jQuery.inArray("Credit", type)) == -1){ if(parseInt(jQuery.inArray("Credit", type)) == -1){
if (parseInt(jQuery.inArray("MPU", type)) != -1 || parseInt(jQuery.inArray("VISA", type)) != -1 || parseInt(jQuery.inArray("JCB", type)) != -1 || parseInt(jQuery.inArray("Master", type)) != -1 || parseInt(jQuery.inArray("UNIONPAY", type)) != -1 || parseInt(jQuery.inArray("Redeem", type)) != -1 || parseInt(jQuery.inArray("PAYMAL",type))!= -1) { if (parseInt(jQuery.inArray("MPU", type)) != -1 || parseInt(jQuery.inArray("VISA", type)) != -1 || parseInt(jQuery.inArray("JCB", type)) != -1 || parseInt(jQuery.inArray("Master", type)) != -1 || parseInt(jQuery.inArray("UNIONPAY", type)) != -1 || parseInt(jQuery.inArray("Redeem", type)) != -1 || parseInt(jQuery.inArray("PAYMAL",type))!= -1) {
if(!location.pathname.includes("credit_payment")){ if(!location.pathname.includes("credit_payment")){
calculate_member_discount(sale_id,"Card",tax_type); calculate_member_discount(sale_id,"Card",tax_type);
} }
}else{ }else{
if(!location.pathname.includes("credit_payment")){ if(!location.pathname.includes("credit_payment")){
calculate_member_discount(sale_id,"Cash",tax_type); calculate_member_discount(sale_id,"Cash",tax_type);
}
}
}
var ajax_url = "/origami/sale/" + sale_id + "/first_bill";
$.ajax({
type: "GET",
url: ajax_url,
success: function (result) {
$( "#loading_wrapper" ).hide();
receipt_no = ($("#receipt_no").html()).trim();
if((receipt_no!=undefined) && (receipt_no!=""))
createReceiptNoInFirstBillData(receipt_no,type);
if (!$('#print_settings').data('action-cable')) {
// For Server Print - from jade
if ($("#server_mode").val() == "cloud") {
if(typeof code2lab != 'undefined'){
code2lab.printFile(result.filepath.substr(6), result.printer_url);
} }
} }
} }
var ajax_url = "/origami/sale/" + sale_id + "/first_bill"; location.reload();
$.ajax({ }
type: "GET", });
url: ajax_url,
success: function (result) {
$( "#loading_wrapper" ).hide();
receipt_no = ($("#receipt_no").html()).trim();
if((receipt_no!=undefined) && (receipt_no!=""))
createReceiptNoInFirstBillData(receipt_no,type);
// For Server Print - from jade
if ($("#server_mode").val() == "cloud") {
if(typeof code2lab != 'undefined'){
code2lab.printFile(result.filepath.substr(6), result.printer_url);
}
}
location.reload();
}
});
}); });
function calculate_member_discount(sale_id,type,tax_type) { function calculate_member_discount(sale_id,type,tax_type) {
var sub_total = $('#sub-total').text(); var sub_total = $('#sub-total').text();
if (type == "Cash") { if (type == "Cash") {
is_card = false is_card = false
}else{ } else {
is_card = true is_card = true
} }
$.ajax({ $.ajax({
type: "POST", type: "POST",
url: "/origami/" + sale_id + "/member_discount", url: "/origami/" + sale_id + "/member_discount",
data: {'sale_id':sale_id, 'sub_total':sub_total,'is_card':is_card,'cashier_type':'cashier','tax_type':tax_type }, data: {'sale_id':sale_id, 'sub_total':sub_total,'is_card':is_card,'cashier_type':'cashier','tax_type':tax_type },
async: false, async: false,
success:function(result){ success:function(result){
} }
}); });
} }
$('#pay').on('click', function () { $('#pay').on('click', function () {
var sale_id = $('#sale_id').val(); var sale_id = $('#sale_id').val();
var data_order = $(this).data("order"); var data_order = $(this).data("order");
if (data_order) { if (data_order) {
swal({ swal({
title: "Alert! This Receipt has another item", title: "Alert! This Receipt has another item",
text: "Are you sure want to pay this receipt !", text: "Are you sure want to pay this receipt !",
type: "warning", type: "warning",
showCancelButton: true, showCancelButton: true,
confirmButtonColor: "#DD6B55", confirmButtonColor: "#DD6B55",
confirmButtonText: "Yes, Pay it !", confirmButtonText: "Yes, Pay it !",
closeOnConfirm: false closeOnConfirm: false
}, function (isConfirm) { }, function (isConfirm) {
if (isConfirm) { if (isConfirm) {
window.location.href = '/origami/sale/' + sale_id + "/cashier/payment"; window.location.href = '/origami/sale/' + sale_id + "/cashier/payment";
} }
}); });
}else{ } else {
window.location.href = '/origami/sale/' + sale_id + "/cashier/payment"; window.location.href = '/origami/sale/' + sale_id + "/cashier/payment";
} }
}); });
// $('#kbz_query').on('click', function(){ // $('#kbz_query').on('click', function(){
@@ -1106,33 +1112,33 @@
var current_checkin_induties_count =localStorage.getItem("current_checkin_induties_count"); var current_checkin_induties_count =localStorage.getItem("current_checkin_induties_count");
localStorage.removeItem("current_checkin_induties_count"); localStorage.removeItem("current_checkin_induties_count");
if(order_id!=undefined && order_id!=null && order_id!=""){ if(order_id!=undefined && order_id!=null && order_id!=""){
if($('#request_bills').is(":visible")) { if ($('#request_bills').is(":visible")) {
$('#request_bills').prop("disabled",true); $('#request_bills').prop("disabled",true);
} }
$.ajax({ $.ajax({
type: "GET", type: "GET",
url: ajax_url, url: ajax_url,
data: {current_checkin_induties_count: current_checkin_induties_count}, data: {current_checkin_induties_count: current_checkin_induties_count},
success: function (result) { success: function (result) {
if (!result.status) { if (!result.status) {
swal({ swal({
title: 'Oops', title: 'Oops',
text: result.error_message, text: result.error_message,
type: 'error', type: 'error',
html: true, html: true,
closeOnConfirm: false, closeOnConfirm: false,
closeOnCancel: false, closeOnCancel: false,
allowOutsideClick: false allowOutsideClick: false
}, function (isConfirm) { }, function (isConfirm) {
if(isConfirm){ if(isConfirm){
location.reload();
}
});
}
else {
location.reload(); location.reload();
} }
});
} }
else {
location.reload();
}
}
}); });
}else{ }else{
swal("Opps","There is no orders!","warning"); swal("Opps","There is no orders!","warning");
@@ -1158,32 +1164,32 @@
}) })
$('#add_invoice').on('click', function () { $('#add_invoice').on('click', function () {
$("#first_bill").prop('disabled',true); $("#first_bill").prop('disabled',true);
$("#pay").prop('disabled',true); $("#pay").prop('disabled',true);
var dining_id = "<%= @dining.id %>"; var dining_id = "<%= @dining.id %>";
var sale_id = $("#sale_id").val(); //<%= @obj_sale.sale_id rescue "" %> var sale_id = $("#sale_id").val(); //<%= @obj_sale.sale_id rescue "" %>
var ajax_url = "/origami/sale/append_order"; var ajax_url = "/origami/sale/append_order";
// var tax_type = localStorage.getItem("tax_type"); // var tax_type = localStorage.getItem("tax_type");
var tax_type = $("#check_tax").val(); var tax_type = $("#check_tax").val();
$.ajax({ $.ajax({
type: "POST", type: "POST",
url: ajax_url, url: ajax_url,
data: 'dining_id=' + dining_id + "&sale_id=" + sale_id + "&tax_type=" + tax_type, data: 'dining_id=' + dining_id + "&sale_id=" + sale_id + "&tax_type=" + tax_type,
success: function (result) { success: function (result) {
swal({ swal({
title: "Information!", title: "Information!",
text: "Invoice updated", text: "Invoice updated",
html: true, html: true,
closeOnConfirm: false, closeOnConfirm: false,
closeOnCancel: false, closeOnCancel: false,
allowOutsideClick: false allowOutsideClick: false
}, function () { }, function () {
$("#first_bill").removeAttr('disabled'); $("#first_bill").removeAttr('disabled');
$("#pay").removeAttr('disabled'); $("#pay").removeAttr('disabled');
window.location.reload(); window.location.reload();
}); });
} }
}); });
}) })
//show cusotmer rebate amount //show cusotmer rebate amount
@@ -1267,13 +1273,15 @@
url: ajax_url, url: ajax_url,
data: "remark="+ remark + "&sale_id=" + sale_id+ "&access_code=" + access_code, data: "remark="+ remark + "&sale_id=" + sale_id+ "&access_code=" + access_code,
success: function (result) { success: function (result) {
if (!$('#print_settings').data('action-cable')) {
// For Server Print - from jade // For Server Print - from jade
if ($("#server_mode").val() == "cloud") { if ($("#server_mode").val() == "cloud") {
if(typeof code2lab != 'undefined'){ if(typeof code2lab != 'undefined'){
code2lab.printFile(result.filepath.substr(6), result.printer_url); code2lab.printFile(result.filepath.substr(6), result.printer_url);
}
}
} }
} window.location.href = '/origami/';
window.location.href = '/origami/';
} }
}); });
} }
@@ -1376,13 +1384,15 @@
data: "remark="+ remark + "&sale_id=" + sale_id, data: "remark="+ remark + "&sale_id=" + sale_id,
success: function (result) { success: function (result) {
console.log(result) console.log(result)
// For Server Print - from jade if (!$('#print_settings').data('action-cable')) {
if ($("#server_mode").val() == "cloud") { // For Server Print - from jade
if(typeof code2lab != 'undefined'){ if ($("#server_mode").val() == "cloud") {
code2lab.printFile(result.filepath.substr(6), result.printer_url); if(typeof code2lab != 'undefined'){
code2lab.printFile(result.filepath.substr(6), result.printer_url);
}
}
} }
} window.location.href = '/origami/';
window.location.href = '/origami/';
} }
}); });
} }

View File

@@ -1,17 +1,17 @@
<%= stylesheet_link_tag 'order_reservation', media: 'all', 'data-turbolinks-track': 'reload' %> <%= stylesheet_link_tag 'order_reservation', media: 'all', 'data-turbolinks-track': 'reload' %>
<%= javascript_include_tag 'order_reservation', 'data-turbolinks-track': 'reload' %> <%= javascript_include_tag 'order_reservation', 'data-turbolinks-track': 'reload' %>
<div class="container-fluid m-top-100"> <div class="container-fluid m-top-100">
<!-- start count function --> <!-- start count function -->
<% <%
pending_count = 0 pending_count = 0
accepted_count = 0 accepted_count = 0
delivered_count = 0 delivered_count = 0
completed_count = 0 completed_count = 0
processed_count = 0 processed_count = 0
%> %>
<% if !@count_on_order.nil? <% if !@count_on_order.nil?
@count_on_order.each do |count_order| @count_on_order.each do |count_order|
if count_order.status == "new" if count_order.status == "new"
pending_count = count_order.count pending_count = count_order.count
elsif count_order.status == "accepted" elsif count_order.status == "accepted"
accepted_count = count_order.count accepted_count = count_order.count
@@ -19,16 +19,16 @@
delivered_count = count_order.count delivered_count = count_order.count
elsif count_order.status == "ready_to_delivery" elsif count_order.status == "ready_to_delivery"
completed_count = count_order.count completed_count = count_order.count
end end
end end
end end
if !@count_on_completed.nil? if !@count_on_completed.nil?
processed_count = @count_on_completed.count processed_count = @count_on_completed.count
end end
%> %>
<!-- end count function --> <!-- end count function -->
<input type="hidden" id="server_mode" value="<%= ENV["SERVER_MODE"] %>">
<% if request.user_agent.include? "Mobile" %> <% if request.user_agent.include? "Mobile" %>
<div class="row m-t-10" style="margin-left: 0.2rem"> <div class="row m-t-10" style="margin-left: 0.2rem">
<% else %> <% else %>
@@ -125,7 +125,7 @@
</tbody> </tbody>
</table> </table>
</div> </div>
</div> </div>
</div> </div>
<!--- Panel 3 - Orders --> <!--- Panel 3 - Orders -->
@@ -179,7 +179,7 @@
</tbody> </tbody>
</table> </table>
</div> </div>
</div> </div>
</div> </div>
<!--- Panel 3 - Orders --> <!--- Panel 3 - Orders -->
<div class="tab-pane dining" id="delivery" role="tabpanel"> <div class="tab-pane dining" id="delivery" role="tabpanel">
@@ -232,7 +232,7 @@
</tbody> </tbody>
</table> </table>
</div> </div>
</div> </div>
</div> </div>
<!--- Panel 3 - Orders --> <!--- Panel 3 - Orders -->
<div class="tab-pane dining" id="completed" role="tabpanel"> <div class="tab-pane dining" id="completed" role="tabpanel">
@@ -285,7 +285,7 @@
</tbody> </tbody>
</table> </table>
</div> </div>
</div> </div>
</div> </div>
<!--- Panel 5 - processed --> <!--- Panel 5 - processed -->
<div class="tab-pane dining" id="processed" role="tabpanel"> <div class="tab-pane dining" id="processed" role="tabpanel">
@@ -338,7 +338,7 @@
</tbody> </tbody>
</table> </table>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
@@ -350,7 +350,7 @@
<table class="table"> <table class="table">
<tr> <tr>
<td width ="10%" class="header-td align-left"> <td width ="10%" class="header-td align-left">
<b class="col-pink font-16"><span id="sr_number"></span></b> <b class="col-pink font-16"><span id="sr_number"></span></b>
</td> </td>
<td width="40%" class="header-td align-left"> <td width="40%" class="header-td align-left">
<b><span class="font-15" id="requested_date_time"></span></b> <b><span class="font-15" id="requested_date_time"></span></b>
@@ -378,7 +378,7 @@
<br><span class="font-13">2 <span class="col-blue">X700</span></span> <br><span class="font-13">2 <span class="col-blue">X700</span></span>
</td> </td>
<td width ="30%" class="body-td align-right">1400.00</td> <td width ="30%" class="body-td align-right">1400.00</td>
</tr> --> </tr> -->
</tbody> </tbody>
</table> </table>
</div> </div>
@@ -388,7 +388,7 @@
<tbody> <tbody>
<tr> <tr>
<td width ="70%" class="footer-td align-left" > <td width ="70%" class="footer-td align-left" >
SUB TOTAL SUB TOTAL
</td> </td>
<td width ="30%" class="footer-td align-right" id="sub_total">0.00</td> <td width ="30%" class="footer-td align-right" id="sub_total">0.00</td>
</tr> </tr>
@@ -419,19 +419,19 @@
</tbody> </tbody>
</table> </table>
</div> </div>
</div> </div>
</div> </div>
<% if request.user_agent.include? "Mobile" %> <% if request.user_agent.include? "Mobile" %>
<div class="col-lg-3 col-md-3 col-sm-3" style="margin-right: 0.5rem"> <div class="col-lg-3 col-md-3 col-sm-3" style="margin-right: 0.5rem">
<% else %> <% else %>
<div class="col-lg-3 col-md-3 col-sm-3"> <div class="col-lg-3 col-md-3 col-sm-3">
<% end %> <% end %>
<div class="card m-b-5 p-t-5" style="background-color: #E8EAF6"> <div class="card m-b-5 p-t-5" style="background-color: #E8EAF6">
<div class="card-header custom-card-header" style="background-color: #E8EAF6"> <div class="card-header custom-card-header" style="background-color: #E8EAF6">
<table class="table"> <table class="table">
<tr> <tr>
<td class="header-td align-left col-blue">CUSTOMER & DELIVERY INFORMATION <td class="header-td align-left col-blue">CUSTOMER & DELIVERY INFORMATION
</td> </td>
</tr> </tr>
</table> </table>
@@ -541,7 +541,7 @@
</button> </button>
</td> </td>
</tr> </tr>
<% if current_user.role != "waiter" %> <% if current_user.role != "waiter" %>
<tr class="order_close_cashier" style="display:none"> <tr class="order_close_cashier" style="display:none">
<td colspan="2" width="100%" class="footer-td align-right col-blue"> <td colspan="2" width="100%" class="footer-td align-right col-blue">
@@ -559,12 +559,16 @@
<div id="<%= @shop.shop_code ? @shop.shop_code : '' %>_notify_order_send_to_kitchen"></div> <div id="<%= @shop.shop_code ? @shop.shop_code : '' %>_notify_order_send_to_kitchen"></div>
<div id="<%= @shop.shop_code ? @shop.shop_code : '' %>_notify_order_ready_to_delivery"></div> <div id="<%= @shop.shop_code ? @shop.shop_code : '' %>_notify_order_ready_to_delivery"></div>
</div> </div>
<p id="ref_no" class="hidden"></p> <p id="ref_no" class="hidden"></p>
<p id="callback_url" class="hidden"></p> <p id="callback_url" class="hidden"></p>
<p id="order_id" class="hidden"></p> <p id="order_id" class="hidden"></p>
<p id="status" class="hidden"></p> <p id="status" class="hidden"></p>
<%= print_settings %>
<input type="hidden" id="server_mode" value="<%= ENV["SERVER_MODE"] %>">
<div class="modal fade" id="waiting_timeModal" tabindex="-1" role="dialog"> <div class="modal fade" id="waiting_timeModal" tabindex="-1" role="dialog">
<div class="modal-dialog modal-md" role="document"> <div class="modal-dialog modal-md" role="document">
<div class="modal-content"> <div class="modal-content">
@@ -656,7 +660,7 @@
<h4 class="modal-title" id="AccessCodeModalLabel">Enter Access Code</h4> <h4 class="modal-title" id="AccessCodeModalLabel">Enter Access Code</h4>
<button type="button" class="close" id="close" data-dismiss="modal" aria-hidden="true" style="font-size: 20px;color:#111;">&times;</button> <button type="button" class="close" id="close" data-dismiss="modal" aria-hidden="true" style="font-size: 20px;color:#111;">&times;</button>
</div> </div>
<div class="modal-body" style="padding: 0px 25px 15px 25px !important"> <div class="modal-body" style="padding: 0px 25px 15px 25px !important">
<input type="password" id="access_code" class="access_code form-control col-md-12 "> <input type="password" id="access_code" class="access_code form-control col-md-12 ">
<div class="row bottom p-l-15 p-r-15 m-t-10"> <div class="row bottom p-l-15 p-r-15 m-t-10">
<div class="col-md-3 access_number border-top border-left" data-value="1" data-type="num">1</div> <div class="col-md-3 access_number border-top border-left" data-value="1" data-type="num">1</div>
@@ -675,12 +679,12 @@
<div class="col-md-3 access_number border-top border-left" data-value="0" data-type="num">0</div> <div class="col-md-3 access_number border-top border-left" data-value="0" data-type="num">0</div>
<div class="col-md-3 access_number border-top border-left orange" data-type="clr">Clr</div> <div class="col-md-3 access_number border-top border-left orange" data-type="clr">Clr</div>
<div class="col-md-3 access_number ok border-top border-left blue" data-type="ok" data-action="void">OK</div> <div class="col-md-3 access_number ok border-top border-left blue" data-type="ok" data-action="void">OK</div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<!-- pdf light box --> <!-- pdf light box -->
<div class="modal fade" id="receiptpdfModal" tabindex="-1" role="dialog" > <div class="modal fade" id="receiptpdfModal" tabindex="-1" role="dialog" >
@@ -696,13 +700,13 @@
<input type="hidden" name="sale_receipt_no" id="sale_receipt_no"> <input type="hidden" name="sale_receipt_no" id="sale_receipt_no">
<input type="hidden" name="filename" id="filename"> <input type="hidden" name="filename" id="filename">
<input type="hidden" name="printer_name" id="printer_name"> <input type="hidden" name="printer_name" id="printer_name">
<div class="text-center"> <div class="text-center">
<iframe id="receipt_pdf" src="" class="pdf-iframe" scrolling="no"></iframe> <iframe id="receipt_pdf" src="" class="pdf-iframe" scrolling="no"></iframe>
</div> </div>
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="button" class="mr-2 m-t-5 btn-lg btn-block bg-red waves-effect print_receipt_pdf" id="print_receipt_pdf"> Print <button type="button" class="mr-2 m-t-5 btn-lg btn-block bg-red waves-effect print_receipt_pdf" id="print_receipt_pdf"> Print
</button> </button>
<button type="button" class="btn-lg btn-block bg-blue waves-effect btn_pdf_close" data-dismiss="modal"> <button type="button" class="btn-lg btn-block bg-blue waves-effect btn_pdf_close" data-dismiss="modal">
CLOSE CLOSE
</button> </button>

View File

@@ -315,6 +315,9 @@
</div> </div>
<input type="hidden" id="server_mode" value="<%= ENV["SERVER_MODE"] %>"> <input type="hidden" id="server_mode" value="<%= ENV["SERVER_MODE"] %>">
</div> </div>
<%= print_settings %>
<div class="modal fade" id="voidModal" tabindex="-1" role="dialog"> <div class="modal fade" id="voidModal" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document"> <div class="modal-dialog" role="document">
<div class="modal-content"> <div class="modal-content">
@@ -1018,31 +1021,33 @@ $(document).ready(function(){
url: "/origami/sale/"+sale_id+"/"+cashier_type+"/payment/print", url: "/origami/sale/"+sale_id+"/"+cashier_type+"/payment/print",
data: params, data: params,
success:function(result){ success:function(result){
// For Server Print - from jade if (!$('#print_settings').data('action-cable')) {
// For Server Print - from jade
if ($("#server_mode").val() == "cloud") { if ($("#server_mode").val() == "cloud") {
if(typeof code2lab != 'undefined'){ if(typeof code2lab != 'undefined'){
code2lab.printFile(result.filepath.substr(6), result.printer_url); code2lab.printFile(result.filepath.substr(6), result.printer_url);
} }
} }
}
if (pdf_view ==1) { if (pdf_view ==1) {
var flag = localStorage.getItem("trans_flag"); var flag = localStorage.getItem("trans_flag");
localStorage.removeItem("trans_flag"); localStorage.removeItem("trans_flag");
if((flag!=null) && (flag != "true")){ if((flag!=null) && (flag != "true")){
window.location.href = "/transactions/sales/"+sale_id; window.location.href = "/transactions/sales/"+sale_id;
}else{
if (cashier_type=="cashier") {
window.location.href = '/origami';
}else{ }else{
if (cashier_type=="cashier") { window.location.href = '/origami/'+cashier_type;
window.location.href = '/origami'; if (cashier_type=="quick_service"){
}else{ customer_display_view(null,"reload");
window.location.href = '/origami/'+cashier_type;
if (cashier_type=="quick_service"){
customer_display_view(null,"reload");
}
} }
} }
}else{
payment_success_alert();
} }
}else{
payment_success_alert();
}
} }
}); });
} }
@@ -1322,11 +1327,13 @@ $(document).ready(function(){
swal({ swal({
title: "Information!", title: "Information!",
text: 'Thank You !', text: 'Thank You !',
}, function () { }, function () {
// For Server Print - from jade if (!$('#print_settings').data('action-cable')) {
if ($("#server_mode").val() == "cloud") { // For Server Print - from jade
if(typeof code2lab != 'undefined'){ if ($("#server_mode").val() == "cloud") {
code2lab.printFile(result.filepath.substr(6), result.printer_url); if(typeof code2lab != 'undefined'){
code2lab.printFile(result.filepath.substr(6), result.printer_url);
}
} }
} }
var flag = localStorage.getItem("trans_flag"); var flag = localStorage.getItem("trans_flag");
@@ -1339,7 +1346,7 @@ $(document).ready(function(){
window.location.href = '/origami/'+cashier_type; window.location.href = '/origami/'+cashier_type;
} }
} }
}); });
} }
} }
}); });
@@ -1369,24 +1376,26 @@ $(document).ready(function(){
data: "remark="+ remark + "&sale_id=" + sale_id+ "&access_code=" + access_code, data: "remark="+ remark + "&sale_id=" + sale_id+ "&access_code=" + access_code,
success: function (result) {result success: function (result) {result
customer_display_view(null,"reload"); customer_display_view(null,"reload");
// For Server Print - from jade if (!$('#print_settings').data('action-cable')) {
if ($("#server_mode").val() == "cloud") { // For Server Print - from jade
if(typeof code2lab != 'undefined'){ if ($("#server_mode").val() == "cloud") {
code2lab.printFile(result.filepath.substr(6), result.printer_url); if(typeof code2lab != 'undefined'){
} code2lab.printFile(result.filepath.substr(6), result.printer_url);
} }
var flag = localStorage.getItem("trans_flag"); }
if((flag!=null) && (flag != "true")){ }
window.location.href = '/transactions/sales/'+sale_id; var flag = localStorage.getItem("trans_flag");
}else{ if((flag!=null) && (flag != "true")){
if (cashier_type=="cashier") { window.location.href = '/transactions/sales/'+sale_id;
window.location.href = '/origami'; }else{
}else{ if (cashier_type=="cashier") {
window.location.href = '/origami/'+cashier_type; window.location.href = '/origami';
} }else{
} window.location.href = '/origami/'+cashier_type;
} }
}) }
}
})
} }
}); });
}); });
@@ -1412,10 +1421,12 @@ $(document).ready(function(){
data: "remark="+ remark + "&sale_id=" + sale_id+ "&access_code=" + access_code, data: "remark="+ remark + "&sale_id=" + sale_id+ "&access_code=" + access_code,
success: function (result) { success: function (result) {
// console.log(result) // console.log(result)
// For Server Print - from jade if (!$('#print_settings').data('action-cable')) {
if ($("#server_mode").val() == "cloud") { // For Server Print - from jade
if(typeof code2lab != 'undefined'){ if ($("#server_mode").val() == "cloud") {
code2lab.printFile(result.filepath.substr(6), result.printer_url); if(typeof code2lab != 'undefined'){
code2lab.printFile(result.filepath.substr(6), result.printer_url);
}
} }
} }
var flag = localStorage.getItem("trans_flag"); var flag = localStorage.getItem("trans_flag");

View File

@@ -17,7 +17,7 @@
<% end %> <% end %>
</ul> </ul>
<div id="custom-slimscroll"> <div id="custom-slimscroll">
<div class="tab-content m-t-15"> <div class="tab-content m-t-15">
<div class="tab-pane active" id="completed" role="tabpanel"> <div class="tab-pane active" id="completed" role="tabpanel">
<div class="card-columns"> <div class="card-columns">
<% @completed.each do |sale| %> <% @completed.each do |sale| %>
@@ -26,7 +26,7 @@
<%= sale.receipt_no %><span style="font-size:12px;float:right;line-height:inherit;"><%= sale.sale_status %></span> <%= sale.receipt_no %><span style="font-size:12px;float:right;line-height:inherit;"><%= sale.sale_status %></span>
</div> </div>
</div> </div>
<% end %> <% end %>
</div> </div>
</div> </div>
@@ -74,7 +74,7 @@
<th><%= t :credit %> <%= t :sale %> <%= t("views.right_panel.detail.date") %></th> <th><%= t :credit %> <%= t :sale %> <%= t("views.right_panel.detail.date") %></th>
<th><%= t("views.right_panel.detail.receipt_no") %></th> <th><%= t("views.right_panel.detail.receipt_no") %></th>
<th> <%= t :cashier %> <%= t("views.right_panel.detail.name") %></th> <th> <%= t :cashier %> <%= t("views.right_panel.detail.name") %></th>
<th> <%= t :customer %> <%= t("views.right_panel.detail.name") %></th> <th> <%= t :customer %> <%= t("views.right_panel.detail.name") %></th>
<th> <%= t("views.right_panel.detail.credit_amount") %> </th> <th> <%= t("views.right_panel.detail.credit_amount") %> </th>
</thead> </thead>
<tbody class="tbd_credit_lists"></tbody> <tbody class="tbd_credit_lists"></tbody>
@@ -97,7 +97,7 @@
</div> </div>
<div class="card-block"> <div class="card-block">
<div class="card-title row p-l-5 p-r-5"> <div class="card-title row p-l-5 p-r-5">
<% if @status == 'sale' %> <% if @status == 'sale' %>
<div class="col-lg-6 col-md-6 col-sm-6"> <div class="col-lg-6 col-md-6 col-sm-6">
&nbsp; Receipt No: <span id="receipt_no"> &nbsp; Receipt No: <span id="receipt_no">
@@ -110,8 +110,8 @@
<%= @bookings.booking_orders[0].order_id rescue '' %></span> <%= @bookings.booking_orders[0].order_id rescue '' %></span>
</div> </div>
<% end%> <% end%>
<% if @status == 'sale' %> <% if @status == 'sale' %>
<div class="col-lg-6 col-md-6 col-sm-6 text-right"> <div class="col-lg-6 col-md-6 col-sm-6 text-right">
Date: <span id="receipt_date"><%= @sale.created_at.strftime("%d/%m/%Y - %I:%M %p") rescue '-'%> &nbsp; </span> Date: <span id="receipt_date"><%= @sale.created_at.strftime("%d/%m/%Y - %I:%M %p") rescue '-'%> &nbsp; </span>
@@ -168,7 +168,7 @@
</tr> </tr>
<% end%> <% end%>
<% end%> <% end%>
</tbody> </tbody>
</table> </table>
</div> </div>
@@ -211,7 +211,7 @@
<!-- Column Three --> <!-- Column Three -->
<div class="col-lg-2 col-md-2 col-sm-2"> <div class="col-lg-2 col-md-2 col-sm-2">
<button type="button" class="btn btn-default btn-block" id='back'><i class="material-icons">reply</i>Back</button> <button type="button" class="btn btn-default btn-block" id='back'><i class="material-icons">reply</i>Back</button>
<% if current_user.role != "waiter" %> <% if current_user.role != "waiter" %>
<% if @sale.sale_status != 'void' && @sale.sale_status != 'waste' && @sale.sale_status != 'spoile' %> <% if @sale.sale_status != 'void' && @sale.sale_status != 'waste' && @sale.sale_status != 'spoile' %>
<% if current_user.role == "cashier" %> <% if current_user.role == "cashier" %>
@@ -219,7 +219,7 @@
<a class="btn btn-block bg-red waves-effect access_modal" data-toggle="modal" data-type="void"> Void</a> <a class="btn btn-block bg-red waves-effect access_modal" data-toggle="modal" data-type="void"> Void</a>
<% end %> <% end %>
<a class="btn btn-block bg-blue waves-effect access_modal" data-toggle="modal" data-type="reprint"> Re.Print</a> <a class="btn btn-block bg-blue waves-effect access_modal" data-toggle="modal" data-type="reprint"> Re.Print</a>
<% else %> <% else %>
<% if @sale.payment_status != 'foc' %> <% if @sale.payment_status != 'foc' %>
<button type="button" class="btn bg-red btn-block" data-toggle="modal" data-target="#voidModal" <%= (can? :overall_void, :void)? ' ': 'disabled=' %> > Void </button> <button type="button" class="btn bg-red btn-block" data-toggle="modal" data-target="#voidModal" <%= (can? :overall_void, :void)? ' ': 'disabled=' %> > Void </button>
@@ -234,6 +234,8 @@
</div> </div>
</div> </div>
<%= print_settings %>
<div class="modal fade" id="voidModal" tabindex="-1" role="dialog"> <div class="modal fade" id="voidModal" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document"> <div class="modal-dialog" role="document">
<div class="modal-content"> <div class="modal-content">
@@ -252,7 +254,7 @@
<button type="button" class="btn btn-link p-t-5 p-b-5 bg-blue waves-effect" data-dismiss="modal">CLOSE</button> <button type="button" class="btn btn-link p-t-5 p-b-5 bg-blue waves-effect" data-dismiss="modal">CLOSE</button>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
@@ -265,7 +267,7 @@
<h4 class="modal-title" id="AccessCodeModalLabel">Enter Access Code</h4> <h4 class="modal-title" id="AccessCodeModalLabel">Enter Access Code</h4>
<button type="button" class="close" id="close" data-dismiss="modal" aria-hidden="true" style="font-size: 20px;color:#111;">&times;</button> <button type="button" class="close" id="close" data-dismiss="modal" aria-hidden="true" style="font-size: 20px;color:#111;">&times;</button>
</div> </div>
<div class="modal-body" style="padding: 0px 25px 15px 25px !important"> <div class="modal-body" style="padding: 0px 25px 15px 25px !important">
<input type="password" id="access_code" class="access_code form-control col-md-12 "> <input type="password" id="access_code" class="access_code form-control col-md-12 ">
<div class="row bottom p-l-15 p-r-15 m-t-10"> <div class="row bottom p-l-15 p-r-15 m-t-10">
<div class="col-md-3 access_number border-top border-left" data-value="1" data-type="num">1</div> <div class="col-md-3 access_number border-top border-left" data-value="1" data-type="num">1</div>
@@ -284,7 +286,7 @@
<div class="col-md-3 access_number border-top border-left" data-value="0" data-type="num">0</div> <div class="col-md-3 access_number border-top border-left" data-value="0" data-type="num">0</div>
<div class="col-md-3 access_number border-top border-left orange" data-type="clr">Clr</div> <div class="col-md-3 access_number border-top border-left orange" data-type="clr">Clr</div>
<div class="col-md-3 access_number ok border-top border-left blue" data-type="ok" data-action="">OK</div> <div class="col-md-3 access_number ok border-top border-left blue" data-type="ok" data-action="">OK</div>
</div> </div>
</div> </div>
</div> </div>
@@ -326,9 +328,11 @@ $(document).ready(function(){
type: "GET", type: "GET",
url: ajax_url, url: ajax_url,
success: function (result) { success: function (result) {
if ($("#server_mode").val() == "cloud") { if (!$('#print_settings').data('action-cable')) {
if(typeof code2lab != 'undefined'){ if ($("#server_mode").val() == "cloud") {
code2lab.printFile(result.filepath.substr(6), result.printer_url); if(typeof code2lab != 'undefined'){
code2lab.printFile(result.filepath.substr(6), result.printer_url);
}
} }
} }
location.reload(); location.reload();
@@ -338,7 +342,7 @@ $(document).ready(function(){
$('#back').on('click', function () { $('#back').on('click', function () {
window.location.href = '/origami/'+cashier_type+'/pending_order'; window.location.href = '/origami/'+cashier_type+'/pending_order';
}); });
$('#close_cashier').on('click',function(e){ $('#close_cashier').on('click',function(e){
e.preventDefault(); // Prevent the href from redirecting directly e.preventDefault(); // Prevent the href from redirecting directly
var linkURL = '/origami/shift/'+cashier_type+'/close'; var linkURL = '/origami/shift/'+cashier_type+'/close';
@@ -348,15 +352,15 @@ $(document).ready(function(){
function warnBeforeRedirect(linkURL,occupied_count) { function warnBeforeRedirect(linkURL,occupied_count) {
if (occupied_count>0) { if (occupied_count>0) {
text = "<h5><span style=\"color: #CC0000\"> We have "+occupied_count+" pending orders and sales</span> </h5>.<br>Are you sure you want to close cashier? "; text = "<h5><span style=\"color: #CC0000\"> We have "+occupied_count+" pending orders and sales</span> </h5>.<br>Are you sure you want to close cashier? ";
}else{ }else{
text = "Are you sure you want to close cashier?"; text = "Are you sure you want to close cashier?";
} }
swal({ swal({
title: "Alert!", title: "Alert!",
text: text, text: text,
type: "warning", type: "warning",
showCancelButton: true, showCancelButton: true,
html: true html: true
@@ -396,15 +400,17 @@ $(document).ready(function(){
url: ajax_url, url: ajax_url,
data: "remark="+ remark + "&sale_id=" + sale_id+ "&access_code=" + access_code, data: "remark="+ remark + "&sale_id=" + sale_id+ "&access_code=" + access_code,
success: function (result) { success: function (result) {
// For Server Print - from jade if (!$('#print_settings').data('action-cable')) {
if ($("#server_mode").val() == "cloud") { // For Server Print - from jade
code2lab.printFile(result.filepath.substr(6), result.printer_url); if ($("#server_mode").val() == "cloud") {
code2lab.printFile(result.filepath.substr(6), result.printer_url);
}
} }
window.location.href = '/origami/'+cashier_type; window.location.href = '/origami/'+cashier_type;
} }
}); });
} }
}); });
}else{ }else{
swal("Opps","You are not authorized for void","warning") swal("Opps","You are not authorized for void","warning")
} }
@@ -437,9 +443,11 @@ function check_emp_access_code(access_code,type) {
type: "GET", type: "GET",
url: ajax_url, url: ajax_url,
success: function (result) { success: function (result) {
if ($("#server_mode").val() == "cloud") { if (!$('#print_settings').data('action-cable')) {
if(typeof code2lab != 'undefined'){ if ($("#server_mode").val() == "cloud") {
code2lab.printFile(result.filepath.substr(6), result.printer_url); if(typeof code2lab != 'undefined'){
code2lab.printFile(result.filepath.substr(6), result.printer_url);
}
} }
} }
location.reload(); location.reload();

View File

@@ -45,12 +45,12 @@
<div class="card-columns"> <div class="card-columns">
<% @tables.each do |table| %> <% @tables.each do |table| %>
<% if table.status == 'occupied' %> <% if table.status == 'occupied' %>
<% if table.get_booking.nil? %> <% if table.get_booking.nil? %>
<% if table.get_checkout_booking.nil? %> <% if table.get_checkout_booking.nil? %>
<div class="card tables red text-white table_<%= table.id %>" data-id="<%= table.id %>"> <div class="card tables red text-white table_<%= table.id %>" data-id="<%= table.id %>">
<% else %> <% else %>
<div class="card tables orange text-white table_<%= table.id %>" data-id="<%= table.id %>"> <div class="card tables orange text-white table_<%= table.id %>" data-id="<%= table.id %>">
<% end %> <% end %>
<div class="card-block"> <div class="card-block">
<%= table.name %> <br> <%= table.name %> <br>
<%= table.zone.name %> <%= table.zone.name %>
@@ -62,12 +62,12 @@
<span class="float-right font-12 new_text_<%= table.id %>"> billed</span> <span class="float-right font-12 new_text_<%= table.id %>"> billed</span>
</div> </div>
</div> </div>
<% else %> <% else %>
<% if table.get_checkout_booking.nil? %> <% if table.get_checkout_booking.nil? %>
<div class="card tables blue text-white table_<%= table.id %>" data-id="<%= table.id %>"> <div class="card tables blue text-white table_<%= table.id %>" data-id="<%= table.id %>">
<% else %> <% else %>
<div class="card tables orange text-white table_<%= table.id %>" data-id="<%= table.id %>"> <div class="card tables orange text-white table_<%= table.id %>" data-id="<%= table.id %>">
<% end %> <% end %>
<div class="card-block"> <div class="card-block">
<%= table.name %> <br> <%= table.name %> <br>
<%= table.zone.name %> <%= table.zone.name %>
@@ -200,7 +200,7 @@
<th><%= t :credit %> <%= t :sale %> <%= t("views.right_panel.detail.date") %></th> <th><%= t :credit %> <%= t :sale %> <%= t("views.right_panel.detail.date") %></th>
<th><%= t("views.right_panel.detail.receipt_no") %></th> <th><%= t("views.right_panel.detail.receipt_no") %></th>
<th> <%= t :cashier %> <%= t("views.right_panel.detail.name") %></th> <th> <%= t :cashier %> <%= t("views.right_panel.detail.name") %></th>
<th> <%= t :customer %> <%= t("views.right_panel.detail.name") %></th> <th> <%= t :customer %> <%= t("views.right_panel.detail.name") %></th>
<th> <%= t("views.right_panel.detail.credit_amount") %> </th> <th> <%= t("views.right_panel.detail.credit_amount") %> </th>
</thead> </thead>
<tbody class="tbd_credit_lists"></tbody> <tbody class="tbd_credit_lists"></tbody>
@@ -356,9 +356,9 @@
<% end %> <% end %>
<% end %> <% end %>
<% if !order_item.set_menu_items.nil? <% if !order_item.set_menu_items.nil?
JSON.parse(order_item.set_menu_items).each do |item_instance| JSON.parse(order_item.set_menu_items).each do |item_instance|
set_item_prices += (item_instance["quantity"].to_f * item_instance["price"].to_f).to_f %> set_item_prices += (item_instance["quantity"].to_f * item_instance["price"].to_f).to_f %>
<br><span class="font-13"> <br><span class="font-13">
<%= item_instance["item_instance_name"] %> <%= item_instance["item_instance_name"] %>
<% if !item_instance["options"].nil? && item_instance["options"] != "undefined" %> <% if !item_instance["options"].nil? && item_instance["options"] != "undefined" %>
@@ -368,8 +368,8 @@
</span> </span>
<% end %> <% end %>
<% end %> <% end %>
</span> </span>
<% end <% end
sub_total += set_item_prices sub_total += set_item_prices
end %> end %>
</td> </td>
@@ -463,9 +463,9 @@
<% end %> <% end %>
<% if !order_item.set_menu_items.nil? && order_item.set_menu_items != '[]' <% if !order_item.set_menu_items.nil? && order_item.set_menu_items != '[]'
JSON.parse(order_item.set_menu_items).each do |item_instance| JSON.parse(order_item.set_menu_items).each do |item_instance|
set_item_prices += (item_instance["quantity"].to_f * item_instance["price"].to_f).to_f set_item_prices += (item_instance["quantity"].to_f * item_instance["price"].to_f).to_f
%> %>
<br><span class="font-13"> <br><span class="font-13">
<%= item_instance["item_instance_name"] %> <%= item_instance["item_instance_name"] %>
<% if !item_instance["options"].nil? && item_instance["options"] != "undefined" %> <% if !item_instance["options"].nil? && item_instance["options"] != "undefined" %>
@@ -475,8 +475,8 @@
</span> </span>
<% end %> <% end %>
<% end %> <% end %>
</span> </span>
<% end <% end
sub_total += set_item_prices sub_total += set_item_prices
end %> end %>
</td> </td>
@@ -489,7 +489,7 @@
%> %>
</table> </table>
<button class='btn bg-primary btn-block' id='add_invoice'> Add to existing invoice </button>--> <button class='btn bg-primary btn-block' id='add_invoice'> Add to existing invoice </button>-->
<% end %> <% end %>
<% if @sale_array.size > 1 %> <% if @sale_array.size > 1 %>
<br><br> <br><br>
Pending Payment Pending Payment
@@ -522,7 +522,7 @@
<button type="button" class="btn btn-default btn-block" id='back'><i class="material-icons">reply</i> Back</button> <button type="button" class="btn btn-default btn-block" id='back'><i class="material-icons">reply</i> Back</button>
<button type="button" id="add_order" class="btn btn-block btn- bg-blue waves-effect">Add Order</button> <button type="button" id="add_order" class="btn btn-block btn- bg-blue waves-effect">Add Order</button>
<button type="button" id="survey" class="btn btn-block bg-blue waves-effect">Survey</button> <button type="button" id="survey" class="btn btn-block bg-blue waves-effect">Survey</button>
<% if @room.status != "available" %> <% if @room.status != "available" %>
<% if @status_order == 'order' && @status_sale != 'sale' %> <% if @status_order == 'order' && @status_sale != 'sale' %>
<!-- <button type="button" class="btn bg-blue btn-block" >Add Order</button> --> <!-- <button type="button" class="btn bg-blue btn-block" >Add Order</button> -->
<!-- <button type="button" id="customer" class="btn bg-blue btn-block" disabled>Customer</button> --> <!-- <button type="button" id="customer" class="btn bg-blue btn-block" disabled>Customer</button> -->
@@ -551,7 +551,7 @@
<button type="button" id="commissions" class="btn btn-block bg-blue waves-effect">Commissions</button> <button type="button" id="commissions" class="btn btn-block bg-blue waves-effect">Commissions</button>
<button type="button" id="in_duties" class="btn btn-block bg-blue waves-effect">In Duties</button> <button type="button" id="in_duties" class="btn btn-block bg-blue waves-effect">In Duties</button>
<% if current_login_employee.role == "cashier" %> <% if current_login_employee.role == "cashier" %>
<a class="btn btn-block bg-blue waves-effect access_modal" data-toggle="modal" data-type="edit">Edit</a> <a class="btn btn-block bg-blue waves-effect access_modal" data-toggle="modal" data-type="edit">Edit</a>
<a class="btn btn-block bg-red waves-effect access_modal" data-toggle="modal" data-type="void"> Void</a> <a class="btn btn-block bg-red waves-effect access_modal" data-toggle="modal" data-type="void"> Void</a>
<% else %> <% else %>
<button type="button" class="btn btn-block bg-blue waves-effect" id='edit' <%= (can? :edit, :sale_edit)? ' ': 'disabled=' %> active="true">Edit</button> <button type="button" class="btn btn-block bg-blue waves-effect" id='edit' <%= (can? :edit, :sale_edit)? ' ': 'disabled=' %> active="true">Edit</button>
@@ -561,7 +561,7 @@
<% end %> <% end %>
<button type="button" id="discount" class="btn btn-block bg-blue waves-effect" <%= (can? :index, :discount)? ' ': 'disabled=' %> active="true">Discount</button> <button type="button" id="discount" class="btn btn-block bg-blue waves-effect" <%= (can? :index, :discount)? ' ': 'disabled=' %> active="true">Discount</button>
<button type="button" id="other-charges" class="btn bg-blue btn-block" >Charges</button> <button type="button" id="other-charges" class="btn bg-blue btn-block" >Charges</button>
<% if !@split_bill.nil? %> <% if !@split_bill.nil? %>
<% if @split_bill == '1' && (!(@order_items.nil?) || !(@order_items.empty?)) %> <% if @split_bill == '1' && (!(@order_items.nil?) || !(@order_items.empty?)) %>
<button type="button" id="split_bills" class="btn btn-block bg-blue waves-effect">Split Bill</button> <button type="button" id="split_bills" class="btn btn-block bg-blue waves-effect">Split Bill</button>
@@ -592,7 +592,7 @@
<div class="col-xs-4 col-sm-4 col-md-4 col-lg-4"> <div class="col-xs-4 col-sm-4 col-md-4 col-lg-4">
<button class='btn btn-md waves-effect btn-link payment-btn-box payment_btn bg-green' data-type='Credit' data-value='Credit'>Credit</button> <button class='btn btn-md waves-effect btn-link payment-btn-box payment_btn bg-green' data-type='Credit' data-value='Credit'>Credit</button>
</div> </div>
<% @payment_methods.each_with_index do |pay, pay_index| %> <% @payment_methods.each_with_index do |pay, pay_index| %>
<%if (pay_index+1)%3 == 0 %> <%if (pay_index+1)%3 == 0 %>
<div class="row clearfix"></div> <div class="row clearfix"></div>
@@ -602,7 +602,7 @@
</div> </div>
<%end %> <%end %>
</div> </div>
</div> </div>
<div class="modal-footer p-r-30 pb-3"> <div class="modal-footer p-r-30 pb-3">
<button type="button" class="btn btn-md btn-link btn-danger waves-effect" data-dismiss="modal">CLOSE</button> <button type="button" class="btn btn-md btn-link btn-danger waves-effect" data-dismiss="modal">CLOSE</button>
@@ -624,6 +624,8 @@
</div> </div>
</div> </div>
<%= print_settings %>
<div class="modal fade" id="voidModal" tabindex="-1" role="dialog"> <div class="modal fade" id="voidModal" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document"> <div class="modal-dialog" role="document">
<div class="modal-content"> <div class="modal-content">
@@ -642,7 +644,7 @@
<button type="button" class="btn btn-link bg-blue waves-effect" data-dismiss="modal">CLOSE</button> <button type="button" class="btn btn-link bg-blue waves-effect" data-dismiss="modal">CLOSE</button>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
@@ -653,7 +655,7 @@
<div class="modal-header"> <div class="modal-header">
<h4 class="modal-title" id="waste_spoileModalLabel">Are you sure Waste or Spoile ?</h4> <h4 class="modal-title" id="waste_spoileModalLabel">Are you sure Waste or Spoile ?</h4>
</div> </div>
<div class="modal-body"> <div class="modal-body">
<div class="row p-r-20"> <div class="row p-r-20">
<div class="col-md-3"> <div class="col-md-3">
<button type="button" class="btn btn-lg bg-red waves-effect " data-status="waste" value="waste" id="btn_waste" onclick="waste_and_spoilage('waste')"><strong>Waste</strong></button> <button type="button" class="btn btn-lg bg-red waves-effect " data-status="waste" value="waste" id="btn_waste" onclick="waste_and_spoilage('waste')"><strong>Waste</strong></button>
@@ -679,7 +681,7 @@
<h4 class="modal-title" id="AccessCodeModalLabel">Enter Access Code</h4> <h4 class="modal-title" id="AccessCodeModalLabel">Enter Access Code</h4>
<button type="button" class="close" id="close" data-dismiss="modal" aria-hidden="true" style="font-size: 20px;color:#111;">&times;</button> <button type="button" class="close" id="close" data-dismiss="modal" aria-hidden="true" style="font-size: 20px;color:#111;">&times;</button>
</div> </div>
<div class="modal-body" style="padding: 0px 25px 15px 25px !important"> <div class="modal-body" style="padding: 0px 25px 15px 25px !important">
<input type="password" id="access_code" class="access_code form-control col-md-12 "> <input type="password" id="access_code" class="access_code form-control col-md-12 ">
<div class="row bottom p-l-15 p-r-15 m-t-10"> <div class="row bottom p-l-15 p-r-15 m-t-10">
<div class="col-md-3 access_number border-top border-left" data-value="1" data-type="num">1</div> <div class="col-md-3 access_number border-top border-left" data-value="1" data-type="num">1</div>
@@ -698,7 +700,7 @@
<div class="col-md-3 access_number border-top border-left" data-value="0" data-type="num">0</div> <div class="col-md-3 access_number border-top border-left" data-value="0" data-type="num">0</div>
<div class="col-md-3 access_number border-top border-left orange" data-type="clr">Clr</div> <div class="col-md-3 access_number border-top border-left orange" data-type="clr">Clr</div>
<div class="col-md-3 access_number ok border-top border-left blue" data-type="ok" data-action="">OK</div> <div class="col-md-3 access_number ok border-top border-left blue" data-type="ok" data-action="">OK</div>
</div> </div>
</div> </div>
</div> </div>
@@ -730,7 +732,7 @@
count += 1 %> count += 1 %>
<tr class="<%= @edit_order_origami==true ? 'edit_order' : '' %>" data-id='<%= order_item.order_items_id %>'> <tr class="<%= @edit_order_origami==true ? 'edit_order' : '' %>" data-id='<%= order_item.order_items_id %>'>
<td><%= count %></td> <td><%= count %></td>
<td class='item-name'> <td class='item-name'>
<%= order_item.item_name %> <%= order_item.item_name %>
<% if !order_item.options.nil? && !order_item.options.empty? && order_item.options != "undefined" %> <% if !order_item.options.nil? && !order_item.options.empty? && order_item.options != "undefined" %>
@@ -741,10 +743,10 @@
<% end %> <% end %>
<% end %> <% end %>
<% if !order_item.set_menu_items.nil? <% if !order_item.set_menu_items.nil?
JSON.parse(order_item.set_menu_items).each do |item_instance| JSON.parse(order_item.set_menu_items).each do |item_instance|
set_item_prices += (item_instance["quantity"].to_f * item_instance["price"].to_f).to_f set_item_prices += (item_instance["quantity"].to_f * item_instance["price"].to_f).to_f
%> %>
<br><span class="font-13"> <br><span class="font-13">
<%= item_instance["item_instance_name"] %> <%= item_instance["item_instance_name"] %>
<% if !item_instance["options"].nil? && item_instance["options"] != "undefined" %> <% if !item_instance["options"].nil? && item_instance["options"] != "undefined" %>
@@ -754,8 +756,8 @@
</span> </span>
<% end %> <% end %>
<% end %> <% end %>
</span> </span>
<% end <% end
sub_total += set_item_prices sub_total += set_item_prices
end %> end %>
</td> </td>
@@ -956,7 +958,7 @@ $(document).ready(function(){
} else { } else {
var sale_id = "<%= @room.id %>"; var sale_id = "<%= @room.id %>";
} }
//var table_id = $('.tables').attr("data-id"); //var table_id = $('.tables').attr("data-id");
window.location.href = '/origami/' + sale_id +"/"+cashier_type+ "/surveys" window.location.href = '/origami/' + sale_id +"/"+cashier_type+ "/surveys"
}); });
// bind customer to order or sale // bind customer to order or sale
@@ -1025,8 +1027,8 @@ $(document).ready(function(){
}); });
// click select option icon for add // click select option icon for add
$(document).on('click', '.payment_btn', function(event){ $(document).on('click', '.payment_btn', function(event){
active = $(this).hasClass('selected-payment'); active = $(this).hasClass('selected-payment');
value = $(this).data('value'); value = $(this).data('value');
type = $(this).data('type'); type = $(this).data('type');
@@ -1041,7 +1043,7 @@ $(document).ready(function(){
}); //End selecct attribute buttom }); //End selecct attribute buttom
// Print for first bill // Print for first bill
$("#first_bill").on('click', function(){ $("#first_bill").on('click', function(){
swal({ swal({
title: "Alert", title: "Alert",
@@ -1067,10 +1069,12 @@ $("#first_bill").on('click', function(){
receipt_no = ($("#receipt_no").html()).trim(); receipt_no = ($("#receipt_no").html()).trim();
if((receipt_no!=undefined) && (receipt_no!="")) if((receipt_no!=undefined) && (receipt_no!=""))
createReceiptNoInFirstBillData(receipt_no,""); createReceiptNoInFirstBillData(receipt_no,"");
// For Server Print - from jade if (!$('#print_settings').data('action-cable')) {
if ($("#server_mode").val() == "cloud") { // For Server Print - from jade
if(typeof code2lab != 'undefined'){ if ($("#server_mode").val() == "cloud") {
code2lab.printFile(result.filepath.substr(6), result.printer_url); if(typeof code2lab != 'undefined'){
code2lab.printFile(result.filepath.substr(6), result.printer_url);
}
} }
} }
location.reload(); location.reload();
@@ -1095,7 +1099,7 @@ $(".choose_payment").on('click', function () {
if(!location.pathname.includes("credit_payment")){ if(!location.pathname.includes("credit_payment")){
calculate_member_discount(sale_id,"Cash",tax_type); calculate_member_discount(sale_id,"Cash",tax_type);
} }
} }
} }
var ajax_url = "/origami/sale/" + sale_id + "/first_bill"; var ajax_url = "/origami/sale/" + sale_id + "/first_bill";
$.ajax({ $.ajax({
@@ -1107,16 +1111,17 @@ $(".choose_payment").on('click', function () {
if((receipt_no!=undefined) && (receipt_no!="")) if((receipt_no!=undefined) && (receipt_no!=""))
createReceiptNoInFirstBillData(receipt_no,type); createReceiptNoInFirstBillData(receipt_no,type);
// For Server Print - from jade if (!$('#print_settings').data('action-cable')) {
if ($("#server_mode").val() == "cloud") { // For Server Print - from jade
if(typeof code2lab != 'undefined'){ if ($("#server_mode").val() == "cloud") {
code2lab.printFile(result.filepath.substr(6), result.printer_url); if(typeof code2lab != 'undefined'){
code2lab.printFile(result.filepath.substr(6), result.printer_url);
}
} }
} }
location.reload(); location.reload();
} }
}); });
}); });
function calculate_member_discount(sale_id,type,tax_type) { function calculate_member_discount(sale_id,type,tax_type) {
var sub_total = $('#sub-total').text(); var sub_total = $('#sub-total').text();
@@ -1130,7 +1135,7 @@ $.ajax({
url: "/origami/" + sale_id + "/member_discount", url: "/origami/" + sale_id + "/member_discount",
data: {'sale_id':sale_id, 'sub_total':sub_total,'is_card':is_card,'cashier_type':'cashier','tax_type':tax_type }, data: {'sale_id':sale_id, 'sub_total':sub_total,'is_card':is_card,'cashier_type':'cashier','tax_type':tax_type },
async: false, async: false,
success:function(result){ success:function(result){
} }
}); });
} }
@@ -1142,11 +1147,11 @@ $('#pay').on('click',function() {
$.ajax({ $.ajax({
type: "POST", type: "POST",
url: '/origami/sale/'+ sale_id + "/rounding_adj", url: '/origami/sale/'+ sale_id + "/rounding_adj",
success:function(result){ success:function(result){
window.location.href = '/origami/sale/'+ sale_id + "/cashier/payment"; window.location.href = '/origami/sale/'+ sale_id + "/cashier/payment";
} }
}); });
}); });
// Bill Request // Bill Request
$('#request_bills').click(function() { $('#request_bills').click(function() {
@@ -1179,7 +1184,7 @@ $('#request_bills').click(function() {
} }
}); });
} }
else { else {
location.reload(); location.reload();
} }
} }
@@ -1187,7 +1192,7 @@ $('#request_bills').click(function() {
}else{ }else{
swal("Opps","There is no orders!","warning"); swal("Opps","There is no orders!","warning");
} }
}); });
//split bill process //split bill process
@@ -1350,17 +1355,19 @@ $('#add_invoice').on('click',function(){
url: ajax_url, url: ajax_url,
data: "remark="+ remark + "&sale_id=" + sale_id+ "&access_code=" + access_code, data: "remark="+ remark + "&sale_id=" + sale_id+ "&access_code=" + access_code,
success: function (result) { success: function (result) {
// For Server Print - from jade if (!$('#print_settings').data('action-cable')) {
if ($("#server_mode").val() == "cloud") { // For Server Print - from jade
if(typeof code2lab != 'undefined'){ if ($("#server_mode").val() == "cloud") {
code2lab.printFile(result.filepath.substr(6), result.printer_url); if(typeof code2lab != 'undefined'){
code2lab.printFile(result.filepath.substr(6), result.printer_url);
}
}
} }
} window.location.href = '/origami/';
window.location.href = '/origami/';
} }
}); });
} }
}); });
}else{ }else{
swal("Opps","You are not authorized for void","warning"); swal("Opps","You are not authorized for void","warning");
} }
@@ -1442,17 +1449,19 @@ $('#add_invoice').on('click',function(){
data: "remark="+ remark + "&sale_id=" + sale_id, data: "remark="+ remark + "&sale_id=" + sale_id,
success: function (result) { success: function (result) {
console.log(result) console.log(result)
// For Server Print - from jade if (!$('#print_settings').data('action-cable')) {
if ($("#server_mode").val() == "cloud") { // For Server Print - from jade
if(typeof code2lab != 'undefined'){ if ($("#server_mode").val() == "cloud") {
code2lab.printFile(result.filepath.substr(6), result.printer_url); if(typeof code2lab != 'undefined'){
code2lab.printFile(result.filepath.substr(6), result.printer_url);
}
}
} }
} window.location.href = '/origami/';
window.location.href = '/origami/';
} }
}); });
} }
}); });
} }
$(document).on('click', '.access_modal', function(event){ $(document).on('click', '.access_modal', function(event){
@@ -1490,7 +1499,7 @@ $('#add_invoice').on('click',function(){
}); });
} }
/* check in process */ /* check in process */
$('#check_in').on('click',function(){ $('#check_in').on('click',function(){
var room_id = "<%= @room.id %>"; var room_id = "<%= @room.id %>";
@@ -1541,12 +1550,12 @@ $('#add_invoice').on('click',function(){
type: "POST", type: "POST",
url: "/origami/payment/"+cashier_type+"/change_tax", url: "/origami/payment/"+cashier_type+"/change_tax",
data: {sale_id: sale_id, cashier_type: cashier_type, tax_type: tax_type}, data: {sale_id: sale_id, cashier_type: cashier_type, tax_type: tax_type},
success:function(data){ success:function(data){
if(data.status){ if(data.status){
// console.log(tax_type); // console.log(tax_type);
localStorage.setItem("tax_type", tax_type); localStorage.setItem("tax_type", tax_type);
window.location.href = '/origami/room/'+dining_id; window.location.href = '/origami/room/'+dining_id;
} }
} }
}); });
}else{ }else{

View File

@@ -46,9 +46,9 @@
<% if table.get_booking.nil? %> <% if table.get_booking.nil? %>
<% if table.get_checkout_booking.nil? %> <% if table.get_checkout_booking.nil? %>
<div class="card tables red text-white table_<%= table.id %>" data-id="<%= table.id %>"> <div class="card tables red text-white table_<%= table.id %>" data-id="<%= table.id %>">
<% else %> <% else %>
<div class="card tables orange text-white table_<%= table.id %>" data-id="<%= table.id %>"> <div class="card tables orange text-white table_<%= table.id %>" data-id="<%= table.id %>">
<% end %> <% end %>
<div class="card-block"> <div class="card-block">
<%= table.name %> <br> <%= table.name %> <br>
<%= table.zone.name %> <%= table.zone.name %>
@@ -61,12 +61,12 @@
<div style="font-size:12px;"></div> <div style="font-size:12px;"></div>
</div> </div>
</div> </div>
<% else %> <% else %>
<% if table.get_checkout_booking.nil? %> <% if table.get_checkout_booking.nil? %>
<div class="card tables blue text-white table_<%= table.id %>" data-id="<%= table.id %>"> <div class="card tables blue text-white table_<%= table.id %>" data-id="<%= table.id %>">
<% else %> <% else %>
<div class="card tables orange text-white table_<%= table.id %>" data-id="<%= table.id %>"> <div class="card tables orange text-white table_<%= table.id %>" data-id="<%= table.id %>">
<% end %> <% end %>
<div class="card-block"> <div class="card-block">
<%= table.name %> <br> <%= table.name %> <br>
<%= table.zone.name %> <%= table.zone.name %>
@@ -129,7 +129,7 @@
<div class="card-block"> <div class="card-block">
<%= room.name %><br> <%= room.name %><br>
<%= room.zone.name %> <%= room.zone.name %>
<span class="float-right font-12 new_text_<%= room.id %> hide"> <span class="float-right font-12 new_text_<%= room.id %> hide">
</div> </div>
</div> </div>
<% end %> <% end %>
@@ -189,7 +189,7 @@
<th><%= t :credit %> <%= t :sale %> <%= t("views.right_panel.detail.date") %></th> <th><%= t :credit %> <%= t :sale %> <%= t("views.right_panel.detail.date") %></th>
<th><%= t("views.right_panel.detail.receipt_no") %></th> <th><%= t("views.right_panel.detail.receipt_no") %></th>
<th> <%= t :cashier %> <%= t("views.right_panel.detail.name") %></th> <th> <%= t :cashier %> <%= t("views.right_panel.detail.name") %></th>
<th> <%= t :customer %> <%= t("views.right_panel.detail.name") %></th> <th> <%= t :customer %> <%= t("views.right_panel.detail.name") %></th>
<th> <%= t("views.right_panel.detail.credit_amount") %> </th> <th> <%= t("views.right_panel.detail.credit_amount") %> </th>
</thead> </thead>
<tbody class="tbd_credit_lists"></tbody> <tbody class="tbd_credit_lists"></tbody>
@@ -303,17 +303,19 @@
<a class="btn btn-block bg-danger waves-effect access_modal" data-toggle="modal" data-type="void"> Void</a> <a class="btn btn-block bg-danger waves-effect access_modal" data-toggle="modal" data-type="void"> Void</a>
<% end %> <% end %>
<a class="btn btn-block bg-blue waves-effect access_modal" data-toggle="modal" data-type="reprint"> Re.Print</a> <a class="btn btn-block bg-blue waves-effect access_modal" data-toggle="modal" data-type="reprint"> Re.Print</a>
<% else %> <% else %>
<% if @sale.payment_status != 'foc' %> <% if @sale.payment_status != 'foc' %>
<button type="button" id="void" class="btn bg-danger btn-block">VOID</button> <button type="button" id="void" class="btn bg-danger btn-block">VOID</button>
<% end %> <% end %>
<button type="button" id="reprint" class="btn bg-blue btn-block">Re.Print</button> <button type="button" id="reprint" class="btn bg-blue btn-block">Re.Print</button>
<% end %> <% end %>
<% end %> <% end %>
</div> </div>
</div> </div>
<%= print_settings %>
<div class="modal fade" id="voidModal" tabindex="-1" role="dialog"> <div class="modal fade" id="voidModal" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document"> <div class="modal-dialog" role="document">
<div class="modal-content"> <div class="modal-content">
@@ -332,7 +334,7 @@
<button type="button" class="btn btn-link bg-blue waves-effect" data-dismiss="modal">CLOSE</button> <button type="button" class="btn btn-link bg-blue waves-effect" data-dismiss="modal">CLOSE</button>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
@@ -346,7 +348,7 @@
<h4 class="modal-title" id="AccessCodeModalLabel">Enter Access Code</h4> <h4 class="modal-title" id="AccessCodeModalLabel">Enter Access Code</h4>
<button type="button" class="close" id="close" data-dismiss="modal" aria-hidden="true" style="font-size: 20px;color:#111;">&times;</button> <button type="button" class="close" id="close" data-dismiss="modal" aria-hidden="true" style="font-size: 20px;color:#111;">&times;</button>
</div> </div>
<div class="modal-body" style="padding: 0px 25px 15px 25px !important"> <div class="modal-body" style="padding: 0px 25px 15px 25px !important">
<input type="password" id="access_code" class="access_code form-control col-md-12 "> <input type="password" id="access_code" class="access_code form-control col-md-12 ">
<div class="row bottom p-l-15 p-r-15 m-t-10"> <div class="row bottom p-l-15 p-r-15 m-t-10">
<div class="col-md-3 access_number border-top border-left" data-value="1" data-type="num">1</div> <div class="col-md-3 access_number border-top border-left" data-value="1" data-type="num">1</div>
@@ -365,12 +367,12 @@
<div class="col-md-3 access_number border-top border-left" data-value="0" data-type="num">0</div> <div class="col-md-3 access_number border-top border-left" data-value="0" data-type="num">0</div>
<div class="col-md-3 access_number border-top border-left orange" data-type="clr">Clr</div> <div class="col-md-3 access_number border-top border-left orange" data-type="clr">Clr</div>
<div class="col-md-3 access_number ok border-top border-left blue" data-type="ok" data-action="">OK</div> <div class="col-md-3 access_number ok border-top border-left blue" data-type="ok" data-action="">OK</div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="modal fade" id="voidModal" tabindex="-1" role="dialog"> <div class="modal fade" id="voidModal" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document"> <div class="modal-dialog" role="document">
@@ -390,7 +392,7 @@
<button type="button" class="btn btn-link p-t-5 p-b-5 bg-blue waves-effect" data-dismiss="modal">CLOSE</button> <button type="button" class="btn btn-link p-t-5 p-b-5 bg-blue waves-effect" data-dismiss="modal">CLOSE</button>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
@@ -440,9 +442,11 @@ $('#reprint').on('click', function () {
type: "GET", type: "GET",
url: ajax_url, url: ajax_url,
success: function (result) { success: function (result) {
if ($("#server_mode").val() == "cloud") { if (!$('#print_settings').data('action-cable')) {
if(typeof code2lab != 'undefined'){ if ($("#server_mode").val() == "cloud") {
code2lab.printFile(result.filepath.substr(6), result.printer_url); if(typeof code2lab != 'undefined'){
code2lab.printFile(result.filepath.substr(6), result.printer_url);
}
} }
} }
location.reload(); location.reload();
@@ -542,15 +546,17 @@ $(document).on('click', '.access_modal', function(event){
type: "GET", type: "GET",
url: ajax_url, url: ajax_url,
success: function (result) { success: function (result) {
// For Server Print - from jade if (!$('#print_settings').data('action-cable')) {
if ($("#server_mode").val() == "cloud") { // For Server Print - from jade
if(typeof code2lab != 'undefined'){ if ($("#server_mode").val() == "cloud") {
code2lab.printFile(result.filepath.substr(6), result.printer_url); if(typeof code2lab != 'undefined'){
code2lab.printFile(result.filepath.substr(6), result.printer_url);
}
} }
} }
location.reload(); location.reload();
} }
}); });
}else if(type == "foc"){ }else if(type == "foc"){
$('#AccessCodeModal').modal('hide'); $('#AccessCodeModal').modal('hide');
$('#focModal').modal('show'); $('#focModal').modal('show');

View File

@@ -164,6 +164,8 @@
</div> </div>
</div> </div>
<%= print_settings %>
<!-- membership paymentmodal --> <!-- membership paymentmodal -->
<input type="hidden" id="server_mode" value="<%= ENV["SERVER_MODE"] %>"> <input type="hidden" id="server_mode" value="<%= ENV["SERVER_MODE"] %>">
<span class="hidden" id="member_discount"><%= @membership.discount%></span> <span class="hidden" id="member_discount"><%= @membership.discount%></span>
@@ -243,7 +245,6 @@
</div> </div>
</div> </div>
</div> </div>
<input type="hidden" id="server_mode" value="<%= ENV["SERVER_MODE"] %>">
<div class="modal fade" id="AccessCodeModal" tabindex="-1" role="dialog"> <div class="modal fade" id="AccessCodeModal" tabindex="-1" role="dialog">
<div class="modal-dialog modal-sm" role="document"> <div class="modal-dialog modal-sm" role="document">
@@ -303,31 +304,6 @@ $(document).ready(function(){
}) })
}); });
// $('#pay').on('click',function() {
// window.location.href = '/origami/sale/<%= @sale.id %>/payment';
// });
// Print for first bill
// $("#first_bill").on('click', function () {
// var sale_id = '<%= @sale.id %>';
// var ajax_url = "/origami/sale/" + sale_id + "/first_bill";
// $.ajax({
// type: "GET",
// url: ajax_url,
// success: function (result) {
// receipt_no = ($("#receipt_no").html()).trim();
// if((receipt_no!=undefined) && (receipt_no!=""))
// createReceiptNoInFirstBillData(receipt_no,"");
// // For Server Print - from jade
// if ($("#server_mode").val() == "cloud") {
// code2lab.printFile(result.filepath.substr(6), result.printer_url);
// }
// location.reload();
// }
// });
// });
// Print for first bill // Print for first bill
$("#first_bill").on('click', function () { $("#first_bill").on('click', function () {
swal({ swal({
@@ -353,11 +329,12 @@ $(document).ready(function(){
receipt_no = ($("#receipt_no").html()).trim(); receipt_no = ($("#receipt_no").html()).trim();
if((receipt_no!=undefined) && (receipt_no!="")) if((receipt_no!=undefined) && (receipt_no!=""))
createReceiptNoInFirstBillData(receipt_no,""); createReceiptNoInFirstBillData(receipt_no,"");
if (!$('#print_settings').data('action-cable')) {
// For Server Print - from jade // For Server Print - from jade
if ($("#server_mode").val() == "cloud") { if ($("#server_mode").val() == "cloud") {
if(typeof code2lab != 'undefined'){ if(typeof code2lab != 'undefined'){
code2lab.printFile(result.filepath.substr(6), result.printer_url); code2lab.printFile(result.filepath.substr(6), result.printer_url);
}
} }
} }
location.reload(); location.reload();
@@ -385,17 +362,20 @@ $(document).ready(function(){
type: "GET", type: "GET",
url: ajax_url, url: ajax_url,
success: function (result) { success: function (result) {
$( "#loading_wrapper" ).hide(); $( "#loading_wrapper" ).hide();
receipt_no = ($("#receipt_no").html()).trim(); receipt_no = ($("#receipt_no").html()).trim();
if((receipt_no!=undefined) && (receipt_no!="")) if((receipt_no!=undefined) && (receipt_no!=""))
createReceiptNoInFirstBillData(receipt_no,type); createReceiptNoInFirstBillData(receipt_no,type);
// For Server Print - from jade
if ($("#server_mode").val() == "cloud") { if (!$('#print_settings').data('action-cable')) {
if(typeof code2lab != 'undefined'){ // For Server Print - from jade
code2lab.printFile(result.filepath.substr(6), result.printer_url); if ($("#server_mode").val() == "cloud") {
} if(typeof code2lab != 'undefined'){
code2lab.printFile(result.filepath.substr(6), result.printer_url);
} }
location.reload(); }
}
location.reload();
} }
}); });
}); });
@@ -463,13 +443,15 @@ $('#void').on('click',function () {
url: ajax_url, url: ajax_url,
data: "remark="+ remark + "&sale_id=" + sale_id + "&access_code=" + access_code , data: "remark="+ remark + "&sale_id=" + sale_id + "&access_code=" + access_code ,
success: function (result) { success: function (result) {
if (!$('#print_settings').data('action-cable')) {
// For Server Print - from jade // For Server Print - from jade
if ($("#server_mode").val() == "cloud") { if ($("#server_mode").val() == "cloud") {
if(typeof code2lab != 'undefined'){ if(typeof code2lab != 'undefined'){
code2lab.printFile(result.filepath.substr(6), result.printer_url); code2lab.printFile(result.filepath.substr(6), result.printer_url);
} }
} }
window.location.href = '/origami'; }
window.location.href = '/origami';
} }
}); });
} }
@@ -499,17 +481,19 @@ $('#foc').click(function() {
success:function(result){ success:function(result){
if (cash >= 0) { if (cash >= 0) {
swal({ swal({
title: "Information!", title: "Information!",
text: 'Thank You !', text: 'Thank You !',
}, function () { }, function () {
// For Server Print - from jade if (!$('#print_settings').data('action-cable')) {
// For Server Print - from jade
if ($("#server_mode").val() == "cloud") { if ($("#server_mode").val() == "cloud") {
if(typeof code2lab != 'undefined'){ if(typeof code2lab != 'undefined'){
code2lab.printFile(result.filepath.substr(6), result.printer_url); code2lab.printFile(result.filepath.substr(6), result.printer_url);
} }
} }
window.location.href = '/origami'; }
}); window.location.href = '/origami';
});
} }
} }
}); });
@@ -531,31 +515,30 @@ $(document).on('click', '.access_modal', function(event){
url: url, url: url,
data: {}, data: {},
success: function (result) { success: function (result) {
console.log(result) if (result.status == true) {
if (result.status == true) {
createAccessCode(code); createAccessCode(code);
if (type == "edit") { if (type == "edit") {
}else if(type == "void"){ } else if(type == "void") {
$('#AccessCodeModal').modal('hide'); $('#AccessCodeModal').modal('hide');
$('#voidModal').modal('show'); $('#voidModal').modal('show');
// overall_void(); // overall_void();
}else if(type == "waste") { } else if(type == "waste") {
// $('#AccessCodeModal').modal('hide'); // $('#AccessCodeModal').modal('hide');
// $('#focModal').modal('show'); // $('#focModal').modal('show');
waste_and_spoilage("waste") waste_and_spoilage("waste")
}else if(type == "spoile") { } else if(type == "spoile") {
// $('#AccessCodeModal').modal('hide'); // $('#AccessCodeModal').modal('hide');
// $('#voidModal').modal('show'); // $('#voidModal').modal('show');
waste_and_spoilage("spoile") waste_and_spoilage("spoile")
}else if(type == "foc"){ } else if(type == "foc") {
$('#AccessCodeModal').modal('hide'); $('#AccessCodeModal').modal('hide');
$('#focModal').modal('show'); $('#focModal').modal('show');
// overall_foc(); // overall_foc();
} }
}else{ } else {
swal("Opps",result.message,"warning") swal("Opps",result.message,"warning")
} }
} }
}); });
} }

View File

@@ -5,7 +5,7 @@
<%= simple_form_for(@print_setting) do |f| %> <%= simple_form_for(@print_setting) do |f| %>
<%= f.error_notification %> <%= f.error_notification %>
<div class="form-inputs"> <div class="form-inputs p-l-10">
<%= f.input :name %> <%= f.input :name %>
<%= f.input :unique_code %> <%= f.input :unique_code %>
<%= f.input :template %> <%= f.input :template %>
@@ -13,11 +13,8 @@
<%= f.input :header_font_size %> <%= f.input :header_font_size %>
<%= f.input :item_font_size %> <%= f.input :item_font_size %>
<% if(@server_mode != 'cloud') %> <%= f.input :printer_name, :as => :select, :collection => Printer::PrinterWorker.printers, include_blank: "Please Select", class: "mdb-select md-form" %>
<%= f.input :printer_name, :as => :select, :collection => Printer::PrinterWorker.printers, include_blank: "Please Select" %>
<% else %>
<%= f.input :printer_name, :as => :select, :collection => [], include_blank: "Please Select" %>
<% end %>
<%= f.input :brand_name %> <%= f.input :brand_name %>
<%= f.input :printer_type %> <%= f.input :printer_type %>
<%= f.input :api_settings %> <%= f.input :api_settings %>
@@ -45,7 +42,7 @@
</div> </div>
<div class="form-actions"> <div class="form-actions p-l-10">
<%= f.submit "Submit",:class => 'btn btn-primary btn-lg waves-effect' %> <%= f.submit "Submit",:class => 'btn btn-primary btn-lg waves-effect' %>
</div> </div>
<% end %> <% end %>
@@ -80,38 +77,40 @@
2) <%= t("views.right_panel.button.back") %> - <%= t("views.right_panel.detail.back_txt") %> <%= t("views.right_panel.detail.print_settings_txt") %> <br> 2) <%= t("views.right_panel.button.back") %> - <%= t("views.right_panel.detail.back_txt") %> <%= t("views.right_panel.detail.print_settings_txt") %> <br>
</p> </p>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<script type="text/javascript"> <script type="text/javascript">
$(document).ready(function(){ $(document).ready(function(){
var serverMode = "<%= @server_mode %>"; var serverMode = "<%= @server_mode %>";
if(serverMode == 'cloud'){ if(serverMode == 'cloud' && typeof code2lab != 'undefined'){
var printers = code2lab.getPrinters(); var printers = code2lab.getPrinters();
var printerInfo = JSON.parse([printers]); var printerInfo = JSON.parse([printers]);
var select = $("#print_setting_printer_name"); var select = $("#print_setting_printer_name");
$.each(printerInfo, function(key, value) { $.each(printerInfo, function(key, value) {
$('#print_setting_printer_name') $('#print_setting_printer_name')
.append($("<option></option>") .append($("<option></option>")
.attr("value",value.target) .attr("value",value.target)
.text(value.deviceName)); .text(value.deviceName));
}); });
} }
$('#print_setting_printer_name option:first').attr('disabled', true);
if ($('#sale_items').val() == '1') { if ($('#sale_items').val() == '1') {
$('#sale_items').prop('checked', true); $('#sale_items').prop('checked', true);
} }
// if selected printer change call and bind // if selected printer change call and bind
$("#print_setting_printer_name").on("change", function(){ $("#print_setting_printer_name").on("change", function(){
if(serverMode != 'cloud'){ if(serverMode != 'cloud'){
var printer_name = $(this).val(); var printer_name = $(this).val();
$.ajax({ $.ajax({
type: "GET", type: "GET",
url: "/get_printer_options/"+printer_name, url: "/get_printer_options/"+printer_name,
success:function(result){ success:function(result){
$("#print_setting_brand_name").val(result.model); $("#print_setting_brand_name").val(result.model);
$("#print_setting_api_settings").val(result.url); $("#print_setting_api_settings").val(result.url);
} }
@@ -120,8 +119,13 @@
else { else {
$("#print_setting_api_settings").val($(this).val()); $("#print_setting_api_settings").val($(this).val());
} }
}); });
});
$("#print_setting_printer_name").select2({
theme: 'material',
tags: true
})
});
function isNumberKey(evt) { function isNumberKey(evt) {
var charCode = (evt.which) ? evt.which : event.keyCode; var charCode = (evt.which) ? evt.which : event.keyCode;
@@ -129,7 +133,7 @@
return false; return false;
} else { } else {
return true; return true;
} }
} }
function greaterThanOne(val){ function greaterThanOne(val){
@@ -147,4 +151,4 @@
$(ele).val(1) $(ele).val(1)
} }
} }
</script> </script>

View File

@@ -12,11 +12,9 @@
<%= f.input :auto_print_receipt %> <%= f.input :auto_print_receipt %>
<%= f.label "Select Zones", :class => 'control-label' %> <%= f.label "Select Zones", :class => 'control-label' %>
<%= f.collection_check_boxes :zone_ids , Zone.all, :id, :name , :class => 'checkbox form-group'%> <%= f.collection_check_boxes :zone_ids , Zone.all, :id, :name , :class => 'checkbox form-group'%>
<% if(@server_mode != 'cloud') %>
<%= f.input :printer_name, :as => :select, :collection => Printer::PrinterWorker.printers, include_blank: false %> <%= f.input :printer_name, :as => :select, :collection => Printer::PrinterWorker.printers, include_blank: "Please Select", class: "mdb-select md-form" %>
<% else %>
<%= f.input :printer_name, :as => :select, :collection => [], include_blank: false %>
<% end %>
<%= f.input :font %> <%= f.input :font %>
<%= f.input :font_size %> <%= f.input :font_size %>
<%= f.input :show_tax %> <%= f.input :show_tax %>
@@ -24,7 +22,7 @@
<%= f.input :show_guest_info %> <%= f.input :show_guest_info %>
</div> </div>
<div class="form-actions"> <div class="form-actions p-l-10">
<%= f.submit "Submit",:class => 'btn btn-primary btn-lg waves-effect' %> <%= f.submit "Submit",:class => 'btn btn-primary btn-lg waves-effect' %>
</div> </div>
<% end %> <% end %>
@@ -58,24 +56,31 @@
2) <%= t("views.right_panel.button.back") %> - <%= t("views.right_panel.detail.back_txt") %> <%= t("views.right_panel.detail.cashier_terminal_txt") %> <br> 2) <%= t("views.right_panel.button.back") %> - <%= t("views.right_panel.detail.back_txt") %> <%= t("views.right_panel.detail.cashier_terminal_txt") %> <br>
</p> </p>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<script type="text/javascript"> <script type="text/javascript">
$(document).ready(function(){ $(document).ready(function(){
var serverMode = "<%= @server_mode %>"; var serverMode = "<%= @server_mode %>";
if(serverMode == 'cloud'){ if(serverMode == 'cloud' && typeof code2lab != 'undefined'){
var printers = code2lab.getPrinters(); var printers = code2lab.getPrinters();
var printerInfo = JSON.parse([printers]); var printerInfo = JSON.parse([printers]);
var select = $("#cashier_terminal_printer_name"); var select = $("#cashier_terminal_printer_name");
$.each(printerInfo, function(key, value) { $.each(printerInfo, function(key, value) {
$('#cashier_terminal_printer_name') $('#cashier_terminal_printer_name')
.append($("<option></option>") .append($("<option></option>")
.attr("value",value.target) .attr("value",value.target)
.text(value.deviceName)); .text(value.deviceName));
}); });
} }
$('#cashier_terminal_printer_name option:first').attr('disabled', true);
$("#cashier_terminal_printer_name").select2({
theme: 'material',
tags: true
})
}); });
</script> </script>

View File

@@ -1,10 +1,3 @@
<style type="text/css">
div.form-inputs span{
padding: 1%;
}
</style>
<div class="row"> <div class="row">
<div class="col-xs-12 col-sm-12 col-md-8 col-lg-8"> <div class="col-xs-12 col-sm-12 col-md-8 col-lg-8">
<div class="card"> <div class="card">
@@ -12,22 +5,11 @@ div.form-inputs span{
<%= simple_form_for([:settings,@settings_order_queue_station]) do |f| %> <%= simple_form_for([:settings,@settings_order_queue_station]) do |f| %>
<%= f.error_notification %> <%= f.error_notification %>
<div class="form-inputs p-l-15"> <div class="form-inputs p-l-10">
<%= f.input :station_name %> <%= f.input :station_name %>
<%= f.input :is_active %> <%= f.input :is_active %>
<% if(@server_mode != 'cloud') %> <%= f.input :printer_name, :as => :select, :collection => Printer::PrinterWorker.printers, include_blank: "Please Select", class: "mdb-select md-form" %>
<div class="form-group select required order_queue_station_printer_name bmd-form-group is-filled focused">
<label class="control-label select required bmd-label-static" for="order_queue_station_printer_name"><abbr title="required">*</abbr> Printer name</label>
<select class="form-control select required" name="order_queue_station[printer_name]" id="order_queue_station_printer_name">
<% Printer::PrinterWorker.printers.each do |printer| %>
<option value="<%= printer.force_encoding("UTF-8") %>"><%= printer.force_encoding("UTF-8") %></option>
<% end %>
</select>
</div>
<% else %>
<%= f.input :printer_name, :as => :select, :collection => [], include_blank: false %>
<% end %>
<!-- <%= f.input :font_size %> -->
<%= f.input :print_copy %> <%= f.input :print_copy %>
<%= f.hidden_field :processing_items %> <%= f.hidden_field :processing_items %>
<%= f.label "Select Zones", :class => 'control-label' %> <%= f.label "Select Zones", :class => 'control-label' %>
@@ -38,7 +20,7 @@ div.form-inputs span{
<%= f.input :auto_print %> <%= f.input :auto_print %>
</div> </div>
<div class="form-actions p-l-15"> <div class="form-actions p-l-10">
<%= f.submit "Submit",:class => 'btn btn-primary btn-lg waves-effect' %> <%= f.submit "Submit",:class => 'btn btn-primary btn-lg waves-effect' %>
</div> </div>
<% end %> <% end %>
@@ -69,24 +51,31 @@ div.form-inputs span{
2) <%= t("views.right_panel.button.back") %> - <%= t("views.right_panel.detail.back_txt") %> <%= t("views.right_panel.detail.order_queue_stations_txt") %> <br> 2) <%= t("views.right_panel.button.back") %> - <%= t("views.right_panel.detail.back_txt") %> <%= t("views.right_panel.detail.order_queue_stations_txt") %> <br>
</p> </p>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<script type="text/javascript"> <script type="text/javascript">
$(document).ready(function(){ $(document).ready(function(){
var serverMode = "<%= @server_mode %>"; var serverMode = "<%= @server_mode %>";
if(serverMode == 'cloud'){ if(serverMode == 'cloud' && typeof code2lab != 'undefined'){
var printers = code2lab.getPrinters(); var printers = code2lab.getPrinters();
var printerInfo = JSON.parse([printers]); var printerInfo = JSON.parse([printers]);
var select = $("#order_queue_station_printer_name"); var select = $("#order_queue_station_printer_name");
$.each(printerInfo, function(key, value) { $.each(printerInfo, function(key, value) {
$('#order_queue_station_printer_name') $('#order_queue_station_printer_name')
.append($("<option></option>") .append($("<option></option>")
.attr("value",value.target) .attr("value",value.target)
.text(value.deviceName)); .text(value.deviceName));
}); });
} }
}); });
$('#order_queue_station_printer_name option:first').attr('disabled', true);
$("#order_queue_station_printer_name").select2({
theme: 'material',
tags: true
})
</script> </script>

View File

@@ -280,7 +280,7 @@
</div> </div>
</div> </div>
</div> </div>
<%= print_settings %>
<input type="hidden" id="server_mode" value="<%= ENV["SERVER_MODE"] %>"> <input type="hidden" id="server_mode" value="<%= ENV["SERVER_MODE"] %>">
<span class="hidden" id="member_discount"><%= @membership.discount%></span> <span class="hidden" id="member_discount"><%= @membership.discount%></span>
<span class="hidden" id="membership_id"><%= @sale.customer.membership_id rescue 0%></span> <span class="hidden" id="membership_id"><%= @sale.customer.membership_id rescue 0%></span>
@@ -405,10 +405,12 @@
url: ajax_url, url: ajax_url,
data: "remark="+ remark + "&sale_id=" + sale_id+ "&access_code=" + access_code, data: "remark="+ remark + "&sale_id=" + sale_id+ "&access_code=" + access_code,
success: function (result) { success: function (result) {
// For Server Print - from jade if (!$('#print_settings').data('action-cable')) {
if ($("#server_mode").val() == "cloud") { // For Server Print - from jade
if(typeof code2lab != 'undefined'){ if ($("#server_mode").val() == "cloud") {
code2lab.printFile(result.filepath.substr(6), result.printer_url); if(typeof code2lab != 'undefined'){
code2lab.printFile(result.filepath.substr(6), result.printer_url);
}
} }
} }
window.location.href = '/transactions/sales/'; window.location.href = '/transactions/sales/';