47 lines
1.9 KiB
Ruby
47 lines
1.9 KiB
Ruby
class Printer::OrderQueuePrinter < Printer::PrinterWorker
|
|
|
|
def print_order_item(printer_settings,order_id, item_code)
|
|
#Use CUPS service
|
|
#Generate PDF
|
|
#Print
|
|
order_item= print_query('order_item', item_code) #OrderItem.find_by_item_code(item_code)
|
|
pdf = OrderItemPdf.new(order_item[0],printer_settings)
|
|
pdf.render_file "tmp/receipt.pdf"
|
|
self.print("tmp/receipt.pdf")
|
|
end
|
|
|
|
def print_order_summary(printer_settings,booking_id)
|
|
#Use CUPS service
|
|
#Generate PDF
|
|
#Print
|
|
order=print_query('booking',booking_id)
|
|
filename = "tmp/order_summary_#{booking_id}" + ".pdf"
|
|
pdf = OrderSummaryPdf.new(order,printer_settings)
|
|
pdf.render_file filename
|
|
|
|
self.print(filename)
|
|
end
|
|
|
|
# Query for OQS with status
|
|
def print_query(type, code)
|
|
if type == 'order_item'
|
|
OrderItem.select("order_items.item_code, order_items.item_name,order_items.item_order_by as order_by, order_items.created_at as order_at, cus.name as customer, df.name as dining")
|
|
.joins("left join orders ON orders.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.id = bo.booking_id
|
|
left join dining_facilities AS df ON df.id = b.dining_facility_id
|
|
left join customers as cus ON cus.id = orders.customer_id")
|
|
.where("order_items.item_code=" + code)
|
|
.group("order_items.item_code")
|
|
else
|
|
OrderItem.select("order_items.item_code, order_items.item_name, df.name as dining")
|
|
.joins("left join orders ON orders.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.id = bo.booking_id
|
|
left join dining_facilities AS df ON df.id = b.dining_facility_id")
|
|
.where("booking.id=" + code)
|
|
end
|
|
|
|
end
|
|
end
|