Browse Source

validate_other_household_members

pull/74/head
Matthew Phelan 3 years ago
parent
commit
971c3909ee
  1. 75
      app/models/case_log.rb

75
app/models/case_log.rb

@ -117,6 +117,81 @@ class CaseLogValidator < ActiveModel::Validator
validate_other_field(record, "tenancy_type", "other_tenancy_type") validate_other_field(record, "tenancy_type", "other_tenancy_type")
end end
def validate_other_household_members(record)
index = 0
number_of_other_members = record.household_number_of_other_members
partner = false
while index < number_of_other_members
member_number = index+2
relationship = record["person_#{member_number}_relationship"]
age = record["person_#{member_number}_age"]
gender = record["person_#{member_number}_gender"]
economic_status = record["person_#{member_number}_economic_status"]
binding.pry
if relationship || age || gender || economic_status
if relationship.nil? || age.nil? || gender.nil? || economic_status.nil?
record.errors.add "person_#{member_number}_age", "If any of the person is filled out it must all be filled"
end
end
if age<1 || age>120
record.errors.add "person_#{member_number}_age", "Tenant #{member_number} age must be between 1 and 120 (i.e. infants must be entered as 1)"
end
if age>70 && economic_status != "Retired"
record.errors.add "person_#{member_number}_economic_status", "Tenant #{member_number} must be retired if over 70"
end
if gender=="Male" && economic_status == "Retired" && age<65
record.errors.add "person_#{member_number}_age", "Male tenant who is retired must be 65 or over"
end
if gender=="Female" && economic_status == "Retired" && age<60
record.errors.add "person_#{member_number}_age", "Female tenant who is retired must be 60 or over"
end
if age>70 && economic_status != "Retired"
record.errors.add "person_#{member_number}_economic_status", "Tenant #{member_number} must be retired if over 70"
end
if age<16
if relationship != "Child - includes young adult and grown-up"
record.errors.add "person_#{member_number}_relationship", "Tenant #{member_number}'s relationship to tenant 1 must be Child if their age is under 16"
end
if economic_status != "Child under 16"
record.errors.add "person_#{member_number}_economic_status", "Tenant #{member_number} economic status must be Child under 16 if their age is under 16"
end
end
if relationship == "Partner"
if partner
record.errors.add "person_#{member_number}_relationship", "Tenant can not have multiple partners"
elsif age<16 || economic_status == "Child under 16"
record.errors.add "person_#{member_number}_relationship", "Tenant can not be tenant 1's partner if they are under 16"
else
partner = true
end
end
if relationship == "Child - includes young adult and grown-up"
if economic_status!="Unable to work because of long term sick or disability" || economic_status!="Other" || economic_status!="Prefer not to say"
record.errors.add "person_#{member_number}_economic_status", "This is not a valid economic status for a child"
end
if age>=16 && age<=19
if economic_status != "Full-time student" || economic_status != "Prefer not to say"
record.errors.add "person_#{member_number}_economic_status", "If relationship is child and age is between 16 and 19 - tenant #{member_number} must be a full time student or prefer not to say."
end
end
end
index = index+1
end
end
def validate(record) def validate(record)
# If we've come from the form UI we only want to validate the specific fields # If we've come from the form UI we only want to validate the specific fields
# that have just been submitted. If we're submitting a log via API or Bulk Upload # that have just been submitted. If we're submitting a log via API or Bulk Upload

Loading…
Cancel
Save