Browse Source

Unify calculation so we can remove case statement

pull/379/head
baarkerlounger 3 years ago
parent
commit
2897f54732
  1. 38
      app/models/case_log.rb

38
app/models/case_log.rb

@ -40,17 +40,7 @@ class CaseLog < ApplicationRecord
RENT_TYPE_MAPPING_LABELS = { 1 => "Social Rent", 2 => "Affordable Rent", 3 => "Intermediate Rent" }.freeze
HAS_BENEFITS_OPTIONS = [0, 1, 2, 3].freeze
STATUS = { "not_started" => 0, "in_progress" => 1, "completed" => 2 }.freeze
RENT_AND_CHARGES_PERIOD_LABEL = {
0 => "Every 2 weeks",
1 => "Every 4 weeks",
2 => "Every calendar month",
3 => "Weekly for 50 weeks",
4 => "Weekly for 49 weeks",
5 => "Weekly for 48 weeks",
6 => "Weekly for 47 weeks",
7 => "Weekly for 46 weeks",
8 => "Weekly for 52 weeks",
}.freeze
NUM_OF_WEEKS_FROM_PERIOD = { 0 => 26, 1 => 13, 2 => 12, 3 => 50, 4 => 49, 5 => 48, 6 => 47, 7 => 46, 8 => 52 }.freeze
enum status: STATUS
def form
@ -97,28 +87,10 @@ class CaseLog < ApplicationRecord
end
def weekly_value(field_value)
return unless field_value && period
case RENT_AND_CHARGES_PERIOD_LABEL[period]
when "Every 2 weeks"
field_value / 2
when "Every 4 weeks"
field_value / 4
when "Every calendar month"
field_value * 12 / 52
when "Weekly for 50 weeks"
field_value / 52 * 50
when "Weekly for 49 weeks"
field_value / 52 * 49
when "Weekly for 48 weeks"
field_value / 52 * 48
when "Weekly for 47 weeks"
field_value / 52 * 47
when "Weekly for 46 weeks"
field_value / 52 * 46
when "Weekly for 52 weeks"
field_value
end
num_of_weeks = NUM_OF_WEEKS_FROM_PERIOD[period]
return unless field_value && num_of_weeks
field_value / 52 * num_of_weeks
end
def applicable_income_range

Loading…
Cancel
Save