From 5dfdc7353e2aa7a8b0b76d770b753d206485983b Mon Sep 17 00:00:00 2001 From: Thein Lin Kyaw Date: Tue, 18 Aug 2020 16:11:17 +0630 Subject: [PATCH] print settings ActionCable --- Gemfile | 2 +- Gemfile.lock | 2 + README.md | 3 + app/assets/javascripts/OQS.js | 34 +-- app/assets/javascripts/application.js | 13 +- app/assets/javascripts/order_reservation.js | 100 +++---- app/assets/stylesheets/application.scss | 2 + app/assets/stylesheets/select2-material.css | 231 +++++++++++++++ app/controllers/oqs/print_controller.rb | 2 - app/helpers/print_settings_helper.rb | 3 + app/models/printer/cashier_station_printer.rb | 129 ++++----- app/models/printer/order_queue_printer.rb | 136 ++++----- app/models/printer/receipt_printer.rb | 166 +++++------ app/views/oqs/home/index.html.erb | 52 ++-- app/views/origami/home/show.html.erb | 266 +++++++++--------- .../origami/order_reservation/index.html.erb | 58 ++-- app/views/origami/payments/show.html.erb | 95 ++++--- .../pending_order/completed_sale.html.erb | 60 ++-- app/views/origami/rooms/show.html.erb | 157 ++++++----- app/views/origami/sales/show.html.erb | 56 ++-- .../origami/table_invoices/show.html.erb | 127 ++++----- app/views/print_settings/_form.html.erb | 54 ++-- .../settings/cashier_terminals/_form.html.erb | 39 +-- .../order_queue_stations/_form.html.erb | 53 ++-- app/views/transactions/sales/show.html.erb | 12 +- 25 files changed, 1050 insertions(+), 802 deletions(-) create mode 100644 app/assets/stylesheets/select2-material.css diff --git a/Gemfile b/Gemfile index 92b133de..6d6a2397 100644 --- a/Gemfile +++ b/Gemfile @@ -18,7 +18,7 @@ gem 'pg' gem 'mysql2', '~> 0.5.2' #Use PosgreSQL - +gem "select2-rails" # redis server for cable gem 'redis', '~> 3.0' diff --git a/Gemfile.lock b/Gemfile.lock index 578d79d3..eff1b2cb 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -264,6 +264,7 @@ GEM tilt (>= 1.1, < 3) schema_to_scaffold (0.8.0) activesupport (>= 3.2.1) + select2-rails (4.0.13) shoulda-matchers (3.1.3) activesupport (>= 4.0.0) sidekiq (5.2.7) @@ -367,6 +368,7 @@ DEPENDENCIES rubyzip (= 1.0.0) sass-rails (~> 5.0) schema_to_scaffold + select2-rails shoulda-matchers (~> 3.1) sidekiq simple_form diff --git a/README.md b/README.md index 63ba995a..6c749590 100755 --- a/README.md +++ b/README.md @@ -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 _** 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 a) Check => Shift Sale Items diff --git a/app/assets/javascripts/OQS.js b/app/assets/javascripts/OQS.js index 68cf44d7..76413675 100755 --- a/app/assets/javascripts/OQS.js +++ b/app/assets/javascripts/OQS.js @@ -402,17 +402,17 @@ $(document).on('turbolinks:load', function() { url: '/oqs/print/print/'+assigned_item_id, data: params, success: function(result){ - // 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(); - + 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); + } + } + } + location.reload(); } }); - }); // Print Order Summary @@ -428,13 +428,15 @@ $(document).on('turbolinks:load', function() { url: '/oqs/print/print_order_summary/'+assigned_item_id, data: params, success: function(result){ - // 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(); + 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); + } + } + } + location.reload(); } }); }); diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index bd9018fb..7317b338 100755 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -36,6 +36,7 @@ //= require custom.js //= require jquery-fileupload/basic //= require induties/induties.js +//= require select2 $(document).ready(function() { $('.count-to').countTo(); @@ -65,7 +66,7 @@ $(document).ready(function() { clearButton: true, date: false }); - + // Image Upload $("#simple_menu_item_image_path").fileinput({ previewFileType: "image", @@ -148,7 +149,7 @@ $(document).ready(function() { '\n', } }); - + $("#commissioner_image_path").fileinput({ previewFileType: "image", allowedFileExtensions: ["jpg", "gif", "png"], @@ -167,7 +168,7 @@ $(document).ready(function() { ' {caption}\n' + '\n', } - }); + }); $("#employee_image_path").fileinput({ previewFileType: "image", @@ -187,7 +188,7 @@ $(document).ready(function() { ' {caption}\n' + '\n', } - }); + }); $("#shop_image").fileinput({ previewFileType: "image", @@ -227,7 +228,7 @@ $(document).ready(function() { ' {caption}\n' + '\n', } - }); + }); // first input focus for all form $('form:first *input[data-behaviour!=datepicker]:input[type!=hidden]:first').focus(); @@ -252,4 +253,4 @@ Chart.scaleService.updateScaleDefaults('linear', { } } }); -/* chartkick js YAxis value override */ \ No newline at end of file +/* chartkick js YAxis value override */ diff --git a/app/assets/javascripts/order_reservation.js b/app/assets/javascripts/order_reservation.js index f74f1fa9..6c141ddc 100644 --- a/app/assets/javascripts/order_reservation.js +++ b/app/assets/javascripts/order_reservation.js @@ -1,6 +1,6 @@ //= require custom.js -$(function() { +$(function() { $("#discount").hide(); $(".expected_time").hide(); $('#accepted').hide(); @@ -11,7 +11,7 @@ $(function() { $(".accepted_time").hide(); $(".kitchen_time").hide(); $(".ready_time").hide(); - $(function() { + $(function() { $('.first-1').click(); }); @@ -213,8 +213,8 @@ $(function() { function warnBeforeRedirect(linkURL) { swal({ - title: "Alert!", - text: "Are you sure you want to close cashier?", + title: "Alert!", + text: "Are you sure you want to close cashier?", type: "warning", showCancelButton: true }, function() { @@ -278,13 +278,13 @@ function refreshDetailData(){ $("#payment_type").text(""); } -//show order list -function show_order_detail(url,sr_no){ +//show order list +function show_order_detail(url,sr_no){ // $('.summary-items').html(""); //Start Ajax - $.ajax({ - type: "GET", - url: url, + $.ajax({ + type: "GET", + url: url, data: {}, dataType: "json", success: function(data) { @@ -334,12 +334,12 @@ function show_order_detail(url,sr_no){ $("#ready_delivery_time").html(ready_time); } } - + var newDate = new Date(data.requested_time); var time = timeFormat(newDate); // var requested_date = newDate.getFullYear() + '-' + (newDate.getMonth() >= 10? newDate.getMonth() : '0' + (newDate.getMonth() + 1)) +'-'+ (newDate.getDate() >= 10? newDate.getDate() : '0' + newDate.getDate()) +' '+time; 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)){ // var expDate = new Date(data.expected_waiting_time); // var exptime = timeFormat(expDate); @@ -367,7 +367,7 @@ function show_order_detail(url,sr_no){ if(items!=undefined && items!=""){ if(items.length > 0){ - for(var i in items) { + for(var i in items) { var item_price = 0; if(items[i].price > 0){ 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; if (check_mobile == "true"){ if(items[i].options!='[]' && items[i].options!="" && items[i].options!=null){ - row = + row = '' +''+items[i].item_name +'
' @@ -417,8 +417,8 @@ function show_order_detail(url,sr_no){ } } - - + + $('.summary-items').append(row); } @@ -452,7 +452,7 @@ function show_order_detail(url,sr_no){ }else if(data.payment_type == "dinga"){ $("#payment_type").text("DINGA"); } - + $('#ref_no').text(data.transaction_ref); $('#callback_url').text(data.callback_url); $('#order_id').text(data.order_reservation_id); @@ -494,16 +494,16 @@ function show_order_detail(url,sr_no){ }else{ $("#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 post_url = "order_reservation/send_status"; 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; } - // $.ajax({ - // type: "POST", - // url: post_url, + // $.ajax({ + // type: "POST", + // url: post_url, // data: {url: callback, ref_no: ref_no, status: status, waiting_time: waiting_time, min_type: type, reason: reject_reason}, // dataType: "json", // success: function(data) { // if(data.status){ - $.ajax({ - type: "POST", - url: url, + $.ajax({ + type: "POST", + 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}, dataType: "json", success: function(data) { @@ -711,7 +711,7 @@ function getOrderDay(day){ function timeFormat(date){ var isPM = 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(':') + (isPM ? ' PM' : ' AM'); return time; @@ -722,8 +722,8 @@ function timeFormat(date){ function getOnlineOrderCount(){ var count = 0; //Start Ajax - $.ajax({ - async: false, + $.ajax({ + async: false, type: "GET", url: "/origami/get_order_info", dataType: "json", @@ -733,7 +733,7 @@ function getOnlineOrderCount(){ } } }); - //end Ajax + //end Ajax // alert(count); return count; } @@ -748,31 +748,33 @@ function print_receipt(){ var params = { 'filename':filename, 'receipt_no':receipt_no, 'printer_name':printer_name }; console.log(params); $.ajax({ - type: "POST", + type: "POST", url: "/origami/sale/"+sale_id+"/doemal_order/payment/print", data: params, success:function(result){ - // For Server Print - from jade - if ($("#server_mode").val() == "cloud") { - if(typeof code2lab != 'undefined'){ - code2lab.printFile(result.filepath.substr(6), result.printer_url); + 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); + } + 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 */ \ No newline at end of file +/* pdf print out */ diff --git a/app/assets/stylesheets/application.scss b/app/assets/stylesheets/application.scss index ee797cf8..3c3de041 100755 --- a/app/assets/stylesheets/application.scss +++ b/app/assets/stylesheets/application.scss @@ -12,6 +12,8 @@ @import "BSBMaterial/themes/all-themes"; @import "reset"; @import "induties/assign_in_duties"; +@import "select2"; +@import "select2-material"; /*@import "bootstrap-select/css/bootstrap-select.min";*/ diff --git a/app/assets/stylesheets/select2-material.css b/app/assets/stylesheets/select2-material.css new file mode 100644 index 00000000..a52e1654 --- /dev/null +++ b/app/assets/stylesheets/select2-material.css @@ -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; } diff --git a/app/controllers/oqs/print_controller.rb b/app/controllers/oqs/print_controller.rb index 751e1c01..a5eca433 100755 --- a/app/controllers/oqs/print_controller.rb +++ b/app/controllers/oqs/print_controller.rb @@ -51,7 +51,6 @@ class Oqs::PrintController < ApplicationController ai.save 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" result = { :filepath => filename, @@ -119,7 +118,6 @@ class Oqs::PrintController < ApplicationController ai.save 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" result = { :filepath => filename, diff --git a/app/helpers/print_settings_helper.rb b/app/helpers/print_settings_helper.rb index 3e712d7c..6f14d22e 100755 --- a/app/helpers/print_settings_helper.rb +++ b/app/helpers/print_settings_helper.rb @@ -1,2 +1,5 @@ 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 diff --git a/app/models/printer/cashier_station_printer.rb b/app/models/printer/cashier_station_printer.rb index 01bfd3c9..1c255a42 100755 --- a/app/models/printer/cashier_station_printer.rb +++ b/app/models/printer/cashier_station_printer.rb @@ -38,90 +38,91 @@ class Printer::CashierStationPrinter < Printer::PrinterWorker # self.print(filename, cashier_terminal.printer_name) # 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? - @account_cate_count = Hash.new {|hash, key| hash[key] = 0} - sale_items.each {|acc_cate| @account_cate_count[acc_cate.account_id] += 1} + @menu_cate_count = Hash.new {|hash, key| hash[key] = 0} + sale_items.each {|cate| @menu_cate_count[cate.menu_category_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} - sale_items.each {|cate| @menu_cate_count[cate.menu_category_id] += 1} + #Use CUPS service + #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 - - @totalByAccount = Hash.new {|hash, key| hash[key] = 0} - sale_items.each {|acc| @totalByAccount[acc.account_id] += acc.grand_total} - end - - #Use CUPS service - #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? - 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) + 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 - pdf.render_file filename - #no print in cloud server - if ENV["SERVER_MODE"] != "cloud" - self.print(filename, cashier_terminal.printer_name) + pdf.render_file filename + #no print in cloud server + if ENV["SERVER_MODE"] != "cloud" + self.print(filename, cashier_terminal.printer_name) + end else ActionCable.server.broadcast("print_channel_#{Shop.current_shop.shop_code}", - queue: "Cashier", - unique_code: print_settings.unique_code, - print_copies: print_settings.print_copies, - data: { - shop_details: shop_details.as_json, - shift_sale: shift_sale, - cashier_terminal: cashier_terminal, - shift_employee: shift_sale.employee, - sale_items: sale_items, - sale_taxes: sale_taxes, - other_payment: other_payment, - total_amount_by_account: amount, - total_discount_by_account: discount, - total_member_discount: member_discount, - total_waste: total_waste, - total_spoile: total_spoile, - other_charges: other_charges, - total_other_charges: total_other_charges, - total_credit_payments: total_credit_payments - } + queue: cashier_terminal.printer_name, + unique_code: print_settings.unique_code, + print_copies: print_settings.print_copies, + data: { + shop_details: shop_details.as_json, + shift_sale: shift_sale, + cashier_terminal: cashier_terminal, + shift_employee: shift_sale.employee, + sale_items: sale_items, + sale_taxes: sale_taxes, + other_payment: other_payment, + total_amount_by_account: amount, + total_discount_by_account: discount, + total_member_discount: member_discount, + total_waste: total_waste, + total_spoile: total_spoile, + other_charges: other_charges, + total_other_charges: total_other_charges, + total_credit_payments: total_credit_payments + } ) 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) - 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" - pdf = SaleItemsPdf.new(print_settings, shop_details, period_name, type, account, from_date, to_date, shift_name, sale_items, total_other_charges) - end + 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) + end - 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) - end + 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) + end - pdf.render_file filename + pdf.render_file filename - #no print in cloud server - if ENV["SERVER_MODE"] != "cloud" - self.print(filename, print_settings.printer_name) + #no print in cloud server + if ENV["SERVER_MODE"] != "cloud" + self.print(filename, print_settings.printer_name) + end else ActionCable.server.broadcast("print_channel_#{Shop.current_shop.shop_code}", - queue: 'Cashier', + queue: print_settings.printer_name, unique_code: print_settings.unique_code, print_copies: print_settings.print_copies, data: { diff --git a/app/models/printer/order_queue_printer.rb b/app/models/printer/order_queue_printer.rb index b7315765..5a145efc 100755 --- a/app/models/printer/order_queue_printer.rb +++ b/app/models/printer/order_queue_printer.rb @@ -1,94 +1,66 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker 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) - # end + order_item = print_query('order_item', order_item_id).first #OrderItem.find_by_item_code(item_code) - shop = Shop.current_shop - directory_name = 'public/orders_'+shop.shop_code - Dir.mkdir(directory_name) unless File.exists?(directory_name) + if Lookup.collection_of('print_settings').none? { |x| x == ["ActionCable", "1"] } + # Must be one print + 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" - self.print(filename, oqs.printer_name) + filename = directory_name + "/order_item_#{order_id}_#{order_item_id}" + ".pdf" + + pdf.render_file filename + + if ENV["SERVER_MODE"] != "cloud" + self.print(filename, oqs.printer_name) + end + + return filename, order_id, 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_item[0].as_json(methods: :type), + order_item: order_item.as_json(methods: :type), print_status: print_status.gsub(/[()]/, ""), booking_id: booking_id, precision: print_settings.precision } - ) + ) 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 # Query for per order def print_order_summary(print_settings, oqs, order_id, order_items, print_status, before_updated_qty="", options="") - #Use CUPS service - #Generate PDF - #Print - # Must be one print - if print_settings.print_copies == 0 - print_settings.print_copies = 1 - print_settings.save! - end + booking_id = Booking.get_booking_id(order_id) #order[0].order_id + order = print_query('order_summary', order_id) - shop = Shop.current_shop - directory_name = "public/orders_#{shop.shop_code}" - Dir.mkdir(directory_name) unless File.exists?(directory_name) - - # For Print Per Item - if oqs.cut_per_item - - order_items.each do |odi| - 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 + if Lookup.collection_of('print_settings').none? { |x| x == ["ActionCable", "1"] } + #Use CUPS service + #Generate PDF + #Print + # Must be one print + if print_settings.print_copies == 0 + print_settings.print_copies = 1 + print_settings.save! end - # For Print Order Summary - else - booking_id = Booking.get_booking_id(order_id) #order[0].order_id - order = print_query('order_summary', order_id) + + shop = Shop.current_shop + directory_name = "public/orders_#{shop.shop_code}" + Dir.mkdir(directory_name) unless File.exists?(directory_name) filename = directory_name + "/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 if ENV["SERVER_MODE"] != "cloud" 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 - #For print copy - # pdf.render_file filename.gsub(".","-copy.") - # self.print(filename.gsub(".","-copy."), oqs.printer_name) + return filename, order_id, 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 - return filename, order_id, oqs.printer_name end # 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 if print_settings.print_copies == 0 print_settings.print_copies = 1 diff --git a/app/models/printer/receipt_printer.rb b/app/models/printer/receipt_printer.rb index d130c96e..360ca85c 100755 --- a/app/models/printer/receipt_printer.rb +++ b/app/models/printer/receipt_printer.rb @@ -91,61 +91,29 @@ class Printer::ReceiptPrinter < Printer::PrinterWorker #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) - #Use CUPS service - #Generate PDF - #Print - if printer_settings - if !printer_settings.unique_code.match?(/receiptbillorder/i) - 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) + if Lookup.collection_of('print_settings').none? { |x| x == ["ActionCable", "1"] } + #Use CUPS service + #Generate PDF + #Print + if printer_settings + if !printer_settings.unique_code.match?(/receiptbillorder/i) + 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 - 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 - else - #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) + + # print as print copies in printer setting + count = printer_settings.print_copies end - if ENV["SERVER_MODE"] == "cloud" - ActionCable.server.broadcast("print_channel_#{Shop.current_shop.shop_code}", - queue: "Cashier", - 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 + directory_name = 'public/receipts' + Dir.mkdir(directory_name) unless File.exists?(directory_name) + Rails.logger.debug "############## dir::" + directory_name if count == 1 filename = directory_name + "/receipt_bill_#{sale_data.receipt_no}.pdf" pdf.render_file filename @@ -169,12 +137,44 @@ class Printer::ReceiptPrinter < Printer::PrinterWorker 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 # 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.render_file "tmp/print_stock_check_result.pdf" #no print in cloud server @@ -197,37 +197,39 @@ class Printer::ReceiptPrinter < Printer::PrinterWorker end #Move Table Print - def print_move_table(printer_settings,to,from,shop_detail,date,type,moved_by,order_items,oqs) - #Use CUPS service - #Generate PDF - #Print - pdf = MoveTablePdf.new(printer_settings,to,from,shop_detail,date,type,moved_by,order_items) - pdf.render_file "tmp/print_move_table.pdf" + def print_move_table(printer_settings, to, from, shop_detail, date, type, moved_by, order_items, oqs) + if Lookup.collection_of('print_settings').none? { |x| x == ["ActionCable", "1"] } + #Use CUPS service + #Generate PDF + #Print + 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 oqs.print_copy - self.print("tmp/print_move_table.pdf",oqs.printer_name) - else - print_settings.print_copies = 1 - print_settings.save! - #no print in cloud server - self.print("tmp/print_move_table.pdf", oqs.printer_name) + if ENV["SERVER_MODE"] != "cloud" + if oqs.print_copy + self.print("tmp/print_move_table.pdf",oqs.printer_name) + else + print_settings.print_copies = 1 + print_settings.save! + #no print in cloud server + self.print("tmp/print_move_table.pdf", oqs.printer_name) + end end 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: { - type: type, - body: { - to: to, - from: from, - date: date, - moved_by: moved_by, - order_items: order_items.as_json, - }, - } + 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: { + type: type, + body: { + to: to, + from: from, + date: date, + moved_by: moved_by, + order_items: order_items.as_json, + }, + } ) end end diff --git a/app/views/oqs/home/index.html.erb b/app/views/oqs/home/index.html.erb index c7b52bb8..0b5e9d93 100644 --- a/app/views/oqs/home/index.html.erb +++ b/app/views/oqs/home/index.html.erb @@ -1,6 +1,6 @@
-
+
@@ -20,7 +20,7 @@ <% end %> - <% end %> + <% end %>
@@ -38,8 +38,8 @@
- <% - @queue_completed_item.each do |qid| + <% + @queue_completed_item.each do |qid| %>
@@ -52,38 +52,38 @@ <%= qid.order_id %> -
+

<%= qid.item_name %> [x <%= qid.qty %> - ] + ] <% if !qid.set_menu_items.nil? %> <% qid.set_menu_items.each do |item_instance|%>
<%= item_instance %> <% end %> - <% end %> -

+ <% end %> +

-

<%= qid.options == "[]"? "" : qid.options %>

+

<%= qid.options == "[]"? "" : qid.options %>

- Order at - + Order at - <%= qid.created_at.utc.getlocal.strftime("%d-%m-%Y %I:%M %p") %> -
+

Order By - <%= qid.item_order_by %> - +
- +
<% if !qid.delivery_status %> <%end%> -
- <% end %> +
+ <% end %>
-
+
@@ -127,7 +127,7 @@ --> <% if current_user.role != "kitchen" %> - + reply Back - <%end%> + <%end%>
+ @@ -179,7 +179,7 @@ - +
@@ -232,7 +232,7 @@
- +
@@ -285,7 +285,7 @@
- +
@@ -338,7 +338,7 @@
- + @@ -350,7 +350,7 @@ - --> + -->
- + @@ -378,7 +378,7 @@
2 X700
1400.00
@@ -388,7 +388,7 @@ - SUB TOTAL + SUB TOTAL 0.00 @@ -419,19 +419,19 @@ - + <% if request.user_agent.include? "Mobile" %>
<% else %>
<% end %> - +
-
CUSTOMER & DELIVERY INFORMATION + CUSTOMER & DELIVERY INFORMATION
@@ -541,7 +541,7 @@ - + <% if current_user.role != "waiter" %> @@ -559,12 +559,16 @@
- + +<%= print_settings %> + +"> + +
+ +<%= print_settings %> +
@@ -653,7 +655,7 @@ - -
+ - + @@ -440,9 +442,11 @@ $('#reprint').on('click', function () { type: "GET", url: ajax_url, success: function (result) { - if ($("#server_mode").val() == "cloud") { - if(typeof code2lab != 'undefined'){ - code2lab.printFile(result.filepath.substr(6), result.printer_url); + if (!$('#print_settings').data('action-cable')) { + if ($("#server_mode").val() == "cloud") { + if(typeof code2lab != 'undefined'){ + code2lab.printFile(result.filepath.substr(6), result.printer_url); + } } } location.reload(); @@ -542,15 +546,17 @@ $(document).on('click', '.access_modal', function(event){ type: "GET", url: ajax_url, success: function (result) { - // For Server Print - from jade - if ($("#server_mode").val() == "cloud") { - if(typeof code2lab != 'undefined'){ - code2lab.printFile(result.filepath.substr(6), result.printer_url); + 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); + } } } location.reload(); } - }); + }); }else if(type == "foc"){ $('#AccessCodeModal').modal('hide'); $('#focModal').modal('show'); diff --git a/app/views/origami/table_invoices/show.html.erb b/app/views/origami/table_invoices/show.html.erb index 76c65057..7f0acdce 100644 --- a/app/views/origami/table_invoices/show.html.erb +++ b/app/views/origami/table_invoices/show.html.erb @@ -164,6 +164,8 @@ +<%= print_settings %> + "> @@ -243,7 +245,6 @@ - "> \ No newline at end of file + diff --git a/app/views/settings/cashier_terminals/_form.html.erb b/app/views/settings/cashier_terminals/_form.html.erb index 3ba13d97..707ef348 100755 --- a/app/views/settings/cashier_terminals/_form.html.erb +++ b/app/views/settings/cashier_terminals/_form.html.erb @@ -12,11 +12,9 @@ <%= f.input :auto_print_receipt %> <%= f.label "Select Zones", :class => 'control-label' %> <%= 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 %> - <% else %> - <%= f.input :printer_name, :as => :select, :collection => [], include_blank: false %> - <% end %> + + <%= f.input :printer_name, :as => :select, :collection => Printer::PrinterWorker.printers, include_blank: "Please Select", class: "mdb-select md-form" %> + <%= f.input :font %> <%= f.input :font_size %> <%= f.input :show_tax %> @@ -24,7 +22,7 @@ <%= f.input :show_guest_info %> -
+
<%= f.submit "Submit",:class => 'btn btn-primary btn-lg waves-effect' %>
<% 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") %>

- + \ No newline at end of file + diff --git a/app/views/settings/order_queue_stations/_form.html.erb b/app/views/settings/order_queue_stations/_form.html.erb index 908e2844..fb4cc989 100755 --- a/app/views/settings/order_queue_stations/_form.html.erb +++ b/app/views/settings/order_queue_stations/_form.html.erb @@ -1,10 +1,3 @@ - - -
@@ -12,22 +5,11 @@ div.form-inputs span{ <%= simple_form_for([:settings,@settings_order_queue_station]) do |f| %> <%= f.error_notification %> -
+
<%= f.input :station_name %> <%= f.input :is_active %> - <% if(@server_mode != 'cloud') %> -
- - -
- <% else %> - <%= f.input :printer_name, :as => :select, :collection => [], include_blank: false %> - <% end %> - + <%= f.input :printer_name, :as => :select, :collection => Printer::PrinterWorker.printers, include_blank: "Please Select", class: "mdb-select md-form" %> + <%= f.input :print_copy %> <%= f.hidden_field :processing_items %> <%= f.label "Select Zones", :class => 'control-label' %> @@ -38,7 +20,7 @@ div.form-inputs span{ <%= f.input :auto_print %>
-
+
<%= f.submit "Submit",:class => 'btn btn-primary btn-lg waves-effect' %>
<% 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") %>

-
+
diff --git a/app/views/transactions/sales/show.html.erb b/app/views/transactions/sales/show.html.erb index 07ca05b0..dab994c4 100755 --- a/app/views/transactions/sales/show.html.erb +++ b/app/views/transactions/sales/show.html.erb @@ -280,7 +280,7 @@ - +<%= print_settings %> "> @@ -405,10 +405,12 @@ url: ajax_url, data: "remark="+ remark + "&sale_id=" + sale_id+ "&access_code=" + access_code, success: function (result) { - // For Server Print - from jade - if ($("#server_mode").val() == "cloud") { - if(typeof code2lab != 'undefined'){ - code2lab.printFile(result.filepath.substr(6), result.printer_url); + 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); + } } } window.location.href = '/transactions/sales/';