add options in oqs

This commit is contained in:
Yan
2017-06-22 17:32:13 +06:30
parent b30d81508c
commit 7bf2499e83
8 changed files with 62 additions and 44 deletions

View File

@@ -112,7 +112,8 @@ $(document).ready(function(){
// Print Order Item // Print Order Item
$('#print_order_item').on('click',function(){ $('#print_order_item').on('click',function(){
var assigned_item_id = $('.selected-item').children('.card-block').children('.assigned-order-item').text(); var assigned_item_id = $('.selected-item').children('.card-block').children('.assigned-order-item').text();
var params = { 'id':assigned_item_id }; var options = $('.selected-item').children('.card-block').find('.item-options').text();
var params = { 'options':options };
$.ajax({ $.ajax({
type: 'GET', type: 'GET',
url: '/oqs/print/print/'+assigned_item_id, url: '/oqs/print/print/'+assigned_item_id,

View File

@@ -93,7 +93,8 @@ class Crm::CustomersController < BaseCrmController
:headers => { :headers => {
'Content-Type' => 'application/json', 'Content-Type' => 'application/json',
'Accept' => 'application/json' 'Accept' => 'application/json'
} },
:timeout => 10
) )
rescue Net::OpenTimeout rescue Net::OpenTimeout
response = { status: false } response = { status: false }
@@ -163,7 +164,8 @@ end
:headers => { :headers => {
'Content-Type' => 'application/json', 'Content-Type' => 'application/json',
'Accept' => 'application/json' 'Accept' => 'application/json'
} },
:timeout => 10
) )
rescue Net::OpenTimeout rescue Net::OpenTimeout
response = { status: false } response = { status: false }

View File

@@ -3,6 +3,7 @@ class Oqs::PrintController < ApplicationController
def print def print
unique_code="OrderItemPdf" unique_code="OrderItemPdf"
assigned_item_id = params[:id] assigned_item_id = params[:id]
options = params[:options]
assigned_item = AssignedOrderItem.find(assigned_item_id) assigned_item = AssignedOrderItem.find(assigned_item_id)
assigned_items = AssignedOrderItem.where("item_code='" + assigned_item.item_code + "' AND " + "order_id='" + assigned_item.order_id + "'"); assigned_items = AssignedOrderItem.where("item_code='" + assigned_item.item_code + "' AND " + "order_id='" + assigned_item.order_id + "'");
@@ -15,7 +16,7 @@ class Oqs::PrintController < ApplicationController
# print when complete click # print when complete click
print_settings = PrintSetting.find_by_unique_code(unique_code) print_settings = PrintSetting.find_by_unique_code(unique_code)
order_queue_printer = Printer::OrderQueuePrinter.new(print_settings) order_queue_printer = Printer::OrderQueuePrinter.new(print_settings)
order_queue_printer.print_order_item(oqs, assigned_item.order_id, assigned_item.item_code, print_status ) order_queue_printer.print_order_item(oqs, assigned_item.order_id, assigned_item.item_code, print_status, options )
# update print status for completed same order items # update print status for completed same order items
assigned_items.each do |ai| assigned_items.each do |ai|

View File

@@ -1,13 +1,13 @@
class Printer::OrderQueuePrinter < Printer::PrinterWorker class Printer::OrderQueuePrinter < Printer::PrinterWorker
def print_order_item(oqs,order_id, item_code, print_status) def print_order_item(oqs,order_id, item_code, print_status, options="")
#Use CUPS service #Use CUPS service
#Generate PDF #Generate PDF
#Print #Print
order_item = print_query('order_item', item_code) #OrderItem.find_by_item_code(item_code) order_item = print_query('order_item', item_code) #OrderItem.find_by_item_code(item_code)
filename = "tmp/order_item_#{order_item[0].item_name}" + ".pdf" filename = "tmp/order_item_#{order_item[0].item_name}" + ".pdf"
pdf = OrderItemPdf.new(order_item[0], print_status) pdf = OrderItemPdf.new(order_item[0], print_status, options)
pdf.render_file filename pdf.render_file filename
if oqs.print_copy if oqs.print_copy
@@ -31,7 +31,9 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker
if oqs.cut_per_item if oqs.cut_per_item
order.each do|odi| order.each do|odi|
filename = "tmp/order_item_#{odi.item_name}" + ".pdf" filename = "tmp/order_item_#{odi.item_name}" + ".pdf"
pdf = OrderItemPdf.new(odi, print_status) # For Item Options
options = odi.options == "[]"? "" : odi.options
pdf = OrderItemPdf.new(odi, print_status, options)
# 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
@@ -65,7 +67,10 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker
if oqs.cut_per_item if oqs.cut_per_item
order.each do|odi| order.each do|odi|
filename = "tmp/order_item_#{odi.item_name}" + ".pdf" filename = "tmp/order_item_#{odi.item_name}" + ".pdf"
pdf = OrderItemPdf.new(odi, print_status) # For Item Options
options = odi.options == "[]"? "" : odi.options
pdf = OrderItemPdf.new(odi, print_status, options)
pdf.render_file filename pdf.render_file filename
if oqs.print_copy if oqs.print_copy
@@ -98,7 +103,7 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker
# Query for OQS with status # Query for OQS with status
def print_query(type, id) def print_query(type, id)
if type == "order_item" 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") OrderItem.select("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, cus.name as customer, df.name as dining")
.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
@@ -107,16 +112,17 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker
.where("order_items.item_code = '#{ id }'") .where("order_items.item_code = '#{ id }'")
.group("order_items.item_code") .group("order_items.item_code")
elsif type == "order_summary" elsif type == "order_summary"
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") OrderItem.select("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, cus.name as customer, df.name as dining")
.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
left join customers as cus ON cus.customer_id = orders.customer_id") left join customers as cus ON cus.customer_id = orders.customer_id")
.where("orders.order_id = '#{ id }'") .where("orders.order_id = '#{ id }'")
.group("order_items.order_items_id")
else else
# order summary for booking # order summary for booking
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") OrderItem.select("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, cus.name as customer, df.name as dining")
.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

View File

@@ -1,6 +1,6 @@
class OrderItemPdf < Prawn::Document class OrderItemPdf < Prawn::Document
attr_accessor :label_width,:price_column_width,:page_width, :page_height, :margin, :price_width, :item_width, :header_font_size, :item_font_size,:item_height,:qty_width,:total_width,:item_description_width attr_accessor :label_width,:price_column_width,:page_width, :page_height, :margin, :price_width, :item_width, :header_font_size, :item_font_size,:item_height,:qty_width,:total_width,:item_description_width
def initialize(order_item, print_status) def initialize(order_item, print_status, options)
self.page_width = 210 self.page_width = 210
self.page_height = 2500 self.page_height = 2500
self.margin = 5 self.margin = 5
@@ -29,7 +29,7 @@ class OrderItemPdf < Prawn::Document
order_info(order_item.order_by,order_item.order_at) order_info(order_item.order_by,order_item.order_at)
# order items # order items
order_items(order_item) order_items(order_item, options)
end end
# Write Order Information to PDF # Write Order Information to PDF
@@ -52,23 +52,11 @@ class OrderItemPdf < Prawn::Document
end end
# Write Order items to PDF # Write Order items to PDF
def order_items(order_item) def order_items(order_item, options)
y_position = cursor y_position = cursor
# No Need for Order Item
# bounding_box([0,y_position], :width => self.item_width, :height => self.item_height) do
# text "Item", :size => self.item_font_size,:align => :left
# end
# bounding_box([self.item_width,y_position], :width => self.qty_width, :height => self.item_height) do
# text "Qty", :size => self.item_font_size,:align => :right
# end
# stroke_horizontal_rule
# move_down 5
#Add Order Item #Add Order Item
add_order_items(order_item) add_order_items(order_item, options)
dash(1, :space => 1, :phase => 1) dash(1, :space => 1, :phase => 1)
stroke_horizontal_line 0, (self.page_width - self.margin) stroke_horizontal_line 0, (self.page_width - self.margin)
@@ -76,7 +64,7 @@ class OrderItemPdf < Prawn::Document
end end
# Add order items under order info # Add order items under order info
def add_order_items(order_item) def add_order_items(order_item, options)
y_position = cursor y_position = cursor
move_down 5 move_down 5
@@ -91,6 +79,14 @@ class OrderItemPdf < Prawn::Document
move_down 5 move_down 5
# add option
y_position = cursor
bounding_box([0,y_position], :width => self.item_width, :height => self.item_height) do
text "#{options}", :size => self.item_font_size,:align => :left
end
move_down 5
end end
end end

View File

@@ -92,6 +92,18 @@ class OrderSummaryPdf < Prawn::Document
end end
move_down 5 move_down 5
# add option
options = odi.options == "[]"? "" : odi.options
if options != ""
y_position = cursor
bounding_box([0,y_position], :width => self.item_width, :height => self.item_height) do
text "#{options}", :size => self.item_font_size,:align => :left
end
move_down 5
end
end end
end end

View File

@@ -50,7 +50,7 @@
</span> ] </span> ]
</h4> </h4>
<p class="card-text"><%= qid.options %></p> <p class="card-text item-options"><%= qid.options == "[]"? "" : qid.options %></p>
<p class="card-text"> <p class="card-text">
<small class="text-muted">Order at <small class="text-muted">Order at
@@ -100,7 +100,7 @@
</span> ] </span> ]
</h4> </h4>
<p class="card-text"><%= qid.options %></p> <p class="card-text item-options"><%= qid.options == "[]"? "" : qid.options %></p>
<p class="card-text"> <p class="card-text">
<small class="text-muted">Order at <small class="text-muted">Order at