diff --git a/app/services/exports/sales_log_export_constants.rb b/app/services/exports/sales_log_export_constants.rb index 5ba2f694c..c9bf3d60c 100644 --- a/app/services/exports/sales_log_export_constants.rb +++ b/app/services/exports/sales_log_export_constants.rb @@ -7,140 +7,140 @@ module Exports::SalesLogExportConstants csv: 2, }.freeze - EXPORT_FIELDS = Set["id", - "status", - "day", - "month", - "year", - "duplicate_set_id", - "createddate", - "uploaddate", - "owningorgid", - "owningorgname", - "maningorgid", - "maningorgname", - "username", - "usernameid", - "purchid", - "type", - "ownership", - "collectionyear", - "jointmore", - "joint", - "beds", - "ethnic", - "ethnicgroup1", - "liveinbuyer1", - "builtype", - "proptype", - "noint", - "liveinbuyer2", - "privacynotice", - "wheel", - "hholdcount", - "la", - "income1", - "inc1nk", - "inc1mort", - "income2", - "inc2nk", - "savingsnk", - "savings", - "prevown", - "amendedby", - "amendedbyid", - "mortgage", - "inc2mort", - "hb", - "frombeds", - "staircase", - "stairbought", - "stairowned", - "mrent", - "mrentprestaircasing", - "resale", - "deposit", - "cashdis", - "disabled", - "value", - "equity", - "discount", - "grant", - "ppcodenk", - "ppostc1", - "ppostc2", - "prevloc", - "prevlocname", - "previouslaknown", - "hhregres", - "hhregresstill", - "proplen", - "hasmscharge", - "mscharge", - "prevten", - "mortgageused", - "wchair", - "armedforcesspouse", - "hoday", - "homonth", - "hoyear", - "fromprop", - "socprevten", - "mortlen1", - "extrabor", - "hhtype", - "postcode", - "islainferred", - "bulkuploadid", - "value_value_check", - "prevshared", - "staircasesale", - "ethnicgroup2", - "ethnic2", - "buy2living", - "prevten2", - "uprn", - "address1", - "address2", - "towncity", - "county", - "laname", - "creationmethod", - "nationalityall1", - "nationalityall2", - "mscharge_value_check", - "address1input", - "postcodeinput", - "address_search_value_check", - "uprnselected", - "bulkaddress1", - "bulkaddress2", - "bulktowncity", - "bulkcounty", - "bulkpostcode", - "bulkla", - "createdby", - "createdbyid", - "hasestatefee", - "estatefee", - "firststair", - "numstair", - "stairlastday", - "stairlastmonth", - "stairlastyear", - "stairinitialyear", - "stairinitialmonth", - "stairinitialday", - "hasservicecharges", - "servicecharges",] + EXPORT_FIELDS = Set["ID", + "STATUS", + "DAY", + "MONTH", + "YEAR", + "DUPLICATE_SET_ID", + "CREATEDDATE", + "UPLOADDATE", + "OWNINGORGID", + "OWNINGORGNAME", + "MANINGORGID", + "MANINGORGNAME", + "USERNAME", + "USERNAMEID", + "PURCHID", + "TYPE", + "OWNERSHIP", + "COLLECTIONYEAR", + "JOINTMORE", + "JOINT", + "BEDS", + "ETHNIC", + "ETHNICGROUP1", + "LIVEINBUYER1", + "BUILTYPE", + "PROPTYPE", + "NOINT", + "LIVEINBUYER2", + "PRIVACYNOTICE", + "WHEEL", + "HHOLDCOUNT", + "LA", + "INCOME1", + "INC1NK", + "INC1MORT", + "INCOME2", + "INC2NK", + "SAVINGSNK", + "SAVINGS", + "PREVOWN", + "AMENDEDBY", + "AMENDEDBYID", + "MORTGAGE", + "INC2MORT", + "HB", + "FROMBEDS", + "STAIRCASE", + "STAIRBOUGHT", + "STAIROWNED", + "MRENT", + "MRENTPRESTAIRCASING", + "RESALE", + "DEPOSIT", + "CASHDIS", + "DISABLED", + "VALUE", + "EQUITY", + "DISCOUNT", + "GRANT", + "PPCODENK", + "PPOSTC1", + "PPOSTC2", + "PREVLOC", + "PREVLOCNAME", + "PREVIOUSLAKNOWN", + "HHREGRES", + "HHREGRESSTILL", + "PROPLEN", + "HASMSCHARGE", + "MSCHARGE", + "PREVTEN", + "MORTGAGEUSED", + "WCHAIR", + "ARMEDFORCESSPOUSE", + "HODAY", + "HOMONTH", + "HOYEAR", + "FROMPROP", + "SOCPREVTEN", + "MORTLEN1", + "EXTRABOR", + "HHTYPE", + "POSTCODE", + "ISLAINFERRED", + "BULKUPLOADID", + "VALUE_VALUE_CHECK", + "PREVSHARED", + "STAIRCASESALE", + "ETHNICGROUP2", + "ETHNIC2", + "BUY2LIVING", + "PREVTEN2", + "UPRN", + "ADDRESS1", + "ADDRESS2", + "TOWNCITY", + "COUNTY", + "LANAME", + "CREATIONMETHOD", + "NATIONALITYALL1", + "NATIONALITYALL2", + "MSCHARGE_VALUE_CHECK", + "ADDRESS1INPUT", + "POSTCODEINPUT", + "ADDRESS_SEARCH_VALUE_CHECK", + "UPRNSELECTED", + "BULKADDRESS1", + "BULKADDRESS2", + "BULKTOWNCITY", + "BULKCOUNTY", + "BULKPOSTCODE", + "BULKLA", + "CREATEDBY", + "CREATEDBYID", + "HASESTATEFEE", + "ESTATEFEE", + "FIRSTSTAIR", + "NUMSTAIR", + "STAIRLASTDAY", + "STAIRLASTMONTH", + "STAIRLASTYEAR", + "STAIRINITIALYEAR", + "STAIRINITIALMONTH", + "STAIRINITIALDAY", + "HASSERVICECHARGES", + "SERVICECHARGES",] (1..6).each do |index| - EXPORT_FIELDS << "age#{index}" - EXPORT_FIELDS << "ecstat#{index}" - EXPORT_FIELDS << "sex#{index}" + EXPORT_FIELDS << "AGE#{index}" + EXPORT_FIELDS << "ECSTAT#{index}" + EXPORT_FIELDS << "SEX#{index}" end (2..6).each do |index| - EXPORT_FIELDS << "relat#{index}" + EXPORT_FIELDS << "RELAT#{index}" end end diff --git a/app/services/exports/sales_log_export_service.rb b/app/services/exports/sales_log_export_service.rb index 10881e650..c78212155 100644 --- a/app/services/exports/sales_log_export_service.rb +++ b/app/services/exports/sales_log_export_service.rb @@ -117,6 +117,8 @@ module Exports attribute_hash["stairinitialmonth"] = sales_log.initialpurchase&.month attribute_hash["stairinitialyear"] = sales_log.initialpurchase&.year attribute_hash["mscharge_value_check"] = sales_log.monthly_charges_value_check + + attribute_hash.transform_keys!(&:upcase) attribute_hash end diff --git a/spec/fixtures/exports/sales_log.xml b/spec/fixtures/exports/sales_log.xml index 5e8428194..281f53308 100644 --- a/spec/fixtures/exports/sales_log.xml +++ b/spec/fixtures/exports/sales_log.xml @@ -1,154 +1,154 @@
- {id} - 1 - 123 - 8 - 1 - 2 - 27 - F - 17 - 1 - 1 - 33 - P - X - 2 - 1 - 1 - 1 - 1 - 4 - 14 - E09000033 - 10000 - 18 - 40 - 40 - 1 - 10000 - 1 - - 1 - F - 20000.0 - 1 - 9 - 3 - 2 - 1 - X - X - R - R - 4 - X - M - X - - - - - - - 80000.0 - - 1 - 110000.0 - - - 10000.0 - 0 - SW1A - 1AA - E09000033 - 7 - - - 100.0 - 1 - 1 - 1 - 5 - - - - - - 1 - 6 - - 2 - - 3 - 1 - - - - - - - 1 - 3 - 2026 - 2026-03-01T00:00:00+00:00 - {created_by_email} - {created_by_id} - {assigned_to_email} - {assigned_to_id} - 2026-03-01T00:00:00+00:00 - - - {owning_org_id} - {owning_org_name} - {managing_org_id} - {managing_org_name} - 1 - - 2025 - 2 - 1 - 17 - 17 - 1 - 1 - - - 0 - 0 - AA1 1AA - true - 10 - - - 1, Test Street - - Test Town - Westminster - Address line 1 - SW1A 1AA - - - - - - - - 826 - 826 - Westminster - 1 - 1 - - - - - - - - - + {id} + 1 + 123 + 8 + 1 + 2 + 27 + F + 17 + 1 + 1 + 33 + P + X + 2 + 1 + 1 + 1 + 1 + 4 + 14 + E09000033 + 10000 + 18 + 40 + 40 + 1 + 10000 + 1 + + 1 + F + 20000.0 + 1 + 9 + 3 + 2 + 1 + X + X + R + R + 4 + X + M + X + + + + + + + 80000.0 + + 1 + 110000.0 + + + 10000.0 + 0 + SW1A + 1AA + E09000033 + 7 + + + 100.0 + 1 + 1 + 1 + 5 + + + + + + 1 + 6 + + 2 + + 3 + + + + + + + + 1 + 3 + 2026 + 2026-03-01T00:00:00+00:00 + {created_by_email} + {created_by_id} + {assigned_to_email} + {assigned_to_id} + 2026-03-01T00:00:00+00:00 + + + {owning_org_id} + {owning_org_name} + {managing_org_id} + {managing_org_name} + 1 + + 2025 + 2 + 1 + 17 + 17 + 1 + 1 + + + 0 + 0 + SW1A 1AA + true + 10 + + + Address line 1 + + City + Westminster + Address line 1 + SW1A 1AA + + + + + + + + 826 + 826 + Westminster + 1 + 1 + + + + + + + + +
diff --git a/spec/fixtures/exports/sales_log_2024.xml b/spec/fixtures/exports/sales_log_2024.xml index 9338dd2ce..c39f2eee7 100644 --- a/spec/fixtures/exports/sales_log_2024.xml +++ b/spec/fixtures/exports/sales_log_2024.xml @@ -1,154 +1,154 @@
- {id} - 2 - 123 - 8 - 1 - 2 - 27 - F - 17 - 1 - 1 - 33 - P - X - 2 - 1 - 1 - 1 - 1 - 4 - 14 - E09000033 - 10000 - 18 - 40 - 40 - 1 - 10000 - 1 - - 1 - F - 20000.0 - 1 - 9 - 3 - 2 - 1 - X - X - R - R - 4 - X - M - X - - - - - - - 80000.0 - - 1 - 110000.0 - - - 10000.0 - 0 - SW1A - 1AA - E09000033 - 7 - - - 100.0 - 1 - 1 - 1 - 5 - - - - - - 1 - 6 - - 2 - - 3 - 1 - - - - - - - 3 - 4 - 2024 - 2024-04-03T00:00:00+01:00 - {created_by_email} - {created_by_id} - {assigned_to_email} - {assigned_to_id} - 2024-04-03T00:00:00+01:00 - - - {owning_org_id} - {owning_org_name} - {managing_org_id} - {managing_org_name} - 1 - - 2024 - 2 - 1 - 17 - 17 - 1 - 1 - - - 0 - 0 - AA1 1AA - true - 10 - - - 1, Test Street - - Test Town - Westminster - Address line 1 - SW1A 1AA - - - - - - - - 826 - 826 - Westminster - 1 - 1 - - - - - - - - - + {id} + 2 + 123 + 8 + 1 + 2 + 27 + F + 17 + 1 + 1 + 33 + P + X + 2 + 1 + 1 + 1 + 1 + 4 + 14 + E09000033 + 10000 + 18 + 40 + 40 + 1 + 10000 + 1 + + 1 + F + 20000.0 + 1 + 9 + 3 + 2 + 1 + X + X + R + R + 4 + X + M + X + + + + + + + 80000.0 + + 1 + 110000.0 + + + 10000.0 + 0 + SW1A + 1AA + E09000033 + 7 + + + 100.0 + 1 + 1 + 1 + 5 + + + + + + 1 + 6 + + 2 + + 3 + + + + + + + + 3 + 4 + 2024 + 2024-04-03T00:00:00+01:00 + {created_by_email} + {created_by_id} + {assigned_to_email} + {assigned_to_id} + 2024-04-03T00:00:00+01:00 + + + {owning_org_id} + {owning_org_name} + {managing_org_id} + {managing_org_name} + 1 + + 2024 + 2 + 1 + 17 + 17 + 1 + 1 + + + 0 + 0 + SW1A 1AA + true + 10 + + + Address line 1 + + City + Westminster + Address line 1 + SW1A 1AA + + + + + + + + 826 + 826 + Westminster + 1 + 1 + + + + + + + + +
diff --git a/spec/services/exports/sales_log_export_service_spec.rb b/spec/services/exports/sales_log_export_service_spec.rb index b0c9b13bf..ab85c92e3 100644 --- a/spec/services/exports/sales_log_export_service_spec.rb +++ b/spec/services/exports/sales_log_export_service_spec.rb @@ -315,7 +315,7 @@ RSpec.describe Exports::SalesLogExportService do let!(:sales_log) { FactoryBot.create(:sales_log, :export, duplicate_set_id: 123) } def replace_duplicate_set_id(export_file) - export_file.sub!("", "123") + export_file.sub!("", "123") end it "generates an XML export file with the expected content within the ZIP file" do @@ -368,7 +368,7 @@ RSpec.describe Exports::SalesLogExportService do let!(:sales_log) { FactoryBot.create(:sales_log, :export, mscharge: 123) } def replace_mscharge_value(export_file) - export_file.sub!("100.0", "123.0") + export_file.sub!("100.0", "123.0") end it "exports mscharge fields as hasmscharge and mscharge" do @@ -388,24 +388,24 @@ RSpec.describe Exports::SalesLogExportService do let!(:sales_log) { FactoryBot.create(:sales_log, :export, ownershipsch: 1, staircase: 2, type: 30, mscharge: 321, has_management_fee: 1, management_fee: 222) } def replace_mscharge_and_shared_ownership_values(export_file) - export_file.sub!("", "1") - export_file.sub!("", "321.0") - export_file.sub!("", "1") - export_file.sub!("", "222.0") - export_file.sub!("100.0", "") - export_file.sub!("1", "") - - export_file.sub!("8", "30") - export_file.sub!("", "2") - export_file.sub!("10000.0", "") - export_file.sub!("0", "1") - export_file.sub!("SW1A", "") - export_file.sub!("1AA", "") - export_file.sub!("E09000033", "") - export_file.sub!("1", "") - export_file.sub!("2", "1") - export_file.sub!("1", "0") - export_file.sub!("Westminster", "") + export_file.sub!("", "1") + export_file.sub!("", "321.0") + export_file.sub!("", "1") + export_file.sub!("", "222.0") + export_file.sub!("100.0", "") + export_file.sub!("1", "") + + export_file.sub!("8", "30") + export_file.sub!("", "2") + export_file.sub!("10000.0", "") + export_file.sub!("0", "1") + export_file.sub!("SW1A", "") + export_file.sub!("1AA", "") + export_file.sub!("E09000033", "") + export_file.sub!("1", "") + export_file.sub!("2", "1") + export_file.sub!("1", "0") + export_file.sub!("Westminster", "") end it "exports mscharge fields as hasmscharge and mscharge" do