diff --git a/app/models/printer/order_queue_printer.rb b/app/models/printer/order_queue_printer.rb index c7068d65..84ef703c 100755 --- a/app/models/printer/order_queue_printer.rb +++ b/app/models/printer/order_queue_printer.rb @@ -39,7 +39,7 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker } ) end - + return filename, order_id, oqs.printer_name end @@ -170,47 +170,51 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker # Check in-out time def print_check_in_out(print_settings, cashier_terminal, booking, table) - #Use CUPS service - #Generate PDF - #Print - sale_id = booking.sale_id - filename = "tmp/check_in_out_#{sale_id}" + ".pdf" + if Lookup.collection_of('print_settings').none? { |x| x == ["ActionCable", "1"] } + #Use CUPS service + #Generate PDF + #Print + sale_id = booking.sale_id + filename = "tmp/check_in_out_#{sale_id}" + ".pdf" - pdf = CheckInOutPdf.new(print_settings,booking, table) - 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: { - booking: booking, - table: table, - table_type: table.type, - } - ) - print_setting = PrintSetting.all + pdf = CheckInOutPdf.new(print_settings,booking, table) - # if order_item[0].price != 0 - if !print_setting.empty? - print_setting.each do |print_settings| - if print_settings.unique_code == 'CheckInOutPdf' - pdf = CheckInOutPdf.new(print_settings,booking, table) + print_setting = PrintSetting.all + + # if order_item[0].price != 0 + if !print_setting.empty? + print_setting.each do |print_settings| + if print_settings.unique_code == 'CheckInOutPdf' + pdf = CheckInOutPdf.new(print_settings,booking, table) + end end end - end - pdf.render_file filename + pdf.render_file filename - # Must be one print - if print_settings.print_copies == 0 - print_settings.print_copies = 1 - print_settings.save! - end - # print_settings.print_copies = 1 - # print_settings.save! + # Must be one print + if print_settings.print_copies == 0 + print_settings.print_copies = 1 + print_settings.save! + end + # print_settings.print_copies = 1 + # print_settings.save! - #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_terminal.printer_name, + unique_code: print_settings.unique_code, + print_copies: print_settings.print_copies, + data: { + booking: booking, + table: table, + table_type: table.type, + } + ) end end end diff --git a/app/models/printer/receipt_printer.rb b/app/models/printer/receipt_printer.rb index 3b02256c..81a5ea62 100755 --- a/app/models/printer/receipt_printer.rb +++ b/app/models/printer/receipt_printer.rb @@ -167,33 +167,38 @@ class Printer::ReceiptPrinter < Printer::PrinterWorker # stock check def print_stock_check_result(print_settings, stockcheck, stockcheck_items, checker_name, shop_details) - pdf = StockCheckPdf.new(print_settings,stockcheck, stockcheck_items,checker_name, shop_details) stock_items= [] if stockcheck_items.length > 0 - stockcheck_items.each do |sc| - stock_item= { - count: sc.stock_count.to_s, - item_name: MenuItemInstance.get_item_name(sc.item_code) + stockcheck_items.each do |sc| + stock_item= { + count: sc.stock_count.to_s, + item_name: MenuItemInstance.get_item_name(sc.item_code) + } + stock_items.push(stock_item) + end + end + + if Lookup.collection_of('print_settings').none? { |x| x == ["ActionCable", "1"] } + pdf = StockCheckPdf.new(print_settings,stockcheck, stockcheck_items,checker_name, shop_details) + + pdf.render_file "tmp/print_stock_check_result.pdf" + #no print in cloud server + if ENV["SERVER_MODE"] != "cloud" + self.print("tmp/print_stock_check_result.pdf") + end + else + ActionCable.server.broadcast("print_channel_#{Shop.current_shop.shop_code}", + queue: print_settings.printer_name, + unique_code: print_settings.unique_code, + print_copies: print_settings.print_copies, + data: { + stockcheck: stockcheck, + stockcheck_items: stock_items, + checker_name: checker_name, + shop_details: shop_details, } - stock_items.push(stock_item) - end + ) end - ActionCable.server.broadcast("print_channel_#{Shop.current_shop.shop_code}", - queue: print_settings.printer_name, - unique_code: print_settings.unique_code, - print_copies: print_settings.print_copies, - data: { - stockcheck: stockcheck, - stockcheck_items: stock_items, - checker_name: checker_name, - shop_details: shop_details, - } - ) - pdf.render_file "tmp/print_stock_check_result.pdf" - #no print in cloud server - if ENV["SERVER_MODE"] != "cloud" - self.print("tmp/print_stock_check_result.pdf") - end end #Queue No Print @@ -262,25 +267,29 @@ class Printer::ReceiptPrinter < Printer::PrinterWorker #Queue No Print def print_call_waiter(printer_settings,table,time,shop_detail) - #Use CUPS service - #Generate PDF - #Print - pdf = CallWaiterPdf.new(printer_settings,table,time,shop_detail) - ActionCable.server.broadcast("print_channel_#{Shop.current_shop.shop_code}", - queue: print_settings.printer_name, - unique_code: print_settings.unique_code, - print_copies: print_settings.print_copies, - data: { - shop_name: shop_detail.name, - name: print_settings.name, - table: table.name, - time: time, - } - ) - pdf.render_file "tmp/print_call_waiter.pdf" - #no print in cloud server - if ENV["SERVER_MODE"] != "cloud" - self.print("tmp/print_call_waiter.pdf") + if Lookup.collection_of('print_settings').none? { |x| x == ["ActionCable", "1"] } + #Use CUPS service + #Generate PDF + #Print + pdf = CallWaiterPdf.new(printer_settings,table,time,shop_detail) + + pdf.render_file "tmp/print_call_waiter.pdf" + #no print in cloud server + if ENV["SERVER_MODE"] != "cloud" + self.print("tmp/print_call_waiter.pdf") + end + else + ActionCable.server.broadcast("print_channel_#{Shop.current_shop.shop_code}", + queue: print_settings.printer_name, + unique_code: print_settings.unique_code, + print_copies: print_settings.print_copies, + data: { + shop_name: shop_detail.name, + name: print_settings.name, + table: table.name, + time: time, + } + ) end end diff --git a/app/views/origami/home/show.html.erb b/app/views/origami/home/show.html.erb index a6fc62a7..29a644af 100755 --- a/app/views/origami/home/show.html.erb +++ b/app/views/origami/home/show.html.erb @@ -1274,7 +1274,7 @@ data: "remark="+ remark + "&sale_id=" + sale_id+ "&access_code=" + access_code, 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(typeof code2lab != 'undefined'){ code2lab.printFile(result.filepath.substr(6), result.printer_url);