Browse Source

Set hhmemb to totadult and tchild sum if hhmemb is not given (#540)

* Set hhmemb to totadult and tchild sum if hhmemb is not given

Co-authored-by: Ted <tedbooton@gmail.com>
Co-authored-by: Dushan <dushan@madetech.com>

* lint

* update method

* calculate hhmemb from details provided

Co-authored-by: Ted <tedbooton@gmail.com>
Co-authored-by: Dushan <dushan@madetech.com>
pull/543/head
kosiakkatrina 3 years ago committed by GitHub
parent
commit
df1790631a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 19
      app/services/imports/case_logs_import_service.rb
  2. 2
      spec/fixtures/softwire_imports/case_logs/0ead17cb-1668-442d-898c-0d52879ff592.xml

19
app/services/imports/case_logs_import_service.rb

@ -42,6 +42,8 @@ module Imports
def create_log(xml_doc)
attributes = {}
previous_status = field_value(xml_doc, "meta", "status")
# Required fields for status complete or logic to work
# Note: order matters when we derive from previous values (attributes parameter)
attributes["startdate"] = compose_date(xml_doc, "DAY", "MONTH", "YEAR")
@ -56,7 +58,7 @@ module Imports
attributes["irproduct"] = unsafe_string_as_integer(xml_doc, "IRProduct")
attributes["irproduct_other"] = string_or_nil(xml_doc, "IRProductOther")
attributes["rent_type"] = rent_type(xml_doc, attributes["lar"], attributes["irproduct"])
attributes["hhmemb"] = safe_string_as_integer(xml_doc, "HHMEMB")
attributes["hhmemb"] = household_members(xml_doc, previous_status)
(1..8).each do |index|
attributes["age#{index}"] = safe_string_as_integer(xml_doc, "P#{index}Age")
attributes["age#{index}_known"] = age_known(xml_doc, index, attributes["hhmemb"])
@ -170,8 +172,6 @@ module Imports
attributes["postcode_full"] = nil
end
previous_status = field_value(xml_doc, "meta", "status")
owner_id = field_value(xml_doc, "meta", "owner-user-id").strip
if owner_id.present?
attributes["created_by"] = User.find_by(old_user_id: owner_id)
@ -489,5 +489,18 @@ module Imports
1
end
end
def household_members(xml_doc, previous_status)
hhmemb = safe_string_as_integer(xml_doc, "HHMEMB")
if previous_status.include?("submitted") && hhmemb.nil?
hhmemb = people_with_details(xml_doc).count
return nil if hhmemb.zero?
end
hhmemb
end
def people_with_details(xml_doc)
((2..8).map { |x| string_or_nil(xml_doc, "P#{x}Rel") } + [string_or_nil(xml_doc, "P1Age")]).compact
end
end
end

2
spec/fixtures/softwire_imports/case_logs/0ead17cb-1668-442d-898c-0d52879ff592.xml vendored

@ -393,7 +393,7 @@
<Q18aValid>1</Q18aValid>
<Q18Valid>1</Q18Valid>
<VACDAYS>0</VACDAYS>
<HHMEMB>2</HHMEMB>
<HHMEMB/>
<HHTYPEP1A>1</HHTYPEP1A>
<HHTYPEP2A>0</HHTYPEP2A>
<HHTYPEP3A>0</HHTYPEP3A>

Loading…
Cancel
Save