diff --git a/app/services/csv/missing_addresses_csv_service.rb b/app/services/csv/missing_addresses_csv_service.rb index 724f2fae7..d07f70e0e 100644 --- a/app/services/csv/missing_addresses_csv_service.rb +++ b/app/services/csv/missing_addresses_csv_service.rb @@ -9,25 +9,29 @@ module Csv logs_with_missing_town_or_city = @organisation.managed_lettings_logs.imported.filter_by_year(2023).where(needstype: 1, town_or_city: nil, uprn_known: [0, nil]).where.not(old_form_id: nil).where.not(address_line1: nil) return if logs_with_missing_addresses.empty? && logs_with_missing_town_or_city.empty? - generate_missing_lettings_addresses_csv(logs_with_missing_addresses + logs_with_missing_town_or_city) - end - - def create_missing_sales_addresses_csv - logs_with_missing_addresses = @organisation.sales_logs.imported.filter_by_year(2023).where(address_line1: nil, town_or_city: nil, uprn_known: [0, nil]).where.not(old_form_id: nil) - logs_with_missing_town_or_city = @organisation.sales_logs.imported.filter_by_year(2023).where(town_or_city: nil, uprn_known: [0, nil]).where.not(old_form_id: nil).where.not(address_line1: nil) - return if logs_with_missing_addresses.empty? && logs_with_missing_town_or_city.empty? - - generate_missing_sales_addresses_csv(logs_with_missing_addresses + logs_with_missing_town_or_city) - end - - private - - def generate_missing_lettings_addresses_csv(logs) CSV.generate(headers: true) do |csv| - csv << ["Lettings log ID", "Tenancy start date", "Tenant code", "Property code", "Log owner", "Owning organisation name", "Managing organisation name", "Address line 1", "Address line 2", "Town or City", "County", "Postcode", "Local authority"] + csv << ["Issue type", "Lettings log ID", "Tenancy start date", "Tenant code", "Property code", "Log owner", "Owning organisation name", "Managing organisation name", "Address line 1", "Address line 2", "Town or City", "County", "Postcode", "Local authority"] - logs.each do |log| - csv << [log.id, + logs_with_missing_addresses.each do |log| + csv << ["Full address required", + log.id, + log.startdate&.to_date, + log.tenancycode, + log.propcode, + log.created_by&.email, + log.owning_organisation&.name, + log.managing_organisation&.name, + log.address_line1, + log.address_line2, + log.town_or_city, + log.county, + log.postcode_full, + log.la] + end + + logs_with_missing_town_or_city.each do |log| + csv << ["Missing town or city", + log.id, log.startdate&.to_date, log.tenancycode, log.propcode, @@ -44,12 +48,32 @@ module Csv end end - def generate_missing_sales_addresses_csv(logs) + def create_missing_sales_addresses_csv + logs_with_missing_addresses = @organisation.sales_logs.imported.filter_by_year(2023).where(address_line1: nil, town_or_city: nil, uprn_known: [0, nil]).where.not(old_form_id: nil) + logs_with_missing_town_or_city = @organisation.sales_logs.imported.filter_by_year(2023).where(town_or_city: nil, uprn_known: [0, nil]).where.not(old_form_id: nil).where.not(address_line1: nil) + return if logs_with_missing_addresses.empty? && logs_with_missing_town_or_city.empty? + CSV.generate(headers: true) do |csv| - csv << ["Sales log ID", "Sale completion date", "Purchaser code", "Log owner", "Owning organisation name", "Address line 1", "Address line 2", "Town or City", "County", "Postcode", "Local authority"] + csv << ["Issue type", "Sales log ID", "Sale completion date", "Purchaser code", "Log owner", "Owning organisation name", "Address line 1", "Address line 2", "Town or City", "County", "Postcode", "Local authority"] + + logs_with_missing_addresses.each do |log| + csv << ["Full address required", + log.id, + log.saledate&.to_date, + log.purchid, + log.created_by&.email, + log.owning_organisation&.name, + log.address_line1, + log.address_line2, + log.town_or_city, + log.county, + log.postcode_full, + log.la] + end - logs.each do |log| - csv << [log.id, + logs_with_missing_town_or_city.each do |log| + csv << ["Missing town or city", + log.id, log.saledate&.to_date, log.purchid, log.created_by&.email, diff --git a/spec/fixtures/files/missing_lettings_logs_addresses.csv b/spec/fixtures/files/missing_lettings_logs_addresses.csv index 72d60ab64..09b903bb5 100644 --- a/spec/fixtures/files/missing_lettings_logs_addresses.csv +++ b/spec/fixtures/files/missing_lettings_logs_addresses.csv @@ -1,2 +1,2 @@ -Lettings log ID,Tenancy start date,Tenant code,Property code,Log owner,Owning organisation name,Managing organisation name,Address line 1,Address line 2,Town or City,County,Postcode,Local authority -{id},2023-04-05,tenancycode,propcode,testy@example.com,Address test,Address test,,,,,, +Issue type,Lettings log ID,Tenancy start date,Tenant code,Property code,Log owner,Owning organisation name,Managing organisation name,Address line 1,Address line 2,Town or City,County,Postcode,Local authority +Full address required,{id},2023-04-05,tenancycode,propcode,testy@example.com,Address test,Address test,,,,,, diff --git a/spec/fixtures/files/missing_lettings_logs_addresses_and_town_or_city.csv b/spec/fixtures/files/missing_lettings_logs_addresses_and_town_or_city.csv index 3bc35d30a..cb1ad5f6d 100644 --- a/spec/fixtures/files/missing_lettings_logs_addresses_and_town_or_city.csv +++ b/spec/fixtures/files/missing_lettings_logs_addresses_and_town_or_city.csv @@ -1,3 +1,3 @@ -Lettings log ID,Tenancy start date,Tenant code,Property code,Log owner,Owning organisation name,Managing organisation name,Address line 1,Address line 2,Town or City,County,Postcode,Local authority -{id},2023-04-05,tenancycode,propcode,testy@example.com,Address test,Address test,,,,,, -{id},2023-04-05,tenancycode,propcode,testy@example.com,Address test,Address test,existing address,,,,, +Issue type,Lettings log ID,Tenancy start date,Tenant code,Property code,Log owner,Owning organisation name,Managing organisation name,Address line 1,Address line 2,Town or City,County,Postcode,Local authority +Full address required,{id},2023-04-05,tenancycode,propcode,testy@example.com,Address test,Address test,,,,,, +Missing town or city,{id},2023-04-05,tenancycode,propcode,testy@example.com,Address test,Address test,existing address,,,,, diff --git a/spec/fixtures/files/missing_lettings_logs_town_or_city.csv b/spec/fixtures/files/missing_lettings_logs_town_or_city.csv index f13395d6f..c97bc76cf 100644 --- a/spec/fixtures/files/missing_lettings_logs_town_or_city.csv +++ b/spec/fixtures/files/missing_lettings_logs_town_or_city.csv @@ -1,2 +1,2 @@ -Lettings log ID,Tenancy start date,Tenant code,Property code,Log owner,Owning organisation name,Managing organisation name,Address line 1,Address line 2,Town or City,County,Postcode,Local authority -{id},2023-04-05,tenancycode,propcode,testy@example.com,Address test,Address test,existing address,,,,, +Issue type,Lettings log ID,Tenancy start date,Tenant code,Property code,Log owner,Owning organisation name,Managing organisation name,Address line 1,Address line 2,Town or City,County,Postcode,Local authority +Missing town or city,{id},2023-04-05,tenancycode,propcode,testy@example.com,Address test,Address test,existing address,,,,, diff --git a/spec/fixtures/files/missing_sales_logs_addresses.csv b/spec/fixtures/files/missing_sales_logs_addresses.csv index eee95fe17..cccbc3a1a 100644 --- a/spec/fixtures/files/missing_sales_logs_addresses.csv +++ b/spec/fixtures/files/missing_sales_logs_addresses.csv @@ -1,2 +1,2 @@ -Sales log ID,Sale completion date,Purchaser code,Log owner,Owning organisation name,Address line 1,Address line 2,Town or City,County,Postcode,Local authority -{id},2023-04-05,purchaser code,testy@example.com,Address test,,,,,, +Issue type,Sales log ID,Sale completion date,Purchaser code,Log owner,Owning organisation name,Address line 1,Address line 2,Town or City,County,Postcode,Local authority +Full address required,{id},2023-04-05,purchaser code,testy@example.com,Address test,,,,,, diff --git a/spec/fixtures/files/missing_sales_logs_addresses_and_town_or_city.csv b/spec/fixtures/files/missing_sales_logs_addresses_and_town_or_city.csv index 2bbed2e77..cfa6aad69 100644 --- a/spec/fixtures/files/missing_sales_logs_addresses_and_town_or_city.csv +++ b/spec/fixtures/files/missing_sales_logs_addresses_and_town_or_city.csv @@ -1,3 +1,3 @@ -Sales log ID,Sale completion date,Purchaser code,Log owner,Owning organisation name,Address line 1,Address line 2,Town or City,County,Postcode,Local authority -{id},2023-04-05,purchaser code,testy@example.com,Address test,,,,,, -{id},2023-04-05,purchaser code,testy@example.com,Address test,existing address line 1,,,,, +Issue type,Sales log ID,Sale completion date,Purchaser code,Log owner,Owning organisation name,Address line 1,Address line 2,Town or City,County,Postcode,Local authority +Full address required,{id},2023-04-05,purchaser code,testy@example.com,Address test,,,,,, +Missing town or city,{id},2023-04-05,purchaser code,testy@example.com,Address test,existing address line 1,,,,, diff --git a/spec/fixtures/files/missing_sales_logs_town_or_city.csv b/spec/fixtures/files/missing_sales_logs_town_or_city.csv index 070b5b829..13394d0e1 100644 --- a/spec/fixtures/files/missing_sales_logs_town_or_city.csv +++ b/spec/fixtures/files/missing_sales_logs_town_or_city.csv @@ -1,2 +1,2 @@ -Sales log ID,Sale completion date,Purchaser code,Log owner,Owning organisation name,Address line 1,Address line 2,Town or City,County,Postcode,Local authority -{id},2023-04-05,purchaser code,testy@example.com,Address test,existing address line 1,,,,, +Issue type,Sales log ID,Sale completion date,Purchaser code,Log owner,Owning organisation name,Address line 1,Address line 2,Town or City,County,Postcode,Local authority +Missing town or city,{id},2023-04-05,purchaser code,testy@example.com,Address test,existing address line 1,,,,,