From 3c5755a0288a9c91a3e30e7db980a0759a128745 Mon Sep 17 00:00:00 2001 From: NyanLinHtut Date: Thu, 28 Nov 2019 17:27:28 +0630 Subject: [PATCH 1/3] fixed set items in origami --- app/views/origami/dashboard/_menu.json.jbuilder | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/origami/dashboard/_menu.json.jbuilder b/app/views/origami/dashboard/_menu.json.jbuilder index dcbff54f..703c3355 100644 --- a/app/views/origami/dashboard/_menu.json.jbuilder +++ b/app/views/origami/dashboard/_menu.json.jbuilder @@ -80,7 +80,7 @@ if (menu.menu_categories) alt_name: its.alt_name, min_selectable_qty: its.min_selectable_qty, max_selectable_qty: its.max_selectable_qty, - instances: its.menu_item_instances.map { |id| {id: id}} + instances: its.menu_item_instances.map { |i| {id: i.id} } } } From 5b88d164856b2a271bb4eb8899cb02c12f5be06b Mon Sep 17 00:00:00 2001 From: Thein Lin Kyaw Date: Thu, 28 Nov 2019 19:25:52 +0630 Subject: [PATCH 2/3] update number_formattable --- .../concerns/number_formattable.rb | 36 +++++++++++-------- .../origami/dashboard_controller.rb | 25 +++++++------ 2 files changed, 33 insertions(+), 28 deletions(-) diff --git a/app/controllers/concerns/number_formattable.rb b/app/controllers/concerns/number_formattable.rb index a7b97732..063df8ca 100644 --- a/app/controllers/concerns/number_formattable.rb +++ b/app/controllers/concerns/number_formattable.rb @@ -2,44 +2,50 @@ module NumberFormattable extend ActiveSupport::Concern def precision - @precision ||= Lookup.number_formats.find { |f| f.name.parameterize.underscore == 'precision'} + return @precision if defined? @precision + @number_formats = Lookup.number_formats if !defined? @number_formats + if @number_formats + @precision = @number_formats.find? { |x| x.name.parameterize.underscore == 'precision'}.value.to_i rescue nil + end if @precision.nil? - @print_settings ||= PrintSetting.get_precision_delimiter + @print_settings = PrintSetting.get_precision_delimiter if !defined? @number_formats if @print_settings - @precision = OpenStruct.new(value: @print_settings.precision.to_i) + @precision = @print_settings.precision.to_i else - @precision = OpenStruct.new(value: 2) + @precision = 2 end end - @precison_value ||= @precision.value.to_i end def delimiter - @delimiter ||= Lookup.number_formats.find { |f| f.name.parameterize.underscore == 'delimiter'} + return @delimiter if defined? @delimiter + @number_formats = Lookup.number_formats if !defined? @number_formats + if @number_formats + @delimiter = @number_formats.find { |f| f.name.parameterize.underscore == 'delimiter'}.value.gsub(/\\u(\h{4})/) { |m| [$1].pack("H*").unpack("n*").pack("U*") } rescue nil + end if @delimiter.nil? - @print_settings ||= PrintSetting.get_precision_delimiter + @print_settings = PrintSetting.get_precision_delimiter if !defined? @number_formats if @print_settings && @print_settings.delimiter - @delimiter = OpenStruct.new(value: ",") + @delimiter = "," else - @delimiter = OpenStruct.new(value: "") + @delimiter = "," end end - @delimiter_value ||= @delimiter.value.to_s.gsub(/\\u(\h{4})/) { |m| [$1].pack("H*").unpack("n*").pack("U*") } end def strip_insignificant_zeros - @strip_insignificant_zeros ||= Lookup.number_formats.find { |f| f.name.parameterize.underscore == 'strip_insignificant_zeros'} - if @strip_insignificant_zeros.nil? - @strip_insignificant_zeros = OpenStruct.new(value: false) + return @strip_insignificant_zeros if defined? @strip_insignificant_zeros + @number_formats = Lookup.number_formats if !defined? @number_formats + if @number_formats + @strip_insignificant_zeros = @number_formats.find { |f| f.name.parameterize.underscore == 'strip_insignificant_zeros'}.value.in? ['1', 't', 'true', 'on', 'y', 'yes'] rescue false end - @strip_insignificant_zeros_value ||= ['1', 't', 'true', 'on', 'y', 'yes'].include? @strip_insignificant_zeros.value.to_s end def number_format(number, options = {}) options[:precision] = options[:precision] || precision # options[:delimiter] = options[:delimiter] || delimiter options[:strip_insignificant_zeros] = options[:strip_insignificant_zeros] || strip_insignificant_zeros - + if options[:precision] > 0 if options[:strip_insignificant_zeros] formatted = "%.12g" % number.round(options[:precision]) diff --git a/app/controllers/origami/dashboard_controller.rb b/app/controllers/origami/dashboard_controller.rb index 00766d51..7f631334 100644 --- a/app/controllers/origami/dashboard_controller.rb +++ b/app/controllers/origami/dashboard_controller.rb @@ -2,21 +2,20 @@ class Origami::DashboardController < BaseOrigamiController def index @shop = Shop.first - - today = DateTime.now.strftime('%Y-%m-%d') - @display_type = Lookup.find_by_lookup_type("display_type") @sale_data = Array.new @total_payment_methods = Sale.total_payment_methods(current_user) + if !@total_payment_methods.nil? - @total_payment_methods.each do |payment| - pay = Sale.payment_sale(payment.payment_method, current_user) - @sale_data.push({payment.payment_method => pay.payment_amount}) - end + @total_payment_methods.each do |payment| + pay = Sale.payment_sale(payment.payment_method, current_user) + @sale_data.push({payment.payment_method => pay.payment_amount}) + end else @sale_data = nil end + @summ_sale = Sale.summary_sale_receipt(current_user) @total_customer, @total_dinein, @total_takeaway, @total_membership = Sale.total_customer(current_user,@from,@to) # @total_other_customer = Sale.total_other_customer(today,current_user) @@ -25,13 +24,13 @@ class Origami::DashboardController < BaseOrigamiController @total_accounts = Account.select("accounts.id as account_id, accounts.title as title") @account_data = Array.new if !@total_accounts.nil? - @total_accounts.each do |account| - acc = Sale.account_data(account.account_id, current_user) - if !acc.nil? - @account_data.push({account.title => acc.cnt_acc, account.title + '_amount' => acc.total_acc}) - end + @total_accounts.each do |account| + acc = Sale.account_data(account.account_id, current_user) + if !acc.nil? + @account_data.push({account.title => acc.cnt_acc, account.title + '_amount' => acc.total_acc}) end - @total_accounts = @total_accounts.reject.with_index { |x, i| @account_data[i].nil? } + end + @total_accounts = @total_accounts.reject.with_index { |x, i| @account_data[i].nil? } else @account_data = nil end From 0ef1b4fd87d6df8cace19a59d6c9369bd9e10897 Mon Sep 17 00:00:00 2001 From: Thein Lin Kyaw Date: Fri, 29 Nov 2019 14:24:35 +0630 Subject: [PATCH 3/3] fix request bill error with show_total_before_tax --- app/controllers/concerns/number_formattable.rb | 8 +++++--- app/pdf/receipt_bill_pdf.rb | 4 ++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/app/controllers/concerns/number_formattable.rb b/app/controllers/concerns/number_formattable.rb index 063df8ca..bb022263 100644 --- a/app/controllers/concerns/number_formattable.rb +++ b/app/controllers/concerns/number_formattable.rb @@ -45,15 +45,17 @@ module NumberFormattable options[:precision] = options[:precision] || precision # options[:delimiter] = options[:delimiter] || delimiter options[:strip_insignificant_zeros] = options[:strip_insignificant_zeros] || strip_insignificant_zeros + + number = number.to_f.round(options[:precision]) if options[:precision] > 0 if options[:strip_insignificant_zeros] - formatted = "%.12g" % number.round(options[:precision]) + formatted = "%.12g" % number else - formatted = "%.#{options[:precision]}f" % number.round(options[:precision]) + formatted = "%.#{options[:precision]}f" % number end else - formatted = number.round(options[:precision]).to_i.to_s + formatted = number.to_i.to_s end if options[:delimiter] && !options[:delimiter].empty? diff --git a/app/pdf/receipt_bill_pdf.rb b/app/pdf/receipt_bill_pdf.rb index 2d463b38..842b6f27 100755 --- a/app/pdf/receipt_bill_pdf.rb +++ b/app/pdf/receipt_bill_pdf.rb @@ -344,14 +344,14 @@ class ReceiptBillPdf < Prawn::Document sale_data.sale_taxes.each do |st| if (st.tax_name.include? "Service") service_tax_desc = st.tax_name - service_tax_amount = number_format(st.tax_payable_amount, :precision => precision.to_i, :delimiter => delimiter) + service_tax_amount = st.tax_payable_amount if incl_tax service_tax_rate = st.tax_rate.to_i end end if (st.tax_name.include? "Commercial") com_tax_desc = st.tax_name - com_tax_amount = number_format(st.tax_payable_amount, :precision => precision.to_i, :delimiter => delimiter) + com_tax_amount = st.tax_payable_amount if incl_tax com_tax_rate = st.tax_rate.to_i end