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,order_id) #Use CUPS service #Generate PDF #Print order=print_query('order_summary',order_id) filename = "tmp/order_summary_#{order_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.qty, order_items.price, 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.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 dining_facilities AS df ON df.dining_facility_id = b.dining_facility_id left join customers as cus ON cus.customer_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, order_items.qty, order_items.price, 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.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 dining_facilities AS df ON df.dining_facility_id = b.dining_facility_id left join customers as cus ON cus.customer_id = orders.customer_id") .where("orders.order_id=" + code.to_s) .group("order_items.item_code") end end end