From 7c6fedebe9786f0e2b7d5e8cb0f13123e71aae24 Mon Sep 17 00:00:00 2001 From: Aung Myo Date: Tue, 16 Jan 2018 13:33:29 +0630 Subject: [PATCH] update open print service --- app/controllers/oqs/edit_controller.rb | 20 +++--- app/controllers/oqs/print_controller.rb | 94 +++++++++++++------------ app/models/order_queue_station.rb | 68 ++++++++++-------- 3 files changed, 99 insertions(+), 83 deletions(-) diff --git a/app/controllers/oqs/edit_controller.rb b/app/controllers/oqs/edit_controller.rb index 368255e5..0130d823 100755 --- a/app/controllers/oqs/edit_controller.rb +++ b/app/controllers/oqs/edit_controller.rb @@ -16,15 +16,17 @@ class Oqs::EditController < BaseOqsController order_item.remark = remarks order_item.save - # print - # assigned_item = AssignedOrderItem.find_by_instance_code(order_item.item_instance_code) - # # order queue stations - # oqs = assigned_item.order_queue_station - - # unique_code="OrderItemPdf" + if ENV["SERVER_MODE"] != "cloud" #no print in cloud server + # print + assigned_item = AssignedOrderItem.find_by_instance_code(order_item.item_instance_code) + # order queue stations + oqs = assigned_item.order_queue_station + + unique_code="OrderItemPdf" - # 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, order_item.order_id, order_items_id, print_status=" (Updated)" ) + 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, order_item.order_id, order_items_id, print_status=" (Updated)" ) + end end end diff --git a/app/controllers/oqs/print_controller.rb b/app/controllers/oqs/print_controller.rb index cc5556e9..1ae8ee04 100755 --- a/app/controllers/oqs/print_controller.rb +++ b/app/controllers/oqs/print_controller.rb @@ -1,61 +1,65 @@ class Oqs::PrintController < ApplicationController # Print Order Item def print - # unique_code="OrderItemPdf" - # assigned_item_id = params[:id] - # options = params[:options] - # assigned_item = AssignedOrderItem.find(assigned_item_id) - # assigned_items = AssignedOrderItem.where("item_code='" + assigned_item.item_code + "' AND " + "order_id='" + assigned_item.order_id + "'"); + if ENV["SERVER_MODE"] != "cloud" #no print in cloud server + unique_code="OrderItemPdf" + assigned_item_id = params[:id] + options = params[:options] + assigned_item = AssignedOrderItem.find(assigned_item_id) + assigned_items = AssignedOrderItem.where("item_code='" + assigned_item.item_code + "' AND " + "order_id='" + assigned_item.order_id + "'"); - # # order queue stations - # oqs = assigned_item.order_queue_station - # order_item = OrderItem.where("order_id='#{assigned_item.order_id}' AND item_instance_code='#{assigned_item.instance_code}'").first() + # order queue stations + oqs = assigned_item.order_queue_station + order_item = OrderItem.where("order_id='#{assigned_item.order_id}' AND item_instance_code='#{assigned_item.instance_code}'").first() - # # Check Printed - # print_status = assigned_item.print_status == true ? " (Re-Print)" : "" + # Check Printed + print_status = assigned_item.print_status == true ? " (Re-Print)" : "" - # # 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 ) - - # # update print status for completed same order items - # assigned_items.each do |ai| - # ai.print_status=true - # ai.save - # end + # 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 ) + + # update print status for completed same order items + assigned_items.each do |ai| + ai.print_status=true + ai.save + end + end end # Print Order Details with booking id def print_order_summary - # unique_code="OrderSummaryPdf" - # assigned_item_id = params[:id] - # table_name = params[:table_name] - # assigned_item = AssignedOrderItem.find(assigned_item_id) - # assigned_items = AssignedOrderItem.where("item_code='" + assigned_item.item_code + "' AND " + "order_id='" + assigned_item.order_id + "'"); + if ENV["SERVER_MODE"] != "cloud" #no print in cloud server + unique_code="OrderSummaryPdf" + assigned_item_id = params[:id] + table_name = params[:table_name] + assigned_item = AssignedOrderItem.find(assigned_item_id) + assigned_items = AssignedOrderItem.where("item_code='" + assigned_item.item_code + "' AND " + "order_id='" + assigned_item.order_id + "'"); - # # order queue stations - # oqs = assigned_item.order_queue_station + # order queue stations + oqs = assigned_item.order_queue_station - # # Check Printed - # print_status = assigned_item.print_status == true ? " (Re-Print)" : "" + # Check Printed + print_status = assigned_item.print_status == true ? " (Re-Print)" : "" - # # get dining - # # dining = DiningFacility.find_by_name(table_name); - # # booking = Booking.find_by_dining_facility_id(dining.id) + # get dining + # dining = DiningFacility.find_by_name(table_name); + # booking = Booking.find_by_dining_facility_id(dining.id) - # # Get Booking ID - # booking_id = BookingOrder.where("order_id='#{assigned_item.order_id}'").pluck(:booking_id)[0] - - # # 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) + # Get Booking ID + booking_id = BookingOrder.where("order_id='#{assigned_item.order_id}'").pluck(:booking_id)[0] + + # 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) - # # update print status for completed same order items - # assigned_items.each do |ai| - # ai.print_status = true - # ai.save - # end + # update print status for completed same order items + assigned_items.each do |ai| + ai.print_status = true + ai.save + end + end end -end +end \ No newline at end of file diff --git a/app/models/order_queue_station.rb b/app/models/order_queue_station.rb index 8b1d6d7d..7b6b7eac 100755 --- a/app/models/order_queue_station.rb +++ b/app/models/order_queue_station.rb @@ -14,6 +14,7 @@ class OrderQueueStation < ApplicationRecord validates_presence_of :station_name, :printer_name def process_order (order, table_id) + oqs_stations = OrderQueueStation.active dining=DiningFacility.find(table_id) # oqpbz = OrderQueueProcessByZone.find_by_zone_id(dining.zone_id) @@ -77,14 +78,23 @@ class OrderQueueStation < ApplicationRecord end end end - - # if oqs.auto_print - # if oqs_order_items.length > 0 - # print_slip(oqs, order, oqs_order_items) - # is_auto_printed = true - # end - # end - end + + if oqs.auto_print + if oqs_order_items.length > 0 + print_slip(oqs, order, oqs_order_items) + is_auto_printed = true + end + end + end + # if oqs.id == oqpbz.order_queue_station_id + # # Auto Printing + # if oqs.auto_print + # if oqs_order_items.length > 0 + # print_slip(oqs, order, oqs_order_items) + # is_auto_printed = true + # end + # end + # end end # end end @@ -92,32 +102,32 @@ class OrderQueueStation < ApplicationRecord private #Print order_items in 1 slip def print_slip(oqs, order, order_items) - # unique_code="OrderSummaryPdf" - - # print_settings=PrintSetting.find_by_unique_code(unique_code) - # order_queue_printer= Printer::OrderQueuePrinter.new(print_settings) - # order_queue_printer.print_order_summary(print_settings, oqs,order.order_id, order_items, print_status="") + unique_code="OrderSummaryPdf" + print_settings=PrintSetting.find_by_unique_code(unique_code) + order_queue_printer= Printer::OrderQueuePrinter.new(print_settings) + order_queue_printer.print_order_summary(print_settings, oqs,order.order_id, order_items, print_status="") - # AssignedOrderItem.where("order_id = '#{ order.order_id }'").find_each do |ai| - # # update print status for order items - # ai.print_status=true - # ai.save - # end + AssignedOrderItem.where("order_id = '#{ order.order_id }'").find_each do |ai| + # update print status for order items + ai.print_status=true + ai.save + end + end #Print order_item in 1 slip per item def print_slip_item(oqs, assigned_item) - # unique_code="OrderItemPdf" - # order_item = OrderItem.where("order_id='#{assigned_item.order_id}' AND item_instance_code='#{assigned_item.instance_code}'").first() - # # 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,item.order_id, order_item.order_items_id, print_status="" ) + unique_code="OrderItemPdf" + order_item = OrderItem.where("order_id='#{assigned_item.order_id}' AND item_instance_code='#{assigned_item.instance_code}'").first() + # 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,item.order_id, order_item.order_items_id, print_status="" ) - # # update print status for completed same order items - # assigned_order_item.each do |ai| - # ai.print_status=true - # ai.save - # end + # update print status for completed same order items + assigned_order_item.each do |ai| + ai.print_status=true + ai.save + end end end