fix bugs and update code
Merge branch 'r-1902001-01-dev' into r-1902001-01
This commit is contained in:
@@ -2,37 +2,43 @@ module NumberFormattable
|
|||||||
extend ActiveSupport::Concern
|
extend ActiveSupport::Concern
|
||||||
|
|
||||||
def precision
|
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?
|
if @precision.nil?
|
||||||
@print_settings ||= PrintSetting.get_precision_delimiter
|
@print_settings = PrintSetting.get_precision_delimiter if !defined? @number_formats
|
||||||
if @print_settings
|
if @print_settings
|
||||||
@precision = OpenStruct.new(value: @print_settings.precision.to_i)
|
@precision = @print_settings.precision.to_i
|
||||||
else
|
else
|
||||||
@precision = OpenStruct.new(value: 2)
|
@precision = 2
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@precison_value ||= @precision.value.to_i
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def delimiter
|
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?
|
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
|
if @print_settings && @print_settings.delimiter
|
||||||
@delimiter = OpenStruct.new(value: ",")
|
@delimiter = ","
|
||||||
else
|
else
|
||||||
@delimiter = OpenStruct.new(value: "")
|
@delimiter = ","
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@delimiter_value ||= @delimiter.value.to_s.gsub(/\\u(\h{4})/) { |m| [$1].pack("H*").unpack("n*").pack("U*") }
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def strip_insignificant_zeros
|
def strip_insignificant_zeros
|
||||||
@strip_insignificant_zeros ||= Lookup.number_formats.find { |f| f.name.parameterize.underscore == 'strip_insignificant_zeros'}
|
return @strip_insignificant_zeros if defined? @strip_insignificant_zeros
|
||||||
if @strip_insignificant_zeros.nil?
|
@number_formats = Lookup.number_formats if !defined? @number_formats
|
||||||
@strip_insignificant_zeros = OpenStruct.new(value: false)
|
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
|
end
|
||||||
@strip_insignificant_zeros_value ||= ['1', 't', 'true', 'on', 'y', 'yes'].include? @strip_insignificant_zeros.value.to_s
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def number_format(number, options = {})
|
def number_format(number, options = {})
|
||||||
@@ -40,14 +46,16 @@ module NumberFormattable
|
|||||||
# options[:delimiter] = options[:delimiter] || delimiter
|
# options[:delimiter] = options[:delimiter] || delimiter
|
||||||
options[:strip_insignificant_zeros] = options[:strip_insignificant_zeros] || strip_insignificant_zeros
|
options[:strip_insignificant_zeros] = options[:strip_insignificant_zeros] || strip_insignificant_zeros
|
||||||
|
|
||||||
|
number = number.to_f.round(options[:precision])
|
||||||
|
|
||||||
if options[:precision] > 0
|
if options[:precision] > 0
|
||||||
if options[:strip_insignificant_zeros]
|
if options[:strip_insignificant_zeros]
|
||||||
formatted = "%.12g" % number.round(options[:precision])
|
formatted = "%.12g" % number
|
||||||
else
|
else
|
||||||
formatted = "%.#{options[:precision]}f" % number.round(options[:precision])
|
formatted = "%.#{options[:precision]}f" % number
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
formatted = number.round(options[:precision]).to_i.to_s
|
formatted = number.to_i.to_s
|
||||||
end
|
end
|
||||||
|
|
||||||
if options[:delimiter] && !options[:delimiter].empty?
|
if options[:delimiter] && !options[:delimiter].empty?
|
||||||
|
|||||||
@@ -2,13 +2,11 @@ class Origami::DashboardController < BaseOrigamiController
|
|||||||
|
|
||||||
def index
|
def index
|
||||||
@shop = Shop.first
|
@shop = Shop.first
|
||||||
|
|
||||||
today = DateTime.now.strftime('%Y-%m-%d')
|
|
||||||
|
|
||||||
@display_type = Lookup.find_by_lookup_type("display_type")
|
@display_type = Lookup.find_by_lookup_type("display_type")
|
||||||
|
|
||||||
@sale_data = Array.new
|
@sale_data = Array.new
|
||||||
@total_payment_methods = Sale.total_payment_methods(current_user)
|
@total_payment_methods = Sale.total_payment_methods(current_user)
|
||||||
|
|
||||||
if !@total_payment_methods.nil?
|
if !@total_payment_methods.nil?
|
||||||
@total_payment_methods.each do |payment|
|
@total_payment_methods.each do |payment|
|
||||||
pay = Sale.payment_sale(payment.payment_method, current_user)
|
pay = Sale.payment_sale(payment.payment_method, current_user)
|
||||||
@@ -17,6 +15,7 @@ class Origami::DashboardController < BaseOrigamiController
|
|||||||
else
|
else
|
||||||
@sale_data = nil
|
@sale_data = nil
|
||||||
end
|
end
|
||||||
|
|
||||||
@summ_sale = Sale.summary_sale_receipt(current_user)
|
@summ_sale = Sale.summary_sale_receipt(current_user)
|
||||||
@total_customer, @total_dinein, @total_takeaway, @total_membership = Sale.total_customer(current_user,@from,@to)
|
@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)
|
# @total_other_customer = Sale.total_other_customer(today,current_user)
|
||||||
|
|||||||
@@ -344,14 +344,14 @@ class ReceiptBillPdf < Prawn::Document
|
|||||||
sale_data.sale_taxes.each do |st|
|
sale_data.sale_taxes.each do |st|
|
||||||
if (st.tax_name.include? "Service")
|
if (st.tax_name.include? "Service")
|
||||||
service_tax_desc = st.tax_name
|
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
|
if incl_tax
|
||||||
service_tax_rate = st.tax_rate.to_i
|
service_tax_rate = st.tax_rate.to_i
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if (st.tax_name.include? "Commercial")
|
if (st.tax_name.include? "Commercial")
|
||||||
com_tax_desc = st.tax_name
|
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
|
if incl_tax
|
||||||
com_tax_rate = st.tax_rate.to_i
|
com_tax_rate = st.tax_rate.to_i
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ if (menu.menu_categories)
|
|||||||
alt_name: its.alt_name,
|
alt_name: its.alt_name,
|
||||||
min_selectable_qty: its.min_selectable_qty,
|
min_selectable_qty: its.min_selectable_qty,
|
||||||
max_selectable_qty: its.max_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} }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user