diff --git a/app/assets/javascripts/OQS.js b/app/assets/javascripts/OQS.js
index 07fb94f1..378ae434 100755
--- a/app/assets/javascripts/OQS.js
+++ b/app/assets/javascripts/OQS.js
@@ -354,12 +354,16 @@ $(document).on('turbolinks:load', function() {
var assigned_item_id = $('.selected-item').children('.card-block').children('.assigned-order-item').text();
var options = $('.selected-item').children('.card-block').find('.item-options').text();
var params = { 'options':options };
-
$.ajax({
- type: 'POST',
+ type: 'GET',
url: '/oqs/print/print/'+assigned_item_id,
data: params,
- success: function(data){ }
+ success: function(result){
+ // For Server Print - from jade
+ if ($("#server_mode").val() == "cloud") {
+ code2lab.printFile(result.filepath.substr(6), result.printer_url);
+ }
+ }
});
});
@@ -374,7 +378,12 @@ $(document).on('turbolinks:load', function() {
type: 'GET',
url: '/oqs/print/print_order_summary/'+assigned_item_id,
data: params,
- success: function(data){ }
+ success: function(result){
+ // For Server Print - from jade
+ if ($("#server_mode").val() == "cloud") {
+ code2lab.printFile(result.filepath.substr(6), result.printer_url);
+ }
+ }
});
});
});
diff --git a/app/controllers/oqs/print_controller.rb b/app/controllers/oqs/print_controller.rb
index fc65f2da..6a59025e 100755
--- a/app/controllers/oqs/print_controller.rb
+++ b/app/controllers/oqs/print_controller.rb
@@ -2,7 +2,7 @@ class Oqs::PrintController < ApplicationController
authorize_resource :class => false
# Print Order Item
def print
- if ENV["SERVER_MODE"] != "cloud" #no print in cloud server
+ # if ENV["SERVER_MODE"] != "cloud" #no print in cloud server
order_slim_pdf = Lookup.collection_of("print_settings") #print_settings with name:OrderSlimPdf
printer = PrintSetting.all
unique_code="OrderItemPdf"
@@ -41,19 +41,30 @@ class Oqs::PrintController < ApplicationController
# print when complete click
print_settings = PrintSetting.find_by_unique_code(unique_code)
order_queue_printer = Printer::OrderQueuePrinter.new(print_settings)
- order_queue_printer.print_order_item(print_settings,oqs, assigned_item.order_id, order_item.order_items_id, print_status, "", options )
+ filename, receipt_no, cashier_printer = order_queue_printer.print_order_item(print_settings,oqs, assigned_item.order_id, order_item.order_items_id, print_status, "", options )
# update print status for completed same order items
assigned_items.each do |ai|
ai.print_status=true
ai.save
- end
- end
+ end
+
+ # filename, receipt_no, cashier_printer = printer.print_receipt_bill(print_settings,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,
+ :printer_model => print_settings.brand_name,
+ :printer_url => print_settings.api_settings
+ }
+ # Mobile Print
+ render :json => result.to_json
+ end
+ # end
end
# Print Order Details with booking id
def print_order_summary
- if ENV["SERVER_MODE"] != "cloud" #no print in cloud server
+ # if ENV["SERVER_MODE"] != "cloud" #no print in cloud server
order_slim_pdf = Lookup.collection_of("print_settings") #print_settings with name:OrderSlimPdf
printer = PrintSetting.all
unique_code="OrderSummaryPdf"
@@ -98,14 +109,25 @@ class Oqs::PrintController < ApplicationController
# print when complete click
print_settings = PrintSetting.find_by_unique_code(unique_code)
order_queue_printer = Printer::OrderQueuePrinter.new(print_settings)
- order_queue_printer.print_booking_summary(print_settings,oqs, booking_id, print_status)
+ filename, receipt_no, cashier_printer = order_queue_printer.print_booking_summary(print_settings,oqs, booking_id, print_status)
# update print status for completed same order items
assigned_items.each do |ai|
ai.print_status = true
ai.save
end
- end
+
+ # filename, receipt_no, cashier_printer = printer.print_receipt_bill(print_settings,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,
+ :printer_model => print_settings.brand_name,
+ :printer_url => print_settings.api_settings
+ }
+ # Mobile Print
+ render :json => result.to_json
+ end
+ # end
end
end
\ No newline at end of file
diff --git a/app/models/printer/order_queue_printer.rb b/app/models/printer/order_queue_printer.rb
index 267772f2..b50d83f9 100755
--- a/app/models/printer/order_queue_printer.rb
+++ b/app/models/printer/order_queue_printer.rb
@@ -1,9 +1,6 @@
class Printer::OrderQueuePrinter < Printer::PrinterWorker
def print_order_item(print_settings,oqs, order_id, order_item_id, 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
@@ -12,7 +9,7 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker
order_item = print_query('order_item', order_item_id) #OrderItem.find_by_item_code(item_code)
- filename = "tmp/order_item_#{order_id}_#{order_item_id}" + ".pdf"
+ # filename = "tmp/order_item_#{order_id}_#{order_item_id}" + ".pdf"
pdf = OrderItemPdf.new(print_settings,order_item[0], print_status, options, oqs.use_alternate_name, before_updated_qty)
print_setting = PrintSetting.all
@@ -39,6 +36,12 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker
end
# end
+ shop = Shop.first
+ directory_name = 'public/orders_'+shop.shop_code
+ Dir.mkdir(directory_name) unless File.exists?(directory_name)
+
+ filename = directory_name + "/order_item_#{order_id}_#{order_item_id}" + ".pdf"
+
pdf.render_file filename
if oqs.print_copy
@@ -56,7 +59,9 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker
if ENV["SERVER_MODE"] != "cloud"
self.print(filename, oqs.printer_name)
end
- end
+ end
+
+ return filename, order_id, oqs.printer_name
end
# Query for per order
@@ -72,12 +77,19 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker
print_setting = PrintSetting.all.order("id ASC")
order=print_query('order_summary', order_id)
+
+ shop = Shop.first
+ 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 = "tmp/order_item_#{order_id}" + ".pdf"
+ 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
@@ -122,7 +134,8 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker
end
# For Print Order Summary
else
- filename = "tmp/order_summary_#{order_id}" + ".pdf"
+ filename = directory_name + "/order_summary_#{order_id}" + ".pdf"
+ # filename = "tmp/order_summary_#{order_id}" + ".pdf"
pdf = OrderSummaryPdf.new(print_settings,order, print_status, order_items, oqs.use_alternate_name,before_updated_qty)
if !print_setting.empty?
print_setting.each do |print_settings|
@@ -160,6 +173,7 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker
end
end
end
+ return filename, order_id, oqs.printer_name
end
# Print for orders in booking
@@ -173,10 +187,16 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker
print_setting = PrintSetting.all.order("id ASC")
order=print_query('booking_summary', booking_id)
+
+ shop = Shop.first
+ 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.each do|odi|
- filename = "tmp/order_item_#{booking_id}" + ".pdf"
+ # filename = "tmp/order_item_#{booking_id}" + ".pdf"
+ filename = directory_name + "/order_item_#{booking_id}" + ".pdf"
# For Item Options
options = odi.options == "[]"? "" : odi.options
@@ -222,7 +242,8 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker
end
# For Print Order Summary
else
- filename = "tmp/booking_summary_#{booking_id}" + ".pdf"
+ # filename = "tmp/booking_summary_#{booking_id}" + ".pdf"
+ filename = directory_name + "/booking_summary_#{booking_id}" + ".pdf"
pdf = OrderSummaryPdf.new(print_settings,order, print_status,oqs.use_alternate_name,before_updated_qty)
if !print_setting.empty?
@@ -261,6 +282,7 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker
end
end
end
+ return filename, booking_id, oqs.printer_name
end
# Query for OQS with status
diff --git a/app/views/oqs/home/index.html.erb b/app/views/oqs/home/index.html.erb
index ec5e0613..57a4471f 100644
--- a/app/views/oqs/home/index.html.erb
+++ b/app/views/oqs/home/index.html.erb
@@ -176,12 +176,15 @@
reply Back
- <% if ENV["SERVER_MODE"] != "cloud" %>
+