From aecccffa1e04ff36e72015787d2ab934a1f93717 Mon Sep 17 00:00:00 2001 From: Aung Myo Date: Fri, 7 Sep 2018 17:35:22 +0630 Subject: [PATCH] update move table with order queue station --- .../origami/movetable_controller.rb | 50 ++--- app/models/order_queue_station.rb | 171 ++++++++++-------- 2 files changed, 124 insertions(+), 97 deletions(-) diff --git a/app/controllers/origami/movetable_controller.rb b/app/controllers/origami/movetable_controller.rb index fd9a819e..41c58941 100755 --- a/app/controllers/origami/movetable_controller.rb +++ b/app/controllers/origami/movetable_controller.rb @@ -86,9 +86,11 @@ class Origami::MovetableController < BaseOrigamiController booking.booking_orders.each do |booking_order| order = Order.find(booking_order.order_id) if order.status == 'new' - order.order_items.each do |order_item| - order_items.push(order_item) - end + oqs = OrderQueueStation.new + oqs.process_order(order, change_from, order.source, 'move',change_to,current_user.name) + # order.order_items.each do |order_item| + # order_items.push(order_item) + # end end end end @@ -96,28 +98,28 @@ class Origami::MovetableController < BaseOrigamiController @get_type = Booking.update_dining_facility(booking_array,change_to,change_from) - if ENV["SERVER_MODE"] != "cloud" #no print in cloud server - # get printer info - @from = (DiningFacility.find(change_from)).name - @to = (DiningFacility.find(change_to)).name - @type = (DiningFacility.find(change_to)).type - @moved_by = @current_user.name - @date = DateTime.now - @shop = Shop.first - unique_code = "MoveTablePdf" - pdf_no = PrintSetting.where(:unique_code => unique_code).count - #print_settings = PrintSetting.find_by_unique_code(unique_code) - printer_array = [] - printer_array = PrintSetting.where(:unique_code => unique_code) + # if ENV["SERVER_MODE"] != "cloud" #no print in cloud server + # # get printer info + # @from = (DiningFacility.find(change_from)).name + # @to = (DiningFacility.find(change_to)).name + # @type = (DiningFacility.find(change_to)).type + # @moved_by = @current_user.name + # @date = DateTime.now + # @shop = Shop.first + # unique_code = "MoveTablePdf" + # pdf_no = PrintSetting.where(:unique_code => unique_code).count + # #print_settings = PrintSetting.find_by_unique_code(unique_code) + # printer_array = [] + # printer_array = PrintSetting.where(:unique_code => unique_code) - for i in 0..pdf_no - if i != pdf_no - print_settings = printer_array[i] - printer = Printer::ReceiptPrinter.new(print_settings) - printer.print_move_table(print_settings,@to,@from ,@shop,@date,@type,@moved_by,order_items) - end - end - end + # for i in 0..pdf_no + # if i != pdf_no + # print_settings = printer_array[i] + # printer = Printer::ReceiptPrinter.new(print_settings) + # printer.print_move_table(print_settings,@to,@from ,@shop,@date,@type,@moved_by,order_items) + # end + # end + # end type = 'move' from = getCloudDomain #get sub domain in cloud mode diff --git a/app/models/order_queue_station.rb b/app/models/order_queue_station.rb index 2f0b947d..a275d420 100755 --- a/app/models/order_queue_station.rb +++ b/app/models/order_queue_station.rb @@ -14,7 +14,7 @@ class OrderQueueStation < ApplicationRecord # validations validates_presence_of :station_name, :printer_name - def process_order (order, table_id, order_source = nil) + def process_order (order, table_id, order_source = nil, pdf_status = nil ,change_to=nil,current_user=nil) oqs_stations = OrderQueueStation.active @@ -59,9 +59,9 @@ class OrderQueueStation < ApplicationRecord if oqs.auto_print && order_source != "quick_service" if oqs_order_items.length > 0 if oqs.cut_per_item - print_slip_item(oqs, order, oqs_order_items) + print_slip_item(oqs, order, oqs_order_items,pdf_status,change_to,current_user,table_id) else - print_slip(oqs, order, oqs_order_items) + print_slip(oqs, order, oqs_order_items,pdf_status,change_to,current_user,table_id) end is_auto_printed = true end @@ -98,9 +98,9 @@ class OrderQueueStation < ApplicationRecord if oqs.auto_print && order_source != "quick_service" if oqs_order_items.length > 0 if oqs.cut_per_item - print_slip_item(oqs, order, oqs_order_items) + print_slip_item(oqs, order, oqs_order_items,pdf_status,change_to,current_user,table_id) else - print_slip(oqs, order, oqs_order_items) + print_slip(oqs, order, oqs_order_items,pdf_status,change_to,current_user,table_id) end is_auto_printed = true end @@ -207,82 +207,107 @@ class OrderQueueStation < ApplicationRecord private #Print order_items in 1 slip - def print_slip(oqs, order, order_items) - printer = PrintSetting.all.order("id ASC") - unique_code="OrderSummaryPdf" + def print_slip(oqs, order, order_items ,pdf_status=nil,change_to=nil,current_user=nil,table_id=nil) + if pdf_status.nil? + printer = PrintSetting.all.order("id ASC") + unique_code="OrderSummaryPdf" - if !printer.empty? - printer.each do |printer_setting| - if printer_setting.unique_code == 'OrderSummaryPdf' - unique_code="OrderSummaryPdf" - elsif printer_setting.unique_code == 'OrderSummarySlimPdf' - unique_code="OrderSummarySlimPdf" - elsif printer_setting.unique_code == 'OrderSummarySetPdf' - unique_code="OrderSummarySetPdf" - elsif printer_setting.unique_code == 'OrderSummaryCustomisePdf' - unique_code="OrderSummaryCustomisePdf" - elsif printer_setting.unique_code == 'OrderSummarySetCustomisePdf' - unique_code="OrderSummarySetCustomisePdf" - elsif printer_setting.unique_code == 'OrderSummarySlimCustomisePdf' - unique_code="OrderSummarySlimCustomisePdf" - end - end - end + if !printer.empty? + printer.each do |printer_setting| + if printer_setting.unique_code == 'OrderSummaryPdf' + unique_code="OrderSummaryPdf" + elsif printer_setting.unique_code == 'OrderSummarySlimPdf' + unique_code="OrderSummarySlimPdf" + elsif printer_setting.unique_code == 'OrderSummarySetPdf' + unique_code="OrderSummarySetPdf" + elsif printer_setting.unique_code == 'OrderSummaryCustomisePdf' + unique_code="OrderSummaryCustomisePdf" + elsif printer_setting.unique_code == 'OrderSummarySetCustomisePdf' + unique_code="OrderSummarySetCustomisePdf" + elsif printer_setting.unique_code == 'OrderSummarySlimCustomisePdf' + unique_code="OrderSummarySlimCustomisePdf" + end + end + end - 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="") + 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="") - assigned =AssignedOrderItem.where("order_id = '#{ order.order_id }'").pluck(:assigned_order_item_id) - AssignedOrderItem.where('assigned_order_item_id IN (?)', assigned).update_all(print_status: true) - # assigned_items =AssignedOrderItem.where("order_id = '#{ order.order_id }'") - - # assigned_items.each do |ai| - # # update print status for order items - # ai.print_status=true - # ai.save - # end + assigned =AssignedOrderItem.where("order_id = '#{ order.order_id }'").pluck(:assigned_order_item_id) + AssignedOrderItem.where('assigned_order_item_id IN (?)', assigned).update_all(print_status: true) + + else + move_print_pdf(change_to,current_user,table_id,order_items) + end + end #Print order_item in 1 slip per item - def print_slip_item(oqs, order, assigned_items) - printer = PrintSetting.all.order("id ASC") - unique_code="OrderItemPdf" + def print_slip_item(oqs, order, assigned_items,pdf_status=nil,change_to=nil,current_user=nil,table_id=nil) + + if pdf_status.nil? + printer = PrintSetting.all.order("id ASC") + unique_code="OrderItemPdf" - if !printer.empty? - printer.each do |printer_setting| - if printer_setting.unique_code == 'OrderItemPdf' - unique_code="OrderItemPdf" - elsif printer_setting.unique_code == 'OrderItemSlimPdf' - unique_code="OrderItemSlimPdf" - elsif printer_setting.unique_code == 'OrderSetItemPdf' - unique_code="OrderSetItemPdf" - elsif printer_setting.unique_code == 'OrderItemCustomisePdf' - unique_code="OrderItemCustomisePdf" - elsif printer_setting.unique_code == 'OrderSetItemCustomisePdf' - unique_code="OrderSetItemCustomisePdf" - elsif printer_setting.unique_code == 'OrderItemSlimCustomisePdf' - unique_code="OrderItemSlimCustomisePdf" + if !printer.empty? + printer.each do |printer_setting| + if printer_setting.unique_code == 'OrderItemPdf' + unique_code="OrderItemPdf" + elsif printer_setting.unique_code == 'OrderItemSlimPdf' + unique_code="OrderItemSlimPdf" + elsif printer_setting.unique_code == 'OrderSetItemPdf' + unique_code="OrderSetItemPdf" + elsif printer_setting.unique_code == 'OrderItemCustomisePdf' + unique_code="OrderItemCustomisePdf" + elsif printer_setting.unique_code == 'OrderSetItemCustomisePdf' + unique_code="OrderSetItemCustomisePdf" + elsif printer_setting.unique_code == 'OrderItemSlimCustomisePdf' + unique_code="OrderItemSlimCustomisePdf" + end + end + end + + # 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) + if !assigned_items.nil? + assigned_items.each do |order_item| + order_queue_printer.print_order_item(print_settings, oqs,order_item.order_id, order_item.order_items_id, print_status="" ) + end + end + + assigned =AssignedOrderItem.where("order_id = '#{ order.order_id }'").pluck(:assigned_order_item_id) + AssignedOrderItem.where('assigned_order_item_id IN (?)', assigned).update_all(print_status: true) + else + move_print_pdf(change_to,current_user,table_id,assigned_items) + end + + end + + def move_print_pdf(change_to,current_user,change_from,order_items) + if ENV["SERVER_MODE"] != "cloud" #no print in cloud server + # get printer info + @from = (DiningFacility.find(change_from)).name + @to = (DiningFacility.find(change_to)).name + @type = (DiningFacility.find(change_to)).type + @moved_by = current_user + @date = DateTime.now + @shop = Shop.first + unique_code = "MoveTablePdf" + pdf_no = PrintSetting.where(:unique_code => unique_code).count + #print_settings = PrintSetting.find_by_unique_code(unique_code) + printer_array = [] + printer_array = PrintSetting.where(:unique_code => unique_code) + + for i in 0..pdf_no + if i != pdf_no + print_settings = printer_array[i] + printer = Printer::ReceiptPrinter.new(print_settings) + printer.print_move_table(print_settings,@to,@from ,@shop,@date,@type,@moved_by,order_items) end - end + end end - - # 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) - if !assigned_items.nil? - assigned_items.each do |order_item| - order_queue_printer.print_order_item(print_settings, oqs,order_item.order_id, order_item.order_items_id, print_status="" ) - end - end - # update print status for completed same order items - # AssignedOrderItem.where("order_id = '#{ order.order_id }'").update_all(print_status: true) - # AssignedOrderItem.where("order_id = '#{ order.order_id }'").find_each do |ai| - # ai.print_status=true - # ai.save - # end - assigned =AssignedOrderItem.where("order_id = '#{ order.order_id }'").pluck(:assigned_order_item_id) - AssignedOrderItem.where('assigned_order_item_id IN (?)', assigned).update_all(print_status: true) end end