This commit is contained in:
code2lab
2019-06-03 11:44:37 +06:30
parent 90141e33a0
commit 6d457c1da4

View File

@@ -1,22 +1,22 @@
class Printer::OrderQueuePrinter < Printer::PrinterWorker class Printer::OrderQueuePrinter < Printer::PrinterWorker
def print_order_item(print_settings,oqs, order_id, order_item_id, print_status, before_updated_qty="", options="") def print_order_item(print_settings,oqs, order_id, order_item_id, print_status, before_updated_qty="", options="")
# Must be one print # Must be one print
if print_settings.print_copies == 0 if print_settings.print_copies == 0
print_settings.print_copies = 1 print_settings.print_copies = 1
print_settings.save! print_settings.save!
end end
order_item = print_query('order_item', order_item_id) #OrderItem.find_by_item_code(item_code) order_item = print_query('order_item', order_item_id) #OrderItem.find_by_item_code(item_code)
options = order_item[0].options options = order_item[0].options
# 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) pdf = OrderItemPdf.new(print_settings,order_item[0], print_status, options, oqs.use_alternate_name, before_updated_qty)
print_setting = PrintSetting.all print_setting = PrintSetting.all
# check for item not to show # check for item not to show
# if order_item[0].price != 0 # if order_item[0].price != 0
if !print_setting.empty? if !print_setting.empty?
print_setting.each do |print_settings| print_setting.each do |print_settings|
if print_settings.unique_code == 'OrderItemPdf' if print_settings.unique_code == 'OrderItemPdf'
@@ -29,7 +29,7 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker
pdf = OrderSetItemPdf.new(print_settings,order_item[0], print_status, options, oqs.use_alternate_name, before_updated_qty) pdf = OrderSetItemPdf.new(print_settings,order_item[0], print_status, options, oqs.use_alternate_name, before_updated_qty)
elsif print_settings.unique_code == 'OrderItemCustomisePdf' elsif print_settings.unique_code == 'OrderItemCustomisePdf'
pdf = OrderItemCustomisePdf.new(print_settings,order_item[0], print_status, options, oqs.use_alternate_name, before_updated_qty) pdf = OrderItemCustomisePdf.new(print_settings,order_item[0], print_status, options, oqs.use_alternate_name, before_updated_qty)
elsif print_settings.unique_code == 'OrderSetItemCustomisePdf' elsif print_settings.unique_code == 'OrderSetItemCustomisePdf'
pdf = OrderSetItemCustomisePdf.new(print_settings,order_item[0], print_status, options, oqs.use_alternate_name, before_updated_qty) pdf = OrderSetItemCustomisePdf.new(print_settings,order_item[0], print_status, options, oqs.use_alternate_name, before_updated_qty)
elsif print_settings.unique_code == 'OrderItemSlimCustomisePdf' elsif print_settings.unique_code == 'OrderItemSlimCustomisePdf'
pdf = OrderItemSlimCustomisePdf.new(print_settings,order_item[0], print_status, options, oqs.use_alternate_name, before_updated_qty) pdf = OrderItemSlimCustomisePdf.new(print_settings,order_item[0], print_status, options, oqs.use_alternate_name, before_updated_qty)
@@ -42,15 +42,15 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker
directory_name = 'public/orders_'+shop.shop_code directory_name = 'public/orders_'+shop.shop_code
Dir.mkdir(directory_name) unless File.exists?(directory_name) Dir.mkdir(directory_name) unless File.exists?(directory_name)
filename = directory_name + "/order_item_#{order_id}_#{order_item_id}" + ".pdf" filename = directory_name + "/order_item_#{order_id}_#{order_item_id}" + ".pdf"
pdf.render_file filename
pdf.render_file filename
if oqs.print_copy if oqs.print_copy
#no print in cloud server #no print in cloud server
if ENV["SERVER_MODE"] != "cloud" if ENV["SERVER_MODE"] != "cloud"
self.print(filename, oqs.printer_name) self.print(filename, oqs.printer_name)
end end
#For print copy #For print copy
# pdf.render_file filename.gsub(".","-copy.") # pdf.render_file filename.gsub(".","-copy.")
# self.print(filename.gsub(".","-copy."), oqs.printer_name) # self.print(filename.gsub(".","-copy."), oqs.printer_name)
@@ -61,24 +61,24 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker
if ENV["SERVER_MODE"] != "cloud" if ENV["SERVER_MODE"] != "cloud"
self.print(filename, oqs.printer_name) self.print(filename, oqs.printer_name)
end end
end end
return filename, order_id, oqs.printer_name return filename, order_id, oqs.printer_name
end end
# Query for per order # Query for per order
def print_order_summary(print_settings,oqs, order_id, order_items, print_status, before_updated_qty="", options="") def print_order_summary(print_settings,oqs, order_id, order_items, print_status, before_updated_qty="", options="")
#Use CUPS service #Use CUPS service
#Generate PDF #Generate PDF
#Print #Print
# Must be one print # Must be one print
if print_settings.print_copies == 0 if print_settings.print_copies == 0
print_settings.print_copies = 1 print_settings.print_copies = 1
print_settings.save! print_settings.save!
end end
print_setting = PrintSetting.all.order("id ASC") print_setting = PrintSetting.all.order("id ASC")
order=print_query('order_summary', order_id) order=print_query('order_summary', order_id)
shop = Shop.first shop = Shop.first
directory_name = 'public/orders_'+shop.shop_code directory_name = 'public/orders_'+shop.shop_code
@@ -90,12 +90,12 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker
order_items.each do|odi| order_items.each do|odi|
odi_item=print_query('order_item', odi.order_items_id) odi_item=print_query('order_item', odi.order_items_id)
filename = directory_name + "/order_item_#{order_id}" + ".pdf" filename = directory_name + "/order_item_#{order_id}" + ".pdf"
# filename = "tmp/order_item_#{order_id}" + ".pdf" # filename = "tmp/order_item_#{order_id}" + ".pdf"
# For Item Options # For Item Options
options = odi.options == "[]"? "" : odi.options options = odi.options == "[]"? "" : odi.options
# check for item not to show # check for item not to show
#if odi.price != 0 #if odi.price != 0
pdf = OrderItemPdf.new(print_settings,odi_item[0], print_status, options, oqs.use_alternate_name,before_updated_qty) pdf = OrderItemPdf.new(print_settings,odi_item[0], print_status, options, oqs.use_alternate_name,before_updated_qty)
if !print_setting.empty? if !print_setting.empty?
@@ -103,7 +103,7 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker
if print_settings.unique_code == 'OrderItemPdf' if print_settings.unique_code == 'OrderItemPdf'
pdf = OrderItemPdf.new(print_settings,odi_item[0], print_status, options, oqs.use_alternate_name,before_updated_qty) pdf = OrderItemPdf.new(print_settings,odi_item[0], print_status, options, oqs.use_alternate_name,before_updated_qty)
elsif print_settings.unique_code == 'OrderItemStarPdf' elsif print_settings.unique_code == 'OrderItemStarPdf'
pdf = OrderItemStarPdfnew(print_settings,order_item[0], print_status, options, oqs.use_alternate_name, before_updated_qty) pdf = OrderItemStarPdf.new(print_settings,order_item[0], print_status, options, oqs.use_alternate_name, before_updated_qty)
elsif print_settings.unique_code == 'OrderItemSlimPdf' elsif print_settings.unique_code == 'OrderItemSlimPdf'
pdf = OrderItemSlimPdf.new(print_settings,odi_item[0], print_status, options, oqs.use_alternate_name,before_updated_qty) pdf = OrderItemSlimPdf.new(print_settings,odi_item[0], print_status, options, oqs.use_alternate_name,before_updated_qty)
elsif print_settings.unique_code == 'OrderSetItemPdf' elsif print_settings.unique_code == 'OrderSetItemPdf'
@@ -116,13 +116,13 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker
pdf = OrderItemSlimCustomisePdf.new(print_settings,odi_item[0], print_status, options, oqs.use_alternate_name,before_updated_qty) pdf = OrderItemSlimCustomisePdf.new(print_settings,odi_item[0], print_status, options, oqs.use_alternate_name,before_updated_qty)
end end
end end
end end
# pdf.render_file "tmp/order_item.pdf" # pdf.render_file "tmp/order_item.pdf"
pdf.render_file filename pdf.render_file filename
if oqs.print_copy if oqs.print_copy
#no print in cloud server #no print in cloud server
if ENV["SERVER_MODE"] != "cloud" if ENV["SERVER_MODE"] != "cloud"
self.print(filename, oqs.printer_name) self.print(filename, oqs.printer_name)
# self.print(filename.gsub(".","-copy."), oqs.printer_name) # self.print(filename.gsub(".","-copy."), oqs.printer_name)
end end
@@ -134,11 +134,11 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker
self.print(filename, oqs.printer_name) self.print(filename, oqs.printer_name)
end end
end end
#end #end
end end
# For Print Order Summary # For Print Order Summary
else else
filename = directory_name + "/order_summary_#{order_id}" + ".pdf" filename = directory_name + "/order_summary_#{order_id}" + ".pdf"
# filename = "tmp/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) pdf = OrderSummaryPdf.new(print_settings,order, print_status, order_items, oqs.use_alternate_name,before_updated_qty)
if !print_setting.empty? if !print_setting.empty?
@@ -157,14 +157,14 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker
pdf = OrderSummarySlimCustomisePdf.new(print_settings,order, print_status, order_items, oqs.use_alternate_name,before_updated_qty) pdf = OrderSummarySlimCustomisePdf.new(print_settings,order, print_status, order_items, oqs.use_alternate_name,before_updated_qty)
end end
end end
end end
pdf.render_file filename pdf.render_file filename
if oqs.print_copy if oqs.print_copy
#no print in cloud server #no print in cloud server
if ENV["SERVER_MODE"] != "cloud" if ENV["SERVER_MODE"] != "cloud"
self.print(filename, oqs.printer_name) self.print(filename, oqs.printer_name)
end end
#For print copy #For print copy
# pdf.render_file filename.gsub(".","-copy.") # pdf.render_file filename.gsub(".","-copy.")
# self.print(filename.gsub(".","-copy."), oqs.printer_name) # self.print(filename.gsub(".","-copy."), oqs.printer_name)
@@ -172,7 +172,7 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker
print_settings.print_copies = 1 print_settings.print_copies = 1
print_settings.save! print_settings.save!
#no print in cloud server #no print in cloud server
if ENV["SERVER_MODE"] != "cloud" if ENV["SERVER_MODE"] != "cloud"
self.print(filename, oqs.printer_name) self.print(filename, oqs.printer_name)
end end
end end
@@ -182,11 +182,11 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker
# Print for orders in booking # 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 # Must be one print
if print_settings.print_copies == 0 if print_settings.print_copies == 0
print_settings.print_copies = 1 print_settings.print_copies = 1
print_settings.save! print_settings.save!
end end
print_setting = PrintSetting.all.order("id ASC") print_setting = PrintSetting.all.order("id ASC")
@@ -204,9 +204,9 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker
# For Item Options # For Item Options
options = odi.options == "[]"? "" : odi.options options = odi.options == "[]"? "" : odi.options
# check for item not to show # check for item not to show
#if odi.price != 0 #if odi.price != 0
pdf = OrderItemPdf.new(print_settings,odi, print_status, options,oqs.use_alternate_name,before_updated_qty) pdf = OrderItemPdf.new(print_settings,odi, print_status, options,oqs.use_alternate_name,before_updated_qty)
if !print_setting.empty? if !print_setting.empty?
print_setting.each do |print_settings| print_setting.each do |print_settings|
if print_settings.unique_code == 'OrderItemPdf' if print_settings.unique_code == 'OrderItemPdf'
@@ -225,12 +225,12 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker
pdf = OrderItemSlimCustomisePdf.new(print_settings,odi, print_status, options,oqs.use_alternate_name,before_updated_qty) pdf = OrderItemSlimCustomisePdf.new(print_settings,odi, print_status, options,oqs.use_alternate_name,before_updated_qty)
end end
end end
end end
pdf.render_file filename pdf.render_file filename
if oqs.print_copy if oqs.print_copy
#no print in cloud server #no print in cloud server
if ENV["SERVER_MODE"] != "cloud" if ENV["SERVER_MODE"] != "cloud"
self.print(filename, oqs.printer_name) self.print(filename, oqs.printer_name)
end end
#For print copy #For print copy
@@ -240,16 +240,16 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker
print_settings.print_copies = 1 print_settings.print_copies = 1
print_settings.save! print_settings.save!
#no print in cloud server #no print in cloud server
if ENV["SERVER_MODE"] != "cloud" if ENV["SERVER_MODE"] != "cloud"
self.print(filename, oqs.printer_name) self.print(filename, oqs.printer_name)
end end
end end
#end #end
end end
# For Print Order Summary # For Print Order Summary
else else
# filename = "tmp/booking_summary_#{booking_id}" + ".pdf" # filename = "tmp/booking_summary_#{booking_id}" + ".pdf"
filename = directory_name + "/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) pdf = OrderSummaryPdf.new(print_settings,order, print_status,oqs.use_alternate_name,before_updated_qty)
if !print_setting.empty? if !print_setting.empty?
@@ -268,12 +268,12 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker
pdf = OrderSummarySlimCustomisePdf.new(print_settings,order, print_status,oqs.use_alternate_name,before_updated_qty) pdf = OrderSummarySlimCustomisePdf.new(print_settings,order, print_status,oqs.use_alternate_name,before_updated_qty)
end end
end end
end end
pdf.render_file filename pdf.render_file filename
if oqs.print_copy if oqs.print_copy
#no print in cloud server #no print in cloud server
if ENV["SERVER_MODE"] != "cloud" if ENV["SERVER_MODE"] != "cloud"
self.print(filename, oqs.printer_name) self.print(filename, oqs.printer_name)
end end
#For print copy #For print copy
@@ -283,7 +283,7 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker
print_settings.print_copies = 1 print_settings.print_copies = 1
print_settings.save! print_settings.save!
#no print in cloud server #no print in cloud server
if ENV["SERVER_MODE"] != "cloud" if ENV["SERVER_MODE"] != "cloud"
self.print(filename, oqs.printer_name) self.print(filename, oqs.printer_name)
end end
end end
@@ -295,7 +295,7 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker
def print_query(type, id) def print_query(type, id)
if type == "order_item" if type == "order_item"
OrderItem.select("order_items.order_id, order_items.item_code, order_items.item_name, order_items.qty, order_items.price, order_items.options, order_items.item_order_by as order_by, order_items.created_at as order_at, order_items.set_menu_items, cus.name as customer, df.type, df.name as dining,item.alt_name as alt_name") OrderItem.select("order_items.order_id, order_items.item_code, order_items.item_name, order_items.qty, order_items.price, order_items.options, order_items.item_order_by as order_by, order_items.created_at as order_at, order_items.set_menu_items, cus.name as customer, df.type, df.name as dining,item.alt_name as alt_name")
.joins("left join orders ON orders.order_id = order_items.order_id .joins("left join orders ON orders.order_id = order_items.order_id
left join booking_orders AS bo ON bo.order_id=order_items.order_id left join booking_orders AS bo ON bo.order_id=order_items.order_id
left join bookings AS b ON b.booking_id = bo.booking_id left join bookings AS b ON b.booking_id = bo.booking_id
left join dining_facilities AS df ON df.id = b.dining_facility_id left join dining_facilities AS df ON df.id = b.dining_facility_id
@@ -303,7 +303,7 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker
left join menu_items as item ON item.item_code = order_items.item_code") left join menu_items as item ON item.item_code = order_items.item_code")
.where("order_items.order_items_id = '#{ id }'") .where("order_items.order_items_id = '#{ id }'")
.group("order_items.item_code") .group("order_items.item_code")
elsif type == "order_summary" elsif type == "order_summary"
OrderItem.select("order_items.order_id, order_items.item_code, order_items.item_name, order_items.qty, order_items.price, order_items.options, order_items.item_order_by as order_by, order_items.created_at as order_at, order_items.set_menu_items, cus.name as customer, df.type, df.name as dining,item.alt_name as alt_name") OrderItem.select("order_items.order_id, order_items.item_code, order_items.item_name, order_items.qty, order_items.price, order_items.options, order_items.item_order_by as order_by, order_items.created_at as order_at, order_items.set_menu_items, cus.name as customer, df.type, df.name as dining,item.alt_name as alt_name")
.joins("left join orders ON orders.order_id = order_items.order_id .joins("left join orders ON orders.order_id = order_items.order_id
left join booking_orders AS bo ON bo.order_id=order_items.order_id left join booking_orders AS bo ON bo.order_id=order_items.order_id
@@ -313,7 +313,7 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker
left join menu_items as item ON item.item_code = order_items.item_code") left join menu_items as item ON item.item_code = order_items.item_code")
.where("orders.order_id = '#{ id }'") .where("orders.order_id = '#{ id }'")
.group("order_items.order_items_id") .group("order_items.order_items_id")
else else
# order summary for booking # order summary for booking
OrderItem.select("order_items.order_id, order_items.item_code, order_items.item_name, order_items.qty, order_items.price, order_items.options, order_items.item_order_by as order_by, order_items.created_at as order_at, order_items.set_menu_items, cus.name as customer, df.type, df.name as dining,item.alt_name as alt_name") OrderItem.select("order_items.order_id, order_items.item_code, order_items.item_name, order_items.qty, order_items.price, order_items.options, order_items.item_order_by as order_by, order_items.created_at as order_at, order_items.set_menu_items, cus.name as customer, df.type, df.name as dining,item.alt_name as alt_name")
.joins("left join orders ON orders.order_id = order_items.order_id .joins("left join orders ON orders.order_id = order_items.order_id
@@ -322,7 +322,7 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker
left join dining_facilities AS df ON df.id = b.dining_facility_id left join dining_facilities AS df ON df.id = b.dining_facility_id
left join customers as cus ON cus.customer_id = orders.customer_id left join customers as cus ON cus.customer_id = orders.customer_id
left join menu_items as item ON item.item_code = order_items.item_code") left join menu_items as item ON item.item_code = order_items.item_code")
.where("b.booking_id = '#{ id }'") .where("b.booking_id = '#{ id }'")
end end
end end
@@ -332,12 +332,12 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker
#Generate PDF #Generate PDF
#Print #Print
sale_id = booking.sale_id sale_id = booking.sale_id
filename = "tmp/check_in_out_#{sale_id}" + ".pdf" filename = "tmp/check_in_out_#{sale_id}" + ".pdf"
pdf = CheckInOutPdf.new(print_settings,booking, table) pdf = CheckInOutPdf.new(print_settings,booking, table)
print_setting = PrintSetting.all print_setting = PrintSetting.all
# if order_item[0].price != 0 # if order_item[0].price != 0
if !print_setting.empty? if !print_setting.empty?
print_setting.each do |print_settings| print_setting.each do |print_settings|
if print_settings.unique_code == 'CheckInOutPdf' if print_settings.unique_code == 'CheckInOutPdf'
@@ -346,9 +346,9 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker
end end
end end
pdf.render_file filename pdf.render_file filename
# Must be one print # Must be one print
if print_settings.print_copies == 0 if print_settings.print_copies == 0
print_settings.print_copies = 1 print_settings.print_copies = 1
print_settings.save! print_settings.save!
@@ -357,8 +357,8 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker
# print_settings.save! # print_settings.save!
#no print in cloud server #no print in cloud server
if ENV["SERVER_MODE"] != "cloud" if ENV["SERVER_MODE"] != "cloud"
self.print(filename, print_settings.printer_name) self.print(filename, print_settings.printer_name)
end end
end end
end end