[#4554] Fix the markup calculation to work with plain numerics
This commit is contained in:
@@ -32,8 +32,10 @@ class FixedBudget < ActiveRecord::Base
|
||||
when percent_markup?
|
||||
percent = markup.gsub('%','').to_f
|
||||
return budget.to_f * (percent / 100)
|
||||
when straight_markup?
|
||||
when dollar_markup?
|
||||
markup.gsub('$','').gsub(',','').to_f
|
||||
when straight_markup?
|
||||
markup.to_f
|
||||
else
|
||||
0 # Invalid markup
|
||||
end
|
||||
@@ -49,11 +51,15 @@ class FixedBudget < ActiveRecord::Base
|
||||
end
|
||||
|
||||
def percent_markup?
|
||||
markup && markup.match(/%/)
|
||||
markup && markup.to_s.match(/%/)
|
||||
end
|
||||
|
||||
def dollar_markup?
|
||||
markup && markup.to_s.match(/[$,]+/)
|
||||
end
|
||||
|
||||
def straight_markup?
|
||||
markup && markup.match(/\$/)
|
||||
markup && markup.to_s.match(/[\d.]/)
|
||||
end
|
||||
|
||||
# Is this a blank budget item. Retainers will create blank ones when
|
||||
|
||||
@@ -27,7 +27,43 @@ class FixedBudgetTest < ActiveSupport::TestCase
|
||||
@fixed_budget.markup = '$4,000.57'
|
||||
assert_equal 4000.57, @fixed_budget.markup_value
|
||||
end
|
||||
|
||||
should "work without the $ sign" do
|
||||
@fixed_budget.markup = '4,000.57'
|
||||
assert_equal 4000.57, @fixed_budget.markup_value
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
context "with a straight amount of markup" do
|
||||
should "equal the markup" do
|
||||
@fixed_budget.markup = 4000.57
|
||||
assert_equal 4000.57, @fixed_budget.markup_value
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
context "#budget=" do
|
||||
setup do
|
||||
@fixed_budget = FixedBudget.new
|
||||
end
|
||||
|
||||
should "allow a $ string" do
|
||||
@fixed_budget.budget = '$1,000.00'
|
||||
assert_equal 1000.00, @fixed_budget.budget
|
||||
end
|
||||
|
||||
should "allow a plain string" do
|
||||
@fixed_budget.budget = '1,000.00'
|
||||
assert_equal 1000.00, @fixed_budget.budget
|
||||
end
|
||||
|
||||
should "allow a numeric value" do
|
||||
@fixed_budget.budget = 1000.00
|
||||
assert_equal 1000.00, @fixed_budget.budget
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user