Browse Source

Set tshortfall to 0 if it should exists but is not provided (#550)

* Set tshortfall to 0 if it should exists but is not provided

* check if tshortfall is overridden
pull/619/head
kosiakkatrina 3 years ago committed by baarkerlounger
parent
commit
1ead78462b
  1. 9
      app/services/imports/case_logs_import_service.rb
  2. 4
      app/services/imports/import_service.rb
  3. 2
      spec/fixtures/softwire_imports/case_logs/0ead17cb-1668-442d-898c-0d52879ff592.xml

9
app/services/imports/case_logs_import_service.rb

@ -125,7 +125,7 @@ module Imports
attributes["tcharge"] = safe_string_as_decimal(xml_doc, "Q18av") attributes["tcharge"] = safe_string_as_decimal(xml_doc, "Q18av")
attributes["hbrentshortfall"] = unsafe_string_as_integer(xml_doc, "Q18d") attributes["hbrentshortfall"] = unsafe_string_as_integer(xml_doc, "Q18d")
attributes["tshortfall"] = safe_string_as_decimal(xml_doc, "Q18dyes") attributes["tshortfall"] = tshortfall(xml_doc, attributes)
attributes["voiddate"] = compose_date(xml_doc, "VDAY", "VMONTH", "VYEAR") attributes["voiddate"] = compose_date(xml_doc, "VDAY", "VMONTH", "VYEAR")
attributes["mrcdate"] = compose_date(xml_doc, "MRCDAY", "MRCMONTH", "MRCYEAR") attributes["mrcdate"] = compose_date(xml_doc, "MRCDAY", "MRCMONTH", "MRCYEAR")
@ -513,5 +513,12 @@ module Imports
def people_with_details(xml_doc) def people_with_details(xml_doc)
((2..8).map { |x| string_or_nil(xml_doc, "P#{x}Rel") } + [string_or_nil(xml_doc, "P1Sex")]).compact ((2..8).map { |x| string_or_nil(xml_doc, "P#{x}Rel") } + [string_or_nil(xml_doc, "P1Sex")]).compact
end end
def tshortfall(xml_doc, attributes)
shortfall = safe_string_as_decimal(xml_doc, "Q18dyes")
return 0 if shortfall.blank? && attributes["hbrentshortfall"] == 1 && overridden?(xml_doc, "xmlns", "Q18dyes")
shortfall
end
end end
end end

4
app/services/imports/import_service.rb

@ -22,6 +22,10 @@ module Imports
xml_document.at_xpath("//#{namespace}:#{field}")&.text xml_document.at_xpath("//#{namespace}:#{field}")&.text
end end
def overridden?(xml_document, namespace, field)
xml_document.at_xpath("//#{namespace}:#{field}").attributes["override-field"].value
end
def to_boolean(input_string) def to_boolean(input_string)
input_string == "true" input_string == "true"
end end

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

@ -166,7 +166,7 @@
<Q18aiv override-field=""/> <Q18aiv override-field=""/>
<Q18av override-field="">438.11</Q18av> <Q18av override-field="">438.11</Q18av>
<Q18d>1 Yes</Q18d> <Q18d>1 Yes</Q18d>
<Q18dyes override-field="">7.00</Q18dyes> <Q18dyes override-field="true"/>
<Q19void>2021-09-30</Q19void> <Q19void>2021-09-30</Q19void>
<Q19repair/> <Q19repair/>
<Q20 override-field="">0</Q20> <Q20 override-field="">0</Q20>

Loading…
Cancel
Save