From 06686b06bb479a6f8af173ec5b42f4344aa6c001 Mon Sep 17 00:00:00 2001 From: phyusin Date: Wed, 17 Jan 2018 12:08:14 +0630 Subject: [PATCH] add settings for order item, order summary slim and receiptbillA5, receiptbillShowAltName --- README.md | 12 ++- app/controllers/oqs/edit_controller.rb | 12 ++- app/controllers/oqs/print_controller.rb | 24 ++++-- app/models/order_queue_station.rb | 24 ++++-- app/models/printer/order_queue_printer.rb | 66 +++++++++++------ app/models/printer/receipt_printer.rb | 90 +++++++++++++++++------ app/pdf/receipt_bill_a5_pdf.rb | 27 +++++++ app/pdf/receipt_bill_pdf.rb | 27 +++++++ 8 files changed, 221 insertions(+), 61 deletions(-) diff --git a/README.md b/README.md index ec82b44a..743c89c6 100755 --- a/README.md +++ b/README.md @@ -44,8 +44,8 @@ For Extra Time For Order Item & Order Summary Slim *** change OrderItemPdf to OrderItemSlimPdf and OrderSummaryPdf to OrderSummarySlimPdf 1) settings/print_settings - 2) settings/lookups => { type:order_slim_pdf, name:OrderSlimPdf, value:1 } - * no need to change these page + 2) settings/lookups => { type:print_settings, name:OrderSlimPdf, value:1 } + * no need to change these files { app/controllers/oqs/edit_controller.rb app/controllers/oqs/print_controller.rb app/models/order_queue_station.rb @@ -53,6 +53,14 @@ For Order Item & Order Summary Slim app/models/printer/receipt_printer.rb } +For ReceiptBillA5Pdf + *** change ReceiptBillPdf to ReceiptBillA5Pdf + 1) settings/print_settings , width:680, height:1450 + 2) settings/lookups => { type:print_settings, name:ReceiptBillA5Pdf, value:1 } + +For ReceiptBillAltName options + 1) settings/lookups => { type:print_settings, name:ReceiptBillAltName, value:1 } + For Bank Integration setting 1) rake db:migrate for card_sale_trans, card_settle_trans 2) settings/lookups => { type:bank_integration, name: Bank Integration, value:1 } diff --git a/app/controllers/oqs/edit_controller.rb b/app/controllers/oqs/edit_controller.rb index 53a6bf53..1fe8c561 100755 --- a/app/controllers/oqs/edit_controller.rb +++ b/app/controllers/oqs/edit_controller.rb @@ -22,12 +22,18 @@ class Oqs::EditController < BaseOqsController # order queue stations oqs = assigned_item.order_queue_station - order_slim_pdf = Lookup.collection_of("order_slim_pdf") #order_slim_pdf + order_slim_pdf = Lookup.collection_of("print_settings") #print_settings with name:OrderSlimPdf unique_code="OrderItemPdf" if !order_slim_pdf.empty? - if order_slim_pdf[0][1] == '1' - unique_code="OrderItemSlimPdf" + order_slim_pdf.each do |order_item_slim| + if order_item_slim[0] == 'OrderSlimPdf' + if order_item_slim[1] == '1' + unique_code="OrderItemSlimPdf" + else + unique_code="OrderItemPdf" + end + end end end diff --git a/app/controllers/oqs/print_controller.rb b/app/controllers/oqs/print_controller.rb index 2007934c..a25f2531 100755 --- a/app/controllers/oqs/print_controller.rb +++ b/app/controllers/oqs/print_controller.rb @@ -2,12 +2,18 @@ class Oqs::PrintController < ApplicationController # Print Order Item def print if ENV["SERVER_MODE"] != "cloud" #no print in cloud server - order_slim_pdf = Lookup.collection_of("order_slim_pdf") #order_slim_pdf + order_slim_pdf = Lookup.collection_of("print_settings") #print_settings with name:OrderSlimPdf unique_code="OrderItemPdf" if !order_slim_pdf.empty? - if order_slim_pdf[0][1] == '1' - unique_code="OrderItemSlimPdf" + order_slim_pdf.each do |order_item_slim| + if order_item_slim[0] == 'OrderSlimPdf' + if order_item_slim[1] == '1' + unique_code="OrderItemSlimPdf" + else + unique_code="OrderItemPdf" + end + end end end @@ -39,11 +45,17 @@ class Oqs::PrintController < ApplicationController # Print Order Details with booking id def print_order_summary if ENV["SERVER_MODE"] != "cloud" #no print in cloud server - order_slim_pdf = Lookup.collection_of("order_slim_pdf") #order_slim_pdf + order_slim_pdf = Lookup.collection_of("print_settings") #print_settings with name:OrderSlimPdf unique_code="OrderSummaryPdf" if !order_slim_pdf.empty? - if order_slim_pdf[0][1] == '1' - unique_code="OrderSummarySlimPdf" + order_slim_pdf.each do |order_summary_slim| + if order_summary_slim[0] == 'OrderSlimPdf' + if order_summary_slim[1] == '1' + unique_code="OrderSummarySlimPdf" + else + unique_code="OrderSummaryPdf" + end + end end end diff --git a/app/models/order_queue_station.rb b/app/models/order_queue_station.rb index 445ec0cc..b95377df 100755 --- a/app/models/order_queue_station.rb +++ b/app/models/order_queue_station.rb @@ -102,11 +102,17 @@ class OrderQueueStation < ApplicationRecord private #Print order_items in 1 slip def print_slip(oqs, order, order_items) - order_slim_pdf = Lookup.collection_of("order_slim_pdf") #order_slim_pdf + order_slim_pdf = Lookup.collection_of("print_settings") #print_settings with name:OrderSlimPdf unique_code="OrderSummaryPdf" if !order_slim_pdf.empty? - if order_slim_pdf[0][1] == '1' - unique_code="OrderSummarySlimPdf" + order_slim_pdf.each do |order_summary_slim| + if order_summary_slim[0] == 'OrderSlimPdf' + if order_summary_slim[1] == '1' + unique_code="OrderSummarySlimPdf" + else + unique_code="OrderSummaryPdf" + end + end end end @@ -124,11 +130,17 @@ class OrderQueueStation < ApplicationRecord #Print order_item in 1 slip per item def print_slip_item(oqs, assigned_item) - order_slim_pdf = Lookup.collection_of("order_slim_pdf") #order_slim_pdf + order_slim_pdf = Lookup.collection_of("print_settings") #print_settings with name:OrderSlimPdf unique_code="OrderItemPdf" if !order_slim_pdf.empty? - if order_slim_pdf[0][1] == '1' - unique_code="OrderItemSlimPdf" + order_slim_pdf.each do |order_item_slim| + if order_item_slim[0] == 'OrderSlimPdf' + if order_item_slim[1] == '1' + unique_code="OrderItemSlimPdf" + else + unique_code="OrderItemPdf" + end + end end end diff --git a/app/models/printer/order_queue_printer.rb b/app/models/printer/order_queue_printer.rb index 3bd2df4c..04ab220d 100755 --- a/app/models/printer/order_queue_printer.rb +++ b/app/models/printer/order_queue_printer.rb @@ -14,15 +14,19 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker filename = "tmp/order_item_#{order_id}_#{order_item_id}" + ".pdf" - order_slim_pdf = Lookup.collection_of("order_slim_pdf") #order_slim_pdf + order_slim_pdf = Lookup.collection_of("print_settings") #print_settings with name:OrderSlimPdf # check for item not to show # if order_item[0].price != 0 if !order_slim_pdf.empty? - if order_slim_pdf[0][1] == '1' - pdf = OrderItemSlimPdf.new(print_settings,order_item[0], print_status, options, oqs.use_alternate_name) - else - pdf = OrderItemPdf.new(print_settings,order_item[0], print_status, options, oqs.use_alternate_name) + order_slim_pdf.each do |order_item_slim| + if order_item_slim[0] == 'OrderSlimPdf' + if order_item_slim[1] == '1' + pdf = OrderItemSlimPdf.new(print_settings,order_item[0], print_status, options, oqs.use_alternate_name) + else + pdf = OrderItemPdf.new(print_settings,order_item[0], print_status, options, oqs.use_alternate_name) + end + end end else pdf = OrderItemPdf.new(print_settings,order_item[0], print_status, options, oqs.use_alternate_name) @@ -53,7 +57,7 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker print_settings.save! end - order_slim_pdf = Lookup.collection_of("order_slim_pdf") #order_slim_pdf + order_slim_pdf = Lookup.collection_of("print_settings") #print_settings with name:OrderSlimPdf order=print_query('order_summary', order_id) # For Print Per Item @@ -68,10 +72,14 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker # check for item not to show #if odi.price != 0 if !order_slim_pdf.empty? - if order_slim_pdf[0][1] == '1' - pdf = OrderItemSlimPdf.new(print_settings,odi_item[0], print_status, options, oqs.use_alternate_name) - else - pdf = OrderItemPdf.new(print_settings,odi_item[0], print_status, options, oqs.use_alternate_name) + order_slim_pdf.each do |order_item_slim| + if order_item_slim[0] == 'OrderSlimPdf' + if order_item_slim[1] == '1' + pdf = OrderItemSlimPdf.new(print_settings,odi_item[0], print_status, options, oqs.use_alternate_name) + else + pdf = OrderItemPdf.new(print_settings,odi_item[0], print_status, options, oqs.use_alternate_name) + end + end end else pdf = OrderItemPdf.new(print_settings,odi_item[0], print_status, options, oqs.use_alternate_name) @@ -92,10 +100,14 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker else filename = "tmp/order_summary_#{order_id}" + ".pdf" if !order_slim_pdf.empty? - if order_slim_pdf[0][1] == '1' - pdf = OrderSummarySlimPdf.new(print_settings,order, print_status, order_items, oqs.use_alternate_name) - else - pdf = OrderSummaryPdf.new(print_settings,order, print_status, order_items, oqs.use_alternate_name) + order_slim_pdf.each do |order_summary_slim| + if order_summary_slim[0] == 'OrderSlimPdf' + if order_summary_slim[1] == '1' + pdf = OrderSummarySlimPdf.new(print_settings,order, print_status, order_items, oqs.use_alternate_name) + else + pdf = OrderSummaryPdf.new(print_settings,order, print_status, order_items, oqs.use_alternate_name) + end + end end else pdf = OrderSummaryPdf.new(print_settings,order, print_status, order_items, oqs.use_alternate_name) @@ -122,7 +134,7 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker print_settings.save! end - order_slim_pdf = Lookup.collection_of("order_slim_pdf") #order_slim_pdf + order_slim_pdf = Lookup.collection_of("print_settings") #print_settings with name:OrderSlimPdf order=print_query('booking_summary', booking_id) # For Print Per Item @@ -135,10 +147,14 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker # check for item not to show #if odi.price != 0 if !order_slim_pdf.empty? - if order_slim_pdf[0][1] == '1' - pdf = OrderItemSlimPdf.new(print_settings,odi, print_status, options,oqs.use_alternate_name) - else - pdf = OrderItemPdf.new(print_settings,odi, print_status, options,oqs.use_alternate_name) + order_slim_pdf.each do |order_item_slim| + if order_item_slim[0] == 'OrderSlimPdf' + if order_item_slim[1] == '1' + pdf = OrderItemSlimPdf.new(print_settings,odi, print_status, options,oqs.use_alternate_name) + else + pdf = OrderItemPdf.new(print_settings,odi, print_status, options,oqs.use_alternate_name) + end + end end else pdf = OrderItemPdf.new(print_settings,odi, print_status, options,oqs.use_alternate_name) @@ -162,10 +178,14 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker else filename = "tmp/booking_summary_#{booking_id}" + ".pdf" if !order_slim_pdf.empty? - if order_slim_pdf[0][1] == '1' - pdf = OrderSummarySlimPdf.new(print_settings,order, print_status,oqs.use_alternate_name) - else - pdf = OrderSummaryPdf.new(print_settings,order, print_status,oqs.use_alternate_name) + order_slim_pdf.each do |order_summary_slim| + if order_summary_slim[0] == 'OrderSlimPdf' + if order_summary_slim[1] == '1' + pdf = OrderSummarySlimPdf.new(print_settings,order, print_status,oqs.use_alternate_name) + else + pdf = OrderSummaryPdf.new(print_settings,order, print_status,oqs.use_alternate_name) + end + end end else pdf = OrderSummaryPdf.new(print_settings,order, print_status,oqs.use_alternate_name) diff --git a/app/models/printer/receipt_printer.rb b/app/models/printer/receipt_printer.rb index a1375204..2b4fb9c3 100755 --- a/app/models/printer/receipt_printer.rb +++ b/app/models/printer/receipt_printer.rb @@ -4,11 +4,17 @@ class Printer::ReceiptPrinter < Printer::PrinterWorker #Use CUPS service #Generate PDF #Print - order_slim_pdf = Lookup.collection_of("order_slim_pdf") #order_slim_pdf + order_slim_pdf = Lookup.collection_of("print_settings") #print_settings with name:OrderSlimPdf pdf = OrderItemPdf.new if !order_slim_pdf.empty? - if order_slim_pdf[0][1] == '1' - pdf = OrderItemSlimPdf.new + order_slim_pdf.each do |order_item_slim| + if order_item_slim[0] == 'OrderSlimPdf' + if order_item_slim[1] == '1' + pdf = OrderItemSlimPdf.new + else + pdf = OrderItemPdf.new + end + end end end pdf.render_file "tmp/order_item_queue_#{order_id}_#{order_item_id}" + ".pdf" @@ -20,11 +26,17 @@ class Printer::ReceiptPrinter < Printer::PrinterWorker #Generate PDF #Print filename = "tmp/order_summary_#{booking_id}" + ".pdf" - order_slim_pdf = Lookup.collection_of("order_slim_pdf") #order_slim_pdf + order_slim_pdf = Lookup.collection_of("print_settings") #print_settings with name:OrderSlimPdf pdf = OrderSummaryPdf.new if !order_slim_pdf.empty? - if order_slim_pdf[0][1] == '1' - pdf = OrderSummarySlimPdf.new + order_slim_pdf.each do |order_summary_slim| + if order_summary_slim[0] == 'OrderSlimPdf' + if order_summary_slim[1] == '1' + pdf = OrderSummarySlimPdf.new + else + pdf = OrderSummaryPdf.new + end + end end end pdf.render_file filename @@ -36,12 +48,18 @@ class Printer::ReceiptPrinter < Printer::PrinterWorker #Use CUPS service #Generate PDF #Print - order_slim_pdf = Lookup.collection_of("order_slim_pdf") #order_slim_pdf + order_slim_pdf = Lookup.collection_of("print_settings") #print_settings with name:OrderSlimPdf filename = "tmp/order_summary_#{booking_id}" + ".pdf" pdf = OrderSummaryPdf.new if !order_slim_pdf.empty? - if order_slim_pdf[0][1] == '1' - pdf = OrderSummarySlimPdf.new + order_slim_pdf.each do |order_summary_slim| + if order_summary_slim[0] == 'OrderSlimPdf' + if order_summary_slim[1] == '1' + pdf = OrderSummarySlimPdf.new + else + pdf = OrderSummaryPdf.new + end + end end end pdf.render_file filename @@ -53,12 +71,18 @@ class Printer::ReceiptPrinter < Printer::PrinterWorker #Use CUPS service #Generate PDF #Print - order_slim_pdf = Lookup.collection_of("order_slim_pdf") #order_slim_pdf + order_slim_pdf = Lookup.collection_of("print_settings") #print_settings with name:OrderSlimPdf filename = "tmp/order_summary_#{booking_id}" + ".pdf" pdf = OrderSummaryPdf.new if !order_slim_pdf.empty? - if order_slim_pdf[0][1] == '1' - pdf = OrderSummarySlimPdf.new + order_slim_pdf.each do |order_summary_slim| + if order_summary_slim[0] == 'OrderSlimPdf' + if order_summary_slim[1] == '1' + pdf = OrderSummarySlimPdf.new + else + pdf = OrderSummaryPdf.new + end + end end end pdf.render_file filename @@ -70,12 +94,18 @@ class Printer::ReceiptPrinter < Printer::PrinterWorker #Use CUPS service #Generate PDF #Print - order_slim_pdf = Lookup.collection_of("order_slim_pdf") #order_slim_pdf + order_slim_pdf = Lookup.collection_of("print_settings") #print_settings with name:OrderSlimPdf filename = "tmp/order_summary_#{booking_id}" + ".pdf" pdf = OrderSummaryPdf.new if !order_slim_pdf.empty? - if order_slim_pdf[0][1] == '1' - pdf = OrderSummarySlimPdf.new + order_slim_pdf.each do |order_summary_slim| + if order_summary_slim[0] == 'OrderSlimPdf' + if order_summary_slim[1] == '1' + pdf = OrderSummarySlimPdf.new + else + pdf = OrderSummaryPdf.new + end + end end end pdf.render_file filename @@ -87,12 +117,18 @@ class Printer::ReceiptPrinter < Printer::PrinterWorker #Use CUPS service #Generate PDF #Print - order_slim_pdf = Lookup.collection_of("order_slim_pdf") #order_slim_pdf + order_slim_pdf = Lookup.collection_of("print_settings") #print_settings with name:OrderSlimPdf filename = "tmp/order_summary_#{booking_id}" + ".pdf" pdf = OrderSummaryPdf.new if !order_slim_pdf.empty? - if order_slim_pdf[0][1] == '1' - pdf = OrderSummarySlimPdf.new + order_slim_pdf.each do |order_summary_slim| + if order_summary_slim[0] == 'OrderSlimPdf' + if order_summary_slim[1] == '1' + pdf = OrderSummarySlimPdf.new + else + pdf = OrderSummaryPdf.new + end + end end end pdf.render_file filename @@ -105,15 +141,27 @@ class Printer::ReceiptPrinter < Printer::PrinterWorker #Use CUPS service #Generate PDF #Print - - pdf = ReceiptBillPdf.new(printer_settings, sale_items, sale_data, customer_name, item_price_by_accounts, discount_price_by_accounts, member_info,rebate_amount,shop_details,printed_status,balance,card_data) - + receipt_bill_a5_pdf = Lookup.collection_of("print_settings") #print_settings with name:ReceiptBillA5Pdf + if !receipt_bill_a5_pdf.empty? + receipt_bill_a5_pdf.each do |receipt_bilA5| + if receipt_bilA5[0] == 'ReceiptBillA5Pdf' + if receipt_bilA5[1] == '1' + pdf = ReceiptBillA5Pdf.new(printer_settings, sale_items, sale_data, customer_name, item_price_by_accounts, discount_price_by_accounts, member_info,rebate_amount,shop_details,printed_status,balance,card_data) + else + pdf = ReceiptBillPdf.new(printer_settings, sale_items, sale_data, customer_name, item_price_by_accounts, discount_price_by_accounts, member_info,rebate_amount,shop_details,printed_status,balance,card_data) + end + end + end + else + pdf = ReceiptBillPdf.new(printer_settings, sale_items, sale_data, customer_name, item_price_by_accounts, discount_price_by_accounts, member_info,rebate_amount,shop_details,printed_status,balance,card_data) + end # print as print copies in printer setting count = printer_settings.print_copies # override print copies for print worker loop print_settings.print_copies = 1 print_settings.save! + begin if count == 1 pdf.render_file "tmp/receipt_bill_#{sale_data.receipt_no}.pdf" diff --git a/app/pdf/receipt_bill_a5_pdf.rb b/app/pdf/receipt_bill_a5_pdf.rb index 0861c65a..2dde9c93 100644 --- a/app/pdf/receipt_bill_a5_pdf.rb +++ b/app/pdf/receipt_bill_a5_pdf.rb @@ -193,6 +193,15 @@ class ReceiptBillA5Pdf < Prawn::Document text_box "#{number_with_precision(price, :precision => precision.to_i, :delimiter => delimiter)}", :at =>[self.item_width,y_position], :width => self.price_width, :size => self.item_font_size, :align => :right, :overflow => :shrink_to_fix text_box "#{number_with_precision(qty, :precision => precision.to_i)}", :at =>[item_qty_front_width,y_position], :width => item_qty_end_width, :size => self.item_font_size, :align => :center, :overflow => :shrink_to_fix text_box "#{number_with_precision(total_price, :precision => precision.to_i, :delimiter => delimiter)}", :at =>[item_total_front_width,y_position], :width =>item_total_end_width, :size => self.item_font_size, :align => :right, :overflow => :shrink_to_fix + + if show_alt_name + if !(item.product_alt_name).empty? + move_down 2 + font("public/fonts/NotoSansCJKtc-Regular.ttf") do + text "(#{item.product_alt_name})", :size => self.item_font_size,:align => :left, :inline_format => true + end + end + end } move_down 10 end @@ -503,5 +512,23 @@ class ReceiptBillA5Pdf < Prawn::Document move_down 10 end + + #check ReceiptBillAltName included + def show_alt_name + bill_alt_name = Lookup.collection_of("print_settings") #print_settings with name:ReceiptBillA5Pdf + status = false + if !bill_alt_name.empty? + bill_alt_name.each do |alt_name| + if alt_name[0] == 'ReceiptBillAltName' + if alt_name[1] == '1' + status = true + else + status = false + end + end + end + end + return status + end end diff --git a/app/pdf/receipt_bill_pdf.rb b/app/pdf/receipt_bill_pdf.rb index 16b1fd58..d2ad0260 100755 --- a/app/pdf/receipt_bill_pdf.rb +++ b/app/pdf/receipt_bill_pdf.rb @@ -199,6 +199,15 @@ class ReceiptBillPdf < Prawn::Document text_box "#{number_with_precision(price, :precision => precision.to_i, :delimiter => delimiter)}", :at =>[self.item_width,y_position], :width => self.price_width, :size => self.item_font_size, :align => :right, :overflow => :shrink_to_fix text_box "#{number_with_precision(qty, :precision => precision.to_i)}", :at =>[item_qty_front_width,y_position], :width => item_qty_end_width, :size => self.item_font_size, :align => :center, :overflow => :shrink_to_fix text_box "#{number_with_precision(total_price, :precision => precision.to_i, :delimiter => delimiter)}", :at =>[item_total_front_width,y_position], :width =>item_total_end_width, :size => self.item_font_size, :align => :right, :overflow => :shrink_to_fix + + if show_alt_name + if !(item.product_alt_name).empty? + move_down 2 + font("public/fonts/NotoSansCJKtc-Regular.ttf") do + text "(#{item.product_alt_name})", :size => self.item_font_size,:align => :left, :inline_format => true + end + end + end } move_down 5 end @@ -532,5 +541,23 @@ class ReceiptBillPdf < Prawn::Document end end end + + #check ReceiptBillAltName included + def show_alt_name + bill_alt_name = Lookup.collection_of("print_settings") #print_settings with name:ReceiptBillA5Pdf + status = false + if !bill_alt_name.empty? + bill_alt_name.each do |alt_name| + if alt_name[0] == 'ReceiptBillAltName' + if alt_name[1] == '1' + status = true + else + status = false + end + end + end + end + return status + end end