From 7d4dcb905e9e1f43d9ce9e5fcc29893504c63c91 Mon Sep 17 00:00:00 2001 From: Arthur Campbell <51094020+arfacamble@users.noreply.github.com> Date: Wed, 8 Mar 2023 12:16:51 +0000 Subject: [PATCH 01/51] CLDC-1895 pluralise various copy when joint purchase (#1326) * update copy to handle pluralisation in the case of joint purchase for previous ownership, with associated testing changes * update copy to handle pluralisation in the case of joint purchase for staircasing, with associated testing changes * update copy to handle pluralisation in the case of joint purchase for buyer previous, with associated testing changes * make minor linting changes and update the evil test about number of pages * potential variation on how to achieve pluralisation * use built in rails methods of pluralising copy --- .../form/sales/pages/about_staircase.rb | 9 +++--- app/models/form/sales/pages/buyer_previous.rb | 9 +++--- .../form/sales/pages/previous_ownership.rb | 9 +++--- .../form/sales/questions/buyer_previous.rb | 8 ++--- app/models/form/sales/questions/prevown.rb | 8 ++--- .../form/sales/questions/staircase_owned.rb | 8 ++--- .../income_benefits_and_savings.rb | 3 +- .../subsections/shared_ownership_scheme.rb | 6 ++-- config/locales/en.yml | 20 +++++++++++++ .../form/sales/pages/about_staircase_spec.rb | 29 ++++++++++++++----- .../form/sales/pages/buyer_previous_spec.rb | 21 ++++++++++++-- .../sales/pages/previous_ownership_spec.rb | 19 ++++++++++-- .../sales/questions/buyer_previous_spec.rb | 25 ++++++++++++---- .../form/sales/questions/prevown_spec.rb | 25 ++++++++++++---- .../sales/questions/staircase_owned_spec.rb | 25 ++++++++++++---- .../income_benefits_and_savings_spec.rb | 6 ++-- .../shared_ownership_scheme_spec.rb | 6 ++-- 17 files changed, 177 insertions(+), 59 deletions(-) diff --git a/app/models/form/sales/pages/about_staircase.rb b/app/models/form/sales/pages/about_staircase.rb index 2d1a17db4..4d5882916 100644 --- a/app/models/form/sales/pages/about_staircase.rb +++ b/app/models/form/sales/pages/about_staircase.rb @@ -1,17 +1,18 @@ class Form::Sales::Pages::AboutStaircase < ::Form::Page - def initialize(id, hsh, subsection) - super - @id = "about_staircasing" + def initialize(id, hsh, subsection, joint_purchase:) + super(id, hsh, subsection) + @joint_purchase = joint_purchase @header = "About the staircasing transaction" @depends_on = [{ "staircase" => 1, + "joint_purchase?" => joint_purchase, }] end def questions @questions ||= [ Form::Sales::Questions::StaircaseBought.new(nil, nil, self), - Form::Sales::Questions::StaircaseOwned.new(nil, nil, self), + Form::Sales::Questions::StaircaseOwned.new(nil, nil, self, joint_purchase: @joint_purchase), staircase_sale_question, ].compact end diff --git a/app/models/form/sales/pages/buyer_previous.rb b/app/models/form/sales/pages/buyer_previous.rb index 361b3ba47..f37c6a847 100644 --- a/app/models/form/sales/pages/buyer_previous.rb +++ b/app/models/form/sales/pages/buyer_previous.rb @@ -1,12 +1,13 @@ class Form::Sales::Pages::BuyerPrevious < ::Form::Page - def initialize(id, hsh, subsection) - super - @id = "buyer_previous" + def initialize(id, hsh, subsection, joint_purchase:) + super(id, hsh, subsection) + @joint_purchase = joint_purchase + @depends_on = [{ "joint_purchase?" => joint_purchase }] end def questions @questions ||= [ - Form::Sales::Questions::BuyerPrevious.new(nil, nil, self), + Form::Sales::Questions::BuyerPrevious.new(nil, nil, self, joint_purchase: @joint_purchase), ] end end diff --git a/app/models/form/sales/pages/previous_ownership.rb b/app/models/form/sales/pages/previous_ownership.rb index 88b438e07..50711baf7 100644 --- a/app/models/form/sales/pages/previous_ownership.rb +++ b/app/models/form/sales/pages/previous_ownership.rb @@ -1,12 +1,13 @@ class Form::Sales::Pages::PreviousOwnership < ::Form::Page - def initialize(id, hsh, subsection) - super - @id = "previous_ownership" + def initialize(id, hsh, subsection, joint_purchase:) + super(id, hsh, subsection) + @joint_purchase = joint_purchase + @depends_on = [{ "joint_purchase?" => @joint_purchase }] end def questions @questions ||= [ - Form::Sales::Questions::Prevown.new(nil, nil, self), + Form::Sales::Questions::Prevown.new(nil, nil, self, joint_purchase: @joint_purchase), ] end end diff --git a/app/models/form/sales/questions/buyer_previous.rb b/app/models/form/sales/questions/buyer_previous.rb index 18ac019cb..15fe330f0 100644 --- a/app/models/form/sales/questions/buyer_previous.rb +++ b/app/models/form/sales/questions/buyer_previous.rb @@ -1,9 +1,9 @@ class Form::Sales::Questions::BuyerPrevious < ::Form::Question - def initialize(id, hsh, page) - super + def initialize(id, hsh, page, joint_purchase:) + super(id, hsh, page) @id = "soctenant" - @check_answer_label = "Buyer was a registered provider, housing association or local authority tenant immediately before this sale?" - @header = "Was the buyer a private registered provider, housing association or local authority tenant immediately before this sale?" + @check_answer_label = I18n.t("check_answer_labels.soctenant", count: joint_purchase ? 2 : 1) + @header = I18n.t("questions.soctenant", count: joint_purchase ? 2 : 1) @type = "radio" @answer_options = ANSWER_OPTIONS end diff --git a/app/models/form/sales/questions/prevown.rb b/app/models/form/sales/questions/prevown.rb index a9a3b086b..571e1af8f 100644 --- a/app/models/form/sales/questions/prevown.rb +++ b/app/models/form/sales/questions/prevown.rb @@ -1,9 +1,9 @@ class Form::Sales::Questions::Prevown < ::Form::Question - def initialize(id, hsh, page) - super + def initialize(id, hsh, page, joint_purchase:) + super(id, hsh, page) @id = "prevown" - @check_answer_label = "Buyers previously owned a property" - @header = "Has the buyer previously owned a property?" + @check_answer_label = I18n.t("check_answer_labels.prevown", count: joint_purchase ? 2 : 1) + @header = I18n.t("questions.prevown", count: joint_purchase ? 2 : 1) @type = "radio" @answer_options = ANSWER_OPTIONS end diff --git a/app/models/form/sales/questions/staircase_owned.rb b/app/models/form/sales/questions/staircase_owned.rb index 7e6dab5d6..a3596554e 100644 --- a/app/models/form/sales/questions/staircase_owned.rb +++ b/app/models/form/sales/questions/staircase_owned.rb @@ -1,9 +1,9 @@ class Form::Sales::Questions::StaircaseOwned < ::Form::Question - def initialize(id, hsh, page) - super + def initialize(id, hsh, page, joint_purchase:) + super(id, hsh, page) @id = "stairowned" - @check_answer_label = "Percentage the buyer now owns in total" - @header = "What percentage of the property does the buyer now own in total?" + @check_answer_label = I18n.t("check_answer_labels.stairowned", count: joint_purchase ? 2 : 1) + @header = I18n.t("questions.stairowned", count: joint_purchase ? 2 : 1) @type = "numeric" @width = 5 @min = 0 diff --git a/app/models/form/sales/subsections/income_benefits_and_savings.rb b/app/models/form/sales/subsections/income_benefits_and_savings.rb index 9ff584d47..502b87fc9 100644 --- a/app/models/form/sales/subsections/income_benefits_and_savings.rb +++ b/app/models/form/sales/subsections/income_benefits_and_savings.rb @@ -23,7 +23,8 @@ class Form::Sales::Subsections::IncomeBenefitsAndSavings < ::Form::Subsection Form::Sales::Pages::Savings.new(nil, nil, self), Form::Sales::Pages::SavingsValueCheck.new("savings_value_check", nil, self), Form::Sales::Pages::DepositValueCheck.new("savings_deposit_value_check", nil, self), - Form::Sales::Pages::PreviousOwnership.new(nil, nil, self), + Form::Sales::Pages::PreviousOwnership.new("previous_ownership_joint_purchase", nil, self, joint_purchase: true), + Form::Sales::Pages::PreviousOwnership.new("previous_ownership_not_joint_purchase", nil, self, joint_purchase: false), previous_shared_page, ].compact end diff --git a/app/models/form/sales/subsections/shared_ownership_scheme.rb b/app/models/form/sales/subsections/shared_ownership_scheme.rb index 1f0cd6450..1c30f3b6f 100644 --- a/app/models/form/sales/subsections/shared_ownership_scheme.rb +++ b/app/models/form/sales/subsections/shared_ownership_scheme.rb @@ -10,14 +10,16 @@ class Form::Sales::Subsections::SharedOwnershipScheme < ::Form::Subsection @pages ||= [ Form::Sales::Pages::LivingBeforePurchase.new("living_before_purchase_shared_ownership", nil, self), Form::Sales::Pages::Staircase.new(nil, nil, self), - Form::Sales::Pages::AboutStaircase.new(nil, nil, self), + Form::Sales::Pages::AboutStaircase.new("about_staircasing_joint_purchase", nil, self, joint_purchase: true), + Form::Sales::Pages::AboutStaircase.new("about_staircasing_not_joint_purchase", nil, self, joint_purchase: false), Form::Sales::Pages::StaircaseBoughtValueCheck.new(nil, nil, self), Form::Sales::Pages::Resale.new(nil, nil, self), Form::Sales::Pages::ExchangeDate.new(nil, nil, self), Form::Sales::Pages::HandoverDate.new(nil, nil, self), Form::Sales::Pages::HandoverDateCheck.new(nil, nil, self), Form::Sales::Pages::LaNominations.new(nil, nil, self), - Form::Sales::Pages::BuyerPrevious.new(nil, nil, self), + Form::Sales::Pages::BuyerPrevious.new("buyer_previous_joint_purchase", nil, self, joint_purchase: true), + Form::Sales::Pages::BuyerPrevious.new("buyer_previous_not_joint_purchase", nil, self, joint_purchase: false), Form::Sales::Pages::PreviousBedrooms.new(nil, nil, self), Form::Sales::Pages::PreviousPropertyType.new(nil, nil, self), Form::Sales::Pages::PreviousTenure.new(nil, nil, self), diff --git a/config/locales/en.yml b/config/locales/en.yml index 8665c022a..c3762e259 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -538,6 +538,15 @@ en: W: "Suitable for someone who uses a wheelchair and offers the full use of all rooms and facilities." A: "Fitted with stairlifts, ramps, level access showers or grab rails." N: "Not designed to wheelchair-user standards or fitted with any equipment or adaptations." + soctenant: + one: "Was the buyer a private registered provider, housing association or local authority tenant immediately before this sale?" + other: "Were any of the buyers private registered providers, housing association or local authority tenants immediately before this sale?" + prevown: + one: "Has the buyer previously owned a property?" + other: "Have any of the buyers previously owned a property?" + stairowned: + one: "What percentage of the property does the buyer now own in total?" + other: "What percentage of the property do the buyers now own in total?" hints: location: @@ -551,6 +560,17 @@ en: bulk_upload: needstype: "General needs housing includes both self-contained and shared housing without support or specific adaptations. Supported housing can include direct access hostels, group homes, residential care and nursing homes." + check_answer_labels: + soctenant: + one: "Buyer was a registered provider, housing association or local authority tenant immediately before this sale?" + other: "Any buyers were registered providers, housing association or local authority tenants immediately before this sale?" + prevown: + one: "Buyer previously owned a property" + other: "Buyers previously owned a property" + stairowned: + one: "Percentage the buyer now owns in total" + other: "Percentage the buyers now own in total" + warnings: location: deactivate: diff --git a/spec/models/form/sales/pages/about_staircase_spec.rb b/spec/models/form/sales/pages/about_staircase_spec.rb index 3828f52e4..48aa82acf 100644 --- a/spec/models/form/sales/pages/about_staircase_spec.rb +++ b/spec/models/form/sales/pages/about_staircase_spec.rb @@ -1,11 +1,12 @@ require "rails_helper" RSpec.describe Form::Sales::Pages::AboutStaircase, type: :model do - subject(:page) { described_class.new(page_id, page_definition, subsection) } + subject(:page) { described_class.new(page_id, page_definition, subsection, joint_purchase:) } - let(:page_id) { nil } + let(:page_id) { "an_id" } let(:page_definition) { nil } let(:subsection) { instance_double(Form::Subsection) } + let(:joint_purchase) { false } it "has correct subsection" do expect(page.subsection).to eq(subsection) @@ -32,7 +33,7 @@ RSpec.describe Form::Sales::Pages::AboutStaircase, type: :model do end it "has the correct id" do - expect(page.id).to eq("about_staircasing") + expect(page.id).to eq("an_id") end it "has the correct header" do @@ -43,9 +44,23 @@ RSpec.describe Form::Sales::Pages::AboutStaircase, type: :model do expect(page.description).to be_nil end - it "has correct depends_on" do - expect(page.depends_on).to eq([{ - "staircase" => 1, - }]) + context "when not a joint purchase" do + it "has correct depends_on" do + expect(page.depends_on).to eq([{ + "staircase" => 1, + "joint_purchase?" => false, + }]) + end + end + + context "when a joint purchase" do + let(:joint_purchase) { true } + + it "has correct depends_on" do + expect(page.depends_on).to eq([{ + "staircase" => 1, + "joint_purchase?" => true, + }]) + end end end diff --git a/spec/models/form/sales/pages/buyer_previous_spec.rb b/spec/models/form/sales/pages/buyer_previous_spec.rb index a3355c137..e6dda073e 100644 --- a/spec/models/form/sales/pages/buyer_previous_spec.rb +++ b/spec/models/form/sales/pages/buyer_previous_spec.rb @@ -1,11 +1,12 @@ require "rails_helper" RSpec.describe Form::Sales::Pages::BuyerPrevious, type: :model do - subject(:page) { described_class.new(page_id, page_definition, subsection) } + subject(:page) { described_class.new(page_id, page_definition, subsection, joint_purchase:) } - let(:page_id) { nil } + let(:page_id) { "example" } let(:page_definition) { nil } let(:subsection) { instance_double(Form::Subsection) } + let(:joint_purchase) { false } it "has correct subsection" do expect(page.subsection).to eq(subsection) @@ -16,7 +17,7 @@ RSpec.describe Form::Sales::Pages::BuyerPrevious, type: :model do end it "has the correct id" do - expect(page.id).to eq("buyer_previous") + expect(page.id).to eq("example") end it "has the correct header" do @@ -26,4 +27,18 @@ RSpec.describe Form::Sales::Pages::BuyerPrevious, type: :model do it "has the correct description" do expect(page.description).to be_nil end + + context "when sales is a joint purchase" do + let(:joint_purchase) { true } + + it "has the correct depends on" do + expect(page.depends_on).to eq([{ "joint_purchase?" => true }]) + end + end + + context "when sales is not a joint purchase" do + it "has the correct depends on" do + expect(page.depends_on).to eq([{ "joint_purchase?" => false }]) + end + end end diff --git a/spec/models/form/sales/pages/previous_ownership_spec.rb b/spec/models/form/sales/pages/previous_ownership_spec.rb index 7fe0d2795..69c93fefa 100644 --- a/spec/models/form/sales/pages/previous_ownership_spec.rb +++ b/spec/models/form/sales/pages/previous_ownership_spec.rb @@ -1,11 +1,12 @@ require "rails_helper" RSpec.describe Form::Sales::Pages::PreviousOwnership, type: :model do - subject(:page) { described_class.new(page_id, page_definition, subsection) } + subject(:page) { described_class.new(page_id, page_definition, subsection, joint_purchase:) } - let(:page_id) { nil } + let(:page_id) { "example_id" } let(:page_definition) { nil } let(:subsection) { instance_double(Form::Subsection) } + let(:joint_purchase) { true } it "has correct subsection" do expect(page.subsection).to eq(subsection) @@ -16,7 +17,7 @@ RSpec.describe Form::Sales::Pages::PreviousOwnership, type: :model do end it "has the correct id" do - expect(page.id).to eq("previous_ownership") + expect(page.id).to eq("example_id") end it "has the correct header" do @@ -26,4 +27,16 @@ RSpec.describe Form::Sales::Pages::PreviousOwnership, type: :model do it "has the correct description" do expect(page.description).to be_nil end + + it "when sale is a joint purchase has the correct depends on" do + expect(page.depends_on).to eq([{ "joint_purchase?" => true }]) + end + + context "when sale is not a joint purchase" do + let(:joint_purchase) { false } + + it "has the correct depends on" do + expect(page.depends_on).to eq([{ "joint_purchase?" => false }]) + end + end end diff --git a/spec/models/form/sales/questions/buyer_previous_spec.rb b/spec/models/form/sales/questions/buyer_previous_spec.rb index 07d3685f8..a1348f17b 100644 --- a/spec/models/form/sales/questions/buyer_previous_spec.rb +++ b/spec/models/form/sales/questions/buyer_previous_spec.rb @@ -1,11 +1,12 @@ require "rails_helper" RSpec.describe Form::Sales::Questions::BuyerPrevious, type: :model do - subject(:question) { described_class.new(question_id, question_definition, page) } + subject(:question) { described_class.new(question_id, question_definition, page, joint_purchase:) } let(:question_id) { nil } let(:question_definition) { nil } let(:page) { instance_double(Form::Page) } + let(:joint_purchase) { true } it "has correct page" do expect(question.page).to eq(page) @@ -15,12 +16,26 @@ RSpec.describe Form::Sales::Questions::BuyerPrevious, type: :model do expect(question.id).to eq("soctenant") end - it "has the correct header" do - expect(question.header).to eq("Was the buyer a private registered provider, housing association or local authority tenant immediately before this sale?") + context "when a joint purchase" do + it "has the correct header" do + expect(question.header).to eq("Were any of the buyers private registered providers, housing association or local authority tenants immediately before this sale?") + end + + it "has the correct check_answer_label" do + expect(question.check_answer_label).to eq("Any buyers were registered providers, housing association or local authority tenants immediately before this sale?") + end end - it "has the correct check_answer_label" do - expect(question.check_answer_label).to eq("Buyer was a registered provider, housing association or local authority tenant immediately before this sale?") + context "when not a joint purchase" do + let(:joint_purchase) { false } + + it "has the correct header" do + expect(question.header).to eq("Was the buyer a private registered provider, housing association or local authority tenant immediately before this sale?") + end + + it "has the correct check_answer_label" do + expect(question.check_answer_label).to eq("Buyer was a registered provider, housing association or local authority tenant immediately before this sale?") + end end it "has the correct type" do diff --git a/spec/models/form/sales/questions/prevown_spec.rb b/spec/models/form/sales/questions/prevown_spec.rb index dda2b7c70..d7b101c99 100644 --- a/spec/models/form/sales/questions/prevown_spec.rb +++ b/spec/models/form/sales/questions/prevown_spec.rb @@ -1,11 +1,12 @@ require "rails_helper" RSpec.describe Form::Sales::Questions::Prevown, type: :model do - subject(:question) { described_class.new(question_id, question_definition, page) } + subject(:question) { described_class.new(question_id, question_definition, page, joint_purchase:) } let(:question_id) { nil } let(:question_definition) { nil } let(:page) { instance_double(Form::Page) } + let(:joint_purchase) { false } it "has correct page" do expect(question.page).to eq(page) @@ -15,12 +16,26 @@ RSpec.describe Form::Sales::Questions::Prevown, type: :model do expect(question.id).to eq("prevown") end - it "has the correct header" do - expect(question.header).to eq("Has the buyer previously owned a property?") + context "when sale is not a joint purchase" do + it "has the correct header" do + expect(question.header).to eq("Has the buyer previously owned a property?") + end + + it "has the correct check_answer_label" do + expect(question.check_answer_label).to eq("Buyer previously owned a property") + end end - it "has the correct check_answer_label" do - expect(question.check_answer_label).to eq("Buyers previously owned a property") + context "when sale is a joint purchase" do + let(:joint_purchase) { true } + + it "has the correct header" do + expect(question.header).to eq("Have any of the buyers previously owned a property?") + end + + it "has the correct check_answer_label" do + expect(question.check_answer_label).to eq("Buyers previously owned a property") + end end it "has the correct type" do diff --git a/spec/models/form/sales/questions/staircase_owned_spec.rb b/spec/models/form/sales/questions/staircase_owned_spec.rb index cbd577784..8e78d540a 100644 --- a/spec/models/form/sales/questions/staircase_owned_spec.rb +++ b/spec/models/form/sales/questions/staircase_owned_spec.rb @@ -1,11 +1,12 @@ require "rails_helper" RSpec.describe Form::Sales::Questions::StaircaseOwned, type: :model do - subject(:question) { described_class.new(question_id, question_definition, page) } + subject(:question) { described_class.new(question_id, question_definition, page, joint_purchase:) } let(:question_id) { nil } let(:question_definition) { nil } let(:page) { instance_double(Form::Page) } + let(:joint_purchase) { false } it "has correct page" do expect(question.page).to eq(page) @@ -15,12 +16,26 @@ RSpec.describe Form::Sales::Questions::StaircaseOwned, type: :model do expect(question.id).to eq("stairowned") end - it "has the correct header" do - expect(question.header).to eq("What percentage of the property does the buyer now own in total?") + context "when a joint purchase" do + let(:joint_purchase) { true } + + it "has the correct header" do + expect(question.header).to eq("What percentage of the property do the buyers now own in total?") + end + + it "has the correct check_answer_label" do + expect(question.check_answer_label).to eq("Percentage the buyers now own in total") + end end - it "has the correct check_answer_label" do - expect(question.check_answer_label).to eq("Percentage the buyer now owns in total") + context "when not a joint purchase" do + it "has the correct header" do + expect(question.header).to eq("What percentage of the property does the buyer now own in total?") + end + + it "has the correct check_answer_label" do + expect(question.check_answer_label).to eq("Percentage the buyer now owns in total") + end end it "has the correct type" do diff --git a/spec/models/form/sales/subsections/income_benefits_and_savings_spec.rb b/spec/models/form/sales/subsections/income_benefits_and_savings_spec.rb index 6c0997fd2..aef451878 100644 --- a/spec/models/form/sales/subsections/income_benefits_and_savings_spec.rb +++ b/spec/models/form/sales/subsections/income_benefits_and_savings_spec.rb @@ -35,7 +35,8 @@ RSpec.describe Form::Sales::Subsections::IncomeBenefitsAndSavings, type: :model savings savings_value_check savings_deposit_value_check - previous_ownership + previous_ownership_joint_purchase + previous_ownership_not_joint_purchase ], ) end @@ -62,7 +63,8 @@ RSpec.describe Form::Sales::Subsections::IncomeBenefitsAndSavings, type: :model savings savings_value_check savings_deposit_value_check - previous_ownership + previous_ownership_joint_purchase + previous_ownership_not_joint_purchase previous_shared ], ) diff --git a/spec/models/form/sales/subsections/shared_ownership_scheme_spec.rb b/spec/models/form/sales/subsections/shared_ownership_scheme_spec.rb index ee9f624aa..3c189f93f 100644 --- a/spec/models/form/sales/subsections/shared_ownership_scheme_spec.rb +++ b/spec/models/form/sales/subsections/shared_ownership_scheme_spec.rb @@ -16,14 +16,16 @@ RSpec.describe Form::Sales::Subsections::SharedOwnershipScheme, type: :model do %w[ living_before_purchase_shared_ownership staircasing - about_staircasing + about_staircasing_joint_purchase + about_staircasing_not_joint_purchase staircase_bought_value_check resale exchange_contracts handover_date handover_date_check la_nominations - buyer_previous + buyer_previous_joint_purchase + buyer_previous_not_joint_purchase previous_bedrooms previous_property_type shared_ownership_previous_tenure From 0216aae40f144081679b01bc9108597a7e6410fd Mon Sep 17 00:00:00 2001 From: Arthur Campbell <51094020+arfacamble@users.noreply.github.com> Date: Wed, 8 Mar 2023 12:17:51 +0000 Subject: [PATCH 02/51] when buyer is a company, do not route to household characteristics (#1336) --- .../subsections/household_characteristics.rb | 6 +++++- app/models/sales_log.rb | 4 ++++ spec/factories/sales_log.rb | 1 - .../household_characteristics_spec.rb | 18 +++++++++++++++++- 4 files changed, 26 insertions(+), 3 deletions(-) diff --git a/app/models/form/sales/subsections/household_characteristics.rb b/app/models/form/sales/subsections/household_characteristics.rb index 571968c8f..0277acffb 100644 --- a/app/models/form/sales/subsections/household_characteristics.rb +++ b/app/models/form/sales/subsections/household_characteristics.rb @@ -3,7 +3,7 @@ class Form::Sales::Subsections::HouseholdCharacteristics < ::Form::Subsection super @id = "household_characteristics" @label = "Household characteristics" - @depends_on = [{ "setup_completed?" => true }] + @depends_on = [{ "setup_completed?" => true, "company_buyer?" => false }] end def pages @@ -92,4 +92,8 @@ class Form::Sales::Subsections::HouseholdCharacteristics < ::Form::Subsection Form::Sales::Pages::Buyer2EthnicBackgroundWhite.new(nil, nil, self)] end end + + def displayed_in_tasklist?(log) + !log.company_buyer? + end end diff --git a/app/models/sales_log.rb b/app/models/sales_log.rb index 629215386..90f130c04 100644 --- a/app/models/sales_log.rb +++ b/app/models/sales_log.rb @@ -262,6 +262,10 @@ class SalesLog < Log ownershipsch == 1 end + def company_buyer? + companybuy == 1 + end + def buyers_age_for_old_persons_shared_ownership_invalid? return unless old_persons_shared_ownership? diff --git a/spec/factories/sales_log.rb b/spec/factories/sales_log.rb index f1da841a4..b2d6f37a5 100644 --- a/spec/factories/sales_log.rb +++ b/spec/factories/sales_log.rb @@ -14,7 +14,6 @@ FactoryBot.define do ownershipsch { 2 } type { 8 } saledate { Time.utc(2023, 2, 2, 10, 36, 49) } - companybuy { 1 } jointpur { 1 } beds { 2 } jointmore { 1 } diff --git a/spec/models/form/sales/subsections/household_characteristics_spec.rb b/spec/models/form/sales/subsections/household_characteristics_spec.rb index 4645b7231..5a025e8de 100644 --- a/spec/models/form/sales/subsections/household_characteristics_spec.rb +++ b/spec/models/form/sales/subsections/household_characteristics_spec.rb @@ -195,6 +195,22 @@ RSpec.describe Form::Sales::Subsections::HouseholdCharacteristics, type: :model end it "has correct depends on" do - expect(household_characteristics.depends_on).to eq([{ "setup_completed?" => true }]) + expect(household_characteristics.depends_on).to eq([{ "setup_completed?" => true, "company_buyer?" => false }]) + end + + context "when the sale is to a company buyer" do + let(:log) { FactoryBot.create(:sales_log, ownershipsch: 3, companybuy: 1) } + + it "is not displayed in tasklist" do + expect(household_characteristics.displayed_in_tasklist?(log)).to eq(false) + end + end + + context "when the sale is not to a company buyer" do + let(:log) { FactoryBot.create(:sales_log, ownershipsch: 3, companybuy: 2) } + + it "is displayed in tasklist" do + expect(household_characteristics.displayed_in_tasklist?(log)).to eq(true) + end end end From e0bde3a4b4af5c67e2596160694b8ecc65ecc1f5 Mon Sep 17 00:00:00 2001 From: Arthur Campbell <51094020+arfacamble@users.noreply.github.com> Date: Wed, 8 Mar 2023 13:10:12 +0000 Subject: [PATCH 03/51] CLDC-1817 age questions update for children (#1333) * amend copy of hint text * update test to reflect copy change * display hint text on age question if that person is a child * updates from code review * update tests to reflect changes in class interfaces for page and question --- app/models/form/lettings/pages/person_age.rb | 14 +++++--- app/models/form/lettings/questions/age.rb | 5 +-- .../lettings/questions/person_relationship.rb | 2 +- .../subsections/household_characteristics.rb | 7 ++++ app/models/log.rb | 6 ++++ .../form/lettings/pages/person_age_spec.rb | 35 ++++++++++++++----- .../form/lettings/questions/age_spec.rb | 19 +++++++--- .../questions/person_relationship_spec.rb | 2 +- .../household_characteristics_spec.rb | 21 +++++++---- 9 files changed, 83 insertions(+), 28 deletions(-) diff --git a/app/models/form/lettings/pages/person_age.rb b/app/models/form/lettings/pages/person_age.rb index 66f7d3d89..bbb5da01e 100644 --- a/app/models/form/lettings/pages/person_age.rb +++ b/app/models/form/lettings/pages/person_age.rb @@ -1,15 +1,21 @@ class Form::Lettings::Pages::PersonAge < ::Form::Page - def initialize(id, hsh, subsection, person_index:) + def initialize(id, hsh, subsection, person_index:, person_type: "non_child") super(id, hsh, subsection) - @id = "person_#{person_index}_age" - @depends_on = [{ "details_known_#{person_index}" => 0 }] + @id = "person_#{person_index}_age_#{person_type}" @person_index = person_index + @person_type = person_type + @depends_on = [ + { + "details_known_#{person_index}" => 0, + "person_#{person_index}_child_relation?" => (person_type == "child"), + }, + ] end def questions @questions ||= [ Form::Lettings::Questions::AgeKnown.new(nil, nil, self, person_index: @person_index), - Form::Lettings::Questions::Age.new(nil, nil, self, person_index: @person_index), + Form::Lettings::Questions::Age.new(nil, nil, self, person_index: @person_index, person_type: @person_type), ] end end diff --git a/app/models/form/lettings/questions/age.rb b/app/models/form/lettings/questions/age.rb index f160f1948..82975ebb7 100644 --- a/app/models/form/lettings/questions/age.rb +++ b/app/models/form/lettings/questions/age.rb @@ -1,5 +1,5 @@ class Form::Lettings::Questions::Age < ::Form::Question - def initialize(id, hsh, page, person_index:) + def initialize(id, hsh, page, person_index:, person_type:) super(id, hsh, page) @id = "age#{person_index}" @check_answer_label = "Person #{person_index}’s age" @@ -9,7 +9,8 @@ class Form::Lettings::Questions::Age < ::Form::Question @inferred_check_answers_value = [{ "condition" => { "age#{person_index}_known" => 1 }, "value" => "Not known" }] @check_answers_card_number = person_index @max = 120 - @min = 0 + @min = 1 @step = 1 + @hint_text = "For a child under 1, enter 1" if person_type == "child" end end diff --git a/app/models/form/lettings/questions/person_relationship.rb b/app/models/form/lettings/questions/person_relationship.rb index debb14a03..a346cf3cc 100644 --- a/app/models/form/lettings/questions/person_relationship.rb +++ b/app/models/form/lettings/questions/person_relationship.rb @@ -14,7 +14,7 @@ class Form::Lettings::Questions::PersonRelationship < ::Form::Question "P" => { "value" => "Partner" }, "C" => { "value" => "Child", - "hint" => "Must be eligible for child benefit, aged under 16 or under 20 if still in full-time education.", + "hint" => "Must be eligible for child benefit: under age 16 or under 20 if still in full-time education.", }, "X" => { "value" => "Other" }, "divider" => { "value" => true }, diff --git a/app/models/form/lettings/subsections/household_characteristics.rb b/app/models/form/lettings/subsections/household_characteristics.rb index 8a5bdf8c1..9fc6948bd 100644 --- a/app/models/form/lettings/subsections/household_characteristics.rb +++ b/app/models/form/lettings/subsections/household_characteristics.rb @@ -30,6 +30,7 @@ class Form::Lettings::Subsections::HouseholdCharacteristics < ::Form::Subsection Form::Lettings::Pages::LeadTenantOverRetirementValueCheck.new(nil, nil, self), Form::Lettings::Pages::PersonKnown.new(nil, nil, self, person_index: 2), Form::Lettings::Pages::PersonRelationshipToLead.new(nil, nil, self, person_index: 2), + Form::Lettings::Pages::PersonAge.new(nil, nil, self, person_index: 2, person_type: "child"), Form::Lettings::Pages::PersonAge.new(nil, nil, self, person_index: 2), Form::Lettings::Pages::NoFemalesPregnantHouseholdPersonAgeValueCheck.new(nil, nil, self, person_index: 2), @@ -44,6 +45,7 @@ class Form::Lettings::Subsections::HouseholdCharacteristics < ::Form::Subsection Form::Lettings::Pages::PersonOverRetirementValueCheck.new(nil, nil, self, person_index: 2), Form::Lettings::Pages::PersonKnown.new(nil, nil, self, person_index: 3), Form::Lettings::Pages::PersonRelationshipToLead.new(nil, nil, self, person_index: 3), + Form::Lettings::Pages::PersonAge.new(nil, nil, self, person_index: 3, person_type: "child"), Form::Lettings::Pages::PersonAge.new(nil, nil, self, person_index: 3), Form::Lettings::Pages::NoFemalesPregnantHouseholdPersonAgeValueCheck.new(nil, nil, self, person_index: 3), @@ -58,6 +60,7 @@ class Form::Lettings::Subsections::HouseholdCharacteristics < ::Form::Subsection Form::Lettings::Pages::PersonOverRetirementValueCheck.new(nil, nil, self, person_index: 3), Form::Lettings::Pages::PersonKnown.new(nil, nil, self, person_index: 4), Form::Lettings::Pages::PersonRelationshipToLead.new(nil, nil, self, person_index: 4), + Form::Lettings::Pages::PersonAge.new(nil, nil, self, person_index: 4, person_type: "child"), Form::Lettings::Pages::PersonAge.new(nil, nil, self, person_index: 4), Form::Lettings::Pages::NoFemalesPregnantHouseholdPersonAgeValueCheck.new(nil, nil, self, person_index: 4), @@ -72,6 +75,7 @@ class Form::Lettings::Subsections::HouseholdCharacteristics < ::Form::Subsection Form::Lettings::Pages::PersonOverRetirementValueCheck.new(nil, nil, self, person_index: 4), Form::Lettings::Pages::PersonKnown.new(nil, nil, self, person_index: 5), Form::Lettings::Pages::PersonRelationshipToLead.new(nil, nil, self, person_index: 5), + Form::Lettings::Pages::PersonAge.new(nil, nil, self, person_index: 5, person_type: "child"), Form::Lettings::Pages::PersonAge.new(nil, nil, self, person_index: 5), Form::Lettings::Pages::NoFemalesPregnantHouseholdPersonAgeValueCheck.new(nil, nil, self, person_index: 5), @@ -86,6 +90,7 @@ class Form::Lettings::Subsections::HouseholdCharacteristics < ::Form::Subsection Form::Lettings::Pages::PersonOverRetirementValueCheck.new(nil, nil, self, person_index: 5), Form::Lettings::Pages::PersonKnown.new(nil, nil, self, person_index: 6), Form::Lettings::Pages::PersonRelationshipToLead.new(nil, nil, self, person_index: 6), + Form::Lettings::Pages::PersonAge.new(nil, nil, self, person_index: 6, person_type: "child"), Form::Lettings::Pages::PersonAge.new(nil, nil, self, person_index: 6), Form::Lettings::Pages::NoFemalesPregnantHouseholdPersonAgeValueCheck.new(nil, nil, self, person_index: 6), @@ -100,6 +105,7 @@ class Form::Lettings::Subsections::HouseholdCharacteristics < ::Form::Subsection Form::Lettings::Pages::PersonOverRetirementValueCheck.new(nil, nil, self, person_index: 6), Form::Lettings::Pages::PersonKnown.new(nil, nil, self, person_index: 7), Form::Lettings::Pages::PersonRelationshipToLead.new(nil, nil, self, person_index: 7), + Form::Lettings::Pages::PersonAge.new(nil, nil, self, person_index: 7, person_type: "child"), Form::Lettings::Pages::PersonAge.new(nil, nil, self, person_index: 7), Form::Lettings::Pages::NoFemalesPregnantHouseholdPersonAgeValueCheck.new(nil, nil, self, person_index: 7), @@ -114,6 +120,7 @@ class Form::Lettings::Subsections::HouseholdCharacteristics < ::Form::Subsection Form::Lettings::Pages::PersonOverRetirementValueCheck.new(nil, nil, self, person_index: 7), Form::Lettings::Pages::PersonKnown.new(nil, nil, self, person_index: 8), Form::Lettings::Pages::PersonRelationshipToLead.new(nil, nil, self, person_index: 8), + Form::Lettings::Pages::PersonAge.new(nil, nil, self, person_index: 8, person_type: "child"), Form::Lettings::Pages::PersonAge.new(nil, nil, self, person_index: 8), Form::Lettings::Pages::NoFemalesPregnantHouseholdPersonAgeValueCheck.new(nil, nil, self, person_index: 8), diff --git a/app/models/log.rb b/app/models/log.rb index f6f5f4173..f5f5f4946 100644 --- a/app/models/log.rb +++ b/app/models/log.rb @@ -81,6 +81,12 @@ class Log < ApplicationRecord end end + (2..8).each do |person_num| + define_method("person_#{person_num}_child_relation?") do + send("relat#{person_num}") == "C" + end + end + private def plural_gender_for_person(person_num) diff --git a/spec/models/form/lettings/pages/person_age_spec.rb b/spec/models/form/lettings/pages/person_age_spec.rb index ca39ef2c9..3a5ee1655 100644 --- a/spec/models/form/lettings/pages/person_age_spec.rb +++ b/spec/models/form/lettings/pages/person_age_spec.rb @@ -1,11 +1,12 @@ require "rails_helper" RSpec.describe Form::Lettings::Pages::PersonAge, type: :model do - subject(:page) { described_class.new(nil, page_definition, subsection, person_index:) } + subject(:page) { described_class.new(nil, page_definition, subsection, person_index:, person_type:) } let(:page_definition) { nil } let(:subsection) { instance_double(Form::Subsection) } let(:person_index) { 2 } + let(:person_type) { "non_child" } it "has correct subsection" do expect(page.subsection).to eq(subsection) @@ -24,14 +25,30 @@ RSpec.describe Form::Lettings::Pages::PersonAge, type: :model do expect(page.questions.map(&:id)).to eq(%w[age2_known age2]) end - it "has the correct id" do - expect(page.id).to eq("person_2_age") + context "when child" do + let(:person_type) { "child" } + + it "has the correct id" do + expect(page.id).to eq("person_2_age_child") + end + + it "has correct depends_on" do + expect(page.depends_on).to eq( + [{ "details_known_2" => 0, "person_2_child_relation?" => true }], + ) + end end - it "has correct depends_on" do - expect(page.depends_on).to eq( - [{ "details_known_2" => 0 }], - ) + context "when not child" do + it "has the correct id" do + expect(page.id).to eq("person_2_age_non_child") + end + + it "has correct depends_on" do + expect(page.depends_on).to eq( + [{ "details_known_2" => 0, "person_2_child_relation?" => false }], + ) + end end end @@ -43,12 +60,12 @@ RSpec.describe Form::Lettings::Pages::PersonAge, type: :model do end it "has the correct id" do - expect(page.id).to eq("person_3_age") + expect(page.id).to eq("person_3_age_non_child") end it "has correct depends_on" do expect(page.depends_on).to eq( - [{ "details_known_3" => 0 }], + [{ "details_known_3" => 0, "person_3_child_relation?" => false }], ) end end diff --git a/spec/models/form/lettings/questions/age_spec.rb b/spec/models/form/lettings/questions/age_spec.rb index 87c3dce22..40a6356fd 100644 --- a/spec/models/form/lettings/questions/age_spec.rb +++ b/spec/models/form/lettings/questions/age_spec.rb @@ -1,11 +1,12 @@ require "rails_helper" RSpec.describe Form::Lettings::Questions::Age, type: :model do - subject(:question) { described_class.new(nil, question_definition, page, person_index:) } + subject(:question) { described_class.new(nil, question_definition, page, person_index:, person_type:) } let(:question_definition) { nil } let(:page) { instance_double(Form::Page) } let(:person_index) { 2 } + let(:person_type) { "non_child" } it "has correct page" do expect(question.page).to eq(page) @@ -23,12 +24,22 @@ RSpec.describe Form::Lettings::Questions::Age, type: :model do expect(question.derived?).to be false end - it "has the correct hint" do - expect(question.hint_text).to be_nil + context "when child" do + let(:person_type) { "child" } + + it "has the correct hint" do + expect(question.hint_text).to eq("For a child under 1, enter 1") + end + end + + context "when not child" do + it "has no hint" do + expect(question.hint_text).to be nil + end end it "has the correct min" do - expect(question.min).to eq(0) + expect(question.min).to eq(1) end it "has the correct max" do diff --git a/spec/models/form/lettings/questions/person_relationship_spec.rb b/spec/models/form/lettings/questions/person_relationship_spec.rb index 04f071b9b..dca3d82a3 100644 --- a/spec/models/form/lettings/questions/person_relationship_spec.rb +++ b/spec/models/form/lettings/questions/person_relationship_spec.rb @@ -20,7 +20,7 @@ RSpec.describe Form::Lettings::Questions::PersonRelationship, type: :model do end it "has the correct answer_options" do - expect(question.answer_options).to eq("C" => { "hint" => "Must be eligible for child benefit, aged under 16 or under 20 if still in full-time education.", "value" => "Child" }, + expect(question.answer_options).to eq("C" => { "hint" => "Must be eligible for child benefit: under age 16 or under 20 if still in full-time education.", "value" => "Child" }, "P" => { "value" => "Partner" }, "R" => { "value" => "Person prefers not to say" }, "X" => { "value" => "Other" }, diff --git a/spec/models/form/lettings/subsections/household_characteristics_spec.rb b/spec/models/form/lettings/subsections/household_characteristics_spec.rb index 96d722a2b..d0d55b8bf 100644 --- a/spec/models/form/lettings/subsections/household_characteristics_spec.rb +++ b/spec/models/form/lettings/subsections/household_characteristics_spec.rb @@ -36,7 +36,8 @@ RSpec.describe Form::Lettings::Subsections::HouseholdCharacteristics, type: :mod lead_tenant_over_retirement_value_check person_2_known person_2_relationship_to_lead - person_2_age + person_2_age_child + person_2_age_non_child no_females_pregnant_household_person_2_age_value_check females_in_soft_age_range_in_pregnant_household_person_2_age_value_check person_2_gender_identity @@ -47,7 +48,8 @@ RSpec.describe Form::Lettings::Subsections::HouseholdCharacteristics, type: :mod person_2_over_retirement_value_check person_3_known person_3_relationship_to_lead - person_3_age + person_3_age_child + person_3_age_non_child no_females_pregnant_household_person_3_age_value_check females_in_soft_age_range_in_pregnant_household_person_3_age_value_check person_3_gender_identity @@ -58,7 +60,8 @@ RSpec.describe Form::Lettings::Subsections::HouseholdCharacteristics, type: :mod person_3_over_retirement_value_check person_4_known person_4_relationship_to_lead - person_4_age + person_4_age_child + person_4_age_non_child no_females_pregnant_household_person_4_age_value_check females_in_soft_age_range_in_pregnant_household_person_4_age_value_check person_4_gender_identity @@ -69,7 +72,8 @@ RSpec.describe Form::Lettings::Subsections::HouseholdCharacteristics, type: :mod person_4_over_retirement_value_check person_5_known person_5_relationship_to_lead - person_5_age + person_5_age_child + person_5_age_non_child no_females_pregnant_household_person_5_age_value_check females_in_soft_age_range_in_pregnant_household_person_5_age_value_check person_5_gender_identity @@ -80,7 +84,8 @@ RSpec.describe Form::Lettings::Subsections::HouseholdCharacteristics, type: :mod person_5_over_retirement_value_check person_6_known person_6_relationship_to_lead - person_6_age + person_6_age_child + person_6_age_non_child no_females_pregnant_household_person_6_age_value_check females_in_soft_age_range_in_pregnant_household_person_6_age_value_check person_6_gender_identity @@ -91,7 +96,8 @@ RSpec.describe Form::Lettings::Subsections::HouseholdCharacteristics, type: :mod person_6_over_retirement_value_check person_7_known person_7_relationship_to_lead - person_7_age + person_7_age_child + person_7_age_non_child no_females_pregnant_household_person_7_age_value_check females_in_soft_age_range_in_pregnant_household_person_7_age_value_check person_7_gender_identity @@ -102,7 +108,8 @@ RSpec.describe Form::Lettings::Subsections::HouseholdCharacteristics, type: :mod person_7_over_retirement_value_check person_8_known person_8_relationship_to_lead - person_8_age + person_8_age_child + person_8_age_non_child no_females_pregnant_household_person_8_age_value_check females_in_soft_age_range_in_pregnant_household_person_8_age_value_check person_8_gender_identity From 7716602544bf18d1f886ac78033d0f8c75bc72af Mon Sep 17 00:00:00 2001 From: kosiakkatrina <54268893+kosiakkatrina@users.noreply.github.com> Date: Wed, 8 Mar 2023 13:37:52 +0000 Subject: [PATCH 04/51] CLDC-2006 Add and populate local authorities table (#1395) * Add local authorities table * Seed initial local authorities * set previous_location_only to false by default * Add unique index and rake task * Update field name and required fields * Remove previous_location_only field * tests --- app/models/local_authority.rb | 2 + .../imports/local_authorities_service.rb | 25 ++ .../initial_local_authorities.csv | 388 ++++++++++++++++++ ...20230308101826_create_local_authorities.rb | 13 + db/schema.rb | 12 +- db/seeds.rb | 6 + lib/tasks/local_authorities.rake | 13 + spec/fixtures/files/local_authorities.csv | 6 + .../tasks/local_authorities_import_spec.rb | 43 ++ 9 files changed, 507 insertions(+), 1 deletion(-) create mode 100644 app/models/local_authority.rb create mode 100644 app/services/imports/local_authorities_service.rb create mode 100644 config/local_authorities_data/initial_local_authorities.csv create mode 100644 db/migrate/20230308101826_create_local_authorities.rb create mode 100644 lib/tasks/local_authorities.rake create mode 100644 spec/fixtures/files/local_authorities.csv create mode 100644 spec/lib/tasks/local_authorities_import_spec.rb diff --git a/app/models/local_authority.rb b/app/models/local_authority.rb new file mode 100644 index 000000000..4017ada52 --- /dev/null +++ b/app/models/local_authority.rb @@ -0,0 +1,2 @@ +class LocalAuthority < ApplicationRecord +end diff --git a/app/services/imports/local_authorities_service.rb b/app/services/imports/local_authorities_service.rb new file mode 100644 index 000000000..23a4e2375 --- /dev/null +++ b/app/services/imports/local_authorities_service.rb @@ -0,0 +1,25 @@ +require "csv" + +module Imports + class LocalAuthoritiesService + attr_reader :path, :count + + def initialize(path:) + @path = path + @count = 0 + end + + def call + CSV.foreach(path, headers: true) do |row| + LocalAuthority.upsert( + { code: row["code"], + name: row["name"], + start_date: Time.zone.local(row["start_year"], 4, 1), + end_date: (Time.zone.local(row["end_year"], 3, 31) if row["end_year"]) }, + unique_by: %i[code], + ) + @count += 1 + end + end + end +end diff --git a/config/local_authorities_data/initial_local_authorities.csv b/config/local_authorities_data/initial_local_authorities.csv new file mode 100644 index 000000000..f80fbb6f5 --- /dev/null +++ b/config/local_authorities_data/initial_local_authorities.csv @@ -0,0 +1,388 @@ +code,name,start_year,end_year +S12000033,Aberdeen City,2021, +S12000034,Aberdeenshire,2021, +E07000223,Adur,2021, +E07000032,Amber Valley,2021, +S12000041,Angus,2021, +N09000001,Antrim and Newtownabbey,2021, +N09000011,Ards and North Down,2021, +S12000035,Argyll and Bute,2021, +N09000002,"Armagh City, Banbridge and Craigavon",2021, +E07000224,Arun,2021, +E07000170,Ashfield,2021, +E07000105,Ashford,2021, +E07000200,Babergh,2021, +E09000002,Barking and Dagenham,2021, +E09000003,Barnet,2021, +E08000016,Barnsley,2021, +E07000066,Basildon,2021, +E07000084,Basingstoke and Deane,2021, +E07000171,Bassetlaw,2021, +E06000022,Bath and North East Somerset,2021, +E06000055,Bedford,2021, +N09000003,Belfast,2021, +E09000004,Bexley,2021, +E08000025,Birmingham,2021, +E07000129,Blaby,2021, +E06000008,Blackburn with Darwen,2021, +E06000009,Blackpool,2021, +W06000019,Blaenau Gwent,2021, +E07000033,Bolsover,2021, +E08000001,Bolton,2021, +E07000136,Boston,2021, +E06000058,"Bournemouth, Christchurch and Poole",2021, +E06000036,Bracknell Forest,2021, +E08000032,Bradford,2021, +E07000067,Braintree,2021, +E07000143,Breckland,2021, +E09000005,Brent,2021, +E07000068,Brentwood,2021, +W06000013,Bridgend,2021, +E06000043,Brighton and Hove,2021, +E06000023,"Bristol, City of",2021, +E07000144,Broadland,2021, +E09000006,Bromley,2021, +E07000234,Bromsgrove,2021, +E07000095,Broxbourne,2021, +E07000172,Broxtowe,2021, +E06000060,Buckinghamshire,2021, +E07000117,Burnley,2021, +E08000002,Bury,2021, +W06000018,Caerphilly,2021, +E08000033,Calderdale,2021, +E07000008,Cambridge,2021, +E09000007,Camden,2021, +E07000192,Cannock Chase,2021, +E07000106,Canterbury,2021, +W06000015,Cardiff,2021, +W06000010,Carmarthenshire,2021, +E07000069,Castle Point,2021, +N09000004,Causeway Coast and Glens,2021, +E06000056,Central Bedfordshire,2021, +W06000008,Ceredigion,2021, +E07000130,Charnwood,2021, +E07000070,Chelmsford,2021, +E07000078,Cheltenham,2021, +E07000177,Cherwell,2021, +E06000049,Cheshire East,2021, +E06000050,Cheshire West and Chester,2021, +E07000034,Chesterfield,2021, +E07000225,Chichester,2021, +E07000118,Chorley,2021, +S12000036,City of Edinburgh,2021, +E09000001,City of London,2021, +S12000005,Clackmannanshire,2021, +E07000071,Colchester,2021, +W06000003,Conwy,2021, +E07000150,Corby,2021, +E06000052,Cornwall,2021, +E07000079,Cotswold,2021, +E06000047,County Durham,2021, +E08000026,Coventry,2021, +E07000226,Crawley,2021, +E09000008,Croydon,2021, +E06000063,Cumberland,2023, +E07000096,Dacorum,2021, +E06000005,Darlington,2021, +E07000107,Dartford,2021, +E07000151,Daventry,2021, +W06000004,Denbighshire,2021, +E06000015,Derby,2021, +E07000035,Derbyshire Dales,2021, +N09000005,Derry City and Strabane,2021, +E08000017,Doncaster,2021, +E06000059,Dorset,2021, +E07000108,Dover,2021, +E08000027,Dudley,2021, +S12000006,Dumfries and Galloway,2021, +S12000042,Dundee City,2021, +E09000009,Ealing,2021, +S12000008,East Ayrshire,2021, +E07000009,East Cambridgeshire,2021, +E07000040,East Devon,2021, +S12000045,East Dunbartonshire,2021, +E07000085,East Hampshire,2021, +E07000242,East Hertfordshire,2021, +E07000137,East Lindsey,2021, +S12000010,East Lothian,2021, +E07000152,East Northamptonshire,2021, +S12000011,East Renfrewshire,2021, +E06000011,East Riding of Yorkshire,2021, +E07000193,East Staffordshire,2021, +E07000244,East Suffolk,2021, +E07000061,Eastbourne,2021, +E07000086,Eastleigh,2021, +E07000207,Elmbridge,2021, +E09000010,Enfield,2021, +E07000072,Epping Forest,2021, +E07000208,Epsom and Ewell,2021, +E07000036,Erewash,2021, +E07000041,Exeter,2021, +S12000014,Falkirk,2021, +E07000087,Fareham,2021, +E07000010,Fenland,2021, +N09000006,Fermanagh and Omagh,2021, +S12000047,Fife,2021, +W06000005,Flintshire,2021, +E07000112,Folkestone and Hythe,2021, +E07000080,Forest of Dean,2021, +E07000119,Fylde,2021, +E08000037,Gateshead,2021, +E07000173,Gedling,2021, +S12000049,Glasgow City,2021, +E07000081,Gloucester,2021, +E07000088,Gosport,2021, +E07000109,Gravesham,2021, +E07000145,Great Yarmouth,2021, +E09000011,Greenwich,2021, +E07000209,Guildford,2021, +W06000002,Gwynedd,2021, +E09000012,Hackney,2021, +E06000006,Halton,2021, +E09000013,Hammersmith and Fulham,2021, +E07000131,Harborough,2021, +E09000014,Haringey,2021, +E07000073,Harlow,2021, +E09000015,Harrow,2021, +E07000089,Hart,2021, +E06000001,Hartlepool,2021, +E07000062,Hastings,2021, +E07000090,Havant,2021, +E09000016,Havering,2021, +E06000019,"Herefordshire, County of",2021, +E07000098,Hertsmere,2021, +E07000037,High Peak,2021, +S12000017,Highland,2021, +E09000017,Hillingdon,2021, +E07000132,Hinckley and Bosworth,2021, +E07000227,Horsham,2021, +E09000018,Hounslow,2021, +E07000011,Huntingdonshire,2021, +E07000120,Hyndburn,2021, +S12000018,Inverclyde,2021, +E07000202,Ipswich,2021, +W06000001,Isle of Anglesey,2021, +E06000046,Isle of Wight,2021, +E06000053,Isles of Scilly,2021, +E09000019,Islington,2021, +E09000020,Kensington and Chelsea,2021, +E07000153,Kettering,2021, +E07000146,King’s Lynn and West Norfolk,2021, +E06000010,"Kingston upon Hull, City of",2021, +E09000021,Kingston upon Thames,2021, +E08000034,Kirklees,2021, +E08000011,Knowsley,2021, +E09000022,Lambeth,2021, +E07000121,Lancaster,2021, +E08000035,Leeds,2021, +E06000016,Leicester,2021, +E07000063,Lewes,2021, +E09000023,Lewisham,2021, +E07000194,Lichfield,2021, +E07000138,Lincoln,2021, +N09000007,Lisburn and Castlereagh,2021, +E08000012,Liverpool,2021, +E06000032,Luton,2021, +E07000110,Maidstone,2021, +E07000074,Maldon,2021, +E07000235,Malvern Hills,2021, +E08000003,Manchester,2021, +E07000174,Mansfield,2021, +E06000035,Medway,2021, +E07000133,Melton,2021, +W06000024,Merthyr Tydfil,2021, +E09000024,Merton,2021, +E07000042,Mid Devon,2021, +E07000203,Mid Suffolk,2021, +E07000228,Mid Sussex,2021, +N09000009,Mid Ulster,2021, +N09000008,Mid and East Antrim,2021, +E06000002,Middlesbrough,2021, +S12000019,Midlothian,2021, +E06000042,Milton Keynes,2021, +E07000210,Mole Valley,2021, +W06000021,Monmouthshire,2021, +S12000020,Moray,2021, +S12000013,Na h-Eileanan Siar,2021, +W06000012,Neath Port Talbot,2021, +E07000091,New Forest,2021, +E07000175,Newark and Sherwood,2021, +E08000021,Newcastle upon Tyne,2021, +E07000195,Newcastle-under-Lyme,2021, +E09000025,Newham,2021, +W06000022,Newport,2021, +N09000010,"Newry, Mourne and Down",2021, +S12000021,North Ayrshire,2021, +E07000043,North Devon,2021, +E07000038,North East Derbyshire,2021, +E06000012,North East Lincolnshire,2021, +E07000099,North Hertfordshire,2021, +E07000139,North Kesteven,2021, +S12000050,North Lanarkshire,2021, +E06000013,North Lincolnshire,2021, +E07000147,North Norfolk,2021, +E06000024,North Somerset,2021, +E08000022,North Tyneside,2021, +E07000218,North Warwickshire,2021, +E07000134,North West Leicestershire,2021, +E07000154,Northampton,2021, +E06000057,Northumberland,2021, +E07000148,Norwich,2021, +E06000018,Nottingham,2021, +E07000219,Nuneaton and Bedworth,2021, +E07000135,Oadby and Wigston,2021, +E08000004,Oldham,2021, +S12000023,Orkney Islands,2021, +E07000178,Oxford,2021, +W06000009,Pembrokeshire,2021, +E07000122,Pendle,2021, +S12000048,Perth and Kinross,2021, +E06000031,Peterborough,2021, +E06000026,Plymouth,2021, +E06000044,Portsmouth,2021, +W06000023,Powys,2021, +E07000123,Preston,2021, +E06000038,Reading,2021, +E09000026,Redbridge,2021, +E06000003,Redcar and Cleveland,2021, +E07000236,Redditch,2021, +E07000211,Reigate and Banstead,2021, +S12000038,Renfrewshire,2021, +W06000016,Rhondda Cynon Taf,2021, +E07000124,Ribble Valley,2021, +E09000027,Richmond upon Thames,2021, +E08000005,Rochdale,2021, +E07000075,Rochford,2021, +E07000125,Rossendale,2021, +E07000064,Rother,2021, +E08000018,Rotherham,2021, +E07000220,Rugby,2021, +E07000212,Runnymede,2021, +E07000176,Rushcliffe,2021, +E07000092,Rushmoor,2021, +E06000017,Rutland,2021, +E08000006,Salford,2021, +E08000028,Sandwell,2021, +S12000026,Scottish Borders,2021, +E08000014,Sefton,2021, +E07000111,Sevenoaks,2021, +E08000019,Sheffield,2021, +S12000027,Shetland Islands,2021, +E06000051,Shropshire,2021, +E06000039,Slough,2021, +E08000029,Solihull,2021, +E06000066,Somerset,2023, +S12000028,South Ayrshire,2021, +E07000012,South Cambridgeshire,2021, +E07000039,South Derbyshire,2021, +E06000025,South Gloucestershire,2021, +E07000044,South Hams,2021, +E07000140,South Holland,2021, +E07000141,South Kesteven,2021, +S12000029,South Lanarkshire,2021, +E07000149,South Norfolk,2021, +E07000155,South Northamptonshire,2021, +E07000179,South Oxfordshire,2021, +E07000126,South Ribble,2021, +E07000196,South Staffordshire,2021, +E08000023,South Tyneside,2021, +E06000045,Southampton,2021, +E06000033,Southend-on-Sea,2021, +E09000028,Southwark,2021, +E07000213,Spelthorne,2021, +E07000240,St Albans,2021, +E08000013,St. Helens,2021, +E07000197,Stafford,2021, +E07000198,Staffordshire Moorlands,2021, +E07000243,Stevenage,2021, +S12000030,Stirling,2021, +E08000007,Stockport,2021, +E06000004,Stockton-on-Tees,2021, +E06000021,Stoke-on-Trent,2021, +E07000221,Stratford-on-Avon,2021, +E07000082,Stroud,2021, +E08000024,Sunderland,2021, +E07000214,Surrey Heath,2021, +E09000029,Sutton,2021, +E07000113,Swale,2021, +W06000011,Swansea,2021, +E06000030,Swindon,2021, +E08000008,Tameside,2021, +E07000199,Tamworth,2021, +E07000215,Tandridge,2021, +E07000045,Teignbridge,2021, +E06000020,Telford and Wrekin,2021, +E07000076,Tendring,2021, +E07000093,Test Valley,2021, +E07000083,Tewkesbury,2021, +E07000114,Thanet,2021, +E07000102,Three Rivers,2021, +E06000034,Thurrock,2021, +E07000115,Tonbridge and Malling,2021, +E06000027,Torbay,2021, +W06000020,Torfaen,2021, +E07000046,Torridge,2021, +E09000030,Tower Hamlets,2021, +E08000009,Trafford,2021, +E07000116,Tunbridge Wells,2021, +E07000077,Uttlesford,2021, +W06000014,Vale of Glamorgan,2021, +E07000180,Vale of White Horse,2021, +E08000036,Wakefield,2021, +E08000030,Walsall,2021, +E09000031,Waltham Forest,2021, +E09000032,Wandsworth,2021, +E06000007,Warrington,2021, +E07000222,Warwick,2021, +E07000103,Watford,2021, +E07000216,Waverley,2021, +E07000065,Wealden,2021, +E07000156,Wellingborough,2021, +E07000241,Welwyn Hatfield,2021, +E06000037,West Berkshire,2021, +E07000047,West Devon,2021, +S12000039,West Dunbartonshire,2021, +E07000127,West Lancashire,2021, +E07000142,West Lindsey,2021, +S12000040,West Lothian,2021, +E07000181,West Oxfordshire,2021, +E07000245,West Suffolk,2021, +E09000033,Westminster,2021, +E06000064,Westmorland and Furness,2023, +E08000010,Wigan,2021, +E06000054,Wiltshire,2021, +E07000094,Winchester,2021, +E06000040,Windsor and Maidenhead,2021, +E08000015,Wirral,2021, +E07000217,Woking,2021, +E06000041,Wokingham,2021, +E08000031,Wolverhampton,2021, +E07000237,Worcester,2021, +E07000229,Worthing,2021, +W06000006,Wrexham,2021, +E07000238,Wychavon,2021, +E07000128,Wyre,2021, +E07000239,Wyre Forest,2021, +E06000014,York,2021, +E06000065,North Yorkshire,2023, +N92000002,Northern Ireland,2021, +S92000003,Scotland,2021, +W92000004,Wales,2021, +9300000XX,Outside UK,2021, +E07000027,Barrow-in-Furness,2021,2023, +E07000030,Eden,2021,2023, +E07000031,South Lakeland,2021,2023, +E07000026,Allerdale,2021,2023, +E07000028,Carlisle,2021,2023, +E07000029,Copeland,2021,2023, +E07000163,Craven,2021,2023, +E07000164,Hambleton,2021,2023, +E07000165,Harrogate,2021,2023, +E07000166,Richmondshire,2021,2023, +E07000167,Ryedale,2021,2023, +E07000168,Scarborough,2021,2023, +E07000169,Selby,2021,2023, +E07000187,Mendip,2021,2023, +E07000188,Sedgemoor,2021,2023, +E07000246,Somerset West and Taunton,2021,2023, +E07000189,South Somerset,2021,2023, diff --git a/db/migrate/20230308101826_create_local_authorities.rb b/db/migrate/20230308101826_create_local_authorities.rb new file mode 100644 index 000000000..f64964455 --- /dev/null +++ b/db/migrate/20230308101826_create_local_authorities.rb @@ -0,0 +1,13 @@ +class CreateLocalAuthorities < ActiveRecord::Migration[7.0] + def change + create_table :local_authorities do |t| + t.string :code, null: false + t.string :name, null: false + t.datetime :start_date, null: false + t.datetime :end_date + t.index %w[code], name: "index_local_authority_code", unique: true + + t.timestamps + end + end +end diff --git a/db/schema.rb b/db/schema.rb index c2f8f8600..eccfa98ca 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema[7.0].define(version: 2023_03_01_144555) do +ActiveRecord::Schema[7.0].define(version: 2023_03_08_101826) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -289,6 +289,16 @@ ActiveRecord::Schema[7.0].define(version: 2023_03_01_144555) do t.index ["updated_by_id"], name: "index_lettings_logs_on_updated_by_id" end + create_table "local_authorities", force: :cascade do |t| + t.string "code", null: false + t.string "name", null: false + t.datetime "start_date", null: false + t.datetime "end_date" + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + t.index ["code"], name: "index_local_authority_code", unique: true + end + create_table "location_deactivation_periods", force: :cascade do |t| t.datetime "deactivation_date" t.datetime "reactivation_date" diff --git a/db/seeds.rb b/db/seeds.rb index 341677b27..e677ad50e 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -325,4 +325,10 @@ unless Rails.env.test? end end end + +if LocalAuthority.count.zero? + path = "config/local_authorities_data/initial_local_authorities.csv" + service = Imports::LocalAuthoritiesService.new(path:) + service.call +end # rubocop:enable Rails/Output diff --git a/lib/tasks/local_authorities.rake b/lib/tasks/local_authorities.rake new file mode 100644 index 000000000..b812bbc94 --- /dev/null +++ b/lib/tasks/local_authorities.rake @@ -0,0 +1,13 @@ +namespace :data_import do + desc "Import local authorities data" + task :local_authorities, %i[path] => :environment do |_task, args| + path = args[:path] + + raise "Usage: rake data_import:local_authorities['path/to/csv_file']" if path.blank? + + service = Imports::LocalAuthoritiesService.new(path:) + service.call + + pp "Created/updated #{service.count} local authority records" unless Rails.env.test? + end +end diff --git a/spec/fixtures/files/local_authorities.csv b/spec/fixtures/files/local_authorities.csv new file mode 100644 index 000000000..d1cebba6b --- /dev/null +++ b/spec/fixtures/files/local_authorities.csv @@ -0,0 +1,6 @@ +code,name,start_year,end_year +S12000033,Aberdeen City,2021, +S12000034,Aberdeenshire,2021, +E07000223,Adur,2021, +E07000032,Amber Valley,2021, +S12000041,Angus,2021, \ No newline at end of file diff --git a/spec/lib/tasks/local_authorities_import_spec.rb b/spec/lib/tasks/local_authorities_import_spec.rb new file mode 100644 index 000000000..67d952767 --- /dev/null +++ b/spec/lib/tasks/local_authorities_import_spec.rb @@ -0,0 +1,43 @@ +require "rails_helper" +require "rake" + +RSpec.describe "data_import" do + describe ":local_authorities", type: :task do + subject(:task) { Rake::Task["data_import:local_authorities"] } + + before do + LocalAuthority.destroy_all + Rake.application.rake_require("tasks/local_authorities") + Rake::Task.define_task(:environment) + task.reenable + end + + context "when the rake task is run" do + let(:local_authorities_file_path) { "./spec/fixtures/files/local_authorities.csv" } + let(:wrong_file_path) { "/test/no_csv_here.csv" } + + it "creates new local authorities records" do + expect { task.invoke(local_authorities_file_path) }.to change(LocalAuthority, :count).by(5) + expect(LocalAuthority.where(code: "S12000041").exists?).to be true + end + + it "raises an error when no path is given" do + expect { task.invoke(nil) }.to raise_error(RuntimeError, "Usage: rake data_import:local_authorities['path/to/csv_file']") + end + + it "raises an error when no file exists at the given path" do + expect { task.invoke(wrong_file_path) }.to raise_error(Errno::ENOENT) + end + + context "when a record already exists with a matching code index" do + let!(:local_authority) { LocalAuthority.create(code: "S12000041", name: "Something else", start_date: Time.zone.local(2021, 4, 1)) } + + it "updates local authority if the record is matched on code" do + task.invoke(local_authorities_file_path) + local_authority.reload + expect(local_authority.name).to eq("Angus") + end + end + end + end +end From fa64694e0cb6400f0fe47087ed001843839d14dc Mon Sep 17 00:00:00 2001 From: Phil Lee Date: Thu, 9 Mar 2023 15:25:27 +0000 Subject: [PATCH 05/51] CLDC-1889 Bulk upload setup (#1399) * bulk upload setup errors only for missing data * bulk upload setup error for scheme * bulk upload setup error for location * ensure missing startdate is a setup error --- .../bulk_upload/lettings/row_parser.rb | 36 ++++++++++++--- .../bulk_upload/lettings/validator.rb | 10 +++-- app/services/bulk_upload/processor.rb | 2 +- .../bulk_upload/lettings/row_parser_spec.rb | 44 +++++++++++++------ .../bulk_upload/lettings/validator_spec.rb | 2 +- spec/services/bulk_upload/processor_spec.rb | 8 ++-- 6 files changed, 73 insertions(+), 29 deletions(-) diff --git a/app/services/bulk_upload/lettings/row_parser.rb b/app/services/bulk_upload/lettings/row_parser.rb index b772d0153..ea1ca963a 100644 --- a/app/services/bulk_upload/lettings/row_parser.rb +++ b/app/services/bulk_upload/lettings/row_parser.rb @@ -174,15 +174,19 @@ class BulkUpload::Lettings::RowParser validate :validate_owning_org_permitted validate :validate_owning_org_owns_stock validate :validate_owning_org_exists + validate :validate_owning_org_data_given validate :validate_managing_org_related validate :validate_managing_org_exists + validate :validate_managing_org_data_given validate :validate_scheme_related validate :validate_scheme_exists + validate :validate_scheme_data_given validate :validate_location_related validate :validate_location_exists + validate :validate_location_data_given def valid? errors.clear @@ -222,10 +226,6 @@ class BulkUpload::Lettings::RowParser block_log_creation end - def setup_section_incomplete? - log.form.setup_sections[0].subsections[0].is_incomplete?(log) - end - private def validate_location_related @@ -245,7 +245,13 @@ private def validate_location_exists if scheme && field_5.present? && location.nil? - errors.add(:field_5, "Location could be found with provided scheme code", category: :setup) + errors.add(:field_5, "Location could be found with provided scheme code") + end + end + + def validate_location_data_given + if bulk_upload.supported_housing? && field_5.blank? + errors.add(:field_5, "The scheme code must be present", category: "setup") end end @@ -263,7 +269,13 @@ private def validate_scheme_exists if field_4.present? && scheme.nil? - errors.add(:field_4, "The management group code is not correct", category: :setup) + errors.add(:field_4, "The management group code is not correct") + end + end + + def validate_scheme_data_given + if bulk_upload.supported_housing? && field_4.blank? + errors.add(:field_4, "The management group code is not correct", category: "setup") end end @@ -277,6 +289,12 @@ private def validate_managing_org_exists if managing_organisation.nil? errors.delete(:field_113) + errors.add(:field_113, "The managing organisation code is incorrect") + end + end + + def validate_managing_org_data_given + if field_113.blank? errors.add(:field_113, "The managing organisation code is incorrect", category: :setup) end end @@ -292,6 +310,12 @@ private def validate_owning_org_exists if owning_organisation.nil? errors.delete(:field_111) + errors.add(:field_111, "The owning organisation code is incorrect") + end + end + + def validate_owning_org_data_given + if field_111.blank? errors.add(:field_111, "The owning organisation code is incorrect", category: :setup) end end diff --git a/app/services/bulk_upload/lettings/validator.rb b/app/services/bulk_upload/lettings/validator.rb index 779f0315b..f5450039f 100644 --- a/app/services/bulk_upload/lettings/validator.rb +++ b/app/services/bulk_upload/lettings/validator.rb @@ -175,7 +175,7 @@ class BulkUpload::Lettings::Validator end def create_logs? - return false if any_setup_sections_incomplete? + return false if any_setup_errors? return false if over_column_error_threshold? return false if row_parsers.any?(&:block_log_creation?) @@ -186,8 +186,12 @@ class BulkUpload::Lettings::Validator QUESTIONS[field] end - def any_setup_sections_incomplete? - row_parsers.any?(&:setup_section_incomplete?) + def any_setup_errors? + bulk_upload + .bulk_upload_errors + .where(category: "setup") + .count + .positive? end private diff --git a/app/services/bulk_upload/processor.rb b/app/services/bulk_upload/processor.rb index dcf68e594..ab4fe50a7 100644 --- a/app/services/bulk_upload/processor.rb +++ b/app/services/bulk_upload/processor.rb @@ -12,7 +12,7 @@ class BulkUpload::Processor validator.call - if validator.any_setup_sections_incomplete? + if validator.any_setup_errors? send_setup_errors_mail elsif validator.create_logs? create_logs diff --git a/spec/services/bulk_upload/lettings/row_parser_spec.rb b/spec/services/bulk_upload/lettings/row_parser_spec.rb index 73b35d70c..68990c59b 100644 --- a/spec/services/bulk_upload/lettings/row_parser_spec.rb +++ b/spec/services/bulk_upload/lettings/row_parser_spec.rb @@ -298,10 +298,13 @@ RSpec.describe BulkUpload::Lettings::RowParser do describe "#field_4" do context "when nullable not permitted" do + let(:bulk_upload) { create(:bulk_upload, :lettings, user:, needstype: 2) } let(:attributes) { { bulk_upload:, field_1: "2", field_4: nil } } it "cannot be nulled" do - expect(parser.errors[:field_4]).to be_present + setup_errors = parser.errors.select { |e| e.options[:category] == "setup" } + + expect(setup_errors.find { |e| e.attribute == :field_4 }).to be_present end end @@ -350,6 +353,17 @@ RSpec.describe BulkUpload::Lettings::RowParser do end describe "#field_5" do + context "when not nullable" do + let(:bulk_upload) { create(:bulk_upload, :lettings, user:, needstype: 2) } + let(:attributes) { { bulk_upload:, field_1: "2", field_5: nil } } + + it "cannot be nulled" do + setup_errors = parser.errors.select { |e| e.options[:category] == "setup" } + + expect(setup_errors.find { |e| e.attribute == :field_5 }).to be_present + end + end + context "when location does not exist" do let(:scheme) { create(:scheme, :with_old_visible_id, owning_organisation: owning_org) } let(:attributes) do @@ -544,12 +558,12 @@ RSpec.describe BulkUpload::Lettings::RowParser do context "when all of these fields are blank" do let(:attributes) { { bulk_upload:, field_1: "1", field_96: nil, field_97: nil, field_98: nil } } - it "returns an error" do - parser.valid? + it "returns them as setup errors" do + setup_errors = parser.errors.select { |e| e.options[:category] == :setup } - expect(parser.errors[:field_96]).to be_present - expect(parser.errors[:field_97]).to be_present - expect(parser.errors[:field_98]).to be_present + expect(setup_errors.find { |e| e.attribute == :field_96 }).to be_present + expect(setup_errors.find { |e| e.attribute == :field_97 }).to be_present + expect(setup_errors.find { |e| e.attribute == :field_98 }).to be_present end end @@ -557,8 +571,6 @@ RSpec.describe BulkUpload::Lettings::RowParser do let(:attributes) { { bulk_upload:, field_1: "1", field_96: "1", field_97: "1", field_98: nil } } it "returns an error only on blank field" do - parser.valid? - expect(parser.errors[:field_96]).to be_blank expect(parser.errors[:field_97]).to be_blank expect(parser.errors[:field_98]).to be_present @@ -569,8 +581,6 @@ RSpec.describe BulkUpload::Lettings::RowParser do let(:attributes) { { bulk_upload:, field_98: "2022" } } it "returns an error" do - parser.valid? - expect(parser.errors[:field_98]).to include("Tenancy start year must be 2 digits") end end @@ -589,8 +599,6 @@ RSpec.describe BulkUpload::Lettings::RowParser do let(:bulk_upload) { create(:bulk_upload, :lettings, user:, year: 2022) } it "does not return errors" do - parser.valid? - expect(parser.errors[:field_96]).not_to be_present expect(parser.errors[:field_97]).not_to be_present expect(parser.errors[:field_98]).not_to be_present @@ -609,8 +617,6 @@ RSpec.describe BulkUpload::Lettings::RowParser do let(:bulk_upload) { create(:bulk_upload, :lettings, user:, year: 2022) } it "returns errors" do - parser.valid? - expect(parser.errors[:field_96]).to be_present expect(parser.errors[:field_97]).to be_present expect(parser.errors[:field_98]).to be_present @@ -619,6 +625,16 @@ RSpec.describe BulkUpload::Lettings::RowParser do end describe "#field_111" do # owning org + context "when no data given" do + let(:attributes) { { bulk_upload:, field_1: "1", field_111: "" } } + + it "is not permitted as setup error" do + setup_errors = parser.errors.select { |e| e.options[:category] == :setup } + + expect(setup_errors.find { |e| e.attribute == :field_111 }.message).to eql("The owning organisation code is incorrect") + end + end + context "when cannot find owning org" do let(:attributes) { { bulk_upload:, field_111: "donotexist" } } diff --git a/spec/services/bulk_upload/lettings/validator_spec.rb b/spec/services/bulk_upload/lettings/validator_spec.rb index b9d351281..ba48bd9e7 100644 --- a/spec/services/bulk_upload/lettings/validator_spec.rb +++ b/spec/services/bulk_upload/lettings/validator_spec.rb @@ -53,7 +53,7 @@ RSpec.describe BulkUpload::Lettings::Validator do expect(error.col).to eql("L") expect(error.category).to be_nil - error = BulkUploadError.order(:row, :field).find_by(field: "field_111") + error = BulkUploadError.find_by(row: "7", category: "setup", field: "field_111") expect(error.category).to eql("setup") end diff --git a/spec/services/bulk_upload/processor_spec.rb b/spec/services/bulk_upload/processor_spec.rb index 48b0c0258..8aaef8c36 100644 --- a/spec/services/bulk_upload/processor_spec.rb +++ b/spec/services/bulk_upload/processor_spec.rb @@ -106,7 +106,7 @@ RSpec.describe BulkUpload::Processor do BulkUpload::Lettings::Validator, invalid?: false, call: nil, - any_setup_sections_incomplete?: true, + any_setup_errors?: true, ) end @@ -142,7 +142,7 @@ RSpec.describe BulkUpload::Processor do BulkUpload::Lettings::Validator, invalid?: false, call: nil, - any_setup_sections_incomplete?: false, + any_setup_errors?: false, create_logs?: true, ) end @@ -193,7 +193,7 @@ RSpec.describe BulkUpload::Processor do BulkUpload::Lettings::Validator, invalid?: false, call: nil, - any_setup_sections_incomplete?: false, + any_setup_errors?: false, create_logs?: false, ) end @@ -254,7 +254,7 @@ RSpec.describe BulkUpload::Processor do BulkUpload::Lettings::Validator, call: nil, create_logs?: true, - any_setup_sections_incomplete?: false, + any_setup_errors?: false, invalid?: false, ) end From cbe4453fba59b2f0ad6235b6cc4c699fee402597 Mon Sep 17 00:00:00 2001 From: Arthur Campbell <51094020+arfacamble@users.noreply.github.com> Date: Thu, 9 Mar 2023 16:11:54 +0000 Subject: [PATCH 06/51] CLDC-1819 previous tenure question options update (#1338) * add new options to prevten question, rename question, create test files for both previous tenure questions * reorder as per feedback from UX team * correct minor linting issue * create tests for pages * add option to renewal question as well after discussion with Rachel --- .../pages/previous_housing_situation.rb | 4 +- .../previous_housing_situation_renewal.rb | 4 +- .../lettings/questions/previous_tenure.rb | 41 +++++++++ ..._renewal.rb => previous_tenure_renewal.rb} | 3 +- app/models/form/lettings/questions/prevten.rb | 87 ------------------- ...previous_housing_situation_renewal_spec.rb | 31 +++++++ .../pages/previous_housing_situation_spec.rb | 31 +++++++ .../questions/previous_tenure_renewal_spec.rb | 44 ++++++++++ .../questions/previous_tenure_spec.rb | 66 ++++++++++++++ 9 files changed, 219 insertions(+), 92 deletions(-) create mode 100644 app/models/form/lettings/questions/previous_tenure.rb rename app/models/form/lettings/questions/{prevten_renewal.rb => previous_tenure_renewal.rb} (77%) delete mode 100644 app/models/form/lettings/questions/prevten.rb create mode 100644 spec/models/form/lettings/pages/previous_housing_situation_renewal_spec.rb create mode 100644 spec/models/form/lettings/pages/previous_housing_situation_spec.rb create mode 100644 spec/models/form/lettings/questions/previous_tenure_renewal_spec.rb create mode 100644 spec/models/form/lettings/questions/previous_tenure_spec.rb diff --git a/app/models/form/lettings/pages/previous_housing_situation.rb b/app/models/form/lettings/pages/previous_housing_situation.rb index 82bbda675..aafabe7f3 100644 --- a/app/models/form/lettings/pages/previous_housing_situation.rb +++ b/app/models/form/lettings/pages/previous_housing_situation.rb @@ -2,10 +2,10 @@ class Form::Lettings::Pages::PreviousHousingSituation < ::Form::Page def initialize(id, hsh, subsection) super @id = "previous_housing_situation" - @depends_on = [{ "renewal" => 0 }] + @depends_on = [{ "is_renewal?" => false }] end def questions - @questions ||= [Form::Lettings::Questions::Prevten.new(nil, nil, self)] + @questions ||= [Form::Lettings::Questions::PreviousTenure.new(nil, nil, self)] end end diff --git a/app/models/form/lettings/pages/previous_housing_situation_renewal.rb b/app/models/form/lettings/pages/previous_housing_situation_renewal.rb index 7f22150bf..317350911 100644 --- a/app/models/form/lettings/pages/previous_housing_situation_renewal.rb +++ b/app/models/form/lettings/pages/previous_housing_situation_renewal.rb @@ -2,10 +2,10 @@ class Form::Lettings::Pages::PreviousHousingSituationRenewal < ::Form::Page def initialize(id, hsh, subsection) super @id = "previous_housing_situation_renewal" - @depends_on = [{ "renewal" => 1, "needstype" => 2 }] + @depends_on = [{ "is_renewal?" => true, "is_supported_housing?" => true }] end def questions - @questions ||= [Form::Lettings::Questions::PrevtenRenewal.new(nil, nil, self)] + @questions ||= [Form::Lettings::Questions::PreviousTenureRenewal.new(nil, nil, self)] end end diff --git a/app/models/form/lettings/questions/previous_tenure.rb b/app/models/form/lettings/questions/previous_tenure.rb new file mode 100644 index 000000000..c100c3ddd --- /dev/null +++ b/app/models/form/lettings/questions/previous_tenure.rb @@ -0,0 +1,41 @@ +class Form::Lettings::Questions::PreviousTenure < ::Form::Question + def initialize(id, hsh, page) + super + @id = "prevten" + @check_answer_label = "Where was the household immediately before this letting?" + @header = "Where was the household immediately before this letting?" + @type = "radio" + @check_answers_card_number = 0 + @hint_text = "This is where the household was the night before they moved." + @answer_options = ANSWER_OPTIONS + end + + ANSWER_OPTIONS = { + "30" => { "value" => "Fixed-term local authority general needs tenancy" }, + "32" => { "value" => "Fixed-term private registered provider (PRP) general needs tenancy" }, + "31" => { "value" => "Lifetime local authority general needs tenancy" }, + "33" => { "value" => "Lifetime private registered provider (PRP) general needs tenancy" }, + "34" => { "value" => "Specialist retirement housing" }, + "36" => { "value" => "Sheltered housing for adults aged under 55 years" }, + "35" => { "value" => "Extra care housing" }, + "6" => { "value" => "Other supported housing" }, + "3" => { "value" => "Private sector tenancy" }, + "27" => { "value" => "Owner occupation (low-cost home ownership)" }, + "26" => { "value" => "Owner occupation (private)" }, + "28" => { "value" => "Living with friends or family" }, + "14" => { "value" => "Bed and breakfast" }, + "7" => { "value" => "Direct access hostel" }, + "10" => { "value" => "Hospital" }, + "29" => { "value" => "Prison or approved probation hostel" }, + "19" => { "value" => "Rough sleeping" }, + "18" => { "value" => "Any other temporary accommodation" }, + "13" => { "value" => "Children’s home or foster care" }, + "24" => { "value" => "Home Office Asylum Support" }, + "37" => { "value" => "Host family or similar refugee accommodation" }, + "23" => { "value" => "Mobile home or caravan" }, + "21" => { "value" => "Refuge" }, + "9" => { "value" => "Residential care home" }, + "4" => { "value" => "Tied housing or rented with job" }, + "25" => { "value" => "Any other accommodation" }, + }.freeze +end diff --git a/app/models/form/lettings/questions/prevten_renewal.rb b/app/models/form/lettings/questions/previous_tenure_renewal.rb similarity index 77% rename from app/models/form/lettings/questions/prevten_renewal.rb rename to app/models/form/lettings/questions/previous_tenure_renewal.rb index e8516e85e..6e2722b4f 100644 --- a/app/models/form/lettings/questions/prevten_renewal.rb +++ b/app/models/form/lettings/questions/previous_tenure_renewal.rb @@ -1,4 +1,4 @@ -class Form::Lettings::Questions::PrevtenRenewal < ::Form::Question +class Form::Lettings::Questions::PreviousTenureRenewal < ::Form::Question def initialize(id, hsh, page) super @id = "prevten" @@ -12,6 +12,7 @@ class Form::Lettings::Questions::PrevtenRenewal < ::Form::Question ANSWER_OPTIONS = { "34" => { "value" => "Specialist retirement housing" }, + "36" => { "value" => "Sheltered housing for adults aged under 55 years" }, "35" => { "value" => "Extra care housing" }, "6" => { "value" => "Other supported housing" }, }.freeze diff --git a/app/models/form/lettings/questions/prevten.rb b/app/models/form/lettings/questions/prevten.rb deleted file mode 100644 index 3d77f24bb..000000000 --- a/app/models/form/lettings/questions/prevten.rb +++ /dev/null @@ -1,87 +0,0 @@ -class Form::Lettings::Questions::Prevten < ::Form::Question - def initialize(id, hsh, page) - super - @id = "prevten" - @check_answer_label = "Where was the household immediately before this letting?" - @header = "Where was the household immediately before this letting?" - @type = "radio" - @check_answers_card_number = 0 - @hint_text = "This is where the household was the night before they moved." - @answer_options = ANSWER_OPTIONS - end - - ANSWER_OPTIONS = { - "30" => { - "value" => "Fixed-term local authority general needs tenancy", - }, - "32" => { - "value" => "Fixed-term private registered provider (PRP) general needs tenancy", - }, - "31" => { - "value" => "Lifetime local authority general needs tenancy", - }, - "33" => { - "value" => "Lifetime private registered provider (PRP) general needs tenancy", - }, - "34" => { - "value" => "Specialist retirement housing", - }, - "35" => { - "value" => "Extra care housing", - }, - "6" => { - "value" => "Other supported housing", - }, - "3" => { - "value" => "Private sector tenancy", - }, - "27" => { - "value" => "Owner occupation (low-cost home ownership)", - }, - "26" => { - "value" => "Owner occupation (private)", - }, - "28" => { - "value" => "Living with friends or family", - }, - "14" => { - "value" => "Bed and breakfast", - }, - "7" => { - "value" => "Direct access hostel", - }, - "10" => { - "value" => "Hospital", - }, - "29" => { - "value" => "Prison or approved probation hostel", - }, - "19" => { - "value" => "Rough sleeping", - }, - "18" => { - "value" => "Any other temporary accommodation", - }, - "13" => { - "value" => "Children’s home or foster care", - }, - "24" => { - "value" => "Home Office Asylum Support", - }, - "23" => { - "value" => "Mobile home or caravan", - }, - "21" => { - "value" => "Refuge", - }, - "9" => { - "value" => "Residential care home", - }, - "4" => { - "value" => "Tied housing or rented with job", - }, - "25" => { - "value" => "Any other accommodation", - }, - }.freeze -end diff --git a/spec/models/form/lettings/pages/previous_housing_situation_renewal_spec.rb b/spec/models/form/lettings/pages/previous_housing_situation_renewal_spec.rb new file mode 100644 index 000000000..4bdc2d8a3 --- /dev/null +++ b/spec/models/form/lettings/pages/previous_housing_situation_renewal_spec.rb @@ -0,0 +1,31 @@ +require "rails_helper" + +RSpec.describe Form::Lettings::Pages::PreviousHousingSituationRenewal, type: :model do + subject(:page) { described_class.new(nil, nil, subsection) } + + let(:subsection) { instance_double(Form::Subsection) } + + it "has correct subsection" do + expect(page.subsection).to eq(subsection) + end + + it "has correct questions" do + expect(page.questions.map(&:id)).to eq(%w[prevten]) + end + + it "has the correct id" do + expect(page.id).to eq("previous_housing_situation_renewal") + end + + it "has the correct header" do + expect(page.header).to be_nil + end + + it "has the correct description" do + expect(page.description).to be_nil + end + + it "has the correct depends_on" do + expect(page.depends_on).to eq([{ "is_renewal?" => true, "is_supported_housing?" => true }]) + end +end diff --git a/spec/models/form/lettings/pages/previous_housing_situation_spec.rb b/spec/models/form/lettings/pages/previous_housing_situation_spec.rb new file mode 100644 index 000000000..c891996c9 --- /dev/null +++ b/spec/models/form/lettings/pages/previous_housing_situation_spec.rb @@ -0,0 +1,31 @@ +require "rails_helper" + +RSpec.describe Form::Lettings::Pages::PreviousHousingSituation, type: :model do + subject(:page) { described_class.new(nil, nil, subsection) } + + let(:subsection) { instance_double(Form::Subsection) } + + it "has correct subsection" do + expect(page.subsection).to eq(subsection) + end + + it "has correct questions" do + expect(page.questions.map(&:id)).to eq(%w[prevten]) + end + + it "has the correct id" do + expect(page.id).to eq("previous_housing_situation") + end + + it "has the correct header" do + expect(page.header).to be_nil + end + + it "has the correct description" do + expect(page.description).to be_nil + end + + it "has the correct depends_on" do + expect(page.depends_on).to eq([{ "is_renewal?" => false }]) + end +end diff --git a/spec/models/form/lettings/questions/previous_tenure_renewal_spec.rb b/spec/models/form/lettings/questions/previous_tenure_renewal_spec.rb new file mode 100644 index 000000000..91f1ec158 --- /dev/null +++ b/spec/models/form/lettings/questions/previous_tenure_renewal_spec.rb @@ -0,0 +1,44 @@ +require "rails_helper" + +RSpec.describe Form::Lettings::Questions::PreviousTenureRenewal, type: :model do + subject(:question) { described_class.new(nil, nil, page) } + + let(:page) { instance_double(Form::Page) } + + it "has the correct id" do + expect(question.id).to eq("prevten") + end + + it "has the correct header" do + expect(question.header).to eq("Where was the household immediately before this letting?") + end + + it "has correct page" do + expect(question.page).to eq(page) + end + + it "has the correct check_answer_label" do + expect(question.check_answer_label).to eq("Where was the household immediately before this letting?") + end + + it "has the correct type" do + expect(question.type).to eq("radio") + end + + it "is not marked as derived" do + expect(question.derived?).to be false + end + + it "has the correct hint" do + expect(question.hint_text).to eq("") + end + + it "has the correct answer_options" do + expect(question.answer_options).to eq({ + "34" => { "value" => "Specialist retirement housing" }, + "35" => { "value" => "Extra care housing" }, + "36" => { "value" => "Sheltered housing for adults aged under 55 years" }, + "6" => { "value" => "Other supported housing" }, + }) + end +end diff --git a/spec/models/form/lettings/questions/previous_tenure_spec.rb b/spec/models/form/lettings/questions/previous_tenure_spec.rb new file mode 100644 index 000000000..4b106601e --- /dev/null +++ b/spec/models/form/lettings/questions/previous_tenure_spec.rb @@ -0,0 +1,66 @@ +require "rails_helper" + +RSpec.describe Form::Lettings::Questions::PreviousTenure, type: :model do + subject(:question) { described_class.new(nil, nil, page) } + + let(:page) { instance_double(Form::Page) } + + it "has the correct id" do + expect(question.id).to eq("prevten") + end + + it "has the correct header" do + expect(question.header).to eq("Where was the household immediately before this letting?") + end + + it "has correct page" do + expect(question.page).to eq(page) + end + + it "has the correct check_answer_label" do + expect(question.check_answer_label).to eq("Where was the household immediately before this letting?") + end + + it "has the correct type" do + expect(question.type).to eq("radio") + end + + it "is not marked as derived" do + expect(question.derived?).to be false + end + + it "has the correct hint" do + expect(question.hint_text).to eq("This is where the household was the night before they moved.") + end + + it "has the correct answer_options" do + expect(question.answer_options).to eq({ + "30" => { "value" => "Fixed-term local authority general needs tenancy" }, + "32" => { "value" => "Fixed-term private registered provider (PRP) general needs tenancy" }, + "31" => { "value" => "Lifetime local authority general needs tenancy" }, + "33" => { "value" => "Lifetime private registered provider (PRP) general needs tenancy" }, + "34" => { "value" => "Specialist retirement housing" }, + "35" => { "value" => "Extra care housing" }, + "6" => { "value" => "Other supported housing" }, + "3" => { "value" => "Private sector tenancy" }, + "27" => { "value" => "Owner occupation (low-cost home ownership)" }, + "26" => { "value" => "Owner occupation (private)" }, + "28" => { "value" => "Living with friends or family" }, + "14" => { "value" => "Bed and breakfast" }, + "7" => { "value" => "Direct access hostel" }, + "10" => { "value" => "Hospital" }, + "29" => { "value" => "Prison or approved probation hostel" }, + "19" => { "value" => "Rough sleeping" }, + "18" => { "value" => "Any other temporary accommodation" }, + "13" => { "value" => "Children’s home or foster care" }, + "24" => { "value" => "Home Office Asylum Support" }, + "23" => { "value" => "Mobile home or caravan" }, + "21" => { "value" => "Refuge" }, + "9" => { "value" => "Residential care home" }, + "4" => { "value" => "Tied housing or rented with job" }, + "36" => { "value" => "Sheltered housing for adults aged under 55 years" }, + "37" => { "value" => "Host family or similar refugee accommodation" }, + "25" => { "value" => "Any other accommodation" }, + }) + end +end From a4d6d164623e6c30196ab64e6efe2fa9641196f4 Mon Sep 17 00:00:00 2001 From: Arthur Campbell <51094020+arfacamble@users.noreply.github.com> Date: Thu, 9 Mar 2023 16:12:22 +0000 Subject: [PATCH 07/51] CLDC-1823 change options for unitletas (#1373) * update question options for 23_24, create test file for question that didn't have one * corretc minor linting complaints --- .../form/lettings/pages/property_let_type.rb | 2 +- .../{unitletas.rb => previous_let_type.rb} | 7 ++- .../questions/previous_let_type_spec.rb | 48 +++++++++++++++++++ 3 files changed, 54 insertions(+), 3 deletions(-) rename app/models/form/lettings/questions/{unitletas.rb => previous_let_type.rb} (63%) create mode 100644 spec/models/form/lettings/questions/previous_let_type_spec.rb diff --git a/app/models/form/lettings/pages/property_let_type.rb b/app/models/form/lettings/pages/property_let_type.rb index 1f31af370..f4d629b9e 100644 --- a/app/models/form/lettings/pages/property_let_type.rb +++ b/app/models/form/lettings/pages/property_let_type.rb @@ -6,6 +6,6 @@ class Form::Lettings::Pages::PropertyLetType < ::Form::Page end def questions - @questions ||= [Form::Lettings::Questions::Unitletas.new(nil, nil, self)] + @questions ||= [Form::Lettings::Questions::PreviousLetType.new(nil, nil, self)] end end diff --git a/app/models/form/lettings/questions/unitletas.rb b/app/models/form/lettings/questions/previous_let_type.rb similarity index 63% rename from app/models/form/lettings/questions/unitletas.rb rename to app/models/form/lettings/questions/previous_let_type.rb index e37a07b34..c685140e6 100644 --- a/app/models/form/lettings/questions/unitletas.rb +++ b/app/models/form/lettings/questions/previous_let_type.rb @@ -1,4 +1,4 @@ -class Form::Lettings::Questions::Unitletas < ::Form::Question +class Form::Lettings::Questions::PreviousLetType < ::Form::Question def initialize(id, hsh, page) super @id = "unitletas" @@ -13,7 +13,10 @@ class Form::Lettings::Questions::Unitletas < ::Form::Question ANSWER_OPTIONS = { "1" => { "value" => "Social rent basis" }, "2" => { "value" => "Affordable rent basis" }, - "4" => { "value" => "Intermediate rent basis" }, + "5" => { "value" => "A London Affordable Rent basis" }, + "6" => { "value" => "A Rent to Buy basis" }, + "7" => { "value" => "A London Living Rent basis" }, + "8" => { "value" => "Another Intermediate Rent basis" }, "divider" => { "value" => true }, "3" => { "value" => "Don’t know" }, }.freeze diff --git a/spec/models/form/lettings/questions/previous_let_type_spec.rb b/spec/models/form/lettings/questions/previous_let_type_spec.rb new file mode 100644 index 000000000..b18bbc88a --- /dev/null +++ b/spec/models/form/lettings/questions/previous_let_type_spec.rb @@ -0,0 +1,48 @@ +require "rails_helper" + +RSpec.describe Form::Lettings::Questions::PreviousLetType, type: :model do + subject(:question) { described_class.new(nil, nil, page) } + + let(:page) { instance_double(Form::Page) } + + it "has correct page" do + expect(question.page).to eq page + end + + it "has the correct id" do + expect(question.id).to eq "unitletas" + end + + it "has the correct header" do + expect(question.header).to eq "What type was the property most recently let as?" + end + + it "has the correct check_answer_label" do + expect(question.check_answer_label).to eq "Most recent let type" + end + + it "has the correct type" do + expect(question.type).to eq "radio" + end + + it "has the correct hint_text" do + expect(question.hint_text).to eq "" + end + + it "is not marked as derived" do + expect(question.derived?).to be false + end + + it "has the correct answer options" do + expect(question.answer_options).to eq({ + "1" => { "value" => "Social rent basis" }, + "2" => { "value" => "Affordable rent basis" }, + "5" => { "value" => "A London Affordable Rent basis" }, + "6" => { "value" => "A Rent to Buy basis" }, + "7" => { "value" => "A London Living Rent basis" }, + "8" => { "value" => "Another Intermediate Rent basis" }, + "divider" => { "value" => true }, + "3" => { "value" => "Don’t know" }, + }) + end +end From 04b522d9b8509d812c323331eb101f450b9aa2dc Mon Sep 17 00:00:00 2001 From: Arthur Campbell <51094020+arfacamble@users.noreply.github.com> Date: Thu, 9 Mar 2023 16:12:45 +0000 Subject: [PATCH 08/51] CLDC-1815 new option for sheltered accommodation question (#1383) * add a new option to sheltered accommodation question rename page for readability create test files for relevant page and question' * correct lint error --- ...redaccom.rb => sheltered_accommodation.rb} | 6 +-- .../form/lettings/questions/sheltered.rb | 1 + .../subsections/tenancy_information.rb | 2 +- .../pages/sheltered_accommodation_spec.rb | 31 +++++++++++++ .../form/lettings/questions/sheltered_spec.rb | 46 +++++++++++++++++++ .../subsections/tenancy_information_spec.rb | 2 +- 6 files changed, 83 insertions(+), 5 deletions(-) rename app/models/form/lettings/pages/{shelteredaccom.rb => sheltered_accommodation.rb} (50%) create mode 100644 spec/models/form/lettings/pages/sheltered_accommodation_spec.rb create mode 100644 spec/models/form/lettings/questions/sheltered_spec.rb diff --git a/app/models/form/lettings/pages/shelteredaccom.rb b/app/models/form/lettings/pages/sheltered_accommodation.rb similarity index 50% rename from app/models/form/lettings/pages/shelteredaccom.rb rename to app/models/form/lettings/pages/sheltered_accommodation.rb index df19b8c99..096ba61e5 100644 --- a/app/models/form/lettings/pages/shelteredaccom.rb +++ b/app/models/form/lettings/pages/sheltered_accommodation.rb @@ -1,8 +1,8 @@ -class Form::Lettings::Pages::Shelteredaccom < ::Form::Page +class Form::Lettings::Pages::ShelteredAccommodation < ::Form::Page def initialize(id, hsh, subsection) super - @id = "shelteredaccom" - @depends_on = [{ "needstype" => 2 }] + @id = "sheltered_accommodation" + @depends_on = [{ "is_supported_housing?" => true }] end def questions diff --git a/app/models/form/lettings/questions/sheltered.rb b/app/models/form/lettings/questions/sheltered.rb index 47899e261..a5b289ffc 100644 --- a/app/models/form/lettings/questions/sheltered.rb +++ b/app/models/form/lettings/questions/sheltered.rb @@ -13,6 +13,7 @@ class Form::Lettings::Questions::Sheltered < ::Form::Question ANSWER_OPTIONS = { "2" => { "value" => "Yes – extra care housing" }, "1" => { "value" => "Yes – specialist retirement housing" }, + "5" => { "value" => "Yes – sheltered housing for adults aged under 55 years" }, "3" => { "value" => "No" }, "divider" => { "value" => true }, "4" => { "value" => "Don’t know" }, diff --git a/app/models/form/lettings/subsections/tenancy_information.rb b/app/models/form/lettings/subsections/tenancy_information.rb index 5f2af5215..be8e4fdce 100644 --- a/app/models/form/lettings/subsections/tenancy_information.rb +++ b/app/models/form/lettings/subsections/tenancy_information.rb @@ -13,7 +13,7 @@ class Form::Lettings::Subsections::TenancyInformation < ::Form::Subsection Form::Lettings::Pages::TenancyType.new(nil, nil, self), Form::Lettings::Pages::StarterTenancyType.new(nil, nil, self), Form::Lettings::Pages::TenancyLength.new(nil, nil, self), - Form::Lettings::Pages::Shelteredaccom.new(nil, nil, self), + Form::Lettings::Pages::ShelteredAccommodation.new(nil, nil, self), ].compact end end diff --git a/spec/models/form/lettings/pages/sheltered_accommodation_spec.rb b/spec/models/form/lettings/pages/sheltered_accommodation_spec.rb new file mode 100644 index 000000000..7d403f9e3 --- /dev/null +++ b/spec/models/form/lettings/pages/sheltered_accommodation_spec.rb @@ -0,0 +1,31 @@ +require "rails_helper" + +RSpec.describe Form::Lettings::Pages::ShelteredAccommodation, type: :model do + subject(:page) { described_class.new(nil, nil, subsection) } + + let(:subsection) { instance_double(Form::Subsection) } + + it "has correct subsection" do + expect(page.subsection).to eq(subsection) + end + + it "has correct questions" do + expect(page.questions.map(&:id)).to eq(%w[sheltered]) + end + + it "has the correct id" do + expect(page.id).to eq("sheltered_accommodation") + end + + it "has the correct header" do + expect(page.header).to be_nil + end + + it "has the correct description" do + expect(page.description).to be_nil + end + + it "has the correct depends_on" do + expect(page.depends_on).to eq([{ "is_supported_housing?" => true }]) + end +end diff --git a/spec/models/form/lettings/questions/sheltered_spec.rb b/spec/models/form/lettings/questions/sheltered_spec.rb new file mode 100644 index 000000000..5b9b3c743 --- /dev/null +++ b/spec/models/form/lettings/questions/sheltered_spec.rb @@ -0,0 +1,46 @@ +require "rails_helper" + +RSpec.describe Form::Lettings::Questions::Sheltered, type: :model do + subject(:question) { described_class.new(nil, nil, page) } + + let(:page) { instance_double(Form::Page) } + + it "has correct page" do + expect(question.page).to eq page + end + + it "has the correct id" do + expect(question.id).to eq "sheltered" + end + + it "has the correct header" do + expect(question.header).to eq "Is this letting in sheltered accommodation?" + end + + it "has the correct check_answer_label" do + expect(question.check_answer_label).to eq "Is this letting in sheltered accommodation?" + end + + it "has the correct type" do + expect(question.type).to eq "radio" + end + + it "has the correct hint_text" do + expect(question.hint_text).to eq "" + end + + it "has the correct answer_options" do + expect(question.answer_options).to eq({ + "2" => { "value" => "Yes – extra care housing" }, + "1" => { "value" => "Yes – specialist retirement housing" }, + "5" => { "value" => "Yes – sheltered housing for adults aged under 55 years" }, + "3" => { "value" => "No" }, + "divider" => { "value" => true }, + "4" => { "value" => "Don’t know" }, + }) + end + + it "is not marked as derived" do + expect(question.derived?).to be false + end +end diff --git a/spec/models/form/lettings/subsections/tenancy_information_spec.rb b/spec/models/form/lettings/subsections/tenancy_information_spec.rb index 7dd3e3a10..475ea209c 100644 --- a/spec/models/form/lettings/subsections/tenancy_information_spec.rb +++ b/spec/models/form/lettings/subsections/tenancy_information_spec.rb @@ -13,7 +13,7 @@ RSpec.describe Form::Lettings::Subsections::TenancyInformation, type: :model do it "has correct pages" do expect(tenancy_information.pages.map(&:id)).to eq( - %w[joint starter_tenancy tenancy_type starter_tenancy_type tenancy_length shelteredaccom], + %w[joint starter_tenancy tenancy_type starter_tenancy_type tenancy_length sheltered_accommodation], ) end From 1b009d0facb2cb93a0ec5d855408002e736a0648 Mon Sep 17 00:00:00 2001 From: kosiakkatrina <54268893+kosiakkatrina@users.noreply.github.com> Date: Fri, 10 Mar 2023 11:26:08 +0000 Subject: [PATCH 09/51] CLDC-2006 Add 23/24 collection year LAs (#1392) * Update LAs for 23/24 sales questions * Update LAs for 23/24 lettings questions * Update LAs for 23/24 location * Remove redundant assignments * Update question files to use the local authorities from db * Update locations to use local authorities from db * Rebase changes * Replace hardcoded date --- app/controllers/locations_controller.rb | 2 +- app/helpers/locations_helper.rb | 2 +- app/models/form/lettings/questions/la.rb | 323 +---- app/models/form/lettings/questions/prevloc.rb | 390 +----- app/models/form/sales/questions/prevloc.rb | 390 +----- .../questions/property_local_authority.rb | 323 +---- app/models/local_authority.rb | 2 + app/models/location.rb | 322 +---- .../models/form/lettings/questions/la_spec.rb | 320 +++++ .../form/lettings/questions/prevloc_spec.rb | 389 ++++++ .../sales/pages/last_accommodation_la_spec.rb | 3 +- .../pages/property_local_authority_spec.rb | 3 +- .../form/sales/questions/prevloc_spec.rb | 1166 +++++++++++------ .../property_local_authority_spec.rb | 961 +++++++++----- spec/models/location_spec.rb | 655 +++++++++ 15 files changed, 2806 insertions(+), 2445 deletions(-) create mode 100644 spec/models/form/lettings/questions/la_spec.rb create mode 100644 spec/models/form/lettings/questions/prevloc_spec.rb diff --git a/app/controllers/locations_controller.rb b/app/controllers/locations_controller.rb index f01193f4c..5b39fa875 100644 --- a/app/controllers/locations_controller.rb +++ b/app/controllers/locations_controller.rb @@ -41,7 +41,7 @@ class LocationsController < ApplicationController def update_local_authority @location.location_admin_district = location_params[:location_admin_district] - @location.location_code = Location.local_authorities.key(location_params[:location_admin_district]) + @location.location_code = Location.local_authorities_for_current_year.key(location_params[:location_admin_district]) if @location.save(context: :location_admin_district) if return_to_check_your_answers? || params[:referrer] == "check_local_authority" redirect_to scheme_location_check_answers_path(@scheme, @location, route: params[:route]) diff --git a/app/helpers/locations_helper.rb b/app/helpers/locations_helper.rb index 9b8661221..8d6a46c26 100644 --- a/app/helpers/locations_helper.rb +++ b/app/helpers/locations_helper.rb @@ -14,7 +14,7 @@ module LocationsHelper def local_authorities_selection null_option = [OpenStruct.new(id: "", name: "Select an option")] - null_option + Location.local_authorities.map { |code, name| OpenStruct.new(code:, name:) } + null_option + Location.local_authorities_for_current_year.map { |code, name| OpenStruct.new(code:, name:) } end def selection_options(resource) diff --git a/app/models/form/lettings/questions/la.rb b/app/models/form/lettings/questions/la.rb index a25bdac10..e69a7216e 100644 --- a/app/models/form/lettings/questions/la.rb +++ b/app/models/form/lettings/questions/la.rb @@ -7,326 +7,9 @@ class Form::Lettings::Questions::La < ::Form::Question @type = "select" @check_answers_card_number = 0 @hint_text = "" - @answer_options = ANSWER_OPTIONS end - ANSWER_OPTIONS = { - "" => "Select an option", - "E07000223" => "Adur", - "E07000026" => "Allerdale", - "E07000032" => "Amber Valley", - "E07000224" => "Arun", - "E07000170" => "Ashfield", - "E07000105" => "Ashford", - "E07000200" => "Babergh", - "E09000002" => "Barking and Dagenham", - "E09000003" => "Barnet", - "E08000016" => "Barnsley", - "E07000027" => "Barrow-in-Furness", - "E07000066" => "Basildon", - "E07000084" => "Basingstoke and Deane", - "E07000171" => "Bassetlaw", - "E06000022" => "Bath and North East Somerset", - "E06000055" => "Bedford", - "E09000004" => "Bexley", - "E08000025" => "Birmingham", - "E07000129" => "Blaby", - "E06000008" => "Blackburn with Darwen", - "E06000009" => "Blackpool", - "E07000033" => "Bolsover", - "E08000001" => "Bolton", - "E07000136" => "Boston", - "E06000058" => "Bournemouth, Christchurch and Poole", - "E06000036" => "Bracknell Forest", - "E08000032" => "Bradford", - "E07000067" => "Braintree", - "E07000143" => "Breckland", - "E09000005" => "Brent", - "E07000068" => "Brentwood", - "E06000043" => "Brighton and Hove", - "E06000023" => "Bristol, City of", - "E07000144" => "Broadland", - "E09000006" => "Bromley", - "E07000234" => "Bromsgrove", - "E07000095" => "Broxbourne", - "E07000172" => "Broxtowe", - "E06000060" => "Buckinghamshire", - "E07000117" => "Burnley", - "E08000002" => "Bury", - "E08000033" => "Calderdale", - "E07000008" => "Cambridge", - "E09000007" => "Camden", - "E07000192" => "Cannock Chase", - "E07000106" => "Canterbury", - "E07000028" => "Carlisle", - "E07000069" => "Castle Point", - "E06000056" => "Central Bedfordshire", - "E07000130" => "Charnwood", - "E07000070" => "Chelmsford", - "E07000078" => "Cheltenham", - "E07000177" => "Cherwell", - "E06000049" => "Cheshire East", - "E06000050" => "Cheshire West and Chester", - "E07000034" => "Chesterfield", - "E07000225" => "Chichester", - "E07000118" => "Chorley", - "E09000001" => "City of London", - "E07000071" => "Colchester", - "E07000029" => "Copeland", - "E07000150" => "Corby", - "E06000052" => "Cornwall", - "E07000079" => "Cotswold", - "E06000047" => "County Durham", - "E08000026" => "Coventry", - "E07000163" => "Craven", - "E07000226" => "Crawley", - "E09000008" => "Croydon", - "E07000096" => "Dacorum", - "E06000005" => "Darlington", - "E07000107" => "Dartford", - "E07000151" => "Daventry", - "E06000015" => "Derby", - "E07000035" => "Derbyshire Dales", - "E08000017" => "Doncaster", - "E06000059" => "Dorset", - "E07000108" => "Dover", - "E08000027" => "Dudley", - "E09000009" => "Ealing", - "E07000009" => "East Cambridgeshire", - "E07000040" => "East Devon", - "E07000085" => "East Hampshire", - "E07000242" => "East Hertfordshire", - "E07000137" => "East Lindsey", - "E07000152" => "East Northamptonshire", - "E06000011" => "East Riding of Yorkshire", - "E07000193" => "East Staffordshire", - "E07000244" => "East Suffolk", - "E07000061" => "Eastbourne", - "E07000086" => "Eastleigh", - "E07000030" => "Eden", - "E07000207" => "Elmbridge", - "E09000010" => "Enfield", - "E07000072" => "Epping Forest", - "E07000208" => "Epsom and Ewell", - "E07000036" => "Erewash", - "E07000041" => "Exeter", - "E07000087" => "Fareham", - "E07000010" => "Fenland", - "E07000112" => "Folkestone and Hythe", - "E07000080" => "Forest of Dean", - "E07000119" => "Fylde", - "E08000037" => "Gateshead", - "E07000173" => "Gedling", - "E07000081" => "Gloucester", - "E07000088" => "Gosport", - "E07000109" => "Gravesham", - "E07000145" => "Great Yarmouth", - "E09000011" => "Greenwich", - "E07000209" => "Guildford", - "W06000002" => "Gwynedd", - "E09000012" => "Hackney", - "E06000006" => "Halton", - "E07000164" => "Hambleton", - "E09000013" => "Hammersmith and Fulham", - "E07000131" => "Harborough", - "E09000014" => "Haringey", - "E07000073" => "Harlow", - "E07000165" => "Harrogate", - "E09000015" => "Harrow", - "E07000089" => "Hart", - "E06000001" => "Hartlepool", - "E07000062" => "Hastings", - "E07000090" => "Havant", - "E09000016" => "Havering", - "E06000019" => "Herefordshire, County of", - "E07000098" => "Hertsmere", - "E07000037" => "High Peak", - "S12000017" => "Highland", - "E09000017" => "Hillingdon", - "E07000132" => "Hinckley and Bosworth", - "E07000227" => "Horsham", - "E09000018" => "Hounslow", - "E07000011" => "Huntingdonshire", - "E07000120" => "Hyndburn", - "E07000202" => "Ipswich", - "E06000046" => "Isle of Wight", - "E06000053" => "Isles of Scilly", - "E09000019" => "Islington", - "E09000020" => "Kensington and Chelsea", - "E07000153" => "Kettering", - "E07000146" => "King’s Lynn and West Norfolk", - "E06000010" => "Kingston upon Hull, City of", - "E09000021" => "Kingston upon Thames", - "E08000034" => "Kirklees", - "E08000011" => "Knowsley", - "E09000022" => "Lambeth", - "E07000121" => "Lancaster", - "E08000035" => "Leeds", - "E06000016" => "Leicester", - "E07000063" => "Lewes", - "E09000023" => "Lewisham", - "E07000194" => "Lichfield", - "E07000138" => "Lincoln", - "E08000012" => "Liverpool", - "E06000032" => "Luton", - "E07000110" => "Maidstone", - "E07000074" => "Maldon", - "E07000235" => "Malvern Hills", - "E08000003" => "Manchester", - "E07000174" => "Mansfield", - "E06000035" => "Medway", - "E07000133" => "Melton", - "E07000187" => "Mendip", - "E09000024" => "Merton", - "E07000042" => "Mid Devon", - "E07000203" => "Mid Suffolk", - "E07000228" => "Mid Sussex", - "E06000002" => "Middlesbrough", - "E06000042" => "Milton Keynes", - "E07000210" => "Mole Valley", - "E07000091" => "New Forest", - "E07000175" => "Newark and Sherwood", - "E08000021" => "Newcastle upon Tyne", - "E07000195" => "Newcastle-under-Lyme", - "E09000025" => "Newham", - "E07000043" => "North Devon", - "E07000038" => "North East Derbyshire", - "E06000012" => "North East Lincolnshire", - "E07000099" => "North Hertfordshire", - "E07000139" => "North Kesteven", - "E06000013" => "North Lincolnshire", - "E07000147" => "North Norfolk", - "E06000024" => "North Somerset", - "E08000022" => "North Tyneside", - "E07000218" => "North Warwickshire", - "E07000134" => "North West Leicestershire", - "E07000154" => "Northampton", - "E06000057" => "Northumberland", - "E07000148" => "Norwich", - "E06000018" => "Nottingham", - "E07000219" => "Nuneaton and Bedworth", - "E07000135" => "Oadby and Wigston", - "E08000004" => "Oldham", - "E07000178" => "Oxford", - "E07000122" => "Pendle", - "E06000031" => "Peterborough", - "E06000026" => "Plymouth", - "E06000044" => "Portsmouth", - "E07000123" => "Preston", - "E06000038" => "Reading", - "E09000026" => "Redbridge", - "E06000003" => "Redcar and Cleveland", - "E07000236" => "Redditch", - "E07000211" => "Reigate and Banstead", - "E07000124" => "Ribble Valley", - "E09000027" => "Richmond upon Thames", - "E07000166" => "Richmondshire", - "E08000005" => "Rochdale", - "E07000075" => "Rochford", - "E07000125" => "Rossendale", - "E07000064" => "Rother", - "E08000018" => "Rotherham", - "E07000220" => "Rugby", - "E07000212" => "Runnymede", - "E07000176" => "Rushcliffe", - "E07000092" => "Rushmoor", - "E06000017" => "Rutland", - "E07000167" => "Ryedale", - "E08000006" => "Salford", - "E08000028" => "Sandwell", - "E07000168" => "Scarborough", - "E07000188" => "Sedgemoor", - "E08000014" => "Sefton", - "E07000169" => "Selby", - "E07000111" => "Sevenoaks", - "E08000019" => "Sheffield", - "E06000051" => "Shropshire", - "E06000039" => "Slough", - "E08000029" => "Solihull", - "E07000246" => "Somerset West and Taunton", - "E07000012" => "South Cambridgeshire", - "E07000039" => "South Derbyshire", - "E06000025" => "South Gloucestershire", - "E07000044" => "South Hams", - "E07000140" => "South Holland", - "E07000141" => "South Kesteven", - "E07000031" => "South Lakeland", - "E07000149" => "South Norfolk", - "E07000155" => "South Northamptonshire", - "E07000179" => "South Oxfordshire", - "E07000126" => "South Ribble", - "E07000189" => "South Somerset", - "E07000196" => "South Staffordshire", - "E08000023" => "South Tyneside", - "E06000045" => "Southampton", - "E06000033" => "Southend-on-Sea", - "E09000028" => "Southwark", - "E07000213" => "Spelthorne", - "E07000240" => "St Albans", - "E08000013" => "St. Helens", - "E07000197" => "Stafford", - "E07000198" => "Staffordshire Moorlands", - "E07000243" => "Stevenage", - "E08000007" => "Stockport", - "E06000004" => "Stockton-on-Tees", - "E06000021" => "Stoke-on-Trent", - "E07000221" => "Stratford-on-Avon", - "E07000082" => "Stroud", - "E08000024" => "Sunderland", - "E07000214" => "Surrey Heath", - "E09000029" => "Sutton", - "E07000113" => "Swale", - "E06000030" => "Swindon", - "E08000008" => "Tameside", - "E07000199" => "Tamworth", - "E07000215" => "Tandridge", - "E07000045" => "Teignbridge", - "E06000020" => "Telford and Wrekin", - "E07000076" => "Tendring", - "E07000093" => "Test Valley", - "E07000083" => "Tewkesbury", - "E07000114" => "Thanet", - "E07000102" => "Three Rivers", - "E06000034" => "Thurrock", - "E07000115" => "Tonbridge and Malling", - "E06000027" => "Torbay", - "E07000046" => "Torridge", - "E09000030" => "Tower Hamlets", - "E08000009" => "Trafford", - "E07000116" => "Tunbridge Wells", - "E07000077" => "Uttlesford", - "E07000180" => "Vale of White Horse", - "E08000036" => "Wakefield", - "E08000030" => "Walsall", - "E09000031" => "Waltham Forest", - "E09000032" => "Wandsworth", - "E06000007" => "Warrington", - "E07000222" => "Warwick", - "E07000103" => "Watford", - "E07000216" => "Waverley", - "E07000065" => "Wealden", - "E07000156" => "Wellingborough", - "E07000241" => "Welwyn Hatfield", - "E06000037" => "West Berkshire", - "E07000047" => "West Devon", - "E07000127" => "West Lancashire", - "E07000142" => "West Lindsey", - "E07000181" => "West Oxfordshire", - "E07000245" => "West Suffolk", - "E09000033" => "Westminster", - "E08000010" => "Wigan", - "E06000054" => "Wiltshire", - "E07000094" => "Winchester", - "E06000040" => "Windsor and Maidenhead", - "E08000015" => "Wirral", - "E07000217" => "Woking", - "E06000041" => "Wokingham", - "E08000031" => "Wolverhampton", - "E07000237" => "Worcester", - "E07000229" => "Worthing", - "E07000238" => "Wychavon", - "E07000128" => "Wyre", - "E07000239" => "Wyre Forest", - "E06000014" => "York", - }.freeze + def answer_options + { "" => "Select an option" }.merge(LocalAuthority.active(form.start_date).england.map { |la| [la.code, la.name] }.to_h) + end end diff --git a/app/models/form/lettings/questions/prevloc.rb b/app/models/form/lettings/questions/prevloc.rb index e5a433f3f..06d23eed4 100644 --- a/app/models/form/lettings/questions/prevloc.rb +++ b/app/models/form/lettings/questions/prevloc.rb @@ -8,393 +8,9 @@ class Form::Lettings::Questions::Prevloc < ::Form::Question @inferred_check_answers_value = [{ "condition" => { "previous_la_known" => 0 }, "value" => "Not known" }] @check_answers_card_number = 0 @hint_text = "Select ‘Northern Ireland’, ‘Scotland’, ‘Wales’ or ‘Outside the UK’ if the household’s last settled home was outside England." - @answer_options = ANSWER_OPTIONS end - ANSWER_OPTIONS = { - "" => "Select an option", - "S12000033" => "Aberdeen City", - "S12000034" => "Aberdeenshire", - "E07000223" => "Adur", - "E07000026" => "Allerdale", - "E07000032" => "Amber Valley", - "S12000041" => "Angus", - "N09000001" => "Antrim and Newtownabbey", - "N09000011" => "Ards and North Down", - "S12000035" => "Argyll and Bute", - "N09000002" => "Armagh City, Banbridge and Craigavon", - "E07000224" => "Arun", - "E07000170" => "Ashfield", - "E07000105" => "Ashford", - "E07000200" => "Babergh", - "E09000002" => "Barking and Dagenham", - "E09000003" => "Barnet", - "E08000016" => "Barnsley", - "E07000027" => "Barrow-in-Furness", - "E07000066" => "Basildon", - "E07000084" => "Basingstoke and Deane", - "E07000171" => "Bassetlaw", - "E06000022" => "Bath and North East Somerset", - "E06000055" => "Bedford", - "N09000003" => "Belfast", - "E09000004" => "Bexley", - "E08000025" => "Birmingham", - "E07000129" => "Blaby", - "E06000008" => "Blackburn with Darwen", - "E06000009" => "Blackpool", - "W06000019" => "Blaenau Gwent", - "E07000033" => "Bolsover", - "E08000001" => "Bolton", - "E07000136" => "Boston", - "E06000058" => "Bournemouth, Christchurch and Poole", - "E06000036" => "Bracknell Forest", - "E08000032" => "Bradford", - "E07000067" => "Braintree", - "E07000143" => "Breckland", - "E09000005" => "Brent", - "E07000068" => "Brentwood", - "W06000013" => "Bridgend", - "E06000043" => "Brighton and Hove", - "E06000023" => "Bristol, City of", - "E07000144" => "Broadland", - "E09000006" => "Bromley", - "E07000234" => "Bromsgrove", - "E07000095" => "Broxbourne", - "E07000172" => "Broxtowe", - "E06000060" => "Buckinghamshire", - "E07000117" => "Burnley", - "E08000002" => "Bury", - "W06000018" => "Caerphilly", - "E08000033" => "Calderdale", - "E07000008" => "Cambridge", - "E09000007" => "Camden", - "E07000192" => "Cannock Chase", - "E07000106" => "Canterbury", - "W06000015" => "Cardiff", - "E07000028" => "Carlisle", - "W06000010" => "Carmarthenshire", - "E07000069" => "Castle Point", - "N09000004" => "Causeway Coast and Glens", - "E06000056" => "Central Bedfordshire", - "W06000008" => "Ceredigion", - "E07000130" => "Charnwood", - "E07000070" => "Chelmsford", - "E07000078" => "Cheltenham", - "E07000177" => "Cherwell", - "E06000049" => "Cheshire East", - "E06000050" => "Cheshire West and Chester", - "E07000034" => "Chesterfield", - "E07000225" => "Chichester", - "E07000118" => "Chorley", - "S12000036" => "City of Edinburgh", - "E09000001" => "City of London", - "S12000005" => "Clackmannanshire", - "E07000071" => "Colchester", - "W06000003" => "Conwy", - "E07000029" => "Copeland", - "E07000150" => "Corby", - "E06000052" => "Cornwall", - "E07000079" => "Cotswold", - "E06000047" => "County Durham", - "E08000026" => "Coventry", - "E07000163" => "Craven", - "E07000226" => "Crawley", - "E09000008" => "Croydon", - "E07000096" => "Dacorum", - "E06000005" => "Darlington", - "E07000107" => "Dartford", - "E07000151" => "Daventry", - "W06000004" => "Denbighshire", - "E06000015" => "Derby", - "E07000035" => "Derbyshire Dales", - "N09000005" => "Derry City and Strabane", - "E08000017" => "Doncaster", - "E06000059" => "Dorset", - "E07000108" => "Dover", - "E08000027" => "Dudley", - "S12000006" => "Dumfries and Galloway", - "S12000042" => "Dundee City", - "E09000009" => "Ealing", - "S12000008" => "East Ayrshire", - "E07000009" => "East Cambridgeshire", - "E07000040" => "East Devon", - "S12000045" => "East Dunbartonshire", - "E07000085" => "East Hampshire", - "E07000242" => "East Hertfordshire", - "E07000137" => "East Lindsey", - "S12000010" => "East Lothian", - "E07000152" => "East Northamptonshire", - "S12000011" => "East Renfrewshire", - "E06000011" => "East Riding of Yorkshire", - "E07000193" => "East Staffordshire", - "E07000244" => "East Suffolk", - "E07000061" => "Eastbourne", - "E07000086" => "Eastleigh", - "E07000030" => "Eden", - "E07000207" => "Elmbridge", - "E09000010" => "Enfield", - "E07000072" => "Epping Forest", - "E07000208" => "Epsom and Ewell", - "E07000036" => "Erewash", - "E07000041" => "Exeter", - "S12000014" => "Falkirk", - "E07000087" => "Fareham", - "E07000010" => "Fenland", - "N09000006" => "Fermanagh and Omagh", - "S12000047" => "Fife", - "W06000005" => "Flintshire", - "E07000112" => "Folkestone and Hythe", - "E07000080" => "Forest of Dean", - "E07000119" => "Fylde", - "E08000037" => "Gateshead", - "E07000173" => "Gedling", - "S12000049" => "Glasgow City", - "E07000081" => "Gloucester", - "E07000088" => "Gosport", - "E07000109" => "Gravesham", - "E07000145" => "Great Yarmouth", - "E09000011" => "Greenwich", - "E07000209" => "Guildford", - "W06000002" => "Gwynedd", - "E09000012" => "Hackney", - "E06000006" => "Halton", - "E07000164" => "Hambleton", - "E09000013" => "Hammersmith and Fulham", - "E07000131" => "Harborough", - "E09000014" => "Haringey", - "E07000073" => "Harlow", - "E07000165" => "Harrogate", - "E09000015" => "Harrow", - "E07000089" => "Hart", - "E06000001" => "Hartlepool", - "E07000062" => "Hastings", - "E07000090" => "Havant", - "E09000016" => "Havering", - "E06000019" => "Herefordshire, County of", - "E07000098" => "Hertsmere", - "E07000037" => "High Peak", - "S12000017" => "Highland", - "E09000017" => "Hillingdon", - "E07000132" => "Hinckley and Bosworth", - "E07000227" => "Horsham", - "E09000018" => "Hounslow", - "E07000011" => "Huntingdonshire", - "E07000120" => "Hyndburn", - "S12000018" => "Inverclyde", - "E07000202" => "Ipswich", - "W06000001" => "Isle of Anglesey", - "E06000046" => "Isle of Wight", - "E06000053" => "Isles of Scilly", - "E09000019" => "Islington", - "E09000020" => "Kensington and Chelsea", - "E07000153" => "Kettering", - "E07000146" => "King’s Lynn and West Norfolk", - "E06000010" => "Kingston upon Hull, City of", - "E09000021" => "Kingston upon Thames", - "E08000034" => "Kirklees", - "E08000011" => "Knowsley", - "E09000022" => "Lambeth", - "E07000121" => "Lancaster", - "E08000035" => "Leeds", - "E06000016" => "Leicester", - "E07000063" => "Lewes", - "E09000023" => "Lewisham", - "E07000194" => "Lichfield", - "E07000138" => "Lincoln", - "N09000007" => "Lisburn and Castlereagh", - "E08000012" => "Liverpool", - "E06000032" => "Luton", - "E07000110" => "Maidstone", - "E07000074" => "Maldon", - "E07000235" => "Malvern Hills", - "E08000003" => "Manchester", - "E07000174" => "Mansfield", - "E06000035" => "Medway", - "E07000133" => "Melton", - "E07000187" => "Mendip", - "W06000024" => "Merthyr Tydfil", - "E09000024" => "Merton", - "E07000042" => "Mid Devon", - "E07000203" => "Mid Suffolk", - "E07000228" => "Mid Sussex", - "N09000009" => "Mid Ulster", - "N09000008" => "Mid and East Antrim", - "E06000002" => "Middlesbrough", - "S12000019" => "Midlothian", - "E06000042" => "Milton Keynes", - "E07000210" => "Mole Valley", - "W06000021" => "Monmouthshire", - "S12000020" => "Moray", - "S12000013" => "Na h-Eileanan Siar", - "W06000012" => "Neath Port Talbot", - "E07000091" => "New Forest", - "E07000175" => "Newark and Sherwood", - "E08000021" => "Newcastle upon Tyne", - "E07000195" => "Newcastle-under-Lyme", - "E09000025" => "Newham", - "W06000022" => "Newport", - "N09000010" => "Newry, Mourne and Down", - "S12000021" => "North Ayrshire", - "E07000043" => "North Devon", - "E07000038" => "North East Derbyshire", - "E06000012" => "North East Lincolnshire", - "E07000099" => "North Hertfordshire", - "E07000139" => "North Kesteven", - "S12000050" => "North Lanarkshire", - "E06000013" => "North Lincolnshire", - "E07000147" => "North Norfolk", - "E06000024" => "North Somerset", - "E08000022" => "North Tyneside", - "E07000218" => "North Warwickshire", - "E07000134" => "North West Leicestershire", - "E07000154" => "Northampton", - "E06000057" => "Northumberland", - "E07000148" => "Norwich", - "E06000018" => "Nottingham", - "E07000219" => "Nuneaton and Bedworth", - "E07000135" => "Oadby and Wigston", - "E08000004" => "Oldham", - "S12000023" => "Orkney Islands", - "E07000178" => "Oxford", - "W06000009" => "Pembrokeshire", - "E07000122" => "Pendle", - "S12000048" => "Perth and Kinross", - "E06000031" => "Peterborough", - "E06000026" => "Plymouth", - "E06000044" => "Portsmouth", - "W06000023" => "Powys", - "E07000123" => "Preston", - "E06000038" => "Reading", - "E09000026" => "Redbridge", - "E06000003" => "Redcar and Cleveland", - "E07000236" => "Redditch", - "E07000211" => "Reigate and Banstead", - "S12000038" => "Renfrewshire", - "W06000016" => "Rhondda Cynon Taf", - "E07000124" => "Ribble Valley", - "E09000027" => "Richmond upon Thames", - "E07000166" => "Richmondshire", - "E08000005" => "Rochdale", - "E07000075" => "Rochford", - "E07000125" => "Rossendale", - "E07000064" => "Rother", - "E08000018" => "Rotherham", - "E07000220" => "Rugby", - "E07000212" => "Runnymede", - "E07000176" => "Rushcliffe", - "E07000092" => "Rushmoor", - "E06000017" => "Rutland", - "E07000167" => "Ryedale", - "E08000006" => "Salford", - "E08000028" => "Sandwell", - "E07000168" => "Scarborough", - "S12000026" => "Scottish Borders", - "E07000188" => "Sedgemoor", - "E08000014" => "Sefton", - "E07000169" => "Selby", - "E07000111" => "Sevenoaks", - "E08000019" => "Sheffield", - "S12000027" => "Shetland Islands", - "E06000051" => "Shropshire", - "E06000039" => "Slough", - "E08000029" => "Solihull", - "E07000246" => "Somerset West and Taunton", - "S12000028" => "South Ayrshire", - "E07000012" => "South Cambridgeshire", - "E07000039" => "South Derbyshire", - "E06000025" => "South Gloucestershire", - "E07000044" => "South Hams", - "E07000140" => "South Holland", - "E07000141" => "South Kesteven", - "E07000031" => "South Lakeland", - "S12000029" => "South Lanarkshire", - "E07000149" => "South Norfolk", - "E07000155" => "South Northamptonshire", - "E07000179" => "South Oxfordshire", - "E07000126" => "South Ribble", - "E07000189" => "South Somerset", - "E07000196" => "South Staffordshire", - "E08000023" => "South Tyneside", - "E06000045" => "Southampton", - "E06000033" => "Southend-on-Sea", - "E09000028" => "Southwark", - "E07000213" => "Spelthorne", - "E07000240" => "St Albans", - "E08000013" => "St. Helens", - "E07000197" => "Stafford", - "E07000198" => "Staffordshire Moorlands", - "E07000243" => "Stevenage", - "S12000030" => "Stirling", - "E08000007" => "Stockport", - "E06000004" => "Stockton-on-Tees", - "E06000021" => "Stoke-on-Trent", - "E07000221" => "Stratford-on-Avon", - "E07000082" => "Stroud", - "E08000024" => "Sunderland", - "E07000214" => "Surrey Heath", - "E09000029" => "Sutton", - "E07000113" => "Swale", - "W06000011" => "Swansea", - "E06000030" => "Swindon", - "E08000008" => "Tameside", - "E07000199" => "Tamworth", - "E07000215" => "Tandridge", - "E07000045" => "Teignbridge", - "E06000020" => "Telford and Wrekin", - "E07000076" => "Tendring", - "E07000093" => "Test Valley", - "E07000083" => "Tewkesbury", - "E07000114" => "Thanet", - "E07000102" => "Three Rivers", - "E06000034" => "Thurrock", - "E07000115" => "Tonbridge and Malling", - "E06000027" => "Torbay", - "W06000020" => "Torfaen", - "E07000046" => "Torridge", - "E09000030" => "Tower Hamlets", - "E08000009" => "Trafford", - "E07000116" => "Tunbridge Wells", - "E07000077" => "Uttlesford", - "W06000014" => "Vale of Glamorgan", - "E07000180" => "Vale of White Horse", - "E08000036" => "Wakefield", - "E08000030" => "Walsall", - "E09000031" => "Waltham Forest", - "E09000032" => "Wandsworth", - "E06000007" => "Warrington", - "E07000222" => "Warwick", - "E07000103" => "Watford", - "E07000216" => "Waverley", - "E07000065" => "Wealden", - "E07000156" => "Wellingborough", - "E07000241" => "Welwyn Hatfield", - "E06000037" => "West Berkshire", - "E07000047" => "West Devon", - "S12000039" => "West Dunbartonshire", - "E07000127" => "West Lancashire", - "E07000142" => "West Lindsey", - "S12000040" => "West Lothian", - "E07000181" => "West Oxfordshire", - "E07000245" => "West Suffolk", - "E09000033" => "Westminster", - "E08000010" => "Wigan", - "E06000054" => "Wiltshire", - "E07000094" => "Winchester", - "E06000040" => "Windsor and Maidenhead", - "E08000015" => "Wirral", - "E07000217" => "Woking", - "E06000041" => "Wokingham", - "E08000031" => "Wolverhampton", - "E07000237" => "Worcester", - "E07000229" => "Worthing", - "W06000006" => "Wrexham", - "E07000238" => "Wychavon", - "E07000128" => "Wyre", - "E07000239" => "Wyre Forest", - "E06000014" => "York", - "N92000002" => "Northern Ireland", - "S92000003" => "Scotland", - "W92000004" => "Wales", - "9300000XX" => "Outside UK", - }.freeze + def answer_options + { "" => "Select an option" }.merge(LocalAuthority.active(form.start_date).map { |la| [la.code, la.name] }.to_h) + end end diff --git a/app/models/form/sales/questions/prevloc.rb b/app/models/form/sales/questions/prevloc.rb index 49a69ad39..e7395e749 100644 --- a/app/models/form/sales/questions/prevloc.rb +++ b/app/models/form/sales/questions/prevloc.rb @@ -5,7 +5,6 @@ class Form::Sales::Questions::Prevloc < ::Form::Question @check_answer_label = "Local authority of buyer 1’s last settled accommodation" @header = "Select a local authority" @type = "select" - @answer_options = ANSWER_OPTIONS @inferred_check_answers_value = [{ "condition" => { "previous_la_known" => 0, @@ -14,390 +13,7 @@ class Form::Sales::Questions::Prevloc < ::Form::Question }] end - ANSWER_OPTIONS = { - "" => "Select an option", - "S12000033" => "Aberdeen City", - "S12000034" => "Aberdeenshire", - "E07000223" => "Adur", - "E07000026" => "Allerdale", - "E07000032" => "Amber Valley", - "S12000041" => "Angus", - "N09000001" => "Antrim and Newtownabbey", - "N09000011" => "Ards and North Down", - "S12000035" => "Argyll and Bute", - "N09000002" => "Armagh City, Banbridge and Craigavon", - "E07000224" => "Arun", - "E07000170" => "Ashfield", - "E07000105" => "Ashford", - "E07000200" => "Babergh", - "E09000002" => "Barking and Dagenham", - "E09000003" => "Barnet", - "E08000016" => "Barnsley", - "E07000027" => "Barrow-in-Furness", - "E07000066" => "Basildon", - "E07000084" => "Basingstoke and Deane", - "E07000171" => "Bassetlaw", - "E06000022" => "Bath and North East Somerset", - "E06000055" => "Bedford", - "N09000003" => "Belfast", - "E09000004" => "Bexley", - "E08000025" => "Birmingham", - "E07000129" => "Blaby", - "E06000008" => "Blackburn with Darwen", - "E06000009" => "Blackpool", - "W06000019" => "Blaenau Gwent", - "E07000033" => "Bolsover", - "E08000001" => "Bolton", - "E07000136" => "Boston", - "E06000058" => "Bournemouth, Christchurch and Poole", - "E06000036" => "Bracknell Forest", - "E08000032" => "Bradford", - "E07000067" => "Braintree", - "E07000143" => "Breckland", - "E09000005" => "Brent", - "E07000068" => "Brentwood", - "W06000013" => "Bridgend", - "E06000043" => "Brighton and Hove", - "E06000023" => "Bristol, City of", - "E07000144" => "Broadland", - "E09000006" => "Bromley", - "E07000234" => "Bromsgrove", - "E07000095" => "Broxbourne", - "E07000172" => "Broxtowe", - "E06000060" => "Buckinghamshire", - "E07000117" => "Burnley", - "E08000002" => "Bury", - "W06000018" => "Caerphilly", - "E08000033" => "Calderdale", - "E07000008" => "Cambridge", - "E09000007" => "Camden", - "E07000192" => "Cannock Chase", - "E07000106" => "Canterbury", - "W06000015" => "Cardiff", - "E07000028" => "Carlisle", - "W06000010" => "Carmarthenshire", - "E07000069" => "Castle Point", - "N09000004" => "Causeway Coast and Glens", - "E06000056" => "Central Bedfordshire", - "W06000008" => "Ceredigion", - "E07000130" => "Charnwood", - "E07000070" => "Chelmsford", - "E07000078" => "Cheltenham", - "E07000177" => "Cherwell", - "E06000049" => "Cheshire East", - "E06000050" => "Cheshire West and Chester", - "E07000034" => "Chesterfield", - "E07000225" => "Chichester", - "E07000118" => "Chorley", - "S12000036" => "City of Edinburgh", - "E09000001" => "City of London", - "S12000005" => "Clackmannanshire", - "E07000071" => "Colchester", - "W06000003" => "Conwy", - "E07000029" => "Copeland", - "E07000150" => "Corby", - "E06000052" => "Cornwall", - "E07000079" => "Cotswold", - "E06000047" => "County Durham", - "E08000026" => "Coventry", - "E07000163" => "Craven", - "E07000226" => "Crawley", - "E09000008" => "Croydon", - "E07000096" => "Dacorum", - "E06000005" => "Darlington", - "E07000107" => "Dartford", - "E07000151" => "Daventry", - "W06000004" => "Denbighshire", - "E06000015" => "Derby", - "E07000035" => "Derbyshire Dales", - "N09000005" => "Derry City and Strabane", - "E08000017" => "Doncaster", - "E06000059" => "Dorset", - "E07000108" => "Dover", - "E08000027" => "Dudley", - "S12000006" => "Dumfries and Galloway", - "S12000042" => "Dundee City", - "E09000009" => "Ealing", - "S12000008" => "East Ayrshire", - "E07000009" => "East Cambridgeshire", - "E07000040" => "East Devon", - "S12000045" => "East Dunbartonshire", - "E07000085" => "East Hampshire", - "E07000242" => "East Hertfordshire", - "E07000137" => "East Lindsey", - "S12000010" => "East Lothian", - "E07000152" => "East Northamptonshire", - "S12000011" => "East Renfrewshire", - "E06000011" => "East Riding of Yorkshire", - "E07000193" => "East Staffordshire", - "E07000244" => "East Suffolk", - "E07000061" => "Eastbourne", - "E07000086" => "Eastleigh", - "E07000030" => "Eden", - "E07000207" => "Elmbridge", - "E09000010" => "Enfield", - "E07000072" => "Epping Forest", - "E07000208" => "Epsom and Ewell", - "E07000036" => "Erewash", - "E07000041" => "Exeter", - "S12000014" => "Falkirk", - "E07000087" => "Fareham", - "E07000010" => "Fenland", - "N09000006" => "Fermanagh and Omagh", - "S12000047" => "Fife", - "W06000005" => "Flintshire", - "E07000112" => "Folkestone and Hythe", - "E07000080" => "Forest of Dean", - "E07000119" => "Fylde", - "E08000037" => "Gateshead", - "E07000173" => "Gedling", - "S12000049" => "Glasgow City", - "E07000081" => "Gloucester", - "E07000088" => "Gosport", - "E07000109" => "Gravesham", - "E07000145" => "Great Yarmouth", - "E09000011" => "Greenwich", - "E07000209" => "Guildford", - "W06000002" => "Gwynedd", - "E09000012" => "Hackney", - "E06000006" => "Halton", - "E07000164" => "Hambleton", - "E09000013" => "Hammersmith and Fulham", - "E07000131" => "Harborough", - "E09000014" => "Haringey", - "E07000073" => "Harlow", - "E07000165" => "Harrogate", - "E09000015" => "Harrow", - "E07000089" => "Hart", - "E06000001" => "Hartlepool", - "E07000062" => "Hastings", - "E07000090" => "Havant", - "E09000016" => "Havering", - "E06000019" => "Herefordshire, County of", - "E07000098" => "Hertsmere", - "E07000037" => "High Peak", - "S12000017" => "Highland", - "E09000017" => "Hillingdon", - "E07000132" => "Hinckley and Bosworth", - "E07000227" => "Horsham", - "E09000018" => "Hounslow", - "E07000011" => "Huntingdonshire", - "E07000120" => "Hyndburn", - "S12000018" => "Inverclyde", - "E07000202" => "Ipswich", - "W06000001" => "Isle of Anglesey", - "E06000046" => "Isle of Wight", - "E06000053" => "Isles of Scilly", - "E09000019" => "Islington", - "E09000020" => "Kensington and Chelsea", - "E07000153" => "Kettering", - "E07000146" => "King’s Lynn and West Norfolk", - "E06000010" => "Kingston upon Hull, City of", - "E09000021" => "Kingston upon Thames", - "E08000034" => "Kirklees", - "E08000011" => "Knowsley", - "E09000022" => "Lambeth", - "E07000121" => "Lancaster", - "E08000035" => "Leeds", - "E06000016" => "Leicester", - "E07000063" => "Lewes", - "E09000023" => "Lewisham", - "E07000194" => "Lichfield", - "E07000138" => "Lincoln", - "N09000007" => "Lisburn and Castlereagh", - "E08000012" => "Liverpool", - "E06000032" => "Luton", - "E07000110" => "Maidstone", - "E07000074" => "Maldon", - "E07000235" => "Malvern Hills", - "E08000003" => "Manchester", - "E07000174" => "Mansfield", - "E06000035" => "Medway", - "E07000133" => "Melton", - "E07000187" => "Mendip", - "W06000024" => "Merthyr Tydfil", - "E09000024" => "Merton", - "E07000042" => "Mid Devon", - "E07000203" => "Mid Suffolk", - "E07000228" => "Mid Sussex", - "N09000009" => "Mid Ulster", - "N09000008" => "Mid and East Antrim", - "E06000002" => "Middlesbrough", - "S12000019" => "Midlothian", - "E06000042" => "Milton Keynes", - "E07000210" => "Mole Valley", - "W06000021" => "Monmouthshire", - "S12000020" => "Moray", - "S12000013" => "Na h-Eileanan Siar", - "W06000012" => "Neath Port Talbot", - "E07000091" => "New Forest", - "E07000175" => "Newark and Sherwood", - "E08000021" => "Newcastle upon Tyne", - "E07000195" => "Newcastle-under-Lyme", - "E09000025" => "Newham", - "W06000022" => "Newport", - "N09000010" => "Newry, Mourne and Down", - "S12000021" => "North Ayrshire", - "E07000043" => "North Devon", - "E07000038" => "North East Derbyshire", - "E06000012" => "North East Lincolnshire", - "E07000099" => "North Hertfordshire", - "E07000139" => "North Kesteven", - "S12000050" => "North Lanarkshire", - "E06000013" => "North Lincolnshire", - "E07000147" => "North Norfolk", - "E06000024" => "North Somerset", - "E08000022" => "North Tyneside", - "E07000218" => "North Warwickshire", - "E07000134" => "North West Leicestershire", - "E07000154" => "Northampton", - "E06000057" => "Northumberland", - "E07000148" => "Norwich", - "E06000018" => "Nottingham", - "E07000219" => "Nuneaton and Bedworth", - "E07000135" => "Oadby and Wigston", - "E08000004" => "Oldham", - "S12000023" => "Orkney Islands", - "E07000178" => "Oxford", - "W06000009" => "Pembrokeshire", - "E07000122" => "Pendle", - "S12000048" => "Perth and Kinross", - "E06000031" => "Peterborough", - "E06000026" => "Plymouth", - "E06000044" => "Portsmouth", - "W06000023" => "Powys", - "E07000123" => "Preston", - "E06000038" => "Reading", - "E09000026" => "Redbridge", - "E06000003" => "Redcar and Cleveland", - "E07000236" => "Redditch", - "E07000211" => "Reigate and Banstead", - "S12000038" => "Renfrewshire", - "W06000016" => "Rhondda Cynon Taf", - "E07000124" => "Ribble Valley", - "E09000027" => "Richmond upon Thames", - "E07000166" => "Richmondshire", - "E08000005" => "Rochdale", - "E07000075" => "Rochford", - "E07000125" => "Rossendale", - "E07000064" => "Rother", - "E08000018" => "Rotherham", - "E07000220" => "Rugby", - "E07000212" => "Runnymede", - "E07000176" => "Rushcliffe", - "E07000092" => "Rushmoor", - "E06000017" => "Rutland", - "E07000167" => "Ryedale", - "E08000006" => "Salford", - "E08000028" => "Sandwell", - "E07000168" => "Scarborough", - "S12000026" => "Scottish Borders", - "E07000188" => "Sedgemoor", - "E08000014" => "Sefton", - "E07000169" => "Selby", - "E07000111" => "Sevenoaks", - "E08000019" => "Sheffield", - "S12000027" => "Shetland Islands", - "E06000051" => "Shropshire", - "E06000039" => "Slough", - "E08000029" => "Solihull", - "E07000246" => "Somerset West and Taunton", - "S12000028" => "South Ayrshire", - "E07000012" => "South Cambridgeshire", - "E07000039" => "South Derbyshire", - "E06000025" => "South Gloucestershire", - "E07000044" => "South Hams", - "E07000140" => "South Holland", - "E07000141" => "South Kesteven", - "E07000031" => "South Lakeland", - "S12000029" => "South Lanarkshire", - "E07000149" => "South Norfolk", - "E07000155" => "South Northamptonshire", - "E07000179" => "South Oxfordshire", - "E07000126" => "South Ribble", - "E07000189" => "South Somerset", - "E07000196" => "South Staffordshire", - "E08000023" => "South Tyneside", - "E06000045" => "Southampton", - "E06000033" => "Southend-on-Sea", - "E09000028" => "Southwark", - "E07000213" => "Spelthorne", - "E07000240" => "St Albans", - "E08000013" => "St. Helens", - "E07000197" => "Stafford", - "E07000198" => "Staffordshire Moorlands", - "E07000243" => "Stevenage", - "S12000030" => "Stirling", - "E08000007" => "Stockport", - "E06000004" => "Stockton-on-Tees", - "E06000021" => "Stoke-on-Trent", - "E07000221" => "Stratford-on-Avon", - "E07000082" => "Stroud", - "E08000024" => "Sunderland", - "E07000214" => "Surrey Heath", - "E09000029" => "Sutton", - "E07000113" => "Swale", - "W06000011" => "Swansea", - "E06000030" => "Swindon", - "E08000008" => "Tameside", - "E07000199" => "Tamworth", - "E07000215" => "Tandridge", - "E07000045" => "Teignbridge", - "E06000020" => "Telford and Wrekin", - "E07000076" => "Tendring", - "E07000093" => "Test Valley", - "E07000083" => "Tewkesbury", - "E07000114" => "Thanet", - "E07000102" => "Three Rivers", - "E06000034" => "Thurrock", - "E07000115" => "Tonbridge and Malling", - "E06000027" => "Torbay", - "W06000020" => "Torfaen", - "E07000046" => "Torridge", - "E09000030" => "Tower Hamlets", - "E08000009" => "Trafford", - "E07000116" => "Tunbridge Wells", - "E07000077" => "Uttlesford", - "W06000014" => "Vale of Glamorgan", - "E07000180" => "Vale of White Horse", - "E08000036" => "Wakefield", - "E08000030" => "Walsall", - "E09000031" => "Waltham Forest", - "E09000032" => "Wandsworth", - "E06000007" => "Warrington", - "E07000222" => "Warwick", - "E07000103" => "Watford", - "E07000216" => "Waverley", - "E07000065" => "Wealden", - "E07000156" => "Wellingborough", - "E07000241" => "Welwyn Hatfield", - "E06000037" => "West Berkshire", - "E07000047" => "West Devon", - "S12000039" => "West Dunbartonshire", - "E07000127" => "West Lancashire", - "E07000142" => "West Lindsey", - "S12000040" => "West Lothian", - "E07000181" => "West Oxfordshire", - "E07000245" => "West Suffolk", - "E09000033" => "Westminster", - "E08000010" => "Wigan", - "E06000054" => "Wiltshire", - "E07000094" => "Winchester", - "E06000040" => "Windsor and Maidenhead", - "E08000015" => "Wirral", - "E07000217" => "Woking", - "E06000041" => "Wokingham", - "E08000031" => "Wolverhampton", - "E07000237" => "Worcester", - "E07000229" => "Worthing", - "W06000006" => "Wrexham", - "E07000238" => "Wychavon", - "E07000128" => "Wyre", - "E07000239" => "Wyre Forest", - "E06000014" => "York", - "N92000002" => "Northern Ireland", - "S92000003" => "Scotland", - "W92000004" => "Wales", - "9300000XX" => "Outside UK", - }.freeze + def answer_options + { "" => "Select an option" }.merge(LocalAuthority.active(form.start_date).map { |la| [la.code, la.name] }.to_h) + end end diff --git a/app/models/form/sales/questions/property_local_authority.rb b/app/models/form/sales/questions/property_local_authority.rb index 8def2d9f3..7b08a8a08 100644 --- a/app/models/form/sales/questions/property_local_authority.rb +++ b/app/models/form/sales/questions/property_local_authority.rb @@ -5,326 +5,9 @@ class Form::Sales::Questions::PropertyLocalAuthority < ::Form::Question @check_answer_label = "Local authority" @header = "What is the local authority of the property?" @type = "select" - @answer_options = ANSWER_OPTIONS end - ANSWER_OPTIONS = { - "" => "Select an option", - "E07000223" => "Adur", - "E07000026" => "Allerdale", - "E07000032" => "Amber Valley", - "E07000224" => "Arun", - "E07000170" => "Ashfield", - "E07000105" => "Ashford", - "E07000200" => "Babergh", - "E09000002" => "Barking and Dagenham", - "E09000003" => "Barnet", - "E08000016" => "Barnsley", - "E07000027" => "Barrow-in-Furness", - "E07000066" => "Basildon", - "E07000084" => "Basingstoke and Deane", - "E07000171" => "Bassetlaw", - "E06000022" => "Bath and North East Somerset", - "E06000055" => "Bedford", - "E09000004" => "Bexley", - "E08000025" => "Birmingham", - "E07000129" => "Blaby", - "E06000008" => "Blackburn with Darwen", - "E06000009" => "Blackpool", - "E07000033" => "Bolsover", - "E08000001" => "Bolton", - "E07000136" => "Boston", - "E06000058" => "Bournemouth, Christchurch and Poole", - "E06000036" => "Bracknell Forest", - "E08000032" => "Bradford", - "E07000067" => "Braintree", - "E07000143" => "Breckland", - "E09000005" => "Brent", - "E07000068" => "Brentwood", - "E06000043" => "Brighton and Hove", - "E06000023" => "Bristol, City of", - "E07000144" => "Broadland", - "E09000006" => "Bromley", - "E07000234" => "Bromsgrove", - "E07000095" => "Broxbourne", - "E07000172" => "Broxtowe", - "E06000060" => "Buckinghamshire", - "E07000117" => "Burnley", - "E08000002" => "Bury", - "E08000033" => "Calderdale", - "E07000008" => "Cambridge", - "E09000007" => "Camden", - "E07000192" => "Cannock Chase", - "E07000106" => "Canterbury", - "E07000028" => "Carlisle", - "E07000069" => "Castle Point", - "E06000056" => "Central Bedfordshire", - "E07000130" => "Charnwood", - "E07000070" => "Chelmsford", - "E07000078" => "Cheltenham", - "E07000177" => "Cherwell", - "E06000049" => "Cheshire East", - "E06000050" => "Cheshire West and Chester", - "E07000034" => "Chesterfield", - "E07000225" => "Chichester", - "E07000118" => "Chorley", - "E09000001" => "City of London", - "E07000071" => "Colchester", - "E07000029" => "Copeland", - "E07000150" => "Corby", - "E06000052" => "Cornwall", - "E07000079" => "Cotswold", - "E06000047" => "County Durham", - "E08000026" => "Coventry", - "E07000163" => "Craven", - "E07000226" => "Crawley", - "E09000008" => "Croydon", - "E07000096" => "Dacorum", - "E06000005" => "Darlington", - "E07000107" => "Dartford", - "E07000151" => "Daventry", - "E06000015" => "Derby", - "E07000035" => "Derbyshire Dales", - "E08000017" => "Doncaster", - "E06000059" => "Dorset", - "E07000108" => "Dover", - "E08000027" => "Dudley", - "E09000009" => "Ealing", - "E07000009" => "East Cambridgeshire", - "E07000040" => "East Devon", - "E07000085" => "East Hampshire", - "E07000242" => "East Hertfordshire", - "E07000137" => "East Lindsey", - "E07000152" => "East Northamptonshire", - "E06000011" => "East Riding of Yorkshire", - "E07000193" => "East Staffordshire", - "E07000244" => "East Suffolk", - "E07000061" => "Eastbourne", - "E07000086" => "Eastleigh", - "E07000030" => "Eden", - "E07000207" => "Elmbridge", - "E09000010" => "Enfield", - "E07000072" => "Epping Forest", - "E07000208" => "Epsom and Ewell", - "E07000036" => "Erewash", - "E07000041" => "Exeter", - "E07000087" => "Fareham", - "E07000010" => "Fenland", - "E07000112" => "Folkestone and Hythe", - "E07000080" => "Forest of Dean", - "E07000119" => "Fylde", - "E08000037" => "Gateshead", - "E07000173" => "Gedling", - "E07000081" => "Gloucester", - "E07000088" => "Gosport", - "E07000109" => "Gravesham", - "E07000145" => "Great Yarmouth", - "E09000011" => "Greenwich", - "E07000209" => "Guildford", - "W06000002" => "Gwynedd", - "E09000012" => "Hackney", - "E06000006" => "Halton", - "E07000164" => "Hambleton", - "E09000013" => "Hammersmith and Fulham", - "E07000131" => "Harborough", - "E09000014" => "Haringey", - "E07000073" => "Harlow", - "E07000165" => "Harrogate", - "E09000015" => "Harrow", - "E07000089" => "Hart", - "E06000001" => "Hartlepool", - "E07000062" => "Hastings", - "E07000090" => "Havant", - "E09000016" => "Havering", - "E06000019" => "Herefordshire, County of", - "E07000098" => "Hertsmere", - "E07000037" => "High Peak", - "S12000017" => "Highland", - "E09000017" => "Hillingdon", - "E07000132" => "Hinckley and Bosworth", - "E07000227" => "Horsham", - "E09000018" => "Hounslow", - "E07000011" => "Huntingdonshire", - "E07000120" => "Hyndburn", - "E07000202" => "Ipswich", - "E06000046" => "Isle of Wight", - "E06000053" => "Isles of Scilly", - "E09000019" => "Islington", - "E09000020" => "Kensington and Chelsea", - "E07000153" => "Kettering", - "E07000146" => "King’s Lynn and West Norfolk", - "E06000010" => "Kingston upon Hull, City of", - "E09000021" => "Kingston upon Thames", - "E08000034" => "Kirklees", - "E08000011" => "Knowsley", - "E09000022" => "Lambeth", - "E07000121" => "Lancaster", - "E08000035" => "Leeds", - "E06000016" => "Leicester", - "E07000063" => "Lewes", - "E09000023" => "Lewisham", - "E07000194" => "Lichfield", - "E07000138" => "Lincoln", - "E08000012" => "Liverpool", - "E06000032" => "Luton", - "E07000110" => "Maidstone", - "E07000074" => "Maldon", - "E07000235" => "Malvern Hills", - "E08000003" => "Manchester", - "E07000174" => "Mansfield", - "E06000035" => "Medway", - "E07000133" => "Melton", - "E07000187" => "Mendip", - "E09000024" => "Merton", - "E07000042" => "Mid Devon", - "E07000203" => "Mid Suffolk", - "E07000228" => "Mid Sussex", - "E06000002" => "Middlesbrough", - "E06000042" => "Milton Keynes", - "E07000210" => "Mole Valley", - "E07000091" => "New Forest", - "E07000175" => "Newark and Sherwood", - "E08000021" => "Newcastle upon Tyne", - "E07000195" => "Newcastle-under-Lyme", - "E09000025" => "Newham", - "E07000043" => "North Devon", - "E07000038" => "North East Derbyshire", - "E06000012" => "North East Lincolnshire", - "E07000099" => "North Hertfordshire", - "E07000139" => "North Kesteven", - "E06000013" => "North Lincolnshire", - "E07000147" => "North Norfolk", - "E06000024" => "North Somerset", - "E08000022" => "North Tyneside", - "E07000218" => "North Warwickshire", - "E07000134" => "North West Leicestershire", - "E07000154" => "Northampton", - "E06000057" => "Northumberland", - "E07000148" => "Norwich", - "E06000018" => "Nottingham", - "E07000219" => "Nuneaton and Bedworth", - "E07000135" => "Oadby and Wigston", - "E08000004" => "Oldham", - "E07000178" => "Oxford", - "E07000122" => "Pendle", - "E06000031" => "Peterborough", - "E06000026" => "Plymouth", - "E06000044" => "Portsmouth", - "E07000123" => "Preston", - "E06000038" => "Reading", - "E09000026" => "Redbridge", - "E06000003" => "Redcar and Cleveland", - "E07000236" => "Redditch", - "E07000211" => "Reigate and Banstead", - "E07000124" => "Ribble Valley", - "E09000027" => "Richmond upon Thames", - "E07000166" => "Richmondshire", - "E08000005" => "Rochdale", - "E07000075" => "Rochford", - "E07000125" => "Rossendale", - "E07000064" => "Rother", - "E08000018" => "Rotherham", - "E07000220" => "Rugby", - "E07000212" => "Runnymede", - "E07000176" => "Rushcliffe", - "E07000092" => "Rushmoor", - "E06000017" => "Rutland", - "E07000167" => "Ryedale", - "E08000006" => "Salford", - "E08000028" => "Sandwell", - "E07000168" => "Scarborough", - "E07000188" => "Sedgemoor", - "E08000014" => "Sefton", - "E07000169" => "Selby", - "E07000111" => "Sevenoaks", - "E08000019" => "Sheffield", - "E06000051" => "Shropshire", - "E06000039" => "Slough", - "E08000029" => "Solihull", - "E07000246" => "Somerset West and Taunton", - "E07000012" => "South Cambridgeshire", - "E07000039" => "South Derbyshire", - "E06000025" => "South Gloucestershire", - "E07000044" => "South Hams", - "E07000140" => "South Holland", - "E07000141" => "South Kesteven", - "E07000031" => "South Lakeland", - "E07000149" => "South Norfolk", - "E07000155" => "South Northamptonshire", - "E07000179" => "South Oxfordshire", - "E07000126" => "South Ribble", - "E07000189" => "South Somerset", - "E07000196" => "South Staffordshire", - "E08000023" => "South Tyneside", - "E06000045" => "Southampton", - "E06000033" => "Southend-on-Sea", - "E09000028" => "Southwark", - "E07000213" => "Spelthorne", - "E07000240" => "St Albans", - "E08000013" => "St. Helens", - "E07000197" => "Stafford", - "E07000198" => "Staffordshire Moorlands", - "E07000243" => "Stevenage", - "E08000007" => "Stockport", - "E06000004" => "Stockton-on-Tees", - "E06000021" => "Stoke-on-Trent", - "E07000221" => "Stratford-on-Avon", - "E07000082" => "Stroud", - "E08000024" => "Sunderland", - "E07000214" => "Surrey Heath", - "E09000029" => "Sutton", - "E07000113" => "Swale", - "E06000030" => "Swindon", - "E08000008" => "Tameside", - "E07000199" => "Tamworth", - "E07000215" => "Tandridge", - "E07000045" => "Teignbridge", - "E06000020" => "Telford and Wrekin", - "E07000076" => "Tendring", - "E07000093" => "Test Valley", - "E07000083" => "Tewkesbury", - "E07000114" => "Thanet", - "E07000102" => "Three Rivers", - "E06000034" => "Thurrock", - "E07000115" => "Tonbridge and Malling", - "E06000027" => "Torbay", - "E07000046" => "Torridge", - "E09000030" => "Tower Hamlets", - "E08000009" => "Trafford", - "E07000116" => "Tunbridge Wells", - "E07000077" => "Uttlesford", - "E07000180" => "Vale of White Horse", - "E08000036" => "Wakefield", - "E08000030" => "Walsall", - "E09000031" => "Waltham Forest", - "E09000032" => "Wandsworth", - "E06000007" => "Warrington", - "E07000222" => "Warwick", - "E07000103" => "Watford", - "E07000216" => "Waverley", - "E07000065" => "Wealden", - "E07000156" => "Wellingborough", - "E07000241" => "Welwyn Hatfield", - "E06000037" => "West Berkshire", - "E07000047" => "West Devon", - "E07000127" => "West Lancashire", - "E07000142" => "West Lindsey", - "E07000181" => "West Oxfordshire", - "E07000245" => "West Suffolk", - "E09000033" => "Westminster", - "E08000010" => "Wigan", - "E06000054" => "Wiltshire", - "E07000094" => "Winchester", - "E06000040" => "Windsor and Maidenhead", - "E08000015" => "Wirral", - "E07000217" => "Woking", - "E06000041" => "Wokingham", - "E08000031" => "Wolverhampton", - "E07000237" => "Worcester", - "E07000229" => "Worthing", - "E07000238" => "Wychavon", - "E07000128" => "Wyre", - "E07000239" => "Wyre Forest", - "E06000014" => "York", - }.freeze + def answer_options + { "" => "Select an option" }.merge(LocalAuthority.active(form.start_date).england.map { |la| [la.code, la.name] }.to_h) + end end diff --git a/app/models/local_authority.rb b/app/models/local_authority.rb index 4017ada52..22786ce7c 100644 --- a/app/models/local_authority.rb +++ b/app/models/local_authority.rb @@ -1,2 +1,4 @@ class LocalAuthority < ApplicationRecord + scope :active, ->(date) { where("start_date <= ? AND (end_date IS NULL OR end_date >= ?)", date, date) } + scope :england, -> { where("code LIKE ?", "E%") } end diff --git a/app/models/location.rb b/app/models/location.rb index 3798c57e8..0f90aedf5 100644 --- a/app/models/location.rb +++ b/app/models/location.rb @@ -24,326 +24,12 @@ class Location < ApplicationRecord scope :started, -> { where("startdate <= ?", Time.zone.today).or(where(startdate: nil)) } scope :active, -> { where(confirmed: true).and(started) } - LOCAL_AUTHORITIES = { - "E07000223": "Adur", - "E07000026": "Allerdale", - "E07000032": "Amber Valley", - "E07000224": "Arun", - "E07000170": "Ashfield", - "E07000105": "Ashford", - "E07000200": "Babergh", - "E09000002": "Barking and Dagenham", - "E09000003": "Barnet", - "E08000016": "Barnsley", - "E07000027": "Barrow-in-Furness", - "E07000066": "Basildon", - "E07000084": "Basingstoke and Deane", - "E07000171": "Bassetlaw", - "E06000022": "Bath and North East Somerset", - "E06000055": "Bedford", - "E09000004": "Bexley", - "E08000025": "Birmingham", - "E07000129": "Blaby", - "E06000008": "Blackburn with Darwen", - "E06000009": "Blackpool", - "E07000033": "Bolsover", - "E08000001": "Bolton", - "E07000136": "Boston", - "E06000058": "Bournemouth, Christchurch and Poole", - "E06000036": "Bracknell Forest", - "E08000032": "Bradford", - "E07000067": "Braintree", - "E07000143": "Breckland", - "E09000005": "Brent", - "E07000068": "Brentwood", - "E06000043": "Brighton and Hove", - "E06000023": "Bristol, City of", - "E07000144": "Broadland", - "E09000006": "Bromley", - "E07000234": "Bromsgrove", - "E07000095": "Broxbourne", - "E07000172": "Broxtowe", - "E06000060": "Buckinghamshire", - "E07000117": "Burnley", - "E08000002": "Bury", - "E08000033": "Calderdale", - "E07000008": "Cambridge", - "E09000007": "Camden", - "E07000192": "Cannock Chase", - "E07000106": "Canterbury", - "E07000028": "Carlisle", - "E07000069": "Castle Point", - "E06000056": "Central Bedfordshire", - "E07000130": "Charnwood", - "E07000070": "Chelmsford", - "E07000078": "Cheltenham", - "E07000177": "Cherwell", - "E06000049": "Cheshire East", - "E06000050": "Cheshire West and Chester", - "E07000034": "Chesterfield", - "E07000225": "Chichester", - "E07000118": "Chorley", - "E09000001": "City of London", - "E07000071": "Colchester", - "E07000029": "Copeland", - "E07000150": "Corby", - "E06000052": "Cornwall", - "E07000079": "Cotswold", - "E06000047": "County Durham", - "E08000026": "Coventry", - "E07000163": "Craven", - "E07000226": "Crawley", - "E09000008": "Croydon", - "E07000096": "Dacorum", - "E06000005": "Darlington", - "E07000107": "Dartford", - "E07000151": "Daventry", - "E06000015": "Derby", - "E07000035": "Derbyshire Dales", - "E08000017": "Doncaster", - "E06000059": "Dorset", - "E07000108": "Dover", - "E08000027": "Dudley", - "E09000009": "Ealing", - "E07000009": "East Cambridgeshire", - "E07000040": "East Devon", - "E07000085": "East Hampshire", - "E07000242": "East Hertfordshire", - "E07000137": "East Lindsey", - "E07000152": "East Northamptonshire", - "E06000011": "East Riding of Yorkshire", - "E07000193": "East Staffordshire", - "E07000244": "East Suffolk", - "E07000061": "Eastbourne", - "E07000086": "Eastleigh", - "E07000030": "Eden", - "E07000207": "Elmbridge", - "E09000010": "Enfield", - "E07000072": "Epping Forest", - "E07000208": "Epsom and Ewell", - "E07000036": "Erewash", - "E07000041": "Exeter", - "E07000087": "Fareham", - "E07000010": "Fenland", - "E07000112": "Folkestone and Hythe", - "E07000080": "Forest of Dean", - "E07000119": "Fylde", - "E08000037": "Gateshead", - "E07000173": "Gedling", - "E07000081": "Gloucester", - "E07000088": "Gosport", - "E07000109": "Gravesham", - "E07000145": "Great Yarmouth", - "E09000011": "Greenwich", - "E07000209": "Guildford", - "W06000002": "Gwynedd", - "E09000012": "Hackney", - "E06000006": "Halton", - "E07000164": "Hambleton", - "E09000013": "Hammersmith and Fulham", - "E07000131": "Harborough", - "E09000014": "Haringey", - "E07000073": "Harlow", - "E07000165": "Harrogate", - "E09000015": "Harrow", - "E07000089": "Hart", - "E06000001": "Hartlepool", - "E07000062": "Hastings", - "E07000090": "Havant", - "E09000016": "Havering", - "E06000019": "Herefordshire, County of", - "E07000098": "Hertsmere", - "E07000037": "High Peak", - "S12000017": "Highland", - "E09000017": "Hillingdon", - "E07000132": "Hinckley and Bosworth", - "E07000227": "Horsham", - "E09000018": "Hounslow", - "E07000011": "Huntingdonshire", - "E07000120": "Hyndburn", - "E07000202": "Ipswich", - "E06000046": "Isle of Wight", - "E06000053": "Isles of Scilly", - "E09000019": "Islington", - "E09000020": "Kensington and Chelsea", - "E07000153": "Kettering", - "E07000146": "King’s Lynn and West Norfolk", - "E06000010": "Kingston upon Hull, City of", - "E09000021": "Kingston upon Thames", - "E08000034": "Kirklees", - "E08000011": "Knowsley", - "E09000022": "Lambeth", - "E07000121": "Lancaster", - "E08000035": "Leeds", - "E06000016": "Leicester", - "E07000063": "Lewes", - "E09000023": "Lewisham", - "E07000194": "Lichfield", - "E07000138": "Lincoln", - "E08000012": "Liverpool", - "E06000032": "Luton", - "E07000110": "Maidstone", - "E07000074": "Maldon", - "E07000235": "Malvern Hills", - "E08000003": "Manchester", - "E07000174": "Mansfield", - "E06000035": "Medway", - "E07000133": "Melton", - "E07000187": "Mendip", - "E09000024": "Merton", - "E07000042": "Mid Devon", - "E07000203": "Mid Suffolk", - "E07000228": "Mid Sussex", - "E06000002": "Middlesbrough", - "E06000042": "Milton Keynes", - "E07000210": "Mole Valley", - "E07000091": "New Forest", - "E07000175": "Newark and Sherwood", - "E08000021": "Newcastle upon Tyne", - "E07000195": "Newcastle-under-Lyme", - "E09000025": "Newham", - "E07000043": "North Devon", - "E07000038": "North East Derbyshire", - "E06000012": "North East Lincolnshire", - "E07000099": "North Hertfordshire", - "E07000139": "North Kesteven", - "E06000013": "North Lincolnshire", - "E07000147": "North Norfolk", - "E06000024": "North Somerset", - "E08000022": "North Tyneside", - "E07000218": "North Warwickshire", - "E07000134": "North West Leicestershire", - "E07000154": "Northampton", - "E06000057": "Northumberland", - "E07000148": "Norwich", - "E06000018": "Nottingham", - "E07000219": "Nuneaton and Bedworth", - "E07000135": "Oadby and Wigston", - "E08000004": "Oldham", - "E07000178": "Oxford", - "E07000122": "Pendle", - "E06000031": "Peterborough", - "E06000026": "Plymouth", - "E06000044": "Portsmouth", - "E07000123": "Preston", - "E06000038": "Reading", - "E09000026": "Redbridge", - "E06000003": "Redcar and Cleveland", - "E07000236": "Redditch", - "E07000211": "Reigate and Banstead", - "E07000124": "Ribble Valley", - "E09000027": "Richmond upon Thames", - "E07000166": "Richmondshire", - "E08000005": "Rochdale", - "E07000075": "Rochford", - "E07000125": "Rossendale", - "E07000064": "Rother", - "E08000018": "Rotherham", - "E07000220": "Rugby", - "E07000212": "Runnymede", - "E07000176": "Rushcliffe", - "E07000092": "Rushmoor", - "E06000017": "Rutland", - "E07000167": "Ryedale", - "E08000006": "Salford", - "E08000028": "Sandwell", - "E07000168": "Scarborough", - "E07000188": "Sedgemoor", - "E08000014": "Sefton", - "E07000169": "Selby", - "E07000111": "Sevenoaks", - "E08000019": "Sheffield", - "E06000051": "Shropshire", - "E06000039": "Slough", - "E08000029": "Solihull", - "E07000246": "Somerset West and Taunton", - "E07000012": "South Cambridgeshire", - "E07000039": "South Derbyshire", - "E06000025": "South Gloucestershire", - "E07000044": "South Hams", - "E07000140": "South Holland", - "E07000141": "South Kesteven", - "E07000031": "South Lakeland", - "E07000149": "South Norfolk", - "E07000155": "South Northamptonshire", - "E07000179": "South Oxfordshire", - "E07000126": "South Ribble", - "E07000189": "South Somerset", - "E07000196": "South Staffordshire", - "E08000023": "South Tyneside", - "E06000045": "Southampton", - "E06000033": "Southend-on-Sea", - "E09000028": "Southwark", - "E07000213": "Spelthorne", - "E07000240": "St Albans", - "E08000013": "St. Helens", - "E07000197": "Stafford", - "E07000198": "Staffordshire Moorlands", - "E07000243": "Stevenage", - "E08000007": "Stockport", - "E06000004": "Stockton-on-Tees", - "E06000021": "Stoke-on-Trent", - "E07000221": "Stratford-on-Avon", - "E07000082": "Stroud", - "E08000024": "Sunderland", - "E07000214": "Surrey Heath", - "E09000029": "Sutton", - "E07000113": "Swale", - "E06000030": "Swindon", - "E08000008": "Tameside", - "E07000199": "Tamworth", - "E07000215": "Tandridge", - "E07000045": "Teignbridge", - "E06000020": "Telford and Wrekin", - "E07000076": "Tendring", - "E07000093": "Test Valley", - "E07000083": "Tewkesbury", - "E07000114": "Thanet", - "E07000102": "Three Rivers", - "E06000034": "Thurrock", - "E07000115": "Tonbridge and Malling", - "E06000027": "Torbay", - "E07000046": "Torridge", - "E09000030": "Tower Hamlets", - "E08000009": "Trafford", - "E07000116": "Tunbridge Wells", - "E07000077": "Uttlesford", - "E07000180": "Vale of White Horse", - "E08000036": "Wakefield", - "E08000030": "Walsall", - "E09000031": "Waltham Forest", - "E09000032": "Wandsworth", - "E06000007": "Warrington", - "E07000222": "Warwick", - "E07000103": "Watford", - "E07000216": "Waverley", - "E07000065": "Wealden", - "E07000156": "Wellingborough", - "E07000241": "Welwyn Hatfield", - "E06000037": "West Berkshire", - "E07000047": "West Devon", - "E07000127": "West Lancashire", - "E07000142": "West Lindsey", - "E07000181": "West Oxfordshire", - "E07000245": "West Suffolk", - "E09000033": "Westminster", - "E08000010": "Wigan", - "E06000054": "Wiltshire", - "E07000094": "Winchester", - "E06000040": "Windsor and Maidenhead", - "E08000015": "Wirral", - "E07000217": "Woking", - "E06000041": "Wokingham", - "E08000031": "Wolverhampton", - "E07000237": "Worcester", - "E07000229": "Worthing", - "E07000238": "Wychavon", - "E07000128": "Wyre", - "E07000239": "Wyre Forest", - "E06000014": "York", - }.freeze + LOCAL_AUTHORITIES = LocalAuthority.all.map { |la| [la.name, la.code] }.to_h enum local_authorities: LOCAL_AUTHORITIES + def self.local_authorities_for_current_year + LocalAuthority.all.active(Time.zone.today).england.map { |la| [la.code, la.name] }.to_h + end MOBILITY_TYPE = { "Wheelchair-user standard": "W", diff --git a/spec/models/form/lettings/questions/la_spec.rb b/spec/models/form/lettings/questions/la_spec.rb new file mode 100644 index 000000000..05ebb2d69 --- /dev/null +++ b/spec/models/form/lettings/questions/la_spec.rb @@ -0,0 +1,320 @@ +require "rails_helper" + +RSpec.describe Form::Lettings::Questions::La, type: :model do + subject(:question) { described_class.new(question_id, question_definition, page) } + + let(:question_id) { nil } + let(:question_definition) { nil } + let(:subsection) { instance_double(Form::Subsection, form: instance_double(Form, start_date:)) } + let(:page) { instance_double(Form::Page, subsection:) } + let(:start_date) { Time.utc(2023, 4, 1) } + + it "has the correct answer_options" do + Rails.application.load_seed + + expect(question.answer_options).to eq({ + "" => "Select an option", + "E06000001" => "Hartlepool", + "E06000002" => "Middlesbrough", + "E06000003" => "Redcar and Cleveland", + "E06000004" => "Stockton-on-Tees", + "E06000005" => "Darlington", + "E06000006" => "Halton", + "E06000007" => "Warrington", + "E06000008" => "Blackburn with Darwen", + "E06000009" => "Blackpool", + "E06000010" => "Kingston upon Hull, City of", + "E06000011" => "East Riding of Yorkshire", + "E06000012" => "North East Lincolnshire", + "E06000013" => "North Lincolnshire", + "E06000014" => "York", + "E06000015" => "Derby", + "E06000016" => "Leicester", + "E06000017" => "Rutland", + "E06000018" => "Nottingham", + "E06000019" => "Herefordshire, County of", + "E06000020" => "Telford and Wrekin", + "E06000021" => "Stoke-on-Trent", + "E06000022" => "Bath and North East Somerset", + "E06000023" => "Bristol, City of", + "E06000024" => "North Somerset", + "E06000025" => "South Gloucestershire", + "E06000026" => "Plymouth", + "E06000027" => "Torbay", + "E06000030" => "Swindon", + "E06000031" => "Peterborough", + "E06000032" => "Luton", + "E06000033" => "Southend-on-Sea", + "E06000034" => "Thurrock", + "E06000035" => "Medway", + "E06000036" => "Bracknell Forest", + "E06000037" => "West Berkshire", + "E06000038" => "Reading", + "E06000039" => "Slough", + "E06000040" => "Windsor and Maidenhead", + "E06000041" => "Wokingham", + "E06000042" => "Milton Keynes", + "E06000043" => "Brighton and Hove", + "E06000044" => "Portsmouth", + "E06000045" => "Southampton", + "E06000046" => "Isle of Wight", + "E06000047" => "County Durham", + "E06000049" => "Cheshire East", + "E06000050" => "Cheshire West and Chester", + "E06000051" => "Shropshire", + "E06000052" => "Cornwall", + "E06000053" => "Isles of Scilly", + "E06000054" => "Wiltshire", + "E06000055" => "Bedford", + "E06000056" => "Central Bedfordshire", + "E06000057" => "Northumberland", + "E06000058" => "Bournemouth, Christchurch and Poole", + "E06000059" => "Dorset", + "E06000060" => "Buckinghamshire", + "E07000008" => "Cambridge", + "E07000009" => "East Cambridgeshire", + "E07000010" => "Fenland", + "E07000011" => "Huntingdonshire", + "E07000012" => "South Cambridgeshire", + "E07000032" => "Amber Valley", + "E07000033" => "Bolsover", + "E07000034" => "Chesterfield", + "E07000035" => "Derbyshire Dales", + "E07000036" => "Erewash", + "E07000037" => "High Peak", + "E07000038" => "North East Derbyshire", + "E07000039" => "South Derbyshire", + "E07000040" => "East Devon", + "E07000041" => "Exeter", + "E07000042" => "Mid Devon", + "E07000043" => "North Devon", + "E07000044" => "South Hams", + "E07000045" => "Teignbridge", + "E07000046" => "Torridge", + "E07000047" => "West Devon", + "E07000061" => "Eastbourne", + "E07000062" => "Hastings", + "E07000063" => "Lewes", + "E07000064" => "Rother", + "E07000065" => "Wealden", + "E07000066" => "Basildon", + "E07000067" => "Braintree", + "E07000068" => "Brentwood", + "E07000069" => "Castle Point", + "E07000070" => "Chelmsford", + "E07000071" => "Colchester", + "E07000072" => "Epping Forest", + "E07000073" => "Harlow", + "E07000074" => "Maldon", + "E07000075" => "Rochford", + "E07000076" => "Tendring", + "E07000077" => "Uttlesford", + "E07000078" => "Cheltenham", + "E07000079" => "Cotswold", + "E07000080" => "Forest of Dean", + "E07000081" => "Gloucester", + "E07000082" => "Stroud", + "E07000083" => "Tewkesbury", + "E07000084" => "Basingstoke and Deane", + "E07000085" => "East Hampshire", + "E07000086" => "Eastleigh", + "E07000087" => "Fareham", + "E07000088" => "Gosport", + "E07000089" => "Hart", + "E07000090" => "Havant", + "E07000091" => "New Forest", + "E07000092" => "Rushmoor", + "E07000093" => "Test Valley", + "E07000094" => "Winchester", + "E07000095" => "Broxbourne", + "E07000096" => "Dacorum", + "E07000098" => "Hertsmere", + "E07000099" => "North Hertfordshire", + "E07000102" => "Three Rivers", + "E07000103" => "Watford", + "E07000105" => "Ashford", + "E07000106" => "Canterbury", + "E07000107" => "Dartford", + "E07000108" => "Dover", + "E07000109" => "Gravesham", + "E07000110" => "Maidstone", + "E07000111" => "Sevenoaks", + "E07000112" => "Folkestone and Hythe", + "E07000113" => "Swale", + "E07000114" => "Thanet", + "E07000115" => "Tonbridge and Malling", + "E07000116" => "Tunbridge Wells", + "E07000117" => "Burnley", + "E07000118" => "Chorley", + "E07000119" => "Fylde", + "E07000120" => "Hyndburn", + "E07000121" => "Lancaster", + "E07000122" => "Pendle", + "E07000123" => "Preston", + "E07000124" => "Ribble Valley", + "E07000125" => "Rossendale", + "E07000126" => "South Ribble", + "E07000127" => "West Lancashire", + "E07000128" => "Wyre", + "E07000129" => "Blaby", + "E07000130" => "Charnwood", + "E07000131" => "Harborough", + "E07000132" => "Hinckley and Bosworth", + "E07000133" => "Melton", + "E07000134" => "North West Leicestershire", + "E07000135" => "Oadby and Wigston", + "E07000136" => "Boston", + "E07000137" => "East Lindsey", + "E07000138" => "Lincoln", + "E07000139" => "North Kesteven", + "E07000140" => "South Holland", + "E07000141" => "South Kesteven", + "E07000142" => "West Lindsey", + "E07000143" => "Breckland", + "E07000144" => "Broadland", + "E07000145" => "Great Yarmouth", + "E07000146" => "King’s Lynn and West Norfolk", + "E07000147" => "North Norfolk", + "E07000148" => "Norwich", + "E07000149" => "South Norfolk", + "E07000150" => "Corby", + "E07000151" => "Daventry", + "E07000152" => "East Northamptonshire", + "E07000153" => "Kettering", + "E07000154" => "Northampton", + "E07000155" => "South Northamptonshire", + "E07000156" => "Wellingborough", + "E07000170" => "Ashfield", + "E07000171" => "Bassetlaw", + "E07000172" => "Broxtowe", + "E07000173" => "Gedling", + "E07000174" => "Mansfield", + "E07000175" => "Newark and Sherwood", + "E07000176" => "Rushcliffe", + "E07000177" => "Cherwell", + "E07000178" => "Oxford", + "E07000179" => "South Oxfordshire", + "E07000180" => "Vale of White Horse", + "E07000181" => "West Oxfordshire", + "E07000192" => "Cannock Chase", + "E07000193" => "East Staffordshire", + "E07000194" => "Lichfield", + "E07000195" => "Newcastle-under-Lyme", + "E07000196" => "South Staffordshire", + "E07000197" => "Stafford", + "E07000198" => "Staffordshire Moorlands", + "E07000199" => "Tamworth", + "E07000200" => "Babergh", + "E07000202" => "Ipswich", + "E07000203" => "Mid Suffolk", + "E07000207" => "Elmbridge", + "E07000208" => "Epsom and Ewell", + "E07000209" => "Guildford", + "E07000210" => "Mole Valley", + "E07000211" => "Reigate and Banstead", + "E07000212" => "Runnymede", + "E07000213" => "Spelthorne", + "E07000214" => "Surrey Heath", + "E07000215" => "Tandridge", + "E07000216" => "Waverley", + "E07000217" => "Woking", + "E07000218" => "North Warwickshire", + "E07000219" => "Nuneaton and Bedworth", + "E07000220" => "Rugby", + "E07000221" => "Stratford-on-Avon", + "E07000222" => "Warwick", + "E07000223" => "Adur", + "E07000224" => "Arun", + "E07000225" => "Chichester", + "E07000226" => "Crawley", + "E07000227" => "Horsham", + "E07000228" => "Mid Sussex", + "E07000229" => "Worthing", + "E07000234" => "Bromsgrove", + "E07000235" => "Malvern Hills", + "E07000236" => "Redditch", + "E07000237" => "Worcester", + "E07000238" => "Wychavon", + "E07000239" => "Wyre Forest", + "E07000240" => "St Albans", + "E07000241" => "Welwyn Hatfield", + "E07000242" => "East Hertfordshire", + "E07000243" => "Stevenage", + "E07000244" => "East Suffolk", + "E07000245" => "West Suffolk", + "E08000001" => "Bolton", + "E08000002" => "Bury", + "E08000003" => "Manchester", + "E08000004" => "Oldham", + "E08000005" => "Rochdale", + "E08000006" => "Salford", + "E08000007" => "Stockport", + "E08000008" => "Tameside", + "E08000009" => "Trafford", + "E08000010" => "Wigan", + "E08000011" => "Knowsley", + "E08000012" => "Liverpool", + "E08000013" => "St. Helens", + "E08000014" => "Sefton", + "E08000015" => "Wirral", + "E08000016" => "Barnsley", + "E08000017" => "Doncaster", + "E08000018" => "Rotherham", + "E08000019" => "Sheffield", + "E08000021" => "Newcastle upon Tyne", + "E08000022" => "North Tyneside", + "E08000023" => "South Tyneside", + "E08000024" => "Sunderland", + "E08000025" => "Birmingham", + "E08000026" => "Coventry", + "E08000027" => "Dudley", + "E08000028" => "Sandwell", + "E08000029" => "Solihull", + "E06000066" => "Somerset", + "E08000030" => "Walsall", + "E08000031" => "Wolverhampton", + "E08000032" => "Bradford", + "E08000033" => "Calderdale", + "E08000034" => "Kirklees", + "E08000035" => "Leeds", + "E08000036" => "Wakefield", + "E08000037" => "Gateshead", + "E09000001" => "City of London", + "E09000002" => "Barking and Dagenham", + "E09000003" => "Barnet", + "E09000004" => "Bexley", + "E09000005" => "Brent", + "E09000006" => "Bromley", + "E09000007" => "Camden", + "E09000008" => "Croydon", + "E06000063" => "Cumberland", + "E09000009" => "Ealing", + "E09000010" => "Enfield", + "E09000011" => "Greenwich", + "E09000012" => "Hackney", + "E09000013" => "Hammersmith and Fulham", + "E09000014" => "Haringey", + "E09000015" => "Harrow", + "E09000016" => "Havering", + "E09000017" => "Hillingdon", + "E09000018" => "Hounslow", + "E09000019" => "Islington", + "E09000020" => "Kensington and Chelsea", + "E09000021" => "Kingston upon Thames", + "E09000022" => "Lambeth", + "E09000023" => "Lewisham", + "E09000024" => "Merton", + "E09000025" => "Newham", + "E09000026" => "Redbridge", + "E09000027" => "Richmond upon Thames", + "E09000028" => "Southwark", + "E09000029" => "Sutton", + "E09000030" => "Tower Hamlets", + "E09000031" => "Waltham Forest", + "E09000032" => "Wandsworth", + "E09000033" => "Westminster", + "E06000064" => "Westmorland and Furness", + "E06000065" => "North Yorkshire", + }) + end +end diff --git a/spec/models/form/lettings/questions/prevloc_spec.rb b/spec/models/form/lettings/questions/prevloc_spec.rb new file mode 100644 index 000000000..fbecaaceb --- /dev/null +++ b/spec/models/form/lettings/questions/prevloc_spec.rb @@ -0,0 +1,389 @@ +require "rails_helper" + +RSpec.describe Form::Lettings::Questions::Prevloc, type: :model do + subject(:question) { described_class.new(question_id, question_definition, page) } + + let(:question_id) { nil } + let(:question_definition) { nil } + let(:subsection) { instance_double(Form::Subsection, form: instance_double(Form, start_date:)) } + let(:page) { instance_double(Form::Page, subsection:) } + let(:start_date) { Time.utc(2023, 4, 1) } + + it "has the correct answer_options" do + Rails.application.load_seed + + expect(question.answer_options).to eq({ + "" => "Select an option", + "S12000033" => "Aberdeen City", + "S12000034" => "Aberdeenshire", + "E07000223" => "Adur", + "E07000032" => "Amber Valley", + "S12000041" => "Angus", + "N09000001" => "Antrim and Newtownabbey", + "N09000011" => "Ards and North Down", + "S12000035" => "Argyll and Bute", + "N09000002" => "Armagh City, Banbridge and Craigavon", + "E07000224" => "Arun", + "E07000170" => "Ashfield", + "E07000105" => "Ashford", + "E07000200" => "Babergh", + "E09000002" => "Barking and Dagenham", + "E09000003" => "Barnet", + "E08000016" => "Barnsley", + "E07000066" => "Basildon", + "E07000084" => "Basingstoke and Deane", + "E07000171" => "Bassetlaw", + "E06000022" => "Bath and North East Somerset", + "E06000055" => "Bedford", + "N09000003" => "Belfast", + "E09000004" => "Bexley", + "E08000025" => "Birmingham", + "E07000129" => "Blaby", + "E06000008" => "Blackburn with Darwen", + "E06000009" => "Blackpool", + "W06000019" => "Blaenau Gwent", + "E07000033" => "Bolsover", + "E08000001" => "Bolton", + "E07000136" => "Boston", + "E06000058" => "Bournemouth, Christchurch and Poole", + "E06000036" => "Bracknell Forest", + "E08000032" => "Bradford", + "E07000067" => "Braintree", + "E07000143" => "Breckland", + "E09000005" => "Brent", + "E07000068" => "Brentwood", + "W06000013" => "Bridgend", + "E06000043" => "Brighton and Hove", + "E06000023" => "Bristol, City of", + "E07000144" => "Broadland", + "E09000006" => "Bromley", + "E07000234" => "Bromsgrove", + "E07000095" => "Broxbourne", + "E07000172" => "Broxtowe", + "E06000060" => "Buckinghamshire", + "E07000117" => "Burnley", + "E08000002" => "Bury", + "W06000018" => "Caerphilly", + "E08000033" => "Calderdale", + "E07000008" => "Cambridge", + "E09000007" => "Camden", + "E07000192" => "Cannock Chase", + "E07000106" => "Canterbury", + "W06000015" => "Cardiff", + "W06000010" => "Carmarthenshire", + "E07000069" => "Castle Point", + "N09000004" => "Causeway Coast and Glens", + "E06000056" => "Central Bedfordshire", + "W06000008" => "Ceredigion", + "E07000130" => "Charnwood", + "E07000070" => "Chelmsford", + "E07000078" => "Cheltenham", + "E07000177" => "Cherwell", + "E06000049" => "Cheshire East", + "E06000050" => "Cheshire West and Chester", + "E07000034" => "Chesterfield", + "E07000225" => "Chichester", + "E07000118" => "Chorley", + "S12000036" => "City of Edinburgh", + "E09000001" => "City of London", + "S12000005" => "Clackmannanshire", + "E07000071" => "Colchester", + "W06000003" => "Conwy", + "E07000150" => "Corby", + "E06000052" => "Cornwall", + "E07000079" => "Cotswold", + "E06000047" => "County Durham", + "E08000026" => "Coventry", + "E07000226" => "Crawley", + "E09000008" => "Croydon", + "E06000063" => "Cumberland", + "E07000096" => "Dacorum", + "E06000005" => "Darlington", + "E07000107" => "Dartford", + "E07000151" => "Daventry", + "W06000004" => "Denbighshire", + "E06000015" => "Derby", + "E07000035" => "Derbyshire Dales", + "N09000005" => "Derry City and Strabane", + "E08000017" => "Doncaster", + "E06000059" => "Dorset", + "E07000108" => "Dover", + "E08000027" => "Dudley", + "S12000006" => "Dumfries and Galloway", + "S12000042" => "Dundee City", + "E09000009" => "Ealing", + "S12000008" => "East Ayrshire", + "E07000009" => "East Cambridgeshire", + "E07000040" => "East Devon", + "S12000045" => "East Dunbartonshire", + "E07000085" => "East Hampshire", + "E07000242" => "East Hertfordshire", + "E07000137" => "East Lindsey", + "S12000010" => "East Lothian", + "E07000152" => "East Northamptonshire", + "S12000011" => "East Renfrewshire", + "E06000011" => "East Riding of Yorkshire", + "E07000193" => "East Staffordshire", + "E07000244" => "East Suffolk", + "E07000061" => "Eastbourne", + "E07000086" => "Eastleigh", + "E07000207" => "Elmbridge", + "E09000010" => "Enfield", + "E07000072" => "Epping Forest", + "E07000208" => "Epsom and Ewell", + "E07000036" => "Erewash", + "E07000041" => "Exeter", + "S12000014" => "Falkirk", + "E07000087" => "Fareham", + "E07000010" => "Fenland", + "N09000006" => "Fermanagh and Omagh", + "S12000047" => "Fife", + "W06000005" => "Flintshire", + "E07000112" => "Folkestone and Hythe", + "E07000080" => "Forest of Dean", + "E07000119" => "Fylde", + "E08000037" => "Gateshead", + "E07000173" => "Gedling", + "S12000049" => "Glasgow City", + "E07000081" => "Gloucester", + "E07000088" => "Gosport", + "E07000109" => "Gravesham", + "E07000145" => "Great Yarmouth", + "E09000011" => "Greenwich", + "E07000209" => "Guildford", + "W06000002" => "Gwynedd", + "E09000012" => "Hackney", + "E06000006" => "Halton", + "E09000013" => "Hammersmith and Fulham", + "E07000131" => "Harborough", + "E09000014" => "Haringey", + "E07000073" => "Harlow", + "E09000015" => "Harrow", + "E07000089" => "Hart", + "E06000001" => "Hartlepool", + "E07000062" => "Hastings", + "E07000090" => "Havant", + "E09000016" => "Havering", + "E06000019" => "Herefordshire, County of", + "E07000098" => "Hertsmere", + "E07000037" => "High Peak", + "S12000017" => "Highland", + "E09000017" => "Hillingdon", + "E07000132" => "Hinckley and Bosworth", + "E07000227" => "Horsham", + "E09000018" => "Hounslow", + "E07000011" => "Huntingdonshire", + "E07000120" => "Hyndburn", + "S12000018" => "Inverclyde", + "E07000202" => "Ipswich", + "W06000001" => "Isle of Anglesey", + "E06000046" => "Isle of Wight", + "E06000053" => "Isles of Scilly", + "E09000019" => "Islington", + "E09000020" => "Kensington and Chelsea", + "E07000153" => "Kettering", + "E07000146" => "King’s Lynn and West Norfolk", + "E06000010" => "Kingston upon Hull, City of", + "E09000021" => "Kingston upon Thames", + "E08000034" => "Kirklees", + "E08000011" => "Knowsley", + "E09000022" => "Lambeth", + "E07000121" => "Lancaster", + "E08000035" => "Leeds", + "E06000016" => "Leicester", + "E07000063" => "Lewes", + "E09000023" => "Lewisham", + "E07000194" => "Lichfield", + "E07000138" => "Lincoln", + "N09000007" => "Lisburn and Castlereagh", + "E08000012" => "Liverpool", + "E06000032" => "Luton", + "E07000110" => "Maidstone", + "E07000074" => "Maldon", + "E07000235" => "Malvern Hills", + "E08000003" => "Manchester", + "E07000174" => "Mansfield", + "E06000035" => "Medway", + "E07000133" => "Melton", + "W06000024" => "Merthyr Tydfil", + "E09000024" => "Merton", + "E07000042" => "Mid Devon", + "E07000203" => "Mid Suffolk", + "E07000228" => "Mid Sussex", + "N09000009" => "Mid Ulster", + "N09000008" => "Mid and East Antrim", + "E06000002" => "Middlesbrough", + "S12000019" => "Midlothian", + "E06000042" => "Milton Keynes", + "E07000210" => "Mole Valley", + "W06000021" => "Monmouthshire", + "S12000020" => "Moray", + "S12000013" => "Na h-Eileanan Siar", + "W06000012" => "Neath Port Talbot", + "E07000091" => "New Forest", + "E07000175" => "Newark and Sherwood", + "E08000021" => "Newcastle upon Tyne", + "E07000195" => "Newcastle-under-Lyme", + "E09000025" => "Newham", + "W06000022" => "Newport", + "N09000010" => "Newry, Mourne and Down", + "S12000021" => "North Ayrshire", + "E07000043" => "North Devon", + "E07000038" => "North East Derbyshire", + "E06000012" => "North East Lincolnshire", + "E07000099" => "North Hertfordshire", + "E07000139" => "North Kesteven", + "S12000050" => "North Lanarkshire", + "E06000013" => "North Lincolnshire", + "E07000147" => "North Norfolk", + "E06000024" => "North Somerset", + "E08000022" => "North Tyneside", + "E07000218" => "North Warwickshire", + "E06000065" => "North Yorkshire", + "E07000134" => "North West Leicestershire", + "E07000154" => "Northampton", + "E06000057" => "Northumberland", + "E07000148" => "Norwich", + "E06000018" => "Nottingham", + "E07000219" => "Nuneaton and Bedworth", + "E07000135" => "Oadby and Wigston", + "E08000004" => "Oldham", + "S12000023" => "Orkney Islands", + "E07000178" => "Oxford", + "W06000009" => "Pembrokeshire", + "E07000122" => "Pendle", + "S12000048" => "Perth and Kinross", + "E06000031" => "Peterborough", + "E06000026" => "Plymouth", + "E06000044" => "Portsmouth", + "W06000023" => "Powys", + "E07000123" => "Preston", + "E06000038" => "Reading", + "E09000026" => "Redbridge", + "E06000003" => "Redcar and Cleveland", + "E07000236" => "Redditch", + "E07000211" => "Reigate and Banstead", + "S12000038" => "Renfrewshire", + "W06000016" => "Rhondda Cynon Taf", + "E07000124" => "Ribble Valley", + "E09000027" => "Richmond upon Thames", + "E08000005" => "Rochdale", + "E07000075" => "Rochford", + "E07000125" => "Rossendale", + "E07000064" => "Rother", + "E08000018" => "Rotherham", + "E07000220" => "Rugby", + "E07000212" => "Runnymede", + "E07000176" => "Rushcliffe", + "E07000092" => "Rushmoor", + "E06000017" => "Rutland", + "E08000006" => "Salford", + "E08000028" => "Sandwell", + "S12000026" => "Scottish Borders", + "E08000014" => "Sefton", + "E07000111" => "Sevenoaks", + "E08000019" => "Sheffield", + "S12000027" => "Shetland Islands", + "E06000051" => "Shropshire", + "E06000039" => "Slough", + "E08000029" => "Solihull", + "E06000066" => "Somerset", + "S12000028" => "South Ayrshire", + "E07000012" => "South Cambridgeshire", + "E07000039" => "South Derbyshire", + "E06000025" => "South Gloucestershire", + "E07000044" => "South Hams", + "E07000140" => "South Holland", + "E07000141" => "South Kesteven", + "S12000029" => "South Lanarkshire", + "E07000149" => "South Norfolk", + "E07000155" => "South Northamptonshire", + "E07000179" => "South Oxfordshire", + "E07000126" => "South Ribble", + "E07000196" => "South Staffordshire", + "E08000023" => "South Tyneside", + "E06000045" => "Southampton", + "E06000033" => "Southend-on-Sea", + "E09000028" => "Southwark", + "E07000213" => "Spelthorne", + "E07000240" => "St Albans", + "E08000013" => "St. Helens", + "E07000197" => "Stafford", + "E07000198" => "Staffordshire Moorlands", + "E07000243" => "Stevenage", + "S12000030" => "Stirling", + "E08000007" => "Stockport", + "E06000004" => "Stockton-on-Tees", + "E06000021" => "Stoke-on-Trent", + "E07000221" => "Stratford-on-Avon", + "E07000082" => "Stroud", + "E08000024" => "Sunderland", + "E07000214" => "Surrey Heath", + "E09000029" => "Sutton", + "E07000113" => "Swale", + "W06000011" => "Swansea", + "E06000030" => "Swindon", + "E08000008" => "Tameside", + "E07000199" => "Tamworth", + "E07000215" => "Tandridge", + "E07000045" => "Teignbridge", + "E06000020" => "Telford and Wrekin", + "E07000076" => "Tendring", + "E07000093" => "Test Valley", + "E07000083" => "Tewkesbury", + "E07000114" => "Thanet", + "E07000102" => "Three Rivers", + "E06000034" => "Thurrock", + "E07000115" => "Tonbridge and Malling", + "E06000027" => "Torbay", + "W06000020" => "Torfaen", + "E07000046" => "Torridge", + "E09000030" => "Tower Hamlets", + "E08000009" => "Trafford", + "E07000116" => "Tunbridge Wells", + "E07000077" => "Uttlesford", + "W06000014" => "Vale of Glamorgan", + "E07000180" => "Vale of White Horse", + "E08000036" => "Wakefield", + "E08000030" => "Walsall", + "E09000031" => "Waltham Forest", + "E09000032" => "Wandsworth", + "E06000007" => "Warrington", + "E07000222" => "Warwick", + "E07000103" => "Watford", + "E07000216" => "Waverley", + "E07000065" => "Wealden", + "E07000156" => "Wellingborough", + "E07000241" => "Welwyn Hatfield", + "E06000037" => "West Berkshire", + "E07000047" => "West Devon", + "S12000039" => "West Dunbartonshire", + "E07000127" => "West Lancashire", + "E07000142" => "West Lindsey", + "S12000040" => "West Lothian", + "E07000181" => "West Oxfordshire", + "E07000245" => "West Suffolk", + "E09000033" => "Westminster", + "E06000064" => "Westmorland and Furness", + "E08000010" => "Wigan", + "E06000054" => "Wiltshire", + "E07000094" => "Winchester", + "E06000040" => "Windsor and Maidenhead", + "E08000015" => "Wirral", + "E07000217" => "Woking", + "E06000041" => "Wokingham", + "E08000031" => "Wolverhampton", + "E07000237" => "Worcester", + "E07000229" => "Worthing", + "W06000006" => "Wrexham", + "E07000238" => "Wychavon", + "E07000128" => "Wyre", + "E07000239" => "Wyre Forest", + "E06000014" => "York", + "N92000002" => "Northern Ireland", + "S92000003" => "Scotland", + "W92000004" => "Wales", + "9300000XX" => "Outside UK", + }) + end +end diff --git a/spec/models/form/sales/pages/last_accommodation_la_spec.rb b/spec/models/form/sales/pages/last_accommodation_la_spec.rb index fb3890cc6..20daf0525 100644 --- a/spec/models/form/sales/pages/last_accommodation_la_spec.rb +++ b/spec/models/form/sales/pages/last_accommodation_la_spec.rb @@ -5,7 +5,8 @@ RSpec.describe Form::Sales::Pages::LastAccommodationLa, type: :model do let(:page_id) { nil } let(:page_definition) { nil } - let(:subsection) { instance_double(Form::Subsection) } + let(:subsection) { instance_double(Form::Subsection, form: instance_double(Form, start_date:)) } + let(:start_date) { Time.utc(2022, 4, 1) } it "has correct subsection" do expect(page.subsection).to eq(subsection) diff --git a/spec/models/form/sales/pages/property_local_authority_spec.rb b/spec/models/form/sales/pages/property_local_authority_spec.rb index 3c88a0cd6..d601a53ce 100644 --- a/spec/models/form/sales/pages/property_local_authority_spec.rb +++ b/spec/models/form/sales/pages/property_local_authority_spec.rb @@ -5,7 +5,8 @@ RSpec.describe Form::Sales::Pages::PropertyLocalAuthority, type: :model do let(:page_id) { nil } let(:page_definition) { nil } - let(:subsection) { instance_double(Form::Subsection) } + let(:subsection) { instance_double(Form::Subsection, form: instance_double(Form, start_date:)) } + let(:start_date) { Time.utc(2022, 4, 1) } it "has correct subsection" do expect(page.subsection).to eq(subsection) diff --git a/spec/models/form/sales/questions/prevloc_spec.rb b/spec/models/form/sales/questions/prevloc_spec.rb index 5d985ba64..e4316af47 100644 --- a/spec/models/form/sales/questions/prevloc_spec.rb +++ b/spec/models/form/sales/questions/prevloc_spec.rb @@ -5,7 +5,9 @@ RSpec.describe Form::Sales::Questions::Prevloc, type: :model do let(:question_id) { nil } let(:question_definition) { nil } - let(:page) { instance_double(Form::Page) } + let(:subsection) { instance_double(Form::Subsection, form: instance_double(Form, start_date:)) } + let(:page) { instance_double(Form::Page, subsection:) } + let(:start_date) { Time.utc(2022, 4, 1) } it "has correct page" do expect(question.page).to eq(page) @@ -31,393 +33,781 @@ RSpec.describe Form::Sales::Questions::Prevloc, type: :model do expect(question.derived?).to be false end - it "has the correct answer_options" do - expect(question.answer_options).to eq({ - "" => "Select an option", - "S12000033" => "Aberdeen City", - "S12000034" => "Aberdeenshire", - "E07000223" => "Adur", - "E07000026" => "Allerdale", - "E07000032" => "Amber Valley", - "S12000041" => "Angus", - "N09000001" => "Antrim and Newtownabbey", - "N09000011" => "Ards and North Down", - "S12000035" => "Argyll and Bute", - "N09000002" => "Armagh City, Banbridge and Craigavon", - "E07000224" => "Arun", - "E07000170" => "Ashfield", - "E07000105" => "Ashford", - "E07000200" => "Babergh", - "E09000002" => "Barking and Dagenham", - "E09000003" => "Barnet", - "E08000016" => "Barnsley", - "E07000027" => "Barrow-in-Furness", - "E07000066" => "Basildon", - "E07000084" => "Basingstoke and Deane", - "E07000171" => "Bassetlaw", - "E06000022" => "Bath and North East Somerset", - "E06000055" => "Bedford", - "N09000003" => "Belfast", - "E09000004" => "Bexley", - "E08000025" => "Birmingham", - "E07000129" => "Blaby", - "E06000008" => "Blackburn with Darwen", - "E06000009" => "Blackpool", - "W06000019" => "Blaenau Gwent", - "E07000033" => "Bolsover", - "E08000001" => "Bolton", - "E07000136" => "Boston", - "E06000058" => "Bournemouth, Christchurch and Poole", - "E06000036" => "Bracknell Forest", - "E08000032" => "Bradford", - "E07000067" => "Braintree", - "E07000143" => "Breckland", - "E09000005" => "Brent", - "E07000068" => "Brentwood", - "W06000013" => "Bridgend", - "E06000043" => "Brighton and Hove", - "E06000023" => "Bristol, City of", - "E07000144" => "Broadland", - "E09000006" => "Bromley", - "E07000234" => "Bromsgrove", - "E07000095" => "Broxbourne", - "E07000172" => "Broxtowe", - "E06000060" => "Buckinghamshire", - "E07000117" => "Burnley", - "E08000002" => "Bury", - "W06000018" => "Caerphilly", - "E08000033" => "Calderdale", - "E07000008" => "Cambridge", - "E09000007" => "Camden", - "E07000192" => "Cannock Chase", - "E07000106" => "Canterbury", - "W06000015" => "Cardiff", - "E07000028" => "Carlisle", - "W06000010" => "Carmarthenshire", - "E07000069" => "Castle Point", - "N09000004" => "Causeway Coast and Glens", - "E06000056" => "Central Bedfordshire", - "W06000008" => "Ceredigion", - "E07000130" => "Charnwood", - "E07000070" => "Chelmsford", - "E07000078" => "Cheltenham", - "E07000177" => "Cherwell", - "E06000049" => "Cheshire East", - "E06000050" => "Cheshire West and Chester", - "E07000034" => "Chesterfield", - "E07000225" => "Chichester", - "E07000118" => "Chorley", - "S12000036" => "City of Edinburgh", - "E09000001" => "City of London", - "S12000005" => "Clackmannanshire", - "E07000071" => "Colchester", - "W06000003" => "Conwy", - "E07000029" => "Copeland", - "E07000150" => "Corby", - "E06000052" => "Cornwall", - "E07000079" => "Cotswold", - "E06000047" => "County Durham", - "E08000026" => "Coventry", - "E07000163" => "Craven", - "E07000226" => "Crawley", - "E09000008" => "Croydon", - "E07000096" => "Dacorum", - "E06000005" => "Darlington", - "E07000107" => "Dartford", - "E07000151" => "Daventry", - "W06000004" => "Denbighshire", - "E06000015" => "Derby", - "E07000035" => "Derbyshire Dales", - "N09000005" => "Derry City and Strabane", - "E08000017" => "Doncaster", - "E06000059" => "Dorset", - "E07000108" => "Dover", - "E08000027" => "Dudley", - "S12000006" => "Dumfries and Galloway", - "S12000042" => "Dundee City", - "E09000009" => "Ealing", - "S12000008" => "East Ayrshire", - "E07000009" => "East Cambridgeshire", - "E07000040" => "East Devon", - "S12000045" => "East Dunbartonshire", - "E07000085" => "East Hampshire", - "E07000242" => "East Hertfordshire", - "E07000137" => "East Lindsey", - "S12000010" => "East Lothian", - "E07000152" => "East Northamptonshire", - "S12000011" => "East Renfrewshire", - "E06000011" => "East Riding of Yorkshire", - "E07000193" => "East Staffordshire", - "E07000244" => "East Suffolk", - "E07000061" => "Eastbourne", - "E07000086" => "Eastleigh", - "E07000030" => "Eden", - "E07000207" => "Elmbridge", - "E09000010" => "Enfield", - "E07000072" => "Epping Forest", - "E07000208" => "Epsom and Ewell", - "E07000036" => "Erewash", - "E07000041" => "Exeter", - "S12000014" => "Falkirk", - "E07000087" => "Fareham", - "E07000010" => "Fenland", - "N09000006" => "Fermanagh and Omagh", - "S12000047" => "Fife", - "W06000005" => "Flintshire", - "E07000112" => "Folkestone and Hythe", - "E07000080" => "Forest of Dean", - "E07000119" => "Fylde", - "E08000037" => "Gateshead", - "E07000173" => "Gedling", - "S12000049" => "Glasgow City", - "E07000081" => "Gloucester", - "E07000088" => "Gosport", - "E07000109" => "Gravesham", - "E07000145" => "Great Yarmouth", - "E09000011" => "Greenwich", - "E07000209" => "Guildford", - "W06000002" => "Gwynedd", - "E09000012" => "Hackney", - "E06000006" => "Halton", - "E07000164" => "Hambleton", - "E09000013" => "Hammersmith and Fulham", - "E07000131" => "Harborough", - "E09000014" => "Haringey", - "E07000073" => "Harlow", - "E07000165" => "Harrogate", - "E09000015" => "Harrow", - "E07000089" => "Hart", - "E06000001" => "Hartlepool", - "E07000062" => "Hastings", - "E07000090" => "Havant", - "E09000016" => "Havering", - "E06000019" => "Herefordshire, County of", - "E07000098" => "Hertsmere", - "E07000037" => "High Peak", - "S12000017" => "Highland", - "E09000017" => "Hillingdon", - "E07000132" => "Hinckley and Bosworth", - "E07000227" => "Horsham", - "E09000018" => "Hounslow", - "E07000011" => "Huntingdonshire", - "E07000120" => "Hyndburn", - "S12000018" => "Inverclyde", - "E07000202" => "Ipswich", - "W06000001" => "Isle of Anglesey", - "E06000046" => "Isle of Wight", - "E06000053" => "Isles of Scilly", - "E09000019" => "Islington", - "E09000020" => "Kensington and Chelsea", - "E07000153" => "Kettering", - "E07000146" => "King’s Lynn and West Norfolk", - "E06000010" => "Kingston upon Hull, City of", - "E09000021" => "Kingston upon Thames", - "E08000034" => "Kirklees", - "E08000011" => "Knowsley", - "E09000022" => "Lambeth", - "E07000121" => "Lancaster", - "E08000035" => "Leeds", - "E06000016" => "Leicester", - "E07000063" => "Lewes", - "E09000023" => "Lewisham", - "E07000194" => "Lichfield", - "E07000138" => "Lincoln", - "N09000007" => "Lisburn and Castlereagh", - "E08000012" => "Liverpool", - "E06000032" => "Luton", - "E07000110" => "Maidstone", - "E07000074" => "Maldon", - "E07000235" => "Malvern Hills", - "E08000003" => "Manchester", - "E07000174" => "Mansfield", - "E06000035" => "Medway", - "E07000133" => "Melton", - "E07000187" => "Mendip", - "W06000024" => "Merthyr Tydfil", - "E09000024" => "Merton", - "E07000042" => "Mid Devon", - "E07000203" => "Mid Suffolk", - "E07000228" => "Mid Sussex", - "N09000009" => "Mid Ulster", - "N09000008" => "Mid and East Antrim", - "E06000002" => "Middlesbrough", - "S12000019" => "Midlothian", - "E06000042" => "Milton Keynes", - "E07000210" => "Mole Valley", - "W06000021" => "Monmouthshire", - "S12000020" => "Moray", - "S12000013" => "Na h-Eileanan Siar", - "W06000012" => "Neath Port Talbot", - "E07000091" => "New Forest", - "E07000175" => "Newark and Sherwood", - "E08000021" => "Newcastle upon Tyne", - "E07000195" => "Newcastle-under-Lyme", - "E09000025" => "Newham", - "W06000022" => "Newport", - "N09000010" => "Newry, Mourne and Down", - "S12000021" => "North Ayrshire", - "E07000043" => "North Devon", - "E07000038" => "North East Derbyshire", - "E06000012" => "North East Lincolnshire", - "E07000099" => "North Hertfordshire", - "E07000139" => "North Kesteven", - "S12000050" => "North Lanarkshire", - "E06000013" => "North Lincolnshire", - "E07000147" => "North Norfolk", - "E06000024" => "North Somerset", - "E08000022" => "North Tyneside", - "E07000218" => "North Warwickshire", - "E07000134" => "North West Leicestershire", - "E07000154" => "Northampton", - "E06000057" => "Northumberland", - "E07000148" => "Norwich", - "E06000018" => "Nottingham", - "E07000219" => "Nuneaton and Bedworth", - "E07000135" => "Oadby and Wigston", - "E08000004" => "Oldham", - "S12000023" => "Orkney Islands", - "E07000178" => "Oxford", - "W06000009" => "Pembrokeshire", - "E07000122" => "Pendle", - "S12000048" => "Perth and Kinross", - "E06000031" => "Peterborough", - "E06000026" => "Plymouth", - "E06000044" => "Portsmouth", - "W06000023" => "Powys", - "E07000123" => "Preston", - "E06000038" => "Reading", - "E09000026" => "Redbridge", - "E06000003" => "Redcar and Cleveland", - "E07000236" => "Redditch", - "E07000211" => "Reigate and Banstead", - "S12000038" => "Renfrewshire", - "W06000016" => "Rhondda Cynon Taf", - "E07000124" => "Ribble Valley", - "E09000027" => "Richmond upon Thames", - "E07000166" => "Richmondshire", - "E08000005" => "Rochdale", - "E07000075" => "Rochford", - "E07000125" => "Rossendale", - "E07000064" => "Rother", - "E08000018" => "Rotherham", - "E07000220" => "Rugby", - "E07000212" => "Runnymede", - "E07000176" => "Rushcliffe", - "E07000092" => "Rushmoor", - "E06000017" => "Rutland", - "E07000167" => "Ryedale", - "E08000006" => "Salford", - "E08000028" => "Sandwell", - "E07000168" => "Scarborough", - "S12000026" => "Scottish Borders", - "E07000188" => "Sedgemoor", - "E08000014" => "Sefton", - "E07000169" => "Selby", - "E07000111" => "Sevenoaks", - "E08000019" => "Sheffield", - "S12000027" => "Shetland Islands", - "E06000051" => "Shropshire", - "E06000039" => "Slough", - "E08000029" => "Solihull", - "E07000246" => "Somerset West and Taunton", - "S12000028" => "South Ayrshire", - "E07000012" => "South Cambridgeshire", - "E07000039" => "South Derbyshire", - "E06000025" => "South Gloucestershire", - "E07000044" => "South Hams", - "E07000140" => "South Holland", - "E07000141" => "South Kesteven", - "E07000031" => "South Lakeland", - "S12000029" => "South Lanarkshire", - "E07000149" => "South Norfolk", - "E07000155" => "South Northamptonshire", - "E07000179" => "South Oxfordshire", - "E07000126" => "South Ribble", - "E07000189" => "South Somerset", - "E07000196" => "South Staffordshire", - "E08000023" => "South Tyneside", - "E06000045" => "Southampton", - "E06000033" => "Southend-on-Sea", - "E09000028" => "Southwark", - "E07000213" => "Spelthorne", - "E07000240" => "St Albans", - "E08000013" => "St. Helens", - "E07000197" => "Stafford", - "E07000198" => "Staffordshire Moorlands", - "E07000243" => "Stevenage", - "S12000030" => "Stirling", - "E08000007" => "Stockport", - "E06000004" => "Stockton-on-Tees", - "E06000021" => "Stoke-on-Trent", - "E07000221" => "Stratford-on-Avon", - "E07000082" => "Stroud", - "E08000024" => "Sunderland", - "E07000214" => "Surrey Heath", - "E09000029" => "Sutton", - "E07000113" => "Swale", - "W06000011" => "Swansea", - "E06000030" => "Swindon", - "E08000008" => "Tameside", - "E07000199" => "Tamworth", - "E07000215" => "Tandridge", - "E07000045" => "Teignbridge", - "E06000020" => "Telford and Wrekin", - "E07000076" => "Tendring", - "E07000093" => "Test Valley", - "E07000083" => "Tewkesbury", - "E07000114" => "Thanet", - "E07000102" => "Three Rivers", - "E06000034" => "Thurrock", - "E07000115" => "Tonbridge and Malling", - "E06000027" => "Torbay", - "W06000020" => "Torfaen", - "E07000046" => "Torridge", - "E09000030" => "Tower Hamlets", - "E08000009" => "Trafford", - "E07000116" => "Tunbridge Wells", - "E07000077" => "Uttlesford", - "W06000014" => "Vale of Glamorgan", - "E07000180" => "Vale of White Horse", - "E08000036" => "Wakefield", - "E08000030" => "Walsall", - "E09000031" => "Waltham Forest", - "E09000032" => "Wandsworth", - "E06000007" => "Warrington", - "E07000222" => "Warwick", - "E07000103" => "Watford", - "E07000216" => "Waverley", - "E07000065" => "Wealden", - "E07000156" => "Wellingborough", - "E07000241" => "Welwyn Hatfield", - "E06000037" => "West Berkshire", - "E07000047" => "West Devon", - "S12000039" => "West Dunbartonshire", - "E07000127" => "West Lancashire", - "E07000142" => "West Lindsey", - "S12000040" => "West Lothian", - "E07000181" => "West Oxfordshire", - "E07000245" => "West Suffolk", - "E09000033" => "Westminster", - "E08000010" => "Wigan", - "E06000054" => "Wiltshire", - "E07000094" => "Winchester", - "E06000040" => "Windsor and Maidenhead", - "E08000015" => "Wirral", - "E07000217" => "Woking", - "E06000041" => "Wokingham", - "E08000031" => "Wolverhampton", - "E07000237" => "Worcester", - "E07000229" => "Worthing", - "W06000006" => "Wrexham", - "E07000238" => "Wychavon", - "E07000128" => "Wyre", - "E07000239" => "Wyre Forest", - "E06000014" => "York", - "N92000002" => "Northern Ireland", - "S92000003" => "Scotland", - "W92000004" => "Wales", - "9300000XX" => "Outside UK", - }) + context "with 2022/23 form" do + let(:start_date) { Time.utc(2022, 4, 1) } + + it "has the correct answer_options" do + Rails.application.load_seed + + expect(question.answer_options).to eq({ + "" => "Select an option", + "S12000033" => "Aberdeen City", + "S12000034" => "Aberdeenshire", + "E07000223" => "Adur", + "E07000026" => "Allerdale", + "E07000032" => "Amber Valley", + "S12000041" => "Angus", + "N09000001" => "Antrim and Newtownabbey", + "N09000011" => "Ards and North Down", + "S12000035" => "Argyll and Bute", + "N09000002" => "Armagh City, Banbridge and Craigavon", + "E07000224" => "Arun", + "E07000170" => "Ashfield", + "E07000105" => "Ashford", + "E07000200" => "Babergh", + "E09000002" => "Barking and Dagenham", + "E09000003" => "Barnet", + "E08000016" => "Barnsley", + "E07000027" => "Barrow-in-Furness", + "E07000066" => "Basildon", + "E07000084" => "Basingstoke and Deane", + "E07000171" => "Bassetlaw", + "E06000022" => "Bath and North East Somerset", + "E06000055" => "Bedford", + "N09000003" => "Belfast", + "E09000004" => "Bexley", + "E08000025" => "Birmingham", + "E07000129" => "Blaby", + "E06000008" => "Blackburn with Darwen", + "E06000009" => "Blackpool", + "W06000019" => "Blaenau Gwent", + "E07000033" => "Bolsover", + "E08000001" => "Bolton", + "E07000136" => "Boston", + "E06000058" => "Bournemouth, Christchurch and Poole", + "E06000036" => "Bracknell Forest", + "E08000032" => "Bradford", + "E07000067" => "Braintree", + "E07000143" => "Breckland", + "E09000005" => "Brent", + "E07000068" => "Brentwood", + "W06000013" => "Bridgend", + "E06000043" => "Brighton and Hove", + "E06000023" => "Bristol, City of", + "E07000144" => "Broadland", + "E09000006" => "Bromley", + "E07000234" => "Bromsgrove", + "E07000095" => "Broxbourne", + "E07000172" => "Broxtowe", + "E06000060" => "Buckinghamshire", + "E07000117" => "Burnley", + "E08000002" => "Bury", + "W06000018" => "Caerphilly", + "E08000033" => "Calderdale", + "E07000008" => "Cambridge", + "E09000007" => "Camden", + "E07000192" => "Cannock Chase", + "E07000106" => "Canterbury", + "W06000015" => "Cardiff", + "E07000028" => "Carlisle", + "W06000010" => "Carmarthenshire", + "E07000069" => "Castle Point", + "N09000004" => "Causeway Coast and Glens", + "E06000056" => "Central Bedfordshire", + "W06000008" => "Ceredigion", + "E07000130" => "Charnwood", + "E07000070" => "Chelmsford", + "E07000078" => "Cheltenham", + "E07000177" => "Cherwell", + "E06000049" => "Cheshire East", + "E06000050" => "Cheshire West and Chester", + "E07000034" => "Chesterfield", + "E07000225" => "Chichester", + "E07000118" => "Chorley", + "S12000036" => "City of Edinburgh", + "E09000001" => "City of London", + "S12000005" => "Clackmannanshire", + "E07000071" => "Colchester", + "W06000003" => "Conwy", + "E07000029" => "Copeland", + "E07000150" => "Corby", + "E06000052" => "Cornwall", + "E07000079" => "Cotswold", + "E06000047" => "County Durham", + "E08000026" => "Coventry", + "E07000163" => "Craven", + "E07000226" => "Crawley", + "E09000008" => "Croydon", + "E07000096" => "Dacorum", + "E06000005" => "Darlington", + "E07000107" => "Dartford", + "E07000151" => "Daventry", + "W06000004" => "Denbighshire", + "E06000015" => "Derby", + "E07000035" => "Derbyshire Dales", + "N09000005" => "Derry City and Strabane", + "E08000017" => "Doncaster", + "E06000059" => "Dorset", + "E07000108" => "Dover", + "E08000027" => "Dudley", + "S12000006" => "Dumfries and Galloway", + "S12000042" => "Dundee City", + "E09000009" => "Ealing", + "S12000008" => "East Ayrshire", + "E07000009" => "East Cambridgeshire", + "E07000040" => "East Devon", + "S12000045" => "East Dunbartonshire", + "E07000085" => "East Hampshire", + "E07000242" => "East Hertfordshire", + "E07000137" => "East Lindsey", + "S12000010" => "East Lothian", + "E07000152" => "East Northamptonshire", + "S12000011" => "East Renfrewshire", + "E06000011" => "East Riding of Yorkshire", + "E07000193" => "East Staffordshire", + "E07000244" => "East Suffolk", + "E07000061" => "Eastbourne", + "E07000086" => "Eastleigh", + "E07000030" => "Eden", + "E07000207" => "Elmbridge", + "E09000010" => "Enfield", + "E07000072" => "Epping Forest", + "E07000208" => "Epsom and Ewell", + "E07000036" => "Erewash", + "E07000041" => "Exeter", + "S12000014" => "Falkirk", + "E07000087" => "Fareham", + "E07000010" => "Fenland", + "N09000006" => "Fermanagh and Omagh", + "S12000047" => "Fife", + "W06000005" => "Flintshire", + "E07000112" => "Folkestone and Hythe", + "E07000080" => "Forest of Dean", + "E07000119" => "Fylde", + "E08000037" => "Gateshead", + "E07000173" => "Gedling", + "S12000049" => "Glasgow City", + "E07000081" => "Gloucester", + "E07000088" => "Gosport", + "E07000109" => "Gravesham", + "E07000145" => "Great Yarmouth", + "E09000011" => "Greenwich", + "E07000209" => "Guildford", + "W06000002" => "Gwynedd", + "E09000012" => "Hackney", + "E06000006" => "Halton", + "E07000164" => "Hambleton", + "E09000013" => "Hammersmith and Fulham", + "E07000131" => "Harborough", + "E09000014" => "Haringey", + "E07000073" => "Harlow", + "E07000165" => "Harrogate", + "E09000015" => "Harrow", + "E07000089" => "Hart", + "E06000001" => "Hartlepool", + "E07000062" => "Hastings", + "E07000090" => "Havant", + "E09000016" => "Havering", + "E06000019" => "Herefordshire, County of", + "E07000098" => "Hertsmere", + "E07000037" => "High Peak", + "S12000017" => "Highland", + "E09000017" => "Hillingdon", + "E07000132" => "Hinckley and Bosworth", + "E07000227" => "Horsham", + "E09000018" => "Hounslow", + "E07000011" => "Huntingdonshire", + "E07000120" => "Hyndburn", + "S12000018" => "Inverclyde", + "E07000202" => "Ipswich", + "W06000001" => "Isle of Anglesey", + "E06000046" => "Isle of Wight", + "E06000053" => "Isles of Scilly", + "E09000019" => "Islington", + "E09000020" => "Kensington and Chelsea", + "E07000153" => "Kettering", + "E07000146" => "King’s Lynn and West Norfolk", + "E06000010" => "Kingston upon Hull, City of", + "E09000021" => "Kingston upon Thames", + "E08000034" => "Kirklees", + "E08000011" => "Knowsley", + "E09000022" => "Lambeth", + "E07000121" => "Lancaster", + "E08000035" => "Leeds", + "E06000016" => "Leicester", + "E07000063" => "Lewes", + "E09000023" => "Lewisham", + "E07000194" => "Lichfield", + "E07000138" => "Lincoln", + "N09000007" => "Lisburn and Castlereagh", + "E08000012" => "Liverpool", + "E06000032" => "Luton", + "E07000110" => "Maidstone", + "E07000074" => "Maldon", + "E07000235" => "Malvern Hills", + "E08000003" => "Manchester", + "E07000174" => "Mansfield", + "E06000035" => "Medway", + "E07000133" => "Melton", + "E07000187" => "Mendip", + "W06000024" => "Merthyr Tydfil", + "E09000024" => "Merton", + "E07000042" => "Mid Devon", + "E07000203" => "Mid Suffolk", + "E07000228" => "Mid Sussex", + "N09000009" => "Mid Ulster", + "N09000008" => "Mid and East Antrim", + "E06000002" => "Middlesbrough", + "S12000019" => "Midlothian", + "E06000042" => "Milton Keynes", + "E07000210" => "Mole Valley", + "W06000021" => "Monmouthshire", + "S12000020" => "Moray", + "S12000013" => "Na h-Eileanan Siar", + "W06000012" => "Neath Port Talbot", + "E07000091" => "New Forest", + "E07000175" => "Newark and Sherwood", + "E08000021" => "Newcastle upon Tyne", + "E07000195" => "Newcastle-under-Lyme", + "E09000025" => "Newham", + "W06000022" => "Newport", + "N09000010" => "Newry, Mourne and Down", + "S12000021" => "North Ayrshire", + "E07000043" => "North Devon", + "E07000038" => "North East Derbyshire", + "E06000012" => "North East Lincolnshire", + "E07000099" => "North Hertfordshire", + "E07000139" => "North Kesteven", + "S12000050" => "North Lanarkshire", + "E06000013" => "North Lincolnshire", + "E07000147" => "North Norfolk", + "E06000024" => "North Somerset", + "E08000022" => "North Tyneside", + "E07000218" => "North Warwickshire", + "E07000134" => "North West Leicestershire", + "E07000154" => "Northampton", + "E06000057" => "Northumberland", + "E07000148" => "Norwich", + "E06000018" => "Nottingham", + "E07000219" => "Nuneaton and Bedworth", + "E07000135" => "Oadby and Wigston", + "E08000004" => "Oldham", + "S12000023" => "Orkney Islands", + "E07000178" => "Oxford", + "W06000009" => "Pembrokeshire", + "E07000122" => "Pendle", + "S12000048" => "Perth and Kinross", + "E06000031" => "Peterborough", + "E06000026" => "Plymouth", + "E06000044" => "Portsmouth", + "W06000023" => "Powys", + "E07000123" => "Preston", + "E06000038" => "Reading", + "E09000026" => "Redbridge", + "E06000003" => "Redcar and Cleveland", + "E07000236" => "Redditch", + "E07000211" => "Reigate and Banstead", + "S12000038" => "Renfrewshire", + "W06000016" => "Rhondda Cynon Taf", + "E07000124" => "Ribble Valley", + "E09000027" => "Richmond upon Thames", + "E07000166" => "Richmondshire", + "E08000005" => "Rochdale", + "E07000075" => "Rochford", + "E07000125" => "Rossendale", + "E07000064" => "Rother", + "E08000018" => "Rotherham", + "E07000220" => "Rugby", + "E07000212" => "Runnymede", + "E07000176" => "Rushcliffe", + "E07000092" => "Rushmoor", + "E06000017" => "Rutland", + "E07000167" => "Ryedale", + "E08000006" => "Salford", + "E08000028" => "Sandwell", + "E07000168" => "Scarborough", + "S12000026" => "Scottish Borders", + "E07000188" => "Sedgemoor", + "E08000014" => "Sefton", + "E07000169" => "Selby", + "E07000111" => "Sevenoaks", + "E08000019" => "Sheffield", + "S12000027" => "Shetland Islands", + "E06000051" => "Shropshire", + "E06000039" => "Slough", + "E08000029" => "Solihull", + "E07000246" => "Somerset West and Taunton", + "S12000028" => "South Ayrshire", + "E07000012" => "South Cambridgeshire", + "E07000039" => "South Derbyshire", + "E06000025" => "South Gloucestershire", + "E07000044" => "South Hams", + "E07000140" => "South Holland", + "E07000141" => "South Kesteven", + "E07000031" => "South Lakeland", + "S12000029" => "South Lanarkshire", + "E07000149" => "South Norfolk", + "E07000155" => "South Northamptonshire", + "E07000179" => "South Oxfordshire", + "E07000126" => "South Ribble", + "E07000189" => "South Somerset", + "E07000196" => "South Staffordshire", + "E08000023" => "South Tyneside", + "E06000045" => "Southampton", + "E06000033" => "Southend-on-Sea", + "E09000028" => "Southwark", + "E07000213" => "Spelthorne", + "E07000240" => "St Albans", + "E08000013" => "St. Helens", + "E07000197" => "Stafford", + "E07000198" => "Staffordshire Moorlands", + "E07000243" => "Stevenage", + "S12000030" => "Stirling", + "E08000007" => "Stockport", + "E06000004" => "Stockton-on-Tees", + "E06000021" => "Stoke-on-Trent", + "E07000221" => "Stratford-on-Avon", + "E07000082" => "Stroud", + "E08000024" => "Sunderland", + "E07000214" => "Surrey Heath", + "E09000029" => "Sutton", + "E07000113" => "Swale", + "W06000011" => "Swansea", + "E06000030" => "Swindon", + "E08000008" => "Tameside", + "E07000199" => "Tamworth", + "E07000215" => "Tandridge", + "E07000045" => "Teignbridge", + "E06000020" => "Telford and Wrekin", + "E07000076" => "Tendring", + "E07000093" => "Test Valley", + "E07000083" => "Tewkesbury", + "E07000114" => "Thanet", + "E07000102" => "Three Rivers", + "E06000034" => "Thurrock", + "E07000115" => "Tonbridge and Malling", + "E06000027" => "Torbay", + "W06000020" => "Torfaen", + "E07000046" => "Torridge", + "E09000030" => "Tower Hamlets", + "E08000009" => "Trafford", + "E07000116" => "Tunbridge Wells", + "E07000077" => "Uttlesford", + "W06000014" => "Vale of Glamorgan", + "E07000180" => "Vale of White Horse", + "E08000036" => "Wakefield", + "E08000030" => "Walsall", + "E09000031" => "Waltham Forest", + "E09000032" => "Wandsworth", + "E06000007" => "Warrington", + "E07000222" => "Warwick", + "E07000103" => "Watford", + "E07000216" => "Waverley", + "E07000065" => "Wealden", + "E07000156" => "Wellingborough", + "E07000241" => "Welwyn Hatfield", + "E06000037" => "West Berkshire", + "E07000047" => "West Devon", + "S12000039" => "West Dunbartonshire", + "E07000127" => "West Lancashire", + "E07000142" => "West Lindsey", + "S12000040" => "West Lothian", + "E07000181" => "West Oxfordshire", + "E07000245" => "West Suffolk", + "E09000033" => "Westminster", + "E08000010" => "Wigan", + "E06000054" => "Wiltshire", + "E07000094" => "Winchester", + "E06000040" => "Windsor and Maidenhead", + "E08000015" => "Wirral", + "E07000217" => "Woking", + "E06000041" => "Wokingham", + "E08000031" => "Wolverhampton", + "E07000237" => "Worcester", + "E07000229" => "Worthing", + "W06000006" => "Wrexham", + "E07000238" => "Wychavon", + "E07000128" => "Wyre", + "E07000239" => "Wyre Forest", + "E06000014" => "York", + "N92000002" => "Northern Ireland", + "S92000003" => "Scotland", + "W92000004" => "Wales", + "9300000XX" => "Outside UK", + }) + end + end + + context "with 2023/24 form" do + let(:start_date) { Time.utc(2023, 4, 1) } + + it "has the correct answer_options" do + Rails.application.load_seed + + expect(question.answer_options).to eq({ + "" => "Select an option", + "S12000033" => "Aberdeen City", + "S12000034" => "Aberdeenshire", + "E07000223" => "Adur", + "E07000032" => "Amber Valley", + "S12000041" => "Angus", + "N09000001" => "Antrim and Newtownabbey", + "N09000011" => "Ards and North Down", + "S12000035" => "Argyll and Bute", + "N09000002" => "Armagh City, Banbridge and Craigavon", + "E07000224" => "Arun", + "E07000170" => "Ashfield", + "E07000105" => "Ashford", + "E07000200" => "Babergh", + "E09000002" => "Barking and Dagenham", + "E09000003" => "Barnet", + "E08000016" => "Barnsley", + "E07000066" => "Basildon", + "E07000084" => "Basingstoke and Deane", + "E07000171" => "Bassetlaw", + "E06000022" => "Bath and North East Somerset", + "E06000055" => "Bedford", + "N09000003" => "Belfast", + "E09000004" => "Bexley", + "E08000025" => "Birmingham", + "E07000129" => "Blaby", + "E06000008" => "Blackburn with Darwen", + "E06000009" => "Blackpool", + "W06000019" => "Blaenau Gwent", + "E07000033" => "Bolsover", + "E08000001" => "Bolton", + "E07000136" => "Boston", + "E06000058" => "Bournemouth, Christchurch and Poole", + "E06000036" => "Bracknell Forest", + "E08000032" => "Bradford", + "E07000067" => "Braintree", + "E07000143" => "Breckland", + "E09000005" => "Brent", + "E07000068" => "Brentwood", + "W06000013" => "Bridgend", + "E06000043" => "Brighton and Hove", + "E06000023" => "Bristol, City of", + "E07000144" => "Broadland", + "E09000006" => "Bromley", + "E07000234" => "Bromsgrove", + "E07000095" => "Broxbourne", + "E07000172" => "Broxtowe", + "E06000060" => "Buckinghamshire", + "E07000117" => "Burnley", + "E08000002" => "Bury", + "W06000018" => "Caerphilly", + "E08000033" => "Calderdale", + "E07000008" => "Cambridge", + "E09000007" => "Camden", + "E07000192" => "Cannock Chase", + "E07000106" => "Canterbury", + "W06000015" => "Cardiff", + "W06000010" => "Carmarthenshire", + "E07000069" => "Castle Point", + "N09000004" => "Causeway Coast and Glens", + "E06000056" => "Central Bedfordshire", + "W06000008" => "Ceredigion", + "E07000130" => "Charnwood", + "E07000070" => "Chelmsford", + "E07000078" => "Cheltenham", + "E07000177" => "Cherwell", + "E06000049" => "Cheshire East", + "E06000050" => "Cheshire West and Chester", + "E07000034" => "Chesterfield", + "E07000225" => "Chichester", + "E07000118" => "Chorley", + "S12000036" => "City of Edinburgh", + "E09000001" => "City of London", + "S12000005" => "Clackmannanshire", + "E07000071" => "Colchester", + "W06000003" => "Conwy", + "E07000150" => "Corby", + "E06000052" => "Cornwall", + "E07000079" => "Cotswold", + "E06000047" => "County Durham", + "E08000026" => "Coventry", + "E07000226" => "Crawley", + "E09000008" => "Croydon", + "E06000063" => "Cumberland", + "E07000096" => "Dacorum", + "E06000005" => "Darlington", + "E07000107" => "Dartford", + "E07000151" => "Daventry", + "W06000004" => "Denbighshire", + "E06000015" => "Derby", + "E07000035" => "Derbyshire Dales", + "N09000005" => "Derry City and Strabane", + "E08000017" => "Doncaster", + "E06000059" => "Dorset", + "E07000108" => "Dover", + "E08000027" => "Dudley", + "S12000006" => "Dumfries and Galloway", + "S12000042" => "Dundee City", + "E09000009" => "Ealing", + "S12000008" => "East Ayrshire", + "E07000009" => "East Cambridgeshire", + "E07000040" => "East Devon", + "S12000045" => "East Dunbartonshire", + "E07000085" => "East Hampshire", + "E07000242" => "East Hertfordshire", + "E07000137" => "East Lindsey", + "S12000010" => "East Lothian", + "E07000152" => "East Northamptonshire", + "S12000011" => "East Renfrewshire", + "E06000011" => "East Riding of Yorkshire", + "E07000193" => "East Staffordshire", + "E07000244" => "East Suffolk", + "E07000061" => "Eastbourne", + "E07000086" => "Eastleigh", + "E07000207" => "Elmbridge", + "E09000010" => "Enfield", + "E07000072" => "Epping Forest", + "E07000208" => "Epsom and Ewell", + "E07000036" => "Erewash", + "E07000041" => "Exeter", + "S12000014" => "Falkirk", + "E07000087" => "Fareham", + "E07000010" => "Fenland", + "N09000006" => "Fermanagh and Omagh", + "S12000047" => "Fife", + "W06000005" => "Flintshire", + "E07000112" => "Folkestone and Hythe", + "E07000080" => "Forest of Dean", + "E07000119" => "Fylde", + "E08000037" => "Gateshead", + "E07000173" => "Gedling", + "S12000049" => "Glasgow City", + "E07000081" => "Gloucester", + "E07000088" => "Gosport", + "E07000109" => "Gravesham", + "E07000145" => "Great Yarmouth", + "E09000011" => "Greenwich", + "E07000209" => "Guildford", + "W06000002" => "Gwynedd", + "E09000012" => "Hackney", + "E06000006" => "Halton", + "E09000013" => "Hammersmith and Fulham", + "E07000131" => "Harborough", + "E09000014" => "Haringey", + "E07000073" => "Harlow", + "E09000015" => "Harrow", + "E07000089" => "Hart", + "E06000001" => "Hartlepool", + "E07000062" => "Hastings", + "E07000090" => "Havant", + "E09000016" => "Havering", + "E06000019" => "Herefordshire, County of", + "E07000098" => "Hertsmere", + "E07000037" => "High Peak", + "S12000017" => "Highland", + "E09000017" => "Hillingdon", + "E07000132" => "Hinckley and Bosworth", + "E07000227" => "Horsham", + "E09000018" => "Hounslow", + "E07000011" => "Huntingdonshire", + "E07000120" => "Hyndburn", + "S12000018" => "Inverclyde", + "E07000202" => "Ipswich", + "W06000001" => "Isle of Anglesey", + "E06000046" => "Isle of Wight", + "E06000053" => "Isles of Scilly", + "E09000019" => "Islington", + "E09000020" => "Kensington and Chelsea", + "E07000153" => "Kettering", + "E07000146" => "King’s Lynn and West Norfolk", + "E06000010" => "Kingston upon Hull, City of", + "E09000021" => "Kingston upon Thames", + "E08000034" => "Kirklees", + "E08000011" => "Knowsley", + "E09000022" => "Lambeth", + "E07000121" => "Lancaster", + "E08000035" => "Leeds", + "E06000016" => "Leicester", + "E07000063" => "Lewes", + "E09000023" => "Lewisham", + "E07000194" => "Lichfield", + "E07000138" => "Lincoln", + "N09000007" => "Lisburn and Castlereagh", + "E08000012" => "Liverpool", + "E06000032" => "Luton", + "E07000110" => "Maidstone", + "E07000074" => "Maldon", + "E07000235" => "Malvern Hills", + "E08000003" => "Manchester", + "E07000174" => "Mansfield", + "E06000035" => "Medway", + "E07000133" => "Melton", + "W06000024" => "Merthyr Tydfil", + "E09000024" => "Merton", + "E07000042" => "Mid Devon", + "E07000203" => "Mid Suffolk", + "E07000228" => "Mid Sussex", + "N09000009" => "Mid Ulster", + "N09000008" => "Mid and East Antrim", + "E06000002" => "Middlesbrough", + "S12000019" => "Midlothian", + "E06000042" => "Milton Keynes", + "E07000210" => "Mole Valley", + "W06000021" => "Monmouthshire", + "S12000020" => "Moray", + "S12000013" => "Na h-Eileanan Siar", + "W06000012" => "Neath Port Talbot", + "E07000091" => "New Forest", + "E07000175" => "Newark and Sherwood", + "E08000021" => "Newcastle upon Tyne", + "E07000195" => "Newcastle-under-Lyme", + "E09000025" => "Newham", + "W06000022" => "Newport", + "N09000010" => "Newry, Mourne and Down", + "S12000021" => "North Ayrshire", + "E07000043" => "North Devon", + "E07000038" => "North East Derbyshire", + "E06000012" => "North East Lincolnshire", + "E07000099" => "North Hertfordshire", + "E07000139" => "North Kesteven", + "S12000050" => "North Lanarkshire", + "E06000013" => "North Lincolnshire", + "E07000147" => "North Norfolk", + "E06000024" => "North Somerset", + "E08000022" => "North Tyneside", + "E07000218" => "North Warwickshire", + "E06000065" => "North Yorkshire", + "E07000134" => "North West Leicestershire", + "E07000154" => "Northampton", + "E06000057" => "Northumberland", + "E07000148" => "Norwich", + "E06000018" => "Nottingham", + "E07000219" => "Nuneaton and Bedworth", + "E07000135" => "Oadby and Wigston", + "E08000004" => "Oldham", + "S12000023" => "Orkney Islands", + "E07000178" => "Oxford", + "W06000009" => "Pembrokeshire", + "E07000122" => "Pendle", + "S12000048" => "Perth and Kinross", + "E06000031" => "Peterborough", + "E06000026" => "Plymouth", + "E06000044" => "Portsmouth", + "W06000023" => "Powys", + "E07000123" => "Preston", + "E06000038" => "Reading", + "E09000026" => "Redbridge", + "E06000003" => "Redcar and Cleveland", + "E07000236" => "Redditch", + "E07000211" => "Reigate and Banstead", + "S12000038" => "Renfrewshire", + "W06000016" => "Rhondda Cynon Taf", + "E07000124" => "Ribble Valley", + "E09000027" => "Richmond upon Thames", + "E08000005" => "Rochdale", + "E07000075" => "Rochford", + "E07000125" => "Rossendale", + "E07000064" => "Rother", + "E08000018" => "Rotherham", + "E07000220" => "Rugby", + "E07000212" => "Runnymede", + "E07000176" => "Rushcliffe", + "E07000092" => "Rushmoor", + "E06000017" => "Rutland", + "E08000006" => "Salford", + "E08000028" => "Sandwell", + "S12000026" => "Scottish Borders", + "E08000014" => "Sefton", + "E07000111" => "Sevenoaks", + "E08000019" => "Sheffield", + "S12000027" => "Shetland Islands", + "E06000051" => "Shropshire", + "E06000039" => "Slough", + "E08000029" => "Solihull", + "E06000066" => "Somerset", + "S12000028" => "South Ayrshire", + "E07000012" => "South Cambridgeshire", + "E07000039" => "South Derbyshire", + "E06000025" => "South Gloucestershire", + "E07000044" => "South Hams", + "E07000140" => "South Holland", + "E07000141" => "South Kesteven", + "S12000029" => "South Lanarkshire", + "E07000149" => "South Norfolk", + "E07000155" => "South Northamptonshire", + "E07000179" => "South Oxfordshire", + "E07000126" => "South Ribble", + "E07000196" => "South Staffordshire", + "E08000023" => "South Tyneside", + "E06000045" => "Southampton", + "E06000033" => "Southend-on-Sea", + "E09000028" => "Southwark", + "E07000213" => "Spelthorne", + "E07000240" => "St Albans", + "E08000013" => "St. Helens", + "E07000197" => "Stafford", + "E07000198" => "Staffordshire Moorlands", + "E07000243" => "Stevenage", + "S12000030" => "Stirling", + "E08000007" => "Stockport", + "E06000004" => "Stockton-on-Tees", + "E06000021" => "Stoke-on-Trent", + "E07000221" => "Stratford-on-Avon", + "E07000082" => "Stroud", + "E08000024" => "Sunderland", + "E07000214" => "Surrey Heath", + "E09000029" => "Sutton", + "E07000113" => "Swale", + "W06000011" => "Swansea", + "E06000030" => "Swindon", + "E08000008" => "Tameside", + "E07000199" => "Tamworth", + "E07000215" => "Tandridge", + "E07000045" => "Teignbridge", + "E06000020" => "Telford and Wrekin", + "E07000076" => "Tendring", + "E07000093" => "Test Valley", + "E07000083" => "Tewkesbury", + "E07000114" => "Thanet", + "E07000102" => "Three Rivers", + "E06000034" => "Thurrock", + "E07000115" => "Tonbridge and Malling", + "E06000027" => "Torbay", + "W06000020" => "Torfaen", + "E07000046" => "Torridge", + "E09000030" => "Tower Hamlets", + "E08000009" => "Trafford", + "E07000116" => "Tunbridge Wells", + "E07000077" => "Uttlesford", + "W06000014" => "Vale of Glamorgan", + "E07000180" => "Vale of White Horse", + "E08000036" => "Wakefield", + "E08000030" => "Walsall", + "E09000031" => "Waltham Forest", + "E09000032" => "Wandsworth", + "E06000007" => "Warrington", + "E07000222" => "Warwick", + "E07000103" => "Watford", + "E07000216" => "Waverley", + "E07000065" => "Wealden", + "E07000156" => "Wellingborough", + "E07000241" => "Welwyn Hatfield", + "E06000037" => "West Berkshire", + "E07000047" => "West Devon", + "S12000039" => "West Dunbartonshire", + "E07000127" => "West Lancashire", + "E07000142" => "West Lindsey", + "S12000040" => "West Lothian", + "E07000181" => "West Oxfordshire", + "E07000245" => "West Suffolk", + "E09000033" => "Westminster", + "E06000064" => "Westmorland and Furness", + "E08000010" => "Wigan", + "E06000054" => "Wiltshire", + "E07000094" => "Winchester", + "E06000040" => "Windsor and Maidenhead", + "E08000015" => "Wirral", + "E07000217" => "Woking", + "E06000041" => "Wokingham", + "E08000031" => "Wolverhampton", + "E07000237" => "Worcester", + "E07000229" => "Worthing", + "W06000006" => "Wrexham", + "E07000238" => "Wychavon", + "E07000128" => "Wyre", + "E07000239" => "Wyre Forest", + "E06000014" => "York", + "N92000002" => "Northern Ireland", + "S92000003" => "Scotland", + "W92000004" => "Wales", + "9300000XX" => "Outside UK", + }) + end end it "has the correct inferred_check_answers_value" do diff --git a/spec/models/form/sales/questions/property_local_authority_spec.rb b/spec/models/form/sales/questions/property_local_authority_spec.rb index 060f69bfa..24b8933a9 100644 --- a/spec/models/form/sales/questions/property_local_authority_spec.rb +++ b/spec/models/form/sales/questions/property_local_authority_spec.rb @@ -5,7 +5,9 @@ RSpec.describe Form::Sales::Questions::PropertyLocalAuthority, type: :model do let(:question_id) { nil } let(:question_definition) { nil } - let(:page) { instance_double(Form::Page) } + let(:subsection) { instance_double(Form::Subsection, form: instance_double(Form, start_date:)) } + let(:page) { instance_double(Form::Page, subsection:) } + let(:start_date) { Time.utc(2022, 4, 1) } it "has correct page" do expect(question.page).to eq(page) @@ -31,325 +33,642 @@ RSpec.describe Form::Sales::Questions::PropertyLocalAuthority, type: :model do expect(question.derived?).to be false end - it "has the correct answer_options" do - expect(question.answer_options).to eq({ - "" => "Select an option", - "E06000001" => "Hartlepool", - "E06000002" => "Middlesbrough", - "E06000003" => "Redcar and Cleveland", - "E06000004" => "Stockton-on-Tees", - "E06000005" => "Darlington", - "E06000006" => "Halton", - "E06000007" => "Warrington", - "E06000008" => "Blackburn with Darwen", - "E06000009" => "Blackpool", - "E06000010" => "Kingston upon Hull, City of", - "E06000011" => "East Riding of Yorkshire", - "E06000012" => "North East Lincolnshire", - "E06000013" => "North Lincolnshire", - "E06000014" => "York", - "E06000015" => "Derby", - "E06000016" => "Leicester", - "E06000017" => "Rutland", - "E06000018" => "Nottingham", - "E06000019" => "Herefordshire, County of", - "E06000020" => "Telford and Wrekin", - "E06000021" => "Stoke-on-Trent", - "E06000022" => "Bath and North East Somerset", - "E06000023" => "Bristol, City of", - "E06000024" => "North Somerset", - "E06000025" => "South Gloucestershire", - "E06000026" => "Plymouth", - "E06000027" => "Torbay", - "E06000030" => "Swindon", - "E06000031" => "Peterborough", - "E06000032" => "Luton", - "E06000033" => "Southend-on-Sea", - "E06000034" => "Thurrock", - "E06000035" => "Medway", - "E06000036" => "Bracknell Forest", - "E06000037" => "West Berkshire", - "E06000038" => "Reading", - "E06000039" => "Slough", - "E06000040" => "Windsor and Maidenhead", - "E06000041" => "Wokingham", - "E06000042" => "Milton Keynes", - "E06000043" => "Brighton and Hove", - "E06000044" => "Portsmouth", - "E06000045" => "Southampton", - "E06000046" => "Isle of Wight", - "E06000047" => "County Durham", - "E06000049" => "Cheshire East", - "E06000050" => "Cheshire West and Chester", - "E06000051" => "Shropshire", - "E06000052" => "Cornwall", - "E06000053" => "Isles of Scilly", - "E06000054" => "Wiltshire", - "E06000055" => "Bedford", - "E06000056" => "Central Bedfordshire", - "E06000057" => "Northumberland", - "E06000058" => "Bournemouth, Christchurch and Poole", - "E06000059" => "Dorset", - "E06000060" => "Buckinghamshire", - "E07000008" => "Cambridge", - "E07000009" => "East Cambridgeshire", - "E07000010" => "Fenland", - "E07000011" => "Huntingdonshire", - "E07000012" => "South Cambridgeshire", - "E07000026" => "Allerdale", - "E07000027" => "Barrow-in-Furness", - "E07000028" => "Carlisle", - "E07000029" => "Copeland", - "E07000030" => "Eden", - "E07000031" => "South Lakeland", - "E07000032" => "Amber Valley", - "E07000033" => "Bolsover", - "E07000034" => "Chesterfield", - "E07000035" => "Derbyshire Dales", - "E07000036" => "Erewash", - "E07000037" => "High Peak", - "E07000038" => "North East Derbyshire", - "E07000039" => "South Derbyshire", - "E07000040" => "East Devon", - "E07000041" => "Exeter", - "E07000042" => "Mid Devon", - "E07000043" => "North Devon", - "E07000044" => "South Hams", - "E07000045" => "Teignbridge", - "E07000046" => "Torridge", - "E07000047" => "West Devon", - "E07000061" => "Eastbourne", - "E07000062" => "Hastings", - "E07000063" => "Lewes", - "E07000064" => "Rother", - "E07000065" => "Wealden", - "E07000066" => "Basildon", - "E07000067" => "Braintree", - "E07000068" => "Brentwood", - "E07000069" => "Castle Point", - "E07000070" => "Chelmsford", - "E07000071" => "Colchester", - "E07000072" => "Epping Forest", - "E07000073" => "Harlow", - "E07000074" => "Maldon", - "E07000075" => "Rochford", - "E07000076" => "Tendring", - "E07000077" => "Uttlesford", - "E07000078" => "Cheltenham", - "E07000079" => "Cotswold", - "E07000080" => "Forest of Dean", - "E07000081" => "Gloucester", - "E07000082" => "Stroud", - "E07000083" => "Tewkesbury", - "E07000084" => "Basingstoke and Deane", - "E07000085" => "East Hampshire", - "E07000086" => "Eastleigh", - "E07000087" => "Fareham", - "E07000088" => "Gosport", - "E07000089" => "Hart", - "E07000090" => "Havant", - "E07000091" => "New Forest", - "E07000092" => "Rushmoor", - "E07000093" => "Test Valley", - "E07000094" => "Winchester", - "E07000095" => "Broxbourne", - "E07000096" => "Dacorum", - "E07000098" => "Hertsmere", - "E07000099" => "North Hertfordshire", - "E07000102" => "Three Rivers", - "E07000103" => "Watford", - "E07000105" => "Ashford", - "E07000106" => "Canterbury", - "E07000107" => "Dartford", - "E07000108" => "Dover", - "E07000109" => "Gravesham", - "E07000110" => "Maidstone", - "E07000111" => "Sevenoaks", - "E07000112" => "Folkestone and Hythe", - "E07000113" => "Swale", - "E07000114" => "Thanet", - "E07000115" => "Tonbridge and Malling", - "E07000116" => "Tunbridge Wells", - "E07000117" => "Burnley", - "E07000118" => "Chorley", - "E07000119" => "Fylde", - "E07000120" => "Hyndburn", - "E07000121" => "Lancaster", - "E07000122" => "Pendle", - "E07000123" => "Preston", - "E07000124" => "Ribble Valley", - "E07000125" => "Rossendale", - "E07000126" => "South Ribble", - "E07000127" => "West Lancashire", - "E07000128" => "Wyre", - "E07000129" => "Blaby", - "E07000130" => "Charnwood", - "E07000131" => "Harborough", - "E07000132" => "Hinckley and Bosworth", - "E07000133" => "Melton", - "E07000134" => "North West Leicestershire", - "E07000135" => "Oadby and Wigston", - "E07000136" => "Boston", - "E07000137" => "East Lindsey", - "E07000138" => "Lincoln", - "E07000139" => "North Kesteven", - "E07000140" => "South Holland", - "E07000141" => "South Kesteven", - "E07000142" => "West Lindsey", - "E07000143" => "Breckland", - "E07000144" => "Broadland", - "E07000145" => "Great Yarmouth", - "E07000146" => "King’s Lynn and West Norfolk", - "E07000147" => "North Norfolk", - "E07000148" => "Norwich", - "E07000149" => "South Norfolk", - "E07000150" => "Corby", - "E07000151" => "Daventry", - "E07000152" => "East Northamptonshire", - "E07000153" => "Kettering", - "E07000154" => "Northampton", - "E07000155" => "South Northamptonshire", - "E07000156" => "Wellingborough", - "E07000163" => "Craven", - "E07000164" => "Hambleton", - "E07000165" => "Harrogate", - "E07000166" => "Richmondshire", - "E07000167" => "Ryedale", - "E07000168" => "Scarborough", - "E07000169" => "Selby", - "E07000170" => "Ashfield", - "E07000171" => "Bassetlaw", - "E07000172" => "Broxtowe", - "E07000173" => "Gedling", - "E07000174" => "Mansfield", - "E07000175" => "Newark and Sherwood", - "E07000176" => "Rushcliffe", - "E07000177" => "Cherwell", - "E07000178" => "Oxford", - "E07000179" => "South Oxfordshire", - "E07000180" => "Vale of White Horse", - "E07000181" => "West Oxfordshire", - "E07000187" => "Mendip", - "E07000188" => "Sedgemoor", - "E07000189" => "South Somerset", - "E07000192" => "Cannock Chase", - "E07000193" => "East Staffordshire", - "E07000194" => "Lichfield", - "E07000195" => "Newcastle-under-Lyme", - "E07000196" => "South Staffordshire", - "E07000197" => "Stafford", - "E07000198" => "Staffordshire Moorlands", - "E07000199" => "Tamworth", - "E07000200" => "Babergh", - "E07000202" => "Ipswich", - "E07000203" => "Mid Suffolk", - "E07000207" => "Elmbridge", - "E07000208" => "Epsom and Ewell", - "E07000209" => "Guildford", - "E07000210" => "Mole Valley", - "E07000211" => "Reigate and Banstead", - "E07000212" => "Runnymede", - "E07000213" => "Spelthorne", - "E07000214" => "Surrey Heath", - "E07000215" => "Tandridge", - "E07000216" => "Waverley", - "E07000217" => "Woking", - "E07000218" => "North Warwickshire", - "E07000219" => "Nuneaton and Bedworth", - "E07000220" => "Rugby", - "E07000221" => "Stratford-on-Avon", - "E07000222" => "Warwick", - "E07000223" => "Adur", - "E07000224" => "Arun", - "E07000225" => "Chichester", - "E07000226" => "Crawley", - "E07000227" => "Horsham", - "E07000228" => "Mid Sussex", - "E07000229" => "Worthing", - "E07000234" => "Bromsgrove", - "E07000235" => "Malvern Hills", - "E07000236" => "Redditch", - "E07000237" => "Worcester", - "E07000238" => "Wychavon", - "E07000239" => "Wyre Forest", - "E07000240" => "St Albans", - "E07000241" => "Welwyn Hatfield", - "E07000242" => "East Hertfordshire", - "E07000243" => "Stevenage", - "E07000244" => "East Suffolk", - "E07000245" => "West Suffolk", - "E07000246" => "Somerset West and Taunton", - "E08000001" => "Bolton", - "E08000002" => "Bury", - "E08000003" => "Manchester", - "E08000004" => "Oldham", - "E08000005" => "Rochdale", - "E08000006" => "Salford", - "E08000007" => "Stockport", - "E08000008" => "Tameside", - "E08000009" => "Trafford", - "E08000010" => "Wigan", - "E08000011" => "Knowsley", - "E08000012" => "Liverpool", - "E08000013" => "St. Helens", - "E08000014" => "Sefton", - "E08000015" => "Wirral", - "E08000016" => "Barnsley", - "E08000017" => "Doncaster", - "E08000018" => "Rotherham", - "E08000019" => "Sheffield", - "E08000021" => "Newcastle upon Tyne", - "E08000022" => "North Tyneside", - "E08000023" => "South Tyneside", - "E08000024" => "Sunderland", - "E08000025" => "Birmingham", - "E08000026" => "Coventry", - "E08000027" => "Dudley", - "E08000028" => "Sandwell", - "E08000029" => "Solihull", - "E08000030" => "Walsall", - "E08000031" => "Wolverhampton", - "E08000032" => "Bradford", - "E08000033" => "Calderdale", - "E08000034" => "Kirklees", - "E08000035" => "Leeds", - "E08000036" => "Wakefield", - "E08000037" => "Gateshead", - "E09000001" => "City of London", - "E09000002" => "Barking and Dagenham", - "E09000003" => "Barnet", - "E09000004" => "Bexley", - "E09000005" => "Brent", - "E09000006" => "Bromley", - "E09000007" => "Camden", - "E09000008" => "Croydon", - "E09000009" => "Ealing", - "E09000010" => "Enfield", - "E09000011" => "Greenwich", - "E09000012" => "Hackney", - "E09000013" => "Hammersmith and Fulham", - "E09000014" => "Haringey", - "E09000015" => "Harrow", - "E09000016" => "Havering", - "E09000017" => "Hillingdon", - "E09000018" => "Hounslow", - "E09000019" => "Islington", - "E09000020" => "Kensington and Chelsea", - "E09000021" => "Kingston upon Thames", - "E09000022" => "Lambeth", - "E09000023" => "Lewisham", - "E09000024" => "Merton", - "E09000025" => "Newham", - "E09000026" => "Redbridge", - "E09000027" => "Richmond upon Thames", - "E09000028" => "Southwark", - "E09000029" => "Sutton", - "E09000030" => "Tower Hamlets", - "E09000031" => "Waltham Forest", - "E09000032" => "Wandsworth", - "E09000033" => "Westminster", - "S12000017" => "Highland", - "W06000002" => "Gwynedd", - }) + context "with 2022/23 form" do + let(:start_date) { Time.utc(2022, 4, 1) } + + it "has the correct answer_options" do + Rails.application.load_seed + + expect(question.answer_options).to eq({ + "" => "Select an option", + "E06000001" => "Hartlepool", + "E06000002" => "Middlesbrough", + "E06000003" => "Redcar and Cleveland", + "E06000004" => "Stockton-on-Tees", + "E06000005" => "Darlington", + "E06000006" => "Halton", + "E06000007" => "Warrington", + "E06000008" => "Blackburn with Darwen", + "E06000009" => "Blackpool", + "E06000010" => "Kingston upon Hull, City of", + "E06000011" => "East Riding of Yorkshire", + "E06000012" => "North East Lincolnshire", + "E06000013" => "North Lincolnshire", + "E06000014" => "York", + "E06000015" => "Derby", + "E06000016" => "Leicester", + "E06000017" => "Rutland", + "E06000018" => "Nottingham", + "E06000019" => "Herefordshire, County of", + "E06000020" => "Telford and Wrekin", + "E06000021" => "Stoke-on-Trent", + "E06000022" => "Bath and North East Somerset", + "E06000023" => "Bristol, City of", + "E06000024" => "North Somerset", + "E06000025" => "South Gloucestershire", + "E06000026" => "Plymouth", + "E06000027" => "Torbay", + "E06000030" => "Swindon", + "E06000031" => "Peterborough", + "E06000032" => "Luton", + "E06000033" => "Southend-on-Sea", + "E06000034" => "Thurrock", + "E06000035" => "Medway", + "E06000036" => "Bracknell Forest", + "E06000037" => "West Berkshire", + "E06000038" => "Reading", + "E06000039" => "Slough", + "E06000040" => "Windsor and Maidenhead", + "E06000041" => "Wokingham", + "E06000042" => "Milton Keynes", + "E06000043" => "Brighton and Hove", + "E06000044" => "Portsmouth", + "E06000045" => "Southampton", + "E06000046" => "Isle of Wight", + "E06000047" => "County Durham", + "E06000049" => "Cheshire East", + "E06000050" => "Cheshire West and Chester", + "E06000051" => "Shropshire", + "E06000052" => "Cornwall", + "E06000053" => "Isles of Scilly", + "E06000054" => "Wiltshire", + "E06000055" => "Bedford", + "E06000056" => "Central Bedfordshire", + "E06000057" => "Northumberland", + "E06000058" => "Bournemouth, Christchurch and Poole", + "E06000059" => "Dorset", + "E06000060" => "Buckinghamshire", + "E07000008" => "Cambridge", + "E07000009" => "East Cambridgeshire", + "E07000010" => "Fenland", + "E07000011" => "Huntingdonshire", + "E07000012" => "South Cambridgeshire", + "E07000026" => "Allerdale", + "E07000027" => "Barrow-in-Furness", + "E07000028" => "Carlisle", + "E07000029" => "Copeland", + "E07000030" => "Eden", + "E07000031" => "South Lakeland", + "E07000032" => "Amber Valley", + "E07000033" => "Bolsover", + "E07000034" => "Chesterfield", + "E07000035" => "Derbyshire Dales", + "E07000036" => "Erewash", + "E07000037" => "High Peak", + "E07000038" => "North East Derbyshire", + "E07000039" => "South Derbyshire", + "E07000040" => "East Devon", + "E07000041" => "Exeter", + "E07000042" => "Mid Devon", + "E07000043" => "North Devon", + "E07000044" => "South Hams", + "E07000045" => "Teignbridge", + "E07000046" => "Torridge", + "E07000047" => "West Devon", + "E07000061" => "Eastbourne", + "E07000062" => "Hastings", + "E07000063" => "Lewes", + "E07000064" => "Rother", + "E07000065" => "Wealden", + "E07000066" => "Basildon", + "E07000067" => "Braintree", + "E07000068" => "Brentwood", + "E07000069" => "Castle Point", + "E07000070" => "Chelmsford", + "E07000071" => "Colchester", + "E07000072" => "Epping Forest", + "E07000073" => "Harlow", + "E07000074" => "Maldon", + "E07000075" => "Rochford", + "E07000076" => "Tendring", + "E07000077" => "Uttlesford", + "E07000078" => "Cheltenham", + "E07000079" => "Cotswold", + "E07000080" => "Forest of Dean", + "E07000081" => "Gloucester", + "E07000082" => "Stroud", + "E07000083" => "Tewkesbury", + "E07000084" => "Basingstoke and Deane", + "E07000085" => "East Hampshire", + "E07000086" => "Eastleigh", + "E07000087" => "Fareham", + "E07000088" => "Gosport", + "E07000089" => "Hart", + "E07000090" => "Havant", + "E07000091" => "New Forest", + "E07000092" => "Rushmoor", + "E07000093" => "Test Valley", + "E07000094" => "Winchester", + "E07000095" => "Broxbourne", + "E07000096" => "Dacorum", + "E07000098" => "Hertsmere", + "E07000099" => "North Hertfordshire", + "E07000102" => "Three Rivers", + "E07000103" => "Watford", + "E07000105" => "Ashford", + "E07000106" => "Canterbury", + "E07000107" => "Dartford", + "E07000108" => "Dover", + "E07000109" => "Gravesham", + "E07000110" => "Maidstone", + "E07000111" => "Sevenoaks", + "E07000112" => "Folkestone and Hythe", + "E07000113" => "Swale", + "E07000114" => "Thanet", + "E07000115" => "Tonbridge and Malling", + "E07000116" => "Tunbridge Wells", + "E07000117" => "Burnley", + "E07000118" => "Chorley", + "E07000119" => "Fylde", + "E07000120" => "Hyndburn", + "E07000121" => "Lancaster", + "E07000122" => "Pendle", + "E07000123" => "Preston", + "E07000124" => "Ribble Valley", + "E07000125" => "Rossendale", + "E07000126" => "South Ribble", + "E07000127" => "West Lancashire", + "E07000128" => "Wyre", + "E07000129" => "Blaby", + "E07000130" => "Charnwood", + "E07000131" => "Harborough", + "E07000132" => "Hinckley and Bosworth", + "E07000133" => "Melton", + "E07000134" => "North West Leicestershire", + "E07000135" => "Oadby and Wigston", + "E07000136" => "Boston", + "E07000137" => "East Lindsey", + "E07000138" => "Lincoln", + "E07000139" => "North Kesteven", + "E07000140" => "South Holland", + "E07000141" => "South Kesteven", + "E07000142" => "West Lindsey", + "E07000143" => "Breckland", + "E07000144" => "Broadland", + "E07000145" => "Great Yarmouth", + "E07000146" => "King’s Lynn and West Norfolk", + "E07000147" => "North Norfolk", + "E07000148" => "Norwich", + "E07000149" => "South Norfolk", + "E07000150" => "Corby", + "E07000151" => "Daventry", + "E07000152" => "East Northamptonshire", + "E07000153" => "Kettering", + "E07000154" => "Northampton", + "E07000155" => "South Northamptonshire", + "E07000156" => "Wellingborough", + "E07000163" => "Craven", + "E07000164" => "Hambleton", + "E07000165" => "Harrogate", + "E07000166" => "Richmondshire", + "E07000167" => "Ryedale", + "E07000168" => "Scarborough", + "E07000169" => "Selby", + "E07000170" => "Ashfield", + "E07000171" => "Bassetlaw", + "E07000172" => "Broxtowe", + "E07000173" => "Gedling", + "E07000174" => "Mansfield", + "E07000175" => "Newark and Sherwood", + "E07000176" => "Rushcliffe", + "E07000177" => "Cherwell", + "E07000178" => "Oxford", + "E07000179" => "South Oxfordshire", + "E07000180" => "Vale of White Horse", + "E07000181" => "West Oxfordshire", + "E07000187" => "Mendip", + "E07000188" => "Sedgemoor", + "E07000189" => "South Somerset", + "E07000192" => "Cannock Chase", + "E07000193" => "East Staffordshire", + "E07000194" => "Lichfield", + "E07000195" => "Newcastle-under-Lyme", + "E07000196" => "South Staffordshire", + "E07000197" => "Stafford", + "E07000198" => "Staffordshire Moorlands", + "E07000199" => "Tamworth", + "E07000200" => "Babergh", + "E07000202" => "Ipswich", + "E07000203" => "Mid Suffolk", + "E07000207" => "Elmbridge", + "E07000208" => "Epsom and Ewell", + "E07000209" => "Guildford", + "E07000210" => "Mole Valley", + "E07000211" => "Reigate and Banstead", + "E07000212" => "Runnymede", + "E07000213" => "Spelthorne", + "E07000214" => "Surrey Heath", + "E07000215" => "Tandridge", + "E07000216" => "Waverley", + "E07000217" => "Woking", + "E07000218" => "North Warwickshire", + "E07000219" => "Nuneaton and Bedworth", + "E07000220" => "Rugby", + "E07000221" => "Stratford-on-Avon", + "E07000222" => "Warwick", + "E07000223" => "Adur", + "E07000224" => "Arun", + "E07000225" => "Chichester", + "E07000226" => "Crawley", + "E07000227" => "Horsham", + "E07000228" => "Mid Sussex", + "E07000229" => "Worthing", + "E07000234" => "Bromsgrove", + "E07000235" => "Malvern Hills", + "E07000236" => "Redditch", + "E07000237" => "Worcester", + "E07000238" => "Wychavon", + "E07000239" => "Wyre Forest", + "E07000240" => "St Albans", + "E07000241" => "Welwyn Hatfield", + "E07000242" => "East Hertfordshire", + "E07000243" => "Stevenage", + "E07000244" => "East Suffolk", + "E07000245" => "West Suffolk", + "E07000246" => "Somerset West and Taunton", + "E08000001" => "Bolton", + "E08000002" => "Bury", + "E08000003" => "Manchester", + "E08000004" => "Oldham", + "E08000005" => "Rochdale", + "E08000006" => "Salford", + "E08000007" => "Stockport", + "E08000008" => "Tameside", + "E08000009" => "Trafford", + "E08000010" => "Wigan", + "E08000011" => "Knowsley", + "E08000012" => "Liverpool", + "E08000013" => "St. Helens", + "E08000014" => "Sefton", + "E08000015" => "Wirral", + "E08000016" => "Barnsley", + "E08000017" => "Doncaster", + "E08000018" => "Rotherham", + "E08000019" => "Sheffield", + "E08000021" => "Newcastle upon Tyne", + "E08000022" => "North Tyneside", + "E08000023" => "South Tyneside", + "E08000024" => "Sunderland", + "E08000025" => "Birmingham", + "E08000026" => "Coventry", + "E08000027" => "Dudley", + "E08000028" => "Sandwell", + "E08000029" => "Solihull", + "E08000030" => "Walsall", + "E08000031" => "Wolverhampton", + "E08000032" => "Bradford", + "E08000033" => "Calderdale", + "E08000034" => "Kirklees", + "E08000035" => "Leeds", + "E08000036" => "Wakefield", + "E08000037" => "Gateshead", + "E09000001" => "City of London", + "E09000002" => "Barking and Dagenham", + "E09000003" => "Barnet", + "E09000004" => "Bexley", + "E09000005" => "Brent", + "E09000006" => "Bromley", + "E09000007" => "Camden", + "E09000008" => "Croydon", + "E09000009" => "Ealing", + "E09000010" => "Enfield", + "E09000011" => "Greenwich", + "E09000012" => "Hackney", + "E09000013" => "Hammersmith and Fulham", + "E09000014" => "Haringey", + "E09000015" => "Harrow", + "E09000016" => "Havering", + "E09000017" => "Hillingdon", + "E09000018" => "Hounslow", + "E09000019" => "Islington", + "E09000020" => "Kensington and Chelsea", + "E09000021" => "Kingston upon Thames", + "E09000022" => "Lambeth", + "E09000023" => "Lewisham", + "E09000024" => "Merton", + "E09000025" => "Newham", + "E09000026" => "Redbridge", + "E09000027" => "Richmond upon Thames", + "E09000028" => "Southwark", + "E09000029" => "Sutton", + "E09000030" => "Tower Hamlets", + "E09000031" => "Waltham Forest", + "E09000032" => "Wandsworth", + "E09000033" => "Westminster", + }) + end + end + + context "with 2023/24 form" do + let(:start_date) { Time.utc(2023, 4, 1) } + + it "has the correct answer_options" do + Rails.application.load_seed + + expect(question.answer_options).to eq({ + "" => "Select an option", + "E06000001" => "Hartlepool", + "E06000002" => "Middlesbrough", + "E06000003" => "Redcar and Cleveland", + "E06000004" => "Stockton-on-Tees", + "E06000005" => "Darlington", + "E06000006" => "Halton", + "E06000007" => "Warrington", + "E06000008" => "Blackburn with Darwen", + "E06000009" => "Blackpool", + "E06000010" => "Kingston upon Hull, City of", + "E06000011" => "East Riding of Yorkshire", + "E06000012" => "North East Lincolnshire", + "E06000013" => "North Lincolnshire", + "E06000014" => "York", + "E06000015" => "Derby", + "E06000016" => "Leicester", + "E06000017" => "Rutland", + "E06000018" => "Nottingham", + "E06000019" => "Herefordshire, County of", + "E06000020" => "Telford and Wrekin", + "E06000021" => "Stoke-on-Trent", + "E06000022" => "Bath and North East Somerset", + "E06000023" => "Bristol, City of", + "E06000024" => "North Somerset", + "E06000025" => "South Gloucestershire", + "E06000026" => "Plymouth", + "E06000027" => "Torbay", + "E06000030" => "Swindon", + "E06000031" => "Peterborough", + "E06000032" => "Luton", + "E06000033" => "Southend-on-Sea", + "E06000034" => "Thurrock", + "E06000035" => "Medway", + "E06000036" => "Bracknell Forest", + "E06000037" => "West Berkshire", + "E06000038" => "Reading", + "E06000039" => "Slough", + "E06000040" => "Windsor and Maidenhead", + "E06000041" => "Wokingham", + "E06000042" => "Milton Keynes", + "E06000043" => "Brighton and Hove", + "E06000044" => "Portsmouth", + "E06000045" => "Southampton", + "E06000046" => "Isle of Wight", + "E06000047" => "County Durham", + "E06000049" => "Cheshire East", + "E06000050" => "Cheshire West and Chester", + "E06000051" => "Shropshire", + "E06000052" => "Cornwall", + "E06000053" => "Isles of Scilly", + "E06000054" => "Wiltshire", + "E06000055" => "Bedford", + "E06000056" => "Central Bedfordshire", + "E06000057" => "Northumberland", + "E06000058" => "Bournemouth, Christchurch and Poole", + "E06000059" => "Dorset", + "E06000060" => "Buckinghamshire", + "E07000008" => "Cambridge", + "E07000009" => "East Cambridgeshire", + "E07000010" => "Fenland", + "E07000011" => "Huntingdonshire", + "E07000012" => "South Cambridgeshire", + "E07000032" => "Amber Valley", + "E07000033" => "Bolsover", + "E07000034" => "Chesterfield", + "E07000035" => "Derbyshire Dales", + "E07000036" => "Erewash", + "E07000037" => "High Peak", + "E07000038" => "North East Derbyshire", + "E07000039" => "South Derbyshire", + "E07000040" => "East Devon", + "E07000041" => "Exeter", + "E07000042" => "Mid Devon", + "E07000043" => "North Devon", + "E07000044" => "South Hams", + "E07000045" => "Teignbridge", + "E07000046" => "Torridge", + "E07000047" => "West Devon", + "E07000061" => "Eastbourne", + "E07000062" => "Hastings", + "E07000063" => "Lewes", + "E07000064" => "Rother", + "E07000065" => "Wealden", + "E07000066" => "Basildon", + "E07000067" => "Braintree", + "E07000068" => "Brentwood", + "E07000069" => "Castle Point", + "E07000070" => "Chelmsford", + "E07000071" => "Colchester", + "E07000072" => "Epping Forest", + "E07000073" => "Harlow", + "E07000074" => "Maldon", + "E07000075" => "Rochford", + "E07000076" => "Tendring", + "E07000077" => "Uttlesford", + "E07000078" => "Cheltenham", + "E07000079" => "Cotswold", + "E07000080" => "Forest of Dean", + "E07000081" => "Gloucester", + "E07000082" => "Stroud", + "E07000083" => "Tewkesbury", + "E07000084" => "Basingstoke and Deane", + "E07000085" => "East Hampshire", + "E07000086" => "Eastleigh", + "E07000087" => "Fareham", + "E07000088" => "Gosport", + "E07000089" => "Hart", + "E07000090" => "Havant", + "E07000091" => "New Forest", + "E07000092" => "Rushmoor", + "E07000093" => "Test Valley", + "E07000094" => "Winchester", + "E07000095" => "Broxbourne", + "E07000096" => "Dacorum", + "E07000098" => "Hertsmere", + "E07000099" => "North Hertfordshire", + "E07000102" => "Three Rivers", + "E07000103" => "Watford", + "E07000105" => "Ashford", + "E07000106" => "Canterbury", + "E07000107" => "Dartford", + "E07000108" => "Dover", + "E07000109" => "Gravesham", + "E07000110" => "Maidstone", + "E07000111" => "Sevenoaks", + "E07000112" => "Folkestone and Hythe", + "E07000113" => "Swale", + "E07000114" => "Thanet", + "E07000115" => "Tonbridge and Malling", + "E07000116" => "Tunbridge Wells", + "E07000117" => "Burnley", + "E07000118" => "Chorley", + "E07000119" => "Fylde", + "E07000120" => "Hyndburn", + "E07000121" => "Lancaster", + "E07000122" => "Pendle", + "E07000123" => "Preston", + "E07000124" => "Ribble Valley", + "E07000125" => "Rossendale", + "E07000126" => "South Ribble", + "E07000127" => "West Lancashire", + "E07000128" => "Wyre", + "E07000129" => "Blaby", + "E07000130" => "Charnwood", + "E07000131" => "Harborough", + "E07000132" => "Hinckley and Bosworth", + "E07000133" => "Melton", + "E07000134" => "North West Leicestershire", + "E07000135" => "Oadby and Wigston", + "E07000136" => "Boston", + "E07000137" => "East Lindsey", + "E07000138" => "Lincoln", + "E07000139" => "North Kesteven", + "E07000140" => "South Holland", + "E07000141" => "South Kesteven", + "E07000142" => "West Lindsey", + "E07000143" => "Breckland", + "E07000144" => "Broadland", + "E07000145" => "Great Yarmouth", + "E07000146" => "King’s Lynn and West Norfolk", + "E07000147" => "North Norfolk", + "E07000148" => "Norwich", + "E07000149" => "South Norfolk", + "E07000150" => "Corby", + "E07000151" => "Daventry", + "E07000152" => "East Northamptonshire", + "E07000153" => "Kettering", + "E07000154" => "Northampton", + "E07000155" => "South Northamptonshire", + "E07000156" => "Wellingborough", + "E07000170" => "Ashfield", + "E07000171" => "Bassetlaw", + "E07000172" => "Broxtowe", + "E07000173" => "Gedling", + "E07000174" => "Mansfield", + "E07000175" => "Newark and Sherwood", + "E07000176" => "Rushcliffe", + "E07000177" => "Cherwell", + "E07000178" => "Oxford", + "E07000179" => "South Oxfordshire", + "E07000180" => "Vale of White Horse", + "E07000181" => "West Oxfordshire", + "E07000192" => "Cannock Chase", + "E07000193" => "East Staffordshire", + "E07000194" => "Lichfield", + "E07000195" => "Newcastle-under-Lyme", + "E07000196" => "South Staffordshire", + "E07000197" => "Stafford", + "E07000198" => "Staffordshire Moorlands", + "E07000199" => "Tamworth", + "E07000200" => "Babergh", + "E07000202" => "Ipswich", + "E07000203" => "Mid Suffolk", + "E07000207" => "Elmbridge", + "E07000208" => "Epsom and Ewell", + "E07000209" => "Guildford", + "E07000210" => "Mole Valley", + "E07000211" => "Reigate and Banstead", + "E07000212" => "Runnymede", + "E07000213" => "Spelthorne", + "E07000214" => "Surrey Heath", + "E07000215" => "Tandridge", + "E07000216" => "Waverley", + "E07000217" => "Woking", + "E07000218" => "North Warwickshire", + "E07000219" => "Nuneaton and Bedworth", + "E07000220" => "Rugby", + "E07000221" => "Stratford-on-Avon", + "E07000222" => "Warwick", + "E07000223" => "Adur", + "E07000224" => "Arun", + "E07000225" => "Chichester", + "E07000226" => "Crawley", + "E07000227" => "Horsham", + "E07000228" => "Mid Sussex", + "E07000229" => "Worthing", + "E07000234" => "Bromsgrove", + "E07000235" => "Malvern Hills", + "E07000236" => "Redditch", + "E07000237" => "Worcester", + "E07000238" => "Wychavon", + "E07000239" => "Wyre Forest", + "E07000240" => "St Albans", + "E07000241" => "Welwyn Hatfield", + "E07000242" => "East Hertfordshire", + "E07000243" => "Stevenage", + "E07000244" => "East Suffolk", + "E07000245" => "West Suffolk", + "E08000001" => "Bolton", + "E08000002" => "Bury", + "E08000003" => "Manchester", + "E08000004" => "Oldham", + "E08000005" => "Rochdale", + "E08000006" => "Salford", + "E08000007" => "Stockport", + "E08000008" => "Tameside", + "E08000009" => "Trafford", + "E08000010" => "Wigan", + "E08000011" => "Knowsley", + "E08000012" => "Liverpool", + "E08000013" => "St. Helens", + "E08000014" => "Sefton", + "E08000015" => "Wirral", + "E08000016" => "Barnsley", + "E08000017" => "Doncaster", + "E08000018" => "Rotherham", + "E08000019" => "Sheffield", + "E08000021" => "Newcastle upon Tyne", + "E08000022" => "North Tyneside", + "E08000023" => "South Tyneside", + "E08000024" => "Sunderland", + "E08000025" => "Birmingham", + "E08000026" => "Coventry", + "E08000027" => "Dudley", + "E08000028" => "Sandwell", + "E08000029" => "Solihull", + "E06000066" => "Somerset", + "E08000030" => "Walsall", + "E08000031" => "Wolverhampton", + "E08000032" => "Bradford", + "E08000033" => "Calderdale", + "E08000034" => "Kirklees", + "E08000035" => "Leeds", + "E08000036" => "Wakefield", + "E08000037" => "Gateshead", + "E09000001" => "City of London", + "E09000002" => "Barking and Dagenham", + "E09000003" => "Barnet", + "E09000004" => "Bexley", + "E09000005" => "Brent", + "E09000006" => "Bromley", + "E09000007" => "Camden", + "E09000008" => "Croydon", + "E06000063" => "Cumberland", + "E09000009" => "Ealing", + "E09000010" => "Enfield", + "E09000011" => "Greenwich", + "E09000012" => "Hackney", + "E09000013" => "Hammersmith and Fulham", + "E09000014" => "Haringey", + "E09000015" => "Harrow", + "E09000016" => "Havering", + "E09000017" => "Hillingdon", + "E09000018" => "Hounslow", + "E09000019" => "Islington", + "E09000020" => "Kensington and Chelsea", + "E09000021" => "Kingston upon Thames", + "E09000022" => "Lambeth", + "E09000023" => "Lewisham", + "E09000024" => "Merton", + "E09000025" => "Newham", + "E09000026" => "Redbridge", + "E09000027" => "Richmond upon Thames", + "E09000028" => "Southwark", + "E09000029" => "Sutton", + "E09000030" => "Tower Hamlets", + "E09000031" => "Waltham Forest", + "E09000032" => "Wandsworth", + "E09000033" => "Westminster", + "E06000064" => "Westmorland and Furness", + "E06000065" => "North Yorkshire", + }) + end end end diff --git a/spec/models/location_spec.rb b/spec/models/location_spec.rb index 51509d765..9a5874415 100644 --- a/spec/models/location_spec.rb +++ b/spec/models/location_spec.rb @@ -1,6 +1,10 @@ require "rails_helper" RSpec.describe Location, type: :model do + before do + Rails.application.load_seed + end + describe "#new" do let(:location) { FactoryBot.build(:location) } @@ -52,6 +56,657 @@ RSpec.describe Location, type: :model do end end + describe "#local_authorities_for_current_year" do + context "when the current collection year is 22/23" do + let(:today) { Time.zone.local(2022, 4, 1) } + + before do + Timecop.freeze(today) + end + + after do + Timecop.unfreeze + end + + it "returns a list of local authorities" do + expect(described_class.local_authorities_for_current_year).to eq({ + "E07000223" => "Adur", + "E07000026" => "Allerdale", + "E07000032" => "Amber Valley", + "E07000224" => "Arun", + "E07000170" => "Ashfield", + "E07000105" => "Ashford", + "E07000200" => "Babergh", + "E09000002" => "Barking and Dagenham", + "E09000003" => "Barnet", + "E08000016" => "Barnsley", + "E07000027" => "Barrow-in-Furness", + "E07000066" => "Basildon", + "E07000084" => "Basingstoke and Deane", + "E07000171" => "Bassetlaw", + "E06000022" => "Bath and North East Somerset", + "E06000055" => "Bedford", + "E09000004" => "Bexley", + "E08000025" => "Birmingham", + "E07000129" => "Blaby", + "E06000008" => "Blackburn with Darwen", + "E06000009" => "Blackpool", + "E07000033" => "Bolsover", + "E08000001" => "Bolton", + "E07000136" => "Boston", + "E06000058" => "Bournemouth, Christchurch and Poole", + "E06000036" => "Bracknell Forest", + "E08000032" => "Bradford", + "E07000067" => "Braintree", + "E07000143" => "Breckland", + "E09000005" => "Brent", + "E07000068" => "Brentwood", + "E06000043" => "Brighton and Hove", + "E06000023" => "Bristol, City of", + "E07000144" => "Broadland", + "E09000006" => "Bromley", + "E07000234" => "Bromsgrove", + "E07000095" => "Broxbourne", + "E07000172" => "Broxtowe", + "E06000060" => "Buckinghamshire", + "E07000117" => "Burnley", + "E08000002" => "Bury", + "E08000033" => "Calderdale", + "E07000008" => "Cambridge", + "E09000007" => "Camden", + "E07000192" => "Cannock Chase", + "E07000106" => "Canterbury", + "E07000028" => "Carlisle", + "E07000069" => "Castle Point", + "E06000056" => "Central Bedfordshire", + "E07000130" => "Charnwood", + "E07000070" => "Chelmsford", + "E07000078" => "Cheltenham", + "E07000177" => "Cherwell", + "E06000049" => "Cheshire East", + "E06000050" => "Cheshire West and Chester", + "E07000034" => "Chesterfield", + "E07000225" => "Chichester", + "E07000118" => "Chorley", + "E09000001" => "City of London", + "E07000071" => "Colchester", + "E07000029" => "Copeland", + "E07000150" => "Corby", + "E06000052" => "Cornwall", + "E07000079" => "Cotswold", + "E06000047" => "County Durham", + "E08000026" => "Coventry", + "E07000163" => "Craven", + "E07000226" => "Crawley", + "E09000008" => "Croydon", + "E07000096" => "Dacorum", + "E06000005" => "Darlington", + "E07000107" => "Dartford", + "E07000151" => "Daventry", + "E06000015" => "Derby", + "E07000035" => "Derbyshire Dales", + "E08000017" => "Doncaster", + "E06000059" => "Dorset", + "E07000108" => "Dover", + "E08000027" => "Dudley", + "E09000009" => "Ealing", + "E07000009" => "East Cambridgeshire", + "E07000040" => "East Devon", + "E07000085" => "East Hampshire", + "E07000242" => "East Hertfordshire", + "E07000137" => "East Lindsey", + "E07000152" => "East Northamptonshire", + "E06000011" => "East Riding of Yorkshire", + "E07000193" => "East Staffordshire", + "E07000244" => "East Suffolk", + "E07000061" => "Eastbourne", + "E07000086" => "Eastleigh", + "E07000030" => "Eden", + "E07000207" => "Elmbridge", + "E09000010" => "Enfield", + "E07000072" => "Epping Forest", + "E07000208" => "Epsom and Ewell", + "E07000036" => "Erewash", + "E07000041" => "Exeter", + "E07000087" => "Fareham", + "E07000010" => "Fenland", + "E07000112" => "Folkestone and Hythe", + "E07000080" => "Forest of Dean", + "E07000119" => "Fylde", + "E08000037" => "Gateshead", + "E07000173" => "Gedling", + "E07000081" => "Gloucester", + "E07000088" => "Gosport", + "E07000109" => "Gravesham", + "E07000145" => "Great Yarmouth", + "E09000011" => "Greenwich", + "E07000209" => "Guildford", + "E09000012" => "Hackney", + "E06000006" => "Halton", + "E07000164" => "Hambleton", + "E09000013" => "Hammersmith and Fulham", + "E07000131" => "Harborough", + "E09000014" => "Haringey", + "E07000073" => "Harlow", + "E07000165" => "Harrogate", + "E09000015" => "Harrow", + "E07000089" => "Hart", + "E06000001" => "Hartlepool", + "E07000062" => "Hastings", + "E07000090" => "Havant", + "E09000016" => "Havering", + "E06000019" => "Herefordshire, County of", + "E07000098" => "Hertsmere", + "E07000037" => "High Peak", + "E09000017" => "Hillingdon", + "E07000132" => "Hinckley and Bosworth", + "E07000227" => "Horsham", + "E09000018" => "Hounslow", + "E07000011" => "Huntingdonshire", + "E07000120" => "Hyndburn", + "E07000202" => "Ipswich", + "E06000046" => "Isle of Wight", + "E06000053" => "Isles of Scilly", + "E09000019" => "Islington", + "E09000020" => "Kensington and Chelsea", + "E07000153" => "Kettering", + "E07000146" => "King’s Lynn and West Norfolk", + "E06000010" => "Kingston upon Hull, City of", + "E09000021" => "Kingston upon Thames", + "E08000034" => "Kirklees", + "E08000011" => "Knowsley", + "E09000022" => "Lambeth", + "E07000121" => "Lancaster", + "E08000035" => "Leeds", + "E06000016" => "Leicester", + "E07000063" => "Lewes", + "E09000023" => "Lewisham", + "E07000194" => "Lichfield", + "E07000138" => "Lincoln", + "E08000012" => "Liverpool", + "E06000032" => "Luton", + "E07000110" => "Maidstone", + "E07000074" => "Maldon", + "E07000235" => "Malvern Hills", + "E08000003" => "Manchester", + "E07000174" => "Mansfield", + "E06000035" => "Medway", + "E07000133" => "Melton", + "E07000187" => "Mendip", + "E09000024" => "Merton", + "E07000042" => "Mid Devon", + "E07000203" => "Mid Suffolk", + "E07000228" => "Mid Sussex", + "E06000002" => "Middlesbrough", + "E06000042" => "Milton Keynes", + "E07000210" => "Mole Valley", + "E07000091" => "New Forest", + "E07000175" => "Newark and Sherwood", + "E08000021" => "Newcastle upon Tyne", + "E07000195" => "Newcastle-under-Lyme", + "E09000025" => "Newham", + "E07000043" => "North Devon", + "E07000038" => "North East Derbyshire", + "E06000012" => "North East Lincolnshire", + "E07000099" => "North Hertfordshire", + "E07000139" => "North Kesteven", + "E06000013" => "North Lincolnshire", + "E07000147" => "North Norfolk", + "E06000024" => "North Somerset", + "E08000022" => "North Tyneside", + "E07000218" => "North Warwickshire", + "E07000134" => "North West Leicestershire", + "E07000154" => "Northampton", + "E06000057" => "Northumberland", + "E07000148" => "Norwich", + "E06000018" => "Nottingham", + "E07000219" => "Nuneaton and Bedworth", + "E07000135" => "Oadby and Wigston", + "E08000004" => "Oldham", + "E07000178" => "Oxford", + "E07000122" => "Pendle", + "E06000031" => "Peterborough", + "E06000026" => "Plymouth", + "E06000044" => "Portsmouth", + "E07000123" => "Preston", + "E06000038" => "Reading", + "E09000026" => "Redbridge", + "E06000003" => "Redcar and Cleveland", + "E07000236" => "Redditch", + "E07000211" => "Reigate and Banstead", + "E07000124" => "Ribble Valley", + "E09000027" => "Richmond upon Thames", + "E07000166" => "Richmondshire", + "E08000005" => "Rochdale", + "E07000075" => "Rochford", + "E07000125" => "Rossendale", + "E07000064" => "Rother", + "E08000018" => "Rotherham", + "E07000220" => "Rugby", + "E07000212" => "Runnymede", + "E07000176" => "Rushcliffe", + "E07000092" => "Rushmoor", + "E06000017" => "Rutland", + "E07000167" => "Ryedale", + "E08000006" => "Salford", + "E08000028" => "Sandwell", + "E07000168" => "Scarborough", + "E07000188" => "Sedgemoor", + "E08000014" => "Sefton", + "E07000169" => "Selby", + "E07000111" => "Sevenoaks", + "E08000019" => "Sheffield", + "E06000051" => "Shropshire", + "E06000039" => "Slough", + "E08000029" => "Solihull", + "E07000246" => "Somerset West and Taunton", + "E07000012" => "South Cambridgeshire", + "E07000039" => "South Derbyshire", + "E06000025" => "South Gloucestershire", + "E07000044" => "South Hams", + "E07000140" => "South Holland", + "E07000141" => "South Kesteven", + "E07000031" => "South Lakeland", + "E07000149" => "South Norfolk", + "E07000155" => "South Northamptonshire", + "E07000179" => "South Oxfordshire", + "E07000126" => "South Ribble", + "E07000189" => "South Somerset", + "E07000196" => "South Staffordshire", + "E08000023" => "South Tyneside", + "E06000045" => "Southampton", + "E06000033" => "Southend-on-Sea", + "E09000028" => "Southwark", + "E07000213" => "Spelthorne", + "E07000240" => "St Albans", + "E08000013" => "St. Helens", + "E07000197" => "Stafford", + "E07000198" => "Staffordshire Moorlands", + "E07000243" => "Stevenage", + "E08000007" => "Stockport", + "E06000004" => "Stockton-on-Tees", + "E06000021" => "Stoke-on-Trent", + "E07000221" => "Stratford-on-Avon", + "E07000082" => "Stroud", + "E08000024" => "Sunderland", + "E07000214" => "Surrey Heath", + "E09000029" => "Sutton", + "E07000113" => "Swale", + "E06000030" => "Swindon", + "E08000008" => "Tameside", + "E07000199" => "Tamworth", + "E07000215" => "Tandridge", + "E07000045" => "Teignbridge", + "E06000020" => "Telford and Wrekin", + "E07000076" => "Tendring", + "E07000093" => "Test Valley", + "E07000083" => "Tewkesbury", + "E07000114" => "Thanet", + "E07000102" => "Three Rivers", + "E06000034" => "Thurrock", + "E07000115" => "Tonbridge and Malling", + "E06000027" => "Torbay", + "E07000046" => "Torridge", + "E09000030" => "Tower Hamlets", + "E08000009" => "Trafford", + "E07000116" => "Tunbridge Wells", + "E07000077" => "Uttlesford", + "E07000180" => "Vale of White Horse", + "E08000036" => "Wakefield", + "E08000030" => "Walsall", + "E09000031" => "Waltham Forest", + "E09000032" => "Wandsworth", + "E06000007" => "Warrington", + "E07000222" => "Warwick", + "E07000103" => "Watford", + "E07000216" => "Waverley", + "E07000065" => "Wealden", + "E07000156" => "Wellingborough", + "E07000241" => "Welwyn Hatfield", + "E06000037" => "West Berkshire", + "E07000047" => "West Devon", + "E07000127" => "West Lancashire", + "E07000142" => "West Lindsey", + "E07000181" => "West Oxfordshire", + "E07000245" => "West Suffolk", + "E09000033" => "Westminster", + "E08000010" => "Wigan", + "E06000054" => "Wiltshire", + "E07000094" => "Winchester", + "E06000040" => "Windsor and Maidenhead", + "E08000015" => "Wirral", + "E07000217" => "Woking", + "E06000041" => "Wokingham", + "E08000031" => "Wolverhampton", + "E07000237" => "Worcester", + "E07000229" => "Worthing", + "E07000238" => "Wychavon", + "E07000128" => "Wyre", + "E07000239" => "Wyre Forest", + "E06000014" => "York", + }) + end + end + + context "when the current collection year is 23/24" do + let(:today) { Time.zone.local(2023, 5, 1) } + + before do + Timecop.freeze(today) + end + + after do + Timecop.unfreeze + end + + it "returns a list of local authorities" do + expect(described_class.local_authorities_for_current_year).to eq({ + "E07000223" => "Adur", + "E07000032" => "Amber Valley", + "E07000224" => "Arun", + "E07000170" => "Ashfield", + "E07000105" => "Ashford", + "E07000200" => "Babergh", + "E09000002" => "Barking and Dagenham", + "E09000003" => "Barnet", + "E08000016" => "Barnsley", + "E07000066" => "Basildon", + "E07000084" => "Basingstoke and Deane", + "E07000171" => "Bassetlaw", + "E06000022" => "Bath and North East Somerset", + "E06000055" => "Bedford", + "E09000004" => "Bexley", + "E08000025" => "Birmingham", + "E07000129" => "Blaby", + "E06000008" => "Blackburn with Darwen", + "E06000009" => "Blackpool", + "E07000033" => "Bolsover", + "E08000001" => "Bolton", + "E07000136" => "Boston", + "E06000058" => "Bournemouth, Christchurch and Poole", + "E06000036" => "Bracknell Forest", + "E08000032" => "Bradford", + "E07000067" => "Braintree", + "E07000143" => "Breckland", + "E09000005" => "Brent", + "E07000068" => "Brentwood", + "E06000043" => "Brighton and Hove", + "E06000023" => "Bristol, City of", + "E07000144" => "Broadland", + "E09000006" => "Bromley", + "E07000234" => "Bromsgrove", + "E07000095" => "Broxbourne", + "E07000172" => "Broxtowe", + "E06000060" => "Buckinghamshire", + "E07000117" => "Burnley", + "E08000002" => "Bury", + "E08000033" => "Calderdale", + "E07000008" => "Cambridge", + "E09000007" => "Camden", + "E07000192" => "Cannock Chase", + "E07000106" => "Canterbury", + "E07000069" => "Castle Point", + "E06000056" => "Central Bedfordshire", + "E07000130" => "Charnwood", + "E07000070" => "Chelmsford", + "E07000078" => "Cheltenham", + "E07000177" => "Cherwell", + "E06000049" => "Cheshire East", + "E06000050" => "Cheshire West and Chester", + "E07000034" => "Chesterfield", + "E07000225" => "Chichester", + "E07000118" => "Chorley", + "E09000001" => "City of London", + "E07000071" => "Colchester", + "E07000150" => "Corby", + "E06000052" => "Cornwall", + "E07000079" => "Cotswold", + "E06000047" => "County Durham", + "E08000026" => "Coventry", + "E07000226" => "Crawley", + "E09000008" => "Croydon", + "E06000063" => "Cumberland", + "E07000096" => "Dacorum", + "E06000005" => "Darlington", + "E07000107" => "Dartford", + "E07000151" => "Daventry", + "E06000015" => "Derby", + "E07000035" => "Derbyshire Dales", + "E08000017" => "Doncaster", + "E06000059" => "Dorset", + "E07000108" => "Dover", + "E08000027" => "Dudley", + "E09000009" => "Ealing", + "E07000009" => "East Cambridgeshire", + "E07000040" => "East Devon", + "E07000085" => "East Hampshire", + "E07000242" => "East Hertfordshire", + "E07000137" => "East Lindsey", + "E07000152" => "East Northamptonshire", + "E06000011" => "East Riding of Yorkshire", + "E07000193" => "East Staffordshire", + "E07000244" => "East Suffolk", + "E07000061" => "Eastbourne", + "E07000086" => "Eastleigh", + "E07000207" => "Elmbridge", + "E09000010" => "Enfield", + "E07000072" => "Epping Forest", + "E07000208" => "Epsom and Ewell", + "E07000036" => "Erewash", + "E07000041" => "Exeter", + "E07000087" => "Fareham", + "E07000010" => "Fenland", + "E07000112" => "Folkestone and Hythe", + "E07000080" => "Forest of Dean", + "E07000119" => "Fylde", + "E08000037" => "Gateshead", + "E07000173" => "Gedling", + "E07000081" => "Gloucester", + "E07000088" => "Gosport", + "E07000109" => "Gravesham", + "E07000145" => "Great Yarmouth", + "E09000011" => "Greenwich", + "E07000209" => "Guildford", + "E09000012" => "Hackney", + "E06000006" => "Halton", + "E09000013" => "Hammersmith and Fulham", + "E07000131" => "Harborough", + "E09000014" => "Haringey", + "E07000073" => "Harlow", + "E09000015" => "Harrow", + "E07000089" => "Hart", + "E06000001" => "Hartlepool", + "E07000062" => "Hastings", + "E07000090" => "Havant", + "E09000016" => "Havering", + "E06000019" => "Herefordshire, County of", + "E07000098" => "Hertsmere", + "E07000037" => "High Peak", + "E09000017" => "Hillingdon", + "E07000132" => "Hinckley and Bosworth", + "E07000227" => "Horsham", + "E09000018" => "Hounslow", + "E07000011" => "Huntingdonshire", + "E07000120" => "Hyndburn", + "E07000202" => "Ipswich", + "E06000046" => "Isle of Wight", + "E06000053" => "Isles of Scilly", + "E09000019" => "Islington", + "E09000020" => "Kensington and Chelsea", + "E07000153" => "Kettering", + "E07000146" => "King’s Lynn and West Norfolk", + "E06000010" => "Kingston upon Hull, City of", + "E09000021" => "Kingston upon Thames", + "E08000034" => "Kirklees", + "E08000011" => "Knowsley", + "E09000022" => "Lambeth", + "E07000121" => "Lancaster", + "E08000035" => "Leeds", + "E06000016" => "Leicester", + "E07000063" => "Lewes", + "E09000023" => "Lewisham", + "E07000194" => "Lichfield", + "E07000138" => "Lincoln", + "E08000012" => "Liverpool", + "E06000032" => "Luton", + "E07000110" => "Maidstone", + "E07000074" => "Maldon", + "E07000235" => "Malvern Hills", + "E08000003" => "Manchester", + "E07000174" => "Mansfield", + "E06000035" => "Medway", + "E07000133" => "Melton", + "E09000024" => "Merton", + "E07000042" => "Mid Devon", + "E07000203" => "Mid Suffolk", + "E07000228" => "Mid Sussex", + "E06000002" => "Middlesbrough", + "E06000042" => "Milton Keynes", + "E07000210" => "Mole Valley", + "E07000091" => "New Forest", + "E07000175" => "Newark and Sherwood", + "E08000021" => "Newcastle upon Tyne", + "E07000195" => "Newcastle-under-Lyme", + "E09000025" => "Newham", + "E07000043" => "North Devon", + "E07000038" => "North East Derbyshire", + "E06000012" => "North East Lincolnshire", + "E07000099" => "North Hertfordshire", + "E07000139" => "North Kesteven", + "E06000013" => "North Lincolnshire", + "E07000147" => "North Norfolk", + "E06000024" => "North Somerset", + "E08000022" => "North Tyneside", + "E07000218" => "North Warwickshire", + "E07000134" => "North West Leicestershire", + "E06000065" => "North Yorkshire", + "E07000154" => "Northampton", + "E06000057" => "Northumberland", + "E07000148" => "Norwich", + "E06000018" => "Nottingham", + "E07000219" => "Nuneaton and Bedworth", + "E07000135" => "Oadby and Wigston", + "E08000004" => "Oldham", + "E07000178" => "Oxford", + "E07000122" => "Pendle", + "E06000031" => "Peterborough", + "E06000026" => "Plymouth", + "E06000044" => "Portsmouth", + "E07000123" => "Preston", + "E06000038" => "Reading", + "E09000026" => "Redbridge", + "E06000003" => "Redcar and Cleveland", + "E07000236" => "Redditch", + "E07000211" => "Reigate and Banstead", + "E07000124" => "Ribble Valley", + "E09000027" => "Richmond upon Thames", + "E08000005" => "Rochdale", + "E07000075" => "Rochford", + "E07000125" => "Rossendale", + "E07000064" => "Rother", + "E08000018" => "Rotherham", + "E07000220" => "Rugby", + "E07000212" => "Runnymede", + "E07000176" => "Rushcliffe", + "E07000092" => "Rushmoor", + "E06000017" => "Rutland", + "E08000006" => "Salford", + "E08000028" => "Sandwell", + "E08000014" => "Sefton", + "E07000111" => "Sevenoaks", + "E08000019" => "Sheffield", + "E06000051" => "Shropshire", + "E06000039" => "Slough", + "E08000029" => "Solihull", + "E06000066" => "Somerset", + "E07000012" => "South Cambridgeshire", + "E07000039" => "South Derbyshire", + "E06000025" => "South Gloucestershire", + "E07000044" => "South Hams", + "E07000140" => "South Holland", + "E07000141" => "South Kesteven", + "E07000149" => "South Norfolk", + "E07000155" => "South Northamptonshire", + "E07000179" => "South Oxfordshire", + "E07000126" => "South Ribble", + "E07000196" => "South Staffordshire", + "E08000023" => "South Tyneside", + "E06000045" => "Southampton", + "E06000033" => "Southend-on-Sea", + "E09000028" => "Southwark", + "E07000213" => "Spelthorne", + "E07000240" => "St Albans", + "E08000013" => "St. Helens", + "E07000197" => "Stafford", + "E07000198" => "Staffordshire Moorlands", + "E07000243" => "Stevenage", + "E08000007" => "Stockport", + "E06000004" => "Stockton-on-Tees", + "E06000021" => "Stoke-on-Trent", + "E07000221" => "Stratford-on-Avon", + "E07000082" => "Stroud", + "E08000024" => "Sunderland", + "E07000214" => "Surrey Heath", + "E09000029" => "Sutton", + "E07000113" => "Swale", + "E06000030" => "Swindon", + "E08000008" => "Tameside", + "E07000199" => "Tamworth", + "E07000215" => "Tandridge", + "E07000045" => "Teignbridge", + "E06000020" => "Telford and Wrekin", + "E07000076" => "Tendring", + "E07000093" => "Test Valley", + "E07000083" => "Tewkesbury", + "E07000114" => "Thanet", + "E07000102" => "Three Rivers", + "E06000034" => "Thurrock", + "E07000115" => "Tonbridge and Malling", + "E06000027" => "Torbay", + "E07000046" => "Torridge", + "E09000030" => "Tower Hamlets", + "E08000009" => "Trafford", + "E07000116" => "Tunbridge Wells", + "E07000077" => "Uttlesford", + "E07000180" => "Vale of White Horse", + "E08000036" => "Wakefield", + "E08000030" => "Walsall", + "E09000031" => "Waltham Forest", + "E09000032" => "Wandsworth", + "E06000007" => "Warrington", + "E07000222" => "Warwick", + "E07000103" => "Watford", + "E07000216" => "Waverley", + "E07000065" => "Wealden", + "E07000156" => "Wellingborough", + "E07000241" => "Welwyn Hatfield", + "E06000037" => "West Berkshire", + "E07000047" => "West Devon", + "E07000127" => "West Lancashire", + "E07000142" => "West Lindsey", + "E07000181" => "West Oxfordshire", + "E07000245" => "West Suffolk", + "E09000033" => "Westminster", + "E06000064" => "Westmorland and Furness", + "E08000010" => "Wigan", + "E06000054" => "Wiltshire", + "E07000094" => "Winchester", + "E06000040" => "Windsor and Maidenhead", + "E08000015" => "Wirral", + "E07000217" => "Woking", + "E06000041" => "Wokingham", + "E08000031" => "Wolverhampton", + "E07000237" => "Worcester", + "E07000229" => "Worthing", + "E07000238" => "Wychavon", + "E07000128" => "Wyre", + "E07000239" => "Wyre Forest", + "E06000014" => "York", + }) + end + end + end + describe "#name" do let(:location) { FactoryBot.build(:location) } From 76643694a071c15fb6b2149895956ad933feda58 Mon Sep 17 00:00:00 2001 From: James Rose Date: Fri, 10 Mar 2023 15:25:56 +0000 Subject: [PATCH 10/51] Add PaperTrail to OrganisationRelationship (#1406) --- app/models/organisation_relationship.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/models/organisation_relationship.rb b/app/models/organisation_relationship.rb index 5a4f86938..b763c03fc 100644 --- a/app/models/organisation_relationship.rb +++ b/app/models/organisation_relationship.rb @@ -7,6 +7,8 @@ class OrganisationRelationship < ApplicationRecord validates :child_organisation_id, uniqueness: { scope: :parent_organisation_id, message: I18n.t("validations.organisation.managing_agent.already_added") } validate :validate_stock_owner_owns_stock, on: :stock_owner + has_paper_trail + private def validate_stock_owner_owns_stock From 3ffc009a3abda6bb74475e61eb5eb980e077edba Mon Sep 17 00:00:00 2001 From: Arthur Campbell <51094020+arfacamble@users.noreply.github.com> Date: Fri, 10 Mar 2023 15:26:28 +0000 Subject: [PATCH 11/51] CLDC-1838 update copy for both offered questions (#1401) * ensure copy is changed for both questions relating to how many times a property has been offered extract to en.yml so that both questions keep identical copy in the future * minor typo caught in code review --- app/models/form/lettings/questions/offered.rb | 6 +++--- app/models/form/lettings/questions/offered_social_let.rb | 6 +++--- config/locales/en.yml | 3 +++ .../form/lettings/questions/offered_social_let_spec.rb | 2 +- 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/app/models/form/lettings/questions/offered.rb b/app/models/form/lettings/questions/offered.rb index ebc2bac1b..e9491ba3c 100644 --- a/app/models/form/lettings/questions/offered.rb +++ b/app/models/form/lettings/questions/offered.rb @@ -2,14 +2,14 @@ class Form::Lettings::Questions::Offered < ::Form::Question def initialize(id, hsh, page) super @id = "offered" - @check_answer_label = "Times previously offered since becoming available" - @header = "Since becoming available for re-let, how many times has the property been previously offered?" + @check_answer_label = I18n.t("check_answer_labels.offered") + @header = I18n.t("questions.offered") @type = "numeric" @width = 2 @check_answers_card_number = 0 @max = 150 @min = 0 - @hint_text = "This is after the last tenancy ended. If the property is being offered for let for the first time, enter 0." + @hint_text = I18n.t("hints.offered") @step = 1 end end diff --git a/app/models/form/lettings/questions/offered_social_let.rb b/app/models/form/lettings/questions/offered_social_let.rb index c87ffb998..2178ef626 100644 --- a/app/models/form/lettings/questions/offered_social_let.rb +++ b/app/models/form/lettings/questions/offered_social_let.rb @@ -2,14 +2,14 @@ class Form::Lettings::Questions::OfferedSocialLet < ::Form::Question def initialize(id, hsh, page) super @id = "offered" - @check_answer_label = "Times previously offered since becoming available" - @header = "How many times was the property offered between becoming vacant and this letting?" + @check_answer_label = I18n.t("check_answer_labels.offered") + @header = I18n.t("questions.offered") @type = "numeric" @width = 2 @check_answers_card_number = 0 @max = 150 @min = 0 - @hint_text = "Do not include the offer that led to this letting.This is after the last tenancy ended. If the property is being offered for let for the first time, enter 0." + @hint_text = I18n.t("hints.offered") @step = 1 end end diff --git a/config/locales/en.yml b/config/locales/en.yml index c3762e259..9c8324d34 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -547,6 +547,7 @@ en: stairowned: one: "What percentage of the property does the buyer now own in total?" other: "What percentage of the property do the buyers now own in total?" + offered: "How many times was the property offered between becoming vacant and this letting?" hints: location: @@ -559,6 +560,7 @@ en: toggle_active: "If the date is before %{date}, select ‘From the start of the current collection period’ because the previous period has now closed." bulk_upload: needstype: "General needs housing includes both self-contained and shared housing without support or specific adaptations. Supported housing can include direct access hostels, group homes, residential care and nursing homes." + offered: "Do not include the offer that led to this letting. This is after the last tenancy ended. If the property is being offered for let for the first time, enter 0." check_answer_labels: soctenant: @@ -570,6 +572,7 @@ en: stairowned: one: "Percentage the buyer now owns in total" other: "Percentage the buyers now own in total" + offered: "Times previously offered since becoming available" warnings: location: diff --git a/spec/models/form/lettings/questions/offered_social_let_spec.rb b/spec/models/form/lettings/questions/offered_social_let_spec.rb index 8a3622e02..6516c661b 100644 --- a/spec/models/form/lettings/questions/offered_social_let_spec.rb +++ b/spec/models/form/lettings/questions/offered_social_let_spec.rb @@ -39,6 +39,6 @@ RSpec.describe Form::Lettings::Questions::OfferedSocialLet, type: :model do end it "has the correct hint_text" do - expect(question.hint_text).to eq "Do not include the offer that led to this letting.This is after the last tenancy ended. If the property is being offered for let for the first time, enter 0." + expect(question.hint_text).to eq "Do not include the offer that led to this letting. This is after the last tenancy ended. If the property is being offered for let for the first time, enter 0." end end From 7e6d2f110c17b239818536f3ad01cae48642cab1 Mon Sep 17 00:00:00 2001 From: Phil Lee Date: Fri, 10 Mar 2023 15:27:07 +0000 Subject: [PATCH 12/51] copy change for LA (#1407) --- app/models/form/lettings/questions/la.rb | 2 +- app/models/form/sales/questions/property_local_authority.rb | 2 +- .../form/sales/questions/property_local_authority_spec.rb | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/models/form/lettings/questions/la.rb b/app/models/form/lettings/questions/la.rb index e69a7216e..adafad4b9 100644 --- a/app/models/form/lettings/questions/la.rb +++ b/app/models/form/lettings/questions/la.rb @@ -3,7 +3,7 @@ class Form::Lettings::Questions::La < ::Form::Question super @id = "la" @check_answer_label = "Local Authority" - @header = "What is the local authority of the property?" + @header = "What is the property’s local authority?" @type = "select" @check_answers_card_number = 0 @hint_text = "" diff --git a/app/models/form/sales/questions/property_local_authority.rb b/app/models/form/sales/questions/property_local_authority.rb index 7b08a8a08..699a67984 100644 --- a/app/models/form/sales/questions/property_local_authority.rb +++ b/app/models/form/sales/questions/property_local_authority.rb @@ -3,7 +3,7 @@ class Form::Sales::Questions::PropertyLocalAuthority < ::Form::Question super @id = "la" @check_answer_label = "Local authority" - @header = "What is the local authority of the property?" + @header = "What is the property’s local authority?" @type = "select" end diff --git a/spec/models/form/sales/questions/property_local_authority_spec.rb b/spec/models/form/sales/questions/property_local_authority_spec.rb index 24b8933a9..a5ffe8870 100644 --- a/spec/models/form/sales/questions/property_local_authority_spec.rb +++ b/spec/models/form/sales/questions/property_local_authority_spec.rb @@ -18,7 +18,7 @@ RSpec.describe Form::Sales::Questions::PropertyLocalAuthority, type: :model do end it "has the correct header" do - expect(question.header).to eq("What is the local authority of the property?") + expect(question.header).to eq("What is the property’s local authority?") end it "has the correct check_answer_label" do From c5cd8439c3b14c7fb3f0290626ea23d2091ea90c Mon Sep 17 00:00:00 2001 From: kosiakkatrina <54268893+kosiakkatrina@users.noreply.github.com> Date: Fri, 10 Mar 2023 15:41:44 +0000 Subject: [PATCH 13/51] CLDC-1997 Infer new LAs for post 2023 logs (#1398) * Infer new LAs after year 2023 * Test --- app/models/log.rb | 27 ++++++++++++++++++++++++++- spec/models/sales_log_spec.rb | 31 +++++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+), 1 deletion(-) diff --git a/app/models/log.rb b/app/models/log.rb index f5f5f4946..52a197d97 100644 --- a/app/models/log.rb +++ b/app/models/log.rb @@ -135,9 +135,34 @@ private process_postcode(ppostcode_full, "ppcodenk", "is_previous_la_inferred", "prevloc") end + LA_CHANGES = { + "E07000027" => "E06000063", # Barrow-in-Furness => Cumberland + "E07000030" => "E06000063", # Eden => Cumberland + "E07000031" => "E06000063", # South Lakeland => Cumberland + "E07000026" => "E06000064", # Allerdale => Westmorland and Furness + "E07000028" => "E06000064", # Carlisle => Westmorland and Furness + "E07000029" => "E06000064", # Copeland => Westmorland and Furness + "E07000163" => "E06000065", # Craven => North Yorkshire + "E07000164" => "E06000065", # Hambleton => North Yorkshire + "E07000165" => "E06000065", # Harrogate => North Yorkshire + "E07000166" => "E06000065", # Richmondshire => North Yorkshire + "E07000167" => "E06000065", # Ryedale => North Yorkshire + "E07000168" => "E06000065", # Scarborough => North Yorkshire + "E07000169" => "E06000065", # Selby => North Yorkshire + "E07000187" => "E06000066", # Mendip => Somerset + "E07000188" => "E06000066", # Sedgemoor => Somerset + "E07000246" => "E06000066", # Somerset West and Taunton => Somerset + "E07000189" => "E06000066", # South Somerset => Somerset + }.freeze + def get_inferred_la(postcode) result = PIO.lookup(postcode) - result[:location_code] if result + location_code = result[:location_code] if result + if LA_CHANGES.key?(location_code) && form.start_date.year >= 2023 + LA_CHANGES[location_code] + else + location_code + end end def upcase_and_remove_whitespace(string) diff --git a/spec/models/sales_log_spec.rb b/spec/models/sales_log_spec.rb index b82fe6fe3..d4814df14 100644 --- a/spec/models/sales_log_spec.rb +++ b/spec/models/sales_log_spec.rb @@ -226,6 +226,37 @@ RSpec.describe SalesLog, type: :model do expect(record_from_db["la"]).to eq("E08000003") end + context "with 23/24 logs" do + let(:address_sales_log_23_24) do + described_class.create({ + owning_organisation:, + created_by: created_by_user, + ppcodenk: 1, + postcode_full: "CA10 1AA", + saledate: Time.zone.local(2023, 5, 2), + }) + end + + before do + WebMock.stub_request(:get, /api.postcodes.io\/postcodes\/CA101AA/) + .to_return(status: 200, body: '{"status":200,"result":{"admin_district":"Eden","codes":{"admin_district":"E07000030"}}}', headers: {}) + + Timecop.freeze(2023, 4, 1) + Singleton.__init__(FormHandler) + end + + after do + Timecop.unfreeze + Singleton.__init__(FormHandler) + end + + it "correctly infers new la" do + record_from_db = ActiveRecord::Base.connection.execute("select la from sales_logs where id=#{address_sales_log_23_24.id}").to_a[0] + expect(address_sales_log_23_24.la).to eq("E06000063") + expect(record_from_db["la"]).to eq("E06000063") + end + end + it "errors if the property postcode is emptied" do expect { address_sales_log.update!({ postcode_full: "" }) } .to raise_error(ActiveRecord::RecordInvalid, /#{I18n.t("validations.postcode")}/) From 877d31189c73abe964a07f6012ea77da664fcb7b Mon Sep 17 00:00:00 2001 From: James Rose Date: Fri, 10 Mar 2023 16:25:06 +0000 Subject: [PATCH 14/51] Run CSV export before XML export to CDS (#1393) - The XML export mutates the `LogsExport` table which determines the period in which logs are exported. - The CSV export does not change this table, so if the CSV gets ran at the same time as the XML log it could skip records. --- config/sidekiq_cron_schedule.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/sidekiq_cron_schedule.yml b/config/sidekiq_cron_schedule.yml index 46cb10ff2..7c91706ab 100644 --- a/config/sidekiq_cron_schedule.yml +++ b/config/sidekiq_cron_schedule.yml @@ -1,5 +1,5 @@ data_export_csv: - cron: "every day at 5am" + cron: "every day at 4am" class: "DataExportCsvJob" queue: default data_export_xml: From 5e340f2b41e8ac68de244651ff87bf5d14336952 Mon Sep 17 00:00:00 2001 From: natdeanlewissoftwire <94526761+natdeanlewissoftwire@users.noreply.github.com> Date: Mon, 13 Mar 2023 10:16:29 +0000 Subject: [PATCH 15/51] CLDC-1998 Correctly infer 22/23 las if a NEW one is returned by postcodes.io (#1397) * feat: correctly infer las for 22/23 logs * feat: copy changes to sales log * feat: don't reset las when clash with postcode to make tests pass * feat: align with similar PR for 23/24 * feat: tidying and add test * refactor: lint * refactor: use unless --- app/models/log.rb | 2 +- db/schema.rb | 8 ++++---- spec/models/sales_log_spec.rb | 31 +++++++++++++++++++++++++++++++ 3 files changed, 36 insertions(+), 5 deletions(-) diff --git a/app/models/log.rb b/app/models/log.rb index 52a197d97..0cb974d31 100644 --- a/app/models/log.rb +++ b/app/models/log.rb @@ -160,7 +160,7 @@ private location_code = result[:location_code] if result if LA_CHANGES.key?(location_code) && form.start_date.year >= 2023 LA_CHANGES[location_code] - else + elsif !(LA_CHANGES.value?(location_code) && form.start_date.year < 2023) location_code end end diff --git a/db/schema.rb b/db/schema.rb index eccfa98ca..3b26fde33 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -501,6 +501,7 @@ ActiveRecord::Schema[7.0].define(version: 2023_03_08_101826) do t.integer "prevten" t.integer "mortgageused" t.integer "wchair" + t.integer "income2_value_check" t.integer "armedforcesspouse" t.datetime "hodate", precision: nil t.integer "hoday" @@ -525,14 +526,13 @@ ActiveRecord::Schema[7.0].define(version: 2023_03_08_101826) do t.integer "retirement_value_check" t.integer "hodate_check" t.integer "extrabor_value_check" - t.integer "grant_value_check" - t.integer "staircase_bought_value_check" t.integer "deposit_and_mortgage_value_check" t.integer "shared_ownership_deposit_value_check" + t.integer "grant_value_check" + t.integer "value_value_check" t.integer "old_persons_shared_ownership_value_check" - t.integer "income2_value_check" + t.integer "staircase_bought_value_check" t.integer "monthly_charges_value_check" - t.integer "value_value_check" t.integer "details_known_5" t.integer "details_known_6" t.integer "saledate_check" diff --git a/spec/models/sales_log_spec.rb b/spec/models/sales_log_spec.rb index d4814df14..afa8c451b 100644 --- a/spec/models/sales_log_spec.rb +++ b/spec/models/sales_log_spec.rb @@ -226,6 +226,37 @@ RSpec.describe SalesLog, type: :model do expect(record_from_db["la"]).to eq("E08000003") end + context "with 22/23 logs" do + let(:address_sales_log_22_23) do + described_class.create({ + owning_organisation:, + created_by: created_by_user, + ppcodenk: 1, + postcode_full: "CA10 1AA", + saledate: Time.zone.local(2022, 5, 2), + }) + end + + before do + WebMock.stub_request(:get, /api.postcodes.io\/postcodes\/CA101AA/) + .to_return(status: 200, body: '{"status":200,"result":{"admin_district":"Cumberland","codes":{"admin_district":"E06000063"}}}', headers: {}) + + Timecop.freeze(2023, 5, 1) + Singleton.__init__(FormHandler) + end + + after do + Timecop.unfreeze + Singleton.__init__(FormHandler) + end + + it "correctly sets la as nil" do + record_from_db = ActiveRecord::Base.connection.execute("select la from sales_logs where id=#{address_sales_log_22_23.id}").to_a[0] + expect(address_sales_log_22_23.la).to eq(nil) + expect(record_from_db["la"]).to eq(nil) + end + end + context "with 23/24 logs" do let(:address_sales_log_23_24) do described_class.create({ From 2836f3cdb7129ef10022f66fcddcffcbe9640180 Mon Sep 17 00:00:00 2001 From: SamSeed-Softwire <63662292+SamSeed-Softwire@users.noreply.github.com> Date: Mon, 13 Mar 2023 10:56:19 +0000 Subject: [PATCH 16/51] CLDC-1919 Add 23/24 rent ranges (#1405) * feat: add 23/24 rent ranges csv * fix: use new 2023/24 rent ranges after duplicates removed * test: update seeds test to use new rent ranges count --- config/rent_range_data/2023.csv | 7401 +++++++++++++++++++++++++++++++ spec/db/seeds_spec.rb | 2 +- 2 files changed, 7402 insertions(+), 1 deletion(-) create mode 100644 config/rent_range_data/2023.csv diff --git a/config/rent_range_data/2023.csv b/config/rent_range_data/2023.csv new file mode 100644 index 000000000..08775d4a4 --- /dev/null +++ b/config/rent_range_data/2023.csv @@ -0,0 +1,7401 @@ +ranges_rent_id,lettype,la,beds,soft_min,soft_max,hard_min,hard_max +1,1,E07000223,1,57.21,123.09,25.84,176.15 +327,1,E07000223,2,71.06,146.43,25.84,186.77 +653,1,E07000223,3,81.2,161.3,25.84,203.75 +979,1,E07000223,4,89.52,178.28,25.84,221.77 +2609,2,E07000223,0,62.17,268.13,18.64,344.4 +1305,3,E07000223,1,51.68,115.66,25.84,159.17 +1631,3,E07000223,2,62.75,129.46,25.84,145.37 +1957,3,E07000223,3,68.28,149.62,25.84,185.7 +2283,3,E07000223,4,72.9,184.64,25.84,194.19 +2935,4,E07000223,0,48.71,195.45,18.64,204.96 +3983,5,E07000223,1,57.21,130.52,25.84,143.25 +4598,5,E07000223,2,71.06,181.46,25.84,198.45 +5250,5,E07000223,3,81.2,226.01,25.84,246.18 +5935,5,E07000223,4,89.52,426.59,25.84,465.84 +3261,6,E07000223,0,62.17,492.18,18.64,536.27 +4050,7,E07000223,1,51.68,130.52,25.84,143.25 +4745,7,E07000223,2,62.75,181.46,25.84,198.45 +5350,7,E07000223,3,68.28,226.01,25.84,246.18 +6039,7,E07000223,4,72.9,426.59,25.84,465.84 +3587,8,E07000223,0,48.71,492.18,18.64,536.27 +6521,9,E07000223,1,57.21,163.15,25.84,179.06 +6847,9,E07000223,2,71.06,226.84,25.84,248.03 +7173,9,E07000223,3,81.2,282.54,25.84,307.73 +7499,9,E07000223,4,89.52,533.22,25.84,582.31 +7825,10,E07000223,0,62.17,493.08,18.64,537.76 +3,1,E07000032,1,51.68,99.75,25.84,122.03 +329,1,E07000032,2,61.83,114.6,25.84,129.46 +655,1,E07000032,3,68.28,126.28,25.84,137.95 +981,1,E07000032,4,75.67,158.1,25.84,166.61 +2611,2,E07000032,0,51.82,240.72,18.64,361.1 +1307,3,E07000032,1,46.13,90.21,25.84,107.19 +1633,3,E07000032,2,52.6,96.56,25.84,108.24 +1959,3,E07000032,3,58.13,104,25.84,118.85 +2285,3,E07000032,4,63.67,122.03,25.84,122.03 +2937,4,E07000032,0,49.74,114.39,18.64,123.94 +4311,5,E07000032,1,51.68,96.56,25.84,105.06 +5007,5,E07000032,2,61.83,113.53,25.84,123.09 +5650,5,E07000032,3,68.28,134.77,25.84,147.5 +6225,5,E07000032,4,75.67,186.77,25.84,203.75 +3263,6,E07000032,0,51.82,209.73,18.64,228.81 +4411,7,E07000032,1,46.13,96.56,25.84,105.06 +5147,7,E07000032,2,52.6,113.53,25.84,123.09 +5808,7,E07000032,3,58.13,134.77,25.84,147.5 +6469,7,E07000032,4,63.67,186.77,25.84,203.75 +3589,8,E07000032,0,49.74,209.73,18.64,228.81 +6523,9,E07000032,1,51.68,120.73,25.84,131.32 +6849,9,E07000032,2,61.83,141.94,25.84,153.86 +7175,9,E07000032,3,68.28,168.46,25.84,184.37 +7501,9,E07000032,4,75.67,233.46,25.84,254.69 +7827,10,E07000032,0,51.82,269.62,18.64,294.95 +4,1,E07000224,1,57.21,123.09,25.84,176.15 +330,1,E07000224,2,71.06,146.43,25.84,186.77 +656,1,E07000224,3,81.2,161.3,25.84,203.75 +982,1,E07000224,4,89.52,178.28,25.84,221.77 +2612,2,E07000224,0,62.17,268.13,18.64,344.4 +1308,3,E07000224,1,51.68,115.66,25.84,159.17 +1634,3,E07000224,2,62.75,129.46,25.84,145.37 +1960,3,E07000224,3,68.28,149.62,25.84,185.7 +2286,3,E07000224,4,72.9,184.64,25.84,194.19 +2938,4,E07000224,0,48.71,195.45,18.64,204.96 +3984,5,E07000224,1,57.21,125.22,25.84,136.89 +4599,5,E07000224,2,71.06,170.85,25.84,185.7 +5251,5,E07000224,3,81.2,209.06,25.84,228.14 +5936,5,E07000224,4,89.52,337.44,25.84,368.22 +3264,6,E07000224,0,62.17,378.95,18.64,413.53 +4051,7,E07000224,1,51.68,125.22,25.84,136.89 +4746,7,E07000224,2,62.75,170.85,25.84,185.7 +5351,7,E07000224,3,68.28,209.06,25.84,228.14 +6040,7,E07000224,4,72.9,337.44,25.84,368.22 +3590,8,E07000224,0,48.71,378.95,18.64,413.53 +6524,9,E07000224,1,57.21,156.51,25.84,171.11 +6850,9,E07000224,2,71.06,213.57,25.84,232.15 +7176,9,E07000224,3,81.2,261.31,25.84,285.19 +7502,9,E07000224,4,89.52,421.8,25.84,460.26 +7828,10,E07000224,0,62.17,269.62,18.64,294.95 +5,1,E07000170,1,51.68,99.75,25.84,122.03 +331,1,E07000170,2,61.83,114.6,25.84,129.46 +657,1,E07000170,3,68.28,126.28,25.84,137.95 +983,1,E07000170,4,75.67,158.1,25.84,166.61 +2613,2,E07000170,0,51.82,240.72,18.64,361.1 +1309,3,E07000170,1,46.13,90.21,25.84,107.19 +1635,3,E07000170,2,52.6,96.56,25.84,108.24 +1961,3,E07000170,3,58.13,104,25.84,118.85 +2287,3,E07000170,4,63.67,122.03,25.84,122.03 +2939,4,E07000170,0,49.74,114.39,18.64,123.94 +4312,5,E07000170,1,51.68,87.01,25.84,94.47 +5008,5,E07000170,2,61.83,109.29,25.84,118.85 +5651,5,E07000170,3,68.28,125.22,25.84,136.89 +6226,5,E07000170,4,75.67,178.28,25.84,193.13 +3265,6,E07000170,0,51.82,200.21,18.64,216.88 +4412,7,E07000170,1,46.13,87.01,25.84,94.47 +5148,7,E07000170,2,52.6,109.29,25.84,118.85 +5809,7,E07000170,3,58.13,125.22,25.84,136.89 +6470,7,E07000170,4,63.67,178.28,25.84,193.13 +3591,8,E07000170,0,49.74,200.21,18.64,216.88 +6525,9,E07000170,1,51.68,108.78,25.84,118.06 +6851,9,E07000170,2,61.83,136.63,25.84,148.56 +7177,9,E07000170,3,68.28,156.51,25.84,171.11 +7503,9,E07000170,4,75.67,222.85,25.84,241.41 +7829,10,E07000170,0,51.82,348.6,18.64,379.86 +6,1,E07000105,1,57.21,123.09,25.84,176.15 +332,1,E07000105,2,71.06,146.43,25.84,186.77 +658,1,E07000105,3,81.2,161.3,25.84,203.75 +984,1,E07000105,4,89.52,178.28,25.84,221.77 +2614,2,E07000105,0,62.17,268.13,18.64,344.4 +1310,3,E07000105,1,51.68,115.66,25.84,159.17 +1636,3,E07000105,2,62.75,129.46,25.84,145.37 +1962,3,E07000105,3,68.28,149.62,25.84,185.7 +2288,3,E07000105,4,72.9,184.64,25.84,194.19 +2940,4,E07000105,0,48.71,195.45,18.64,204.96 +3985,5,E07000105,1,57.21,125.22,25.84,136.89 +4600,5,E07000105,2,71.06,153.86,25.84,167.67 +5252,5,E07000105,3,81.2,186.77,25.84,203.75 +5937,5,E07000105,4,89.52,275.9,25.84,301.37 +3266,6,E07000105,0,62.17,309.83,18.64,338.45 +4052,7,E07000105,1,51.68,125.22,25.84,136.89 +4747,7,E07000105,2,62.75,153.86,25.84,167.67 +5352,7,E07000105,3,68.28,186.77,25.84,203.75 +6041,7,E07000105,4,72.9,275.9,25.84,301.37 +3592,8,E07000105,0,48.71,309.83,18.64,338.45 +6526,9,E07000105,1,57.21,156.51,25.84,171.11 +6852,9,E07000105,2,71.06,192.33,25.84,209.57 +7178,9,E07000105,3,81.2,233.46,25.84,254.69 +7504,9,E07000105,4,89.52,344.89,25.84,376.72 +7830,10,E07000105,0,62.17,408.19,18.64,445.42 +8,1,E07000200,1,54.44,118.85,25.84,148.56 +334,1,E07000200,2,64.59,142.18,25.84,167.67 +660,1,E07000200,3,71.06,155.98,25.84,180.4 +986,1,E07000200,4,81.2,170.85,25.84,178.28 +2616,2,E07000200,0,36.26,226.42,18.64,423.05 +1312,3,E07000200,1,49.84,99.75,25.84,131.58 +1638,3,E07000200,2,58.13,117.78,25.84,132.64 +1964,3,E07000200,3,63.67,130.52,25.84,143.25 +2290,3,E07000200,4,71.06,148.56,25.84,159.17 +2942,4,E07000200,0,55.97,135.86,18.64,318.19 +4117,5,E07000200,1,54.44,114.6,25.84,124.15 +4698,5,E07000200,2,64.59,142.18,25.84,154.93 +5417,5,E07000200,3,71.06,170.85,25.84,185.7 +6127,5,E07000200,4,81.2,316.23,25.84,344.88 +3268,6,E07000200,0,36.26,355.12,18.64,387.3 +4234,7,E07000200,1,49.84,114.6,25.84,124.15 +4960,7,E07000200,2,58.13,142.18,25.84,154.93 +5603,7,E07000200,3,63.67,170.85,25.84,185.7 +6265,7,E07000200,4,71.06,316.23,25.84,344.88 +3594,8,E07000200,0,55.97,355.12,18.64,387.3 +6528,9,E07000200,1,54.44,143.25,25.84,155.2 +6854,9,E07000200,2,64.59,177.73,25.84,193.64 +7180,9,E07000200,3,71.06,213.57,25.84,232.15 +7506,9,E07000200,4,81.2,395.3,25.84,431.1 +7832,10,E07000200,0,36.26,300.91,18.64,329.21 +9,1,E09000002,1,65.51,145.37,25.84,197.39 +335,1,E09000002,2,77.51,157.04,25.84,192.07 +661,1,E09000002,3,83.97,166.61,25.84,226.01 +987,1,E09000002,4,101.48,186.77,25.84,251.49 +2617,2,E09000002,0,70.47,317,18.64,502.91 +1313,3,E09000002,1,58.13,118.85,25.84,146.43 +1639,3,E09000002,2,63.67,139.02,25.84,175.09 +1965,3,E09000002,3,71.06,159.17,25.84,200.55 +2291,3,E09000002,4,83.05,259.98,25.84,261.04 +2943,4,E09000002,0,60.1,371.82,18.64,402.8 +3950,5,E09000002,1,65.51,160.24,25.84,175.09 +4565,5,E09000002,2,77.51,203.75,25.84,220.72 +5217,5,E09000002,3,83.97,248.31,25.84,270.61 +5902,5,E09000002,4,101.48,304.55,25.84,332.14 +3269,6,E09000002,0,70.47,342.01,18.64,373.01 +4164,7,E09000002,1,58.13,160.24,25.84,175.09 +4665,7,E09000002,2,63.67,203.75,25.84,220.72 +5317,7,E09000002,3,71.06,248.31,25.84,270.61 +5869,7,E09000002,4,83.05,304.55,25.84,332.14 +3595,8,E09000002,0,60.1,342.01,18.64,373.01 +6529,9,E09000002,1,65.51,200.32,25.84,218.87 +6855,9,E09000002,2,77.51,254.69,25.84,275.9 +7181,9,E09000002,3,83.97,310.37,25.84,338.25 +7507,9,E09000002,4,101.48,380.68,25.84,415.17 +7833,10,E09000002,0,70.47,239.85,18.64,260.68 +10,1,E09000003,1,65.51,145.37,25.84,197.39 +336,1,E09000003,2,77.51,157.04,25.84,192.07 +662,1,E09000003,3,83.97,166.61,25.84,226.01 +988,1,E09000003,4,101.48,186.77,25.84,251.49 +2618,2,E09000003,0,70.47,317,18.64,502.91 +1314,3,E09000003,1,58.13,118.85,25.84,146.43 +1640,3,E09000003,2,63.67,139.02,25.84,175.09 +1966,3,E09000003,3,71.06,159.17,25.84,200.55 +2292,3,E09000003,4,83.05,259.98,25.84,261.04 +2944,4,E09000003,0,60.1,371.82,18.64,402.8 +3951,5,E09000003,1,65.51,235.58,25.84,256.8 +4566,5,E09000003,2,77.51,302.42,25.84,330.01 +5218,5,E09000003,3,83.97,414.92,25.84,452.05 +5903,5,E09000003,4,101.48,755.54,25.84,824.52 +3270,6,E09000003,0,70.47,847.34,18.64,925.97 +4165,7,E09000003,1,58.13,235.58,25.84,256.8 +4666,7,E09000003,2,63.67,302.42,25.84,330.01 +5318,7,E09000003,3,71.06,414.92,25.84,452.05 +5870,7,E09000003,4,83.05,755.54,25.84,824.52 +3596,8,E09000003,0,60.1,847.34,18.64,925.97 +6530,9,E09000003,1,65.51,294.49,25.84,320.99 +6856,9,E09000003,2,77.51,378.03,25.84,412.53 +7182,9,E09000003,3,83.97,518.65,25.84,565.05 +7508,9,E09000003,4,101.48,944.43,25.84,1030.66 +7834,10,E09000003,0,70.47,598.84,18.64,653.96 +11,1,E08000016,1,50.76,91.27,25.84,113.53 +337,1,E08000016,2,58.13,108.24,25.84,140.08 +663,1,E08000016,3,62.75,119.9,25.84,161.3 +989,1,E08000016,4,72.9,144.31,25.84,178.28 +2619,2,E08000016,0,52.86,234.75,18.64,322.95 +1315,3,E08000016,1,46.13,81.71,25.84,92.33 +1641,3,E08000016,2,52.6,112.47,25.84,144.31 +1967,3,E08000016,3,56.29,104,25.84,113.53 +2293,3,E08000016,4,63.67,120.97,25.84,175.09 +2945,4,E08000016,0,51.82,160.88,18.64,190.67 +4390,5,E08000016,1,50.76,84.89,25.84,92.33 +4870,5,E08000016,2,58.13,97.63,25.84,107.19 +5501,5,E08000016,3,62.75,114.6,25.84,124.15 +6106,5,E08000016,4,72.9,170.85,25.84,185.7 +3271,6,E08000016,0,52.86,191.88,18.64,208.55 +4544,7,E08000016,1,46.13,84.89,25.84,92.33 +4812,7,E08000016,2,52.6,97.63,25.84,107.19 +5848,7,E08000016,3,56.29,114.6,25.84,124.15 +6204,7,E08000016,4,63.67,170.85,25.84,185.7 +3597,8,E08000016,0,51.82,191.88,18.64,208.55 +6531,9,E08000016,1,50.76,106.13,25.84,115.39 +6857,9,E08000016,2,52.6,122.03,25.84,133.98 +7183,9,E08000016,3,62.75,143.25,25.84,155.2 +7509,9,E08000016,4,72.9,213.57,25.84,232.15 +7835,10,E08000016,0,52.86,945.92,18.64,1030.84 +13,1,E07000066,1,54.44,118.85,25.84,148.56 +339,1,E07000066,2,64.59,142.18,25.84,167.67 +665,1,E07000066,3,71.06,155.98,25.84,180.4 +991,1,E07000066,4,81.2,170.85,25.84,178.28 +2621,2,E07000066,0,36.26,226.42,18.64,423.05 +1317,3,E07000066,1,49.84,99.75,25.84,131.58 +1643,3,E07000066,2,58.13,117.78,25.84,132.64 +1969,3,E07000066,3,63.67,130.52,25.84,143.25 +2295,3,E07000066,4,71.06,148.56,25.84,159.17 +2947,4,E07000066,0,55.97,135.86,18.64,318.19 +4118,5,E07000066,1,54.44,142.18,25.84,154.93 +4699,5,E07000066,2,64.59,180.4,25.84,197.39 +5418,5,E07000066,3,71.06,219.66,25.84,239.83 +6128,5,E07000066,4,81.2,359.73,25.84,392.62 +3273,6,E07000066,0,36.26,403.99,18.64,440.94 +4235,7,E07000066,1,49.84,142.18,25.84,154.93 +4961,7,E07000066,2,58.13,180.4,25.84,197.39 +5604,7,E07000066,3,63.67,219.66,25.84,239.83 +6266,7,E07000066,4,71.06,359.73,25.84,392.62 +3599,8,E07000066,0,55.97,403.99,18.64,440.94 +6533,9,E07000066,1,54.44,177.73,25.84,193.64 +6859,9,E07000066,2,64.59,225.52,25.84,246.73 +7185,9,E07000066,3,71.06,274.57,25.84,299.78 +7511,9,E07000066,4,81.2,449.67,25.84,490.79 +7837,10,E07000066,0,36.26,269.62,18.64,294.95 +14,1,E07000084,1,57.21,123.09,25.84,176.15 +340,1,E07000084,2,71.06,146.43,25.84,186.77 +666,1,E07000084,3,81.2,161.3,25.84,203.75 +992,1,E07000084,4,89.52,178.28,25.84,221.77 +2622,2,E07000084,0,62.17,268.13,18.64,344.4 +1318,3,E07000084,1,51.68,115.66,25.84,159.17 +1644,3,E07000084,2,62.75,129.46,25.84,145.37 +1970,3,E07000084,3,68.28,149.62,25.84,185.7 +2296,3,E07000084,4,72.9,184.64,25.84,194.19 +2948,4,E07000084,0,48.71,195.45,18.64,204.96 +3987,5,E07000084,1,57.21,147.5,25.84,160.24 +4602,5,E07000084,2,71.06,181.46,25.84,198.45 +5254,5,E07000084,3,81.2,209.06,25.84,228.14 +5939,5,E07000084,4,89.52,337.44,25.84,368.22 +3274,6,E07000084,0,62.17,378.95,18.64,413.53 +4054,7,E07000084,1,51.68,147.5,25.84,160.24 +4749,7,E07000084,2,62.75,181.46,25.84,198.45 +5354,7,E07000084,3,68.28,209.06,25.84,228.14 +6043,7,E07000084,4,72.9,337.44,25.84,368.22 +3600,8,E07000084,0,48.71,378.95,18.64,413.53 +6534,9,E07000084,1,57.21,184.37,25.84,200.32 +6860,9,E07000084,2,71.06,226.84,25.84,248.03 +7186,9,E07000084,3,81.2,261.31,25.84,285.19 +7512,9,E07000084,4,89.52,421.8,25.84,460.26 +7838,10,E07000084,0,62.17,1071.07,18.64,1167.89 +15,1,E07000171,1,51.68,99.75,25.84,122.03 +341,1,E07000171,2,61.83,114.6,25.84,129.46 +667,1,E07000171,3,68.28,126.28,25.84,137.95 +993,1,E07000171,4,75.67,158.1,25.84,166.61 +2623,2,E07000171,0,51.82,240.72,18.64,361.1 +1319,3,E07000171,1,46.13,90.21,25.84,107.19 +1645,3,E07000171,2,52.6,96.56,25.84,108.24 +1971,3,E07000171,3,58.13,104,25.84,118.85 +2297,3,E07000171,4,63.67,122.03,25.84,122.03 +2949,4,E07000171,0,49.74,114.39,18.64,123.94 +4313,5,E07000171,1,51.68,84.89,25.84,92.33 +5009,5,E07000171,2,61.83,105.06,25.84,114.6 +5652,5,E07000171,3,68.28,125.22,25.84,136.89 +6227,5,E07000171,4,75.67,180.4,25.84,197.39 +3275,6,E07000171,0,51.82,202.58,18.64,221.66 +4413,7,E07000171,1,46.13,84.89,25.84,92.33 +5149,7,E07000171,2,52.6,105.06,25.84,114.6 +5810,7,E07000171,3,58.13,125.22,25.84,136.89 +6471,7,E07000171,4,63.67,180.4,25.84,197.39 +3601,8,E07000171,0,49.74,202.58,18.64,221.66 +6535,9,E07000171,1,51.68,106.13,25.84,115.39 +6861,9,E07000171,2,61.83,131.32,25.84,143.25 +7187,9,E07000171,3,68.28,156.51,25.84,171.11 +7513,9,E07000171,4,75.67,225.52,25.84,246.73 +7839,10,E07000171,0,51.82,591.38,18.64,645.02 +16,1,E06000022,1,48.92,107.19,25.84,140.08 +342,1,E06000022,2,55.37,120.97,25.84,144.31 +668,1,E06000022,3,61.83,141.13,25.84,161.3 +994,1,E06000022,4,71.06,158.1,25.84,194.19 +2624,2,E06000022,0,54.93,231.2,18.64,358.7 +1320,3,E06000022,1,47.06,89.13,25.84,210.12 +1646,3,E06000022,2,54.44,100.81,25.84,111.41 +1972,3,E06000022,3,61.83,109.29,25.84,126.28 +2298,3,E06000022,4,73.82,130.52,25.84,130.52 +2950,4,E06000022,0,54.93,115.59,18.64,141.81 +4197,5,E06000022,1,48.92,153.86,25.84,167.67 +4833,5,E06000022,2,55.37,192.07,25.84,210.12 +5464,5,E06000022,3,61.83,232.39,25.84,252.55 +6002,5,E06000022,4,71.06,388.39,25.84,423.41 +3276,6,E06000022,0,54.93,436.17,18.64,475.49 +3913,7,E06000022,1,47.06,153.86,25.84,167.67 +5110,7,E06000022,2,54.44,192.07,25.84,210.12 +5690,7,E06000022,3,61.83,232.39,25.84,252.55 +6402,7,E06000022,4,73.82,388.39,25.84,423.41 +3602,8,E06000022,0,54.93,436.17,18.64,475.49 +6536,9,E06000022,1,48.92,192.33,25.84,209.57 +6862,9,E06000022,2,55.37,240.08,25.84,262.64 +7188,9,E06000022,3,61.83,290.5,25.84,315.69 +7514,9,E06000022,4,71.06,485.5,25.84,529.26 +7840,10,E06000022,0,54.93,411.13,18.64,448.39 +17,1,E06000055,1,54.44,118.85,25.84,148.56 +343,1,E06000055,2,64.59,142.18,25.84,167.67 +669,1,E06000055,3,71.06,155.98,25.84,180.4 +995,1,E06000055,4,81.2,170.85,25.84,178.28 +2625,2,E06000055,0,36.26,226.42,18.64,423.05 +1321,3,E06000055,1,49.84,99.75,25.84,131.58 +1647,3,E06000055,2,58.13,117.78,25.84,132.64 +1973,3,E06000055,3,63.67,130.52,25.84,143.25 +2299,3,E06000055,4,71.06,148.56,25.84,159.17 +2951,4,E06000055,0,55.97,135.86,18.64,318.19 +4119,5,E06000055,1,54.44,113.53,25.84,123.09 +4700,5,E06000055,2,64.59,142.18,25.84,154.93 +5419,5,E06000055,3,71.06,170.85,25.84,185.7 +6129,5,E06000055,4,81.2,281.2,25.84,306.68 +3277,6,E06000055,0,36.26,315.82,18.64,344.4 +4236,7,E06000055,1,49.84,113.53,25.84,123.09 +4962,7,E06000055,2,58.13,142.18,25.84,154.93 +5605,7,E06000055,3,63.67,170.85,25.84,185.7 +6267,7,E06000055,4,71.06,281.2,25.84,306.68 +3603,8,E06000055,0,55.97,315.82,18.64,344.4 +6537,9,E06000055,1,54.44,141.94,25.84,153.86 +6863,9,E06000055,2,64.59,177.73,25.84,193.64 +7189,9,E06000055,3,71.06,213.57,25.84,232.15 +7515,9,E06000055,4,81.2,351.51,25.84,383.34 +7841,10,E06000055,0,36.26,254.72,18.64,278.57 +18,1,E09000004,1,65.51,145.37,25.84,197.39 +344,1,E09000004,2,77.51,157.04,25.84,192.07 +670,1,E09000004,3,83.97,166.61,25.84,226.01 +996,1,E09000004,4,101.48,186.77,25.84,251.49 +2626,2,E09000004,0,70.47,317,18.64,502.91 +1322,3,E09000004,1,58.13,118.85,25.84,146.43 +1648,3,E09000004,2,63.67,139.02,25.84,175.09 +1974,3,E09000004,3,71.06,159.17,25.84,200.55 +2300,3,E09000004,4,83.05,259.98,25.84,261.04 +2952,4,E09000004,0,60.1,371.82,18.64,402.8 +3952,5,E09000004,1,65.51,157.04,25.84,172.97 +4567,5,E09000004,2,77.51,192.07,25.84,210.12 +5219,5,E09000004,3,83.97,248.31,25.84,270.61 +5904,5,E09000004,4,101.48,337.44,25.84,368.22 +3278,6,E09000004,0,70.47,378.95,18.64,413.53 +4166,7,E09000004,1,58.13,157.04,25.84,172.97 +4667,7,E09000004,2,63.67,192.07,25.84,210.12 +5319,7,E09000004,3,71.06,248.31,25.84,270.61 +5871,7,E09000004,4,83.05,337.44,25.84,368.22 +3604,8,E09000004,0,60.1,378.95,18.64,413.53 +6538,9,E09000004,1,65.51,196.32,25.84,216.2 +6864,9,E09000004,2,77.51,240.08,25.84,262.64 +7190,9,E09000004,3,83.97,310.37,25.84,338.25 +7516,9,E09000004,4,101.48,421.8,25.84,460.26 +7842,10,E09000004,0,70.47,3164.04,18.64,3451.52 +19,1,E08000025,1,52.6,98.69,25.84,124.15 +345,1,E08000025,2,58.13,116.72,25.84,136.89 +671,1,E08000025,3,69.2,132.64,25.84,160.24 +997,1,E08000025,4,80.28,161.3,25.84,178.28 +2627,2,E08000025,0,39.38,245.49,18.64,382.53 +1323,3,E08000025,1,46.13,88.07,25.84,97.63 +1649,3,E08000025,2,49.84,94.47,25.84,102.94 +1975,3,E08000025,3,59.98,104,25.84,119.9 +2301,3,E08000025,4,68.28,127.34,25.84,127.34 +2953,4,E08000025,0,46.63,107.26,18.64,107.26 +4281,5,E08000025,1,52.6,114.6,25.84,124.15 +4891,5,E08000025,2,58.13,140.08,25.84,151.75 +5522,5,E08000025,3,69.2,147.5,25.84,160.24 +6174,5,E08000025,4,80.28,226.01,25.84,245.12 +3279,6,E08000025,0,39.38,251.45,18.64,275.3 +4502,7,E08000025,1,46.13,114.6,25.84,124.15 +5187,7,E08000025,2,49.84,140.08,25.84,151.75 +5778,7,E08000025,3,59.98,147.5,25.84,160.24 +6439,7,E08000025,4,68.28,226.01,25.84,245.12 +3605,8,E08000025,0,46.63,251.45,18.64,275.3 +6539,9,E08000025,1,52.6,143.25,25.84,155.2 +6865,9,E08000025,2,58.13,175.09,25.84,189.68 +7191,9,E08000025,3,69.2,184.37,25.84,200.32 +7517,9,E08000025,4,80.28,282.54,25.84,306.4 +7843,10,E08000025,0,39.38,466.26,18.64,507.97 +20,1,E07000129,1,51.68,99.75,25.84,122.03 +346,1,E07000129,2,61.83,114.6,25.84,129.46 +672,1,E07000129,3,68.28,126.28,25.84,137.95 +998,1,E07000129,4,75.67,158.1,25.84,166.61 +2628,2,E07000129,0,51.82,240.72,18.64,361.1 +1324,3,E07000129,1,46.13,90.21,25.84,107.19 +1650,3,E07000129,2,52.6,96.56,25.84,108.24 +1976,3,E07000129,3,58.13,104,25.84,118.85 +2302,3,E07000129,4,63.67,122.03,25.84,122.03 +2954,4,E07000129,0,49.74,114.39,18.64,123.94 +4314,5,E07000129,1,51.68,109.29,25.84,118.85 +5010,5,E07000129,2,61.83,125.22,25.84,136.89 +5653,5,E07000129,3,68.28,149.62,25.84,162.37 +6228,5,E07000129,4,75.67,202.69,25.84,220.72 +3280,6,E07000129,0,51.82,227.63,18.64,247.88 +4414,7,E07000129,1,46.13,109.29,25.84,118.85 +5150,7,E07000129,2,52.6,125.22,25.84,136.89 +5811,7,E07000129,3,58.13,149.62,25.84,162.37 +6472,7,E07000129,4,63.67,202.69,25.84,220.72 +3606,8,E07000129,0,49.74,227.63,18.64,247.88 +6540,9,E07000129,1,51.68,136.63,25.84,148.56 +6866,9,E07000129,2,61.83,156.51,25.84,171.11 +7192,9,E07000129,3,68.28,187.02,25.84,202.95 +7518,9,E07000129,4,75.67,253.36,25.84,275.9 +7844,10,E07000129,0,51.82,560.11,18.64,612.24 +21,1,E06000008,1,51.68,93.39,25.84,116.72 +347,1,E06000008,2,59.06,107.19,25.84,134.77 +673,1,E06000008,3,65.51,119.9,25.84,145.37 +999,1,E06000008,4,71.98,133.71,25.84,159.17 +2629,2,E06000008,0,55.97,239.54,18.64,342.01 +1325,3,E06000008,1,43.36,85.94,25.84,100.81 +1651,3,E06000008,2,53.52,94.47,25.84,113.53 +1977,3,E06000008,3,58.13,105.06,25.84,124.15 +2303,3,E06000008,4,55.37,118.85,25.84,133.71 +2955,4,E06000008,0,33.16,469.54,18.64,599.44 +4353,5,E06000008,1,51.68,102.94,25.84,112.47 +4923,5,E06000008,2,59.06,109.29,25.84,118.85 +5566,5,E06000008,3,65.51,130.52,25.84,143.25 +6314,5,E06000008,4,71.98,170.85,25.84,185.7 +3281,6,E06000008,0,55.97,191.88,18.64,208.55 +4465,7,E06000008,1,43.36,102.94,25.84,112.47 +5061,7,E06000008,2,53.52,109.29,25.84,118.85 +5741,7,E06000008,3,58.13,130.52,25.84,143.25 +6365,7,E06000008,4,55.37,170.85,25.84,185.7 +3607,8,E06000008,0,33.16,191.88,18.64,208.55 +6541,9,E06000008,1,51.68,128.67,25.84,140.6 +6867,9,E06000008,2,59.06,136.63,25.84,148.56 +7193,9,E06000008,3,65.51,163.15,25.84,179.06 +7519,9,E06000008,4,71.98,213.57,25.84,232.15 +7845,10,E06000008,0,55.97,269.62,18.64,294.95 +22,1,E06000009,1,51.68,93.39,25.84,116.72 +348,1,E06000009,2,59.06,107.19,25.84,134.77 +674,1,E06000009,3,65.51,119.9,25.84,145.37 +1000,1,E06000009,4,71.98,133.71,25.84,159.17 +2630,2,E06000009,0,55.97,239.54,18.64,342.01 +1326,3,E06000009,1,43.36,85.94,25.84,100.81 +1652,3,E06000009,2,53.52,94.47,25.84,113.53 +1978,3,E06000009,3,58.13,105.06,25.84,124.15 +2304,3,E06000009,4,55.37,118.85,25.84,133.71 +2956,4,E06000009,0,33.16,469.54,18.64,599.44 +4354,5,E06000009,1,51.68,98.69,25.84,109.29 +4924,5,E06000009,2,59.06,125.22,25.84,136.89 +5567,5,E06000009,3,65.51,143.25,25.84,155.98 +6315,5,E06000009,4,71.98,181.46,25.84,198.45 +3282,6,E06000009,0,55.97,203.78,18.64,222.84 +4466,7,E06000009,1,43.36,98.69,25.84,109.29 +5062,7,E06000009,2,53.52,125.22,25.84,136.89 +5742,7,E06000009,3,58.13,143.25,25.84,155.98 +6366,7,E06000009,4,55.37,181.46,25.84,198.45 +3608,8,E06000009,0,33.16,203.78,18.64,222.84 +6542,9,E06000009,1,51.68,123.35,25.84,136.63 +6868,9,E06000009,2,59.06,156.51,25.84,171.11 +7194,9,E06000009,3,65.51,179.06,25.84,194.98 +7520,9,E06000009,4,71.98,226.84,25.84,248.03 +7846,10,E06000009,0,55.97,300.91,18.64,329.21 +23,1,E07000033,1,51.68,99.75,25.84,122.03 +349,1,E07000033,2,61.83,114.6,25.84,129.46 +675,1,E07000033,3,68.28,126.28,25.84,137.95 +1001,1,E07000033,4,75.67,158.1,25.84,166.61 +2631,2,E07000033,0,51.82,240.72,18.64,361.1 +1327,3,E07000033,1,46.13,90.21,25.84,107.19 +1653,3,E07000033,2,52.6,96.56,25.84,108.24 +1979,3,E07000033,3,58.13,104,25.84,118.85 +2305,3,E07000033,4,63.67,122.03,25.84,122.03 +2957,4,E07000033,0,49.74,114.39,18.64,123.94 +4315,5,E07000033,1,51.68,90.21,25.84,97.63 +5011,5,E07000033,2,61.83,102.94,25.84,112.47 +5654,5,E07000033,3,68.28,119.9,25.84,130.52 +6229,5,E07000033,4,75.67,170.85,25.84,185.7 +3283,6,E07000033,0,51.82,191.88,18.64,208.55 +4415,7,E07000033,1,46.13,90.21,25.84,97.63 +5151,7,E07000033,2,52.6,102.94,25.84,112.47 +5812,7,E07000033,3,58.13,119.9,25.84,130.52 +6473,7,E07000033,4,63.67,170.85,25.84,185.7 +3609,8,E07000033,0,49.74,191.88,18.64,208.55 +6543,9,E07000033,1,51.68,112.76,25.84,122.03 +6869,9,E07000033,2,61.83,128.67,25.84,140.6 +7195,9,E07000033,3,68.28,149.9,25.84,163.15 +7521,9,E07000033,4,75.67,213.57,25.84,232.15 +7847,10,E07000033,0,51.82,308.35,18.64,336.65 +24,1,E08000001,1,51.68,93.39,25.84,116.72 +350,1,E08000001,2,59.06,107.19,25.84,134.77 +676,1,E08000001,3,65.51,119.9,25.84,145.37 +1002,1,E08000001,4,71.98,133.71,25.84,159.17 +2632,2,E08000001,0,55.97,239.54,18.64,342.01 +1328,3,E08000001,1,43.36,85.94,25.84,100.81 +1654,3,E08000001,2,53.52,94.47,25.84,113.53 +1980,3,E08000001,3,58.13,105.06,25.84,124.15 +2306,3,E08000001,4,55.37,118.85,25.84,133.71 +2958,4,E08000001,0,33.16,469.54,18.64,599.44 +4355,5,E08000001,1,51.68,92.33,25.84,99.75 +4925,5,E08000001,2,59.06,110.36,25.84,119.9 +5568,5,E08000001,3,65.51,134.77,25.84,147.5 +6316,5,E08000001,4,71.98,192.07,25.84,210.12 +3284,6,E08000001,0,55.97,215.7,18.64,235.95 +4467,7,E08000001,1,43.36,92.33,25.84,99.75 +5063,7,E08000001,2,53.52,110.36,25.84,119.9 +5743,7,E08000001,3,58.13,134.77,25.84,147.5 +6367,7,E08000001,4,55.37,192.07,25.84,210.12 +3610,8,E08000001,0,33.16,215.7,18.64,235.95 +6544,9,E08000001,1,51.68,115.39,25.84,124.69 +6870,9,E08000001,2,59.06,137.95,25.84,149.9 +7196,9,E08000001,3,65.51,168.46,25.84,184.37 +7522,9,E08000001,4,71.98,240.08,25.84,262.64 +7848,10,E08000001,0,55.97,552.67,18.64,601.83 +25,1,E07000136,1,51.68,99.75,25.84,122.03 +351,1,E07000136,2,61.83,114.6,25.84,129.46 +677,1,E07000136,3,68.28,126.28,25.84,137.95 +1003,1,E07000136,4,75.67,158.1,25.84,166.61 +2633,2,E07000136,0,51.82,240.72,18.64,361.1 +1329,3,E07000136,1,46.13,90.21,25.84,107.19 +1655,3,E07000136,2,52.6,96.56,25.84,108.24 +1981,3,E07000136,3,58.13,104,25.84,118.85 +2307,3,E07000136,4,63.67,122.03,25.84,122.03 +2959,4,E07000136,0,49.74,114.39,18.64,123.94 +4316,5,E07000136,1,51.68,97.63,25.84,107.19 +5012,5,E07000136,2,61.83,119.9,25.84,130.52 +5655,5,E07000136,3,68.28,134.77,25.84,147.5 +6230,5,E07000136,4,75.67,177.21,25.84,192.07 +3285,6,E07000136,0,51.82,199.03,18.64,215.7 +4416,7,E07000136,1,46.13,97.63,25.84,107.19 +5152,7,E07000136,2,52.6,119.9,25.84,130.52 +5813,7,E07000136,3,58.13,134.77,25.84,147.5 +6474,7,E07000136,4,63.67,177.21,25.84,192.07 +3611,8,E07000136,0,49.74,199.03,18.64,215.7 +6545,9,E07000136,1,51.68,122.03,25.84,133.98 +6871,9,E07000136,2,61.83,149.9,25.84,163.15 +7197,9,E07000136,3,68.28,168.46,25.84,184.37 +7523,9,E07000136,4,75.67,221.51,25.84,240.08 +7849,10,E07000136,0,51.82,567.58,18.64,618.2 +59,1,E06000058,1,48.92,107.19,25.84,140.08 +385,1,E06000058,2,55.37,120.97,25.84,144.31 +711,1,E06000058,3,61.83,141.13,25.84,161.3 +1037,1,E06000058,4,71.06,158.1,25.84,194.19 +2667,2,E06000058,0,54.93,231.2,18.64,358.7 +1363,3,E06000058,1,47.06,89.13,25.84,210.12 +1689,3,E06000058,2,54.44,100.81,25.84,111.41 +2015,3,E06000058,3,61.83,109.29,25.84,126.28 +2341,3,E06000058,4,73.82,130.52,25.84,130.52 +2993,4,E06000058,0,54.93,115.59,18.64,141.81 +4201,5,E06000058,1,48.92,136.89,25.84,148.56 +4837,5,E06000058,2,55.37,170.85,25.84,185.7 +5468,5,E06000058,3,61.83,226.01,25.84,245.12 +6006,5,E06000058,4,71.06,359.73,25.84,392.62 +3319,6,E06000058,0,54.93,403.99,18.64,440.94 +3917,7,E06000058,1,47.06,136.89,25.84,148.56 +5114,7,E06000058,2,54.44,170.85,25.84,185.7 +5694,7,E06000058,3,61.83,226.01,25.84,245.12 +6406,7,E06000058,4,73.82,359.73,25.84,392.62 +3645,8,E06000058,0,54.93,403.99,18.64,440.94 +6579,9,E06000058,1,48.92,171.11,25.84,185.69 +6905,9,E06000058,2,55.37,213.57,25.84,232.15 +7231,9,E06000058,3,61.83,282.54,25.84,306.4 +7557,9,E06000058,4,71.06,449.67,25.84,490.79 +7883,10,E06000058,0,54.93,530.31,18.64,578 +27,1,E06000036,1,57.21,123.09,25.84,176.15 +353,1,E06000036,2,71.06,146.43,25.84,186.77 +679,1,E06000036,3,81.2,161.3,25.84,203.75 +1005,1,E06000036,4,89.52,178.28,25.84,221.77 +2635,2,E06000036,0,62.17,268.13,18.64,344.4 +1331,3,E06000036,1,51.68,115.66,25.84,159.17 +1657,3,E06000036,2,62.75,129.46,25.84,145.37 +1983,3,E06000036,3,68.28,149.62,25.84,185.7 +2309,3,E06000036,4,72.9,184.64,25.84,194.19 +2961,4,E06000036,0,48.71,195.45,18.64,204.96 +3988,5,E06000036,1,57.21,157.04,25.84,172.97 +4603,5,E06000036,2,71.06,198.45,25.84,215.41 +5255,5,E06000036,3,81.2,269.54,25.84,293.94 +5940,5,E06000036,4,89.52,494.49,25.84,539.06 +3287,6,E06000036,0,62.17,555.35,18.64,605.39 +4055,7,E06000036,1,51.68,157.04,25.84,172.97 +4750,7,E06000036,2,62.75,198.45,25.84,215.41 +5355,7,E06000036,3,68.28,269.54,25.84,293.94 +6044,7,E06000036,4,72.9,494.49,25.84,539.06 +3613,8,E06000036,0,48.71,555.35,18.64,605.39 +6547,9,E06000036,1,57.21,196.32,25.84,216.2 +6873,9,E06000036,2,71.06,248.03,25.84,269.26 +7199,9,E06000036,3,81.2,336.93,25.84,367.42 +7525,9,E06000036,4,89.52,618.12,25.84,673.83 +7851,10,E06000036,0,62.17,788.01,18.64,858.05 +28,1,E08000032,1,50.76,91.27,25.84,113.53 +354,1,E08000032,2,58.13,108.24,25.84,140.08 +680,1,E08000032,3,62.75,119.9,25.84,161.3 +1006,1,E08000032,4,72.9,144.31,25.84,178.28 +2636,2,E08000032,0,52.86,234.75,18.64,322.95 +1332,3,E08000032,1,46.13,81.71,25.84,92.33 +1658,3,E08000032,2,52.6,112.47,25.84,144.31 +1984,3,E08000032,3,56.29,104,25.84,113.53 +2310,3,E08000032,4,63.67,120.97,25.84,175.09 +2962,4,E08000032,0,51.82,160.88,18.64,190.67 +4391,5,E08000032,1,50.76,97.63,25.84,107.19 +4871,5,E08000032,2,58.13,114.6,25.84,124.15 +5502,5,E08000032,3,62.75,134.77,25.84,147.5 +6107,5,E08000032,4,72.9,186.77,25.84,203.75 +3288,6,E08000032,0,52.86,209.73,18.64,228.81 +4545,7,E08000032,1,46.13,97.63,25.84,107.19 +4813,7,E08000032,2,52.6,114.6,25.84,124.15 +5849,7,E08000032,3,56.29,134.77,25.84,147.5 +6205,7,E08000032,4,63.67,186.77,25.84,203.75 +3614,8,E08000032,0,51.82,209.73,18.64,228.81 +6548,9,E08000032,1,50.76,122.03,25.84,133.98 +6874,9,E08000032,2,52.6,143.25,25.84,155.2 +7200,9,E08000032,3,62.75,168.46,25.84,184.37 +7526,9,E08000032,4,72.9,233.46,25.84,254.69 +7852,10,E08000032,0,52.86,788.01,18.64,858.05 +29,1,E07000067,1,54.44,118.85,25.84,148.56 +355,1,E07000067,2,64.59,142.18,25.84,167.67 +681,1,E07000067,3,71.06,155.98,25.84,180.4 +1007,1,E07000067,4,81.2,170.85,25.84,178.28 +2637,2,E07000067,0,36.26,226.42,18.64,423.05 +1333,3,E07000067,1,49.84,99.75,25.84,131.58 +1659,3,E07000067,2,58.13,117.78,25.84,132.64 +1985,3,E07000067,3,63.67,130.52,25.84,143.25 +2311,3,E07000067,4,71.06,148.56,25.84,159.17 +2963,4,E07000067,0,55.97,135.86,18.64,318.19 +4120,5,E07000067,1,54.44,119.9,25.84,130.52 +4701,5,E07000067,2,64.59,147.5,25.84,160.24 +5420,5,E07000067,3,71.06,181.46,25.84,198.45 +6130,5,E07000067,4,81.2,281.2,25.84,306.68 +3289,6,E07000067,0,36.26,315.82,18.64,344.4 +4237,7,E07000067,1,49.84,119.9,25.84,130.52 +4963,7,E07000067,2,58.13,147.5,25.84,160.24 +5606,7,E07000067,3,63.67,181.46,25.84,198.45 +6268,7,E07000067,4,71.06,281.2,25.84,306.68 +3615,8,E07000067,0,55.97,315.82,18.64,344.4 +6549,9,E07000067,1,54.44,149.9,25.84,163.15 +6875,9,E07000067,2,64.59,184.37,25.84,200.32 +7201,9,E07000067,3,71.06,226.84,25.84,248.03 +7527,9,E07000067,4,81.2,351.51,25.84,383.34 +7853,10,E07000067,0,36.26,473.7,18.64,516.92 +30,1,E07000143,1,54.44,118.85,25.84,148.56 +356,1,E07000143,2,64.59,142.18,25.84,167.67 +682,1,E07000143,3,71.06,155.98,25.84,180.4 +1008,1,E07000143,4,81.2,170.85,25.84,178.28 +2638,2,E07000143,0,36.26,226.42,18.64,423.05 +1334,3,E07000143,1,49.84,99.75,25.84,131.58 +1660,3,E07000143,2,58.13,117.78,25.84,132.64 +1986,3,E07000143,3,63.67,130.52,25.84,143.25 +2312,3,E07000143,4,71.06,148.56,25.84,159.17 +2964,4,E07000143,0,55.97,135.86,18.64,318.19 +4121,5,E07000143,1,54.44,100.81,25.84,110.36 +4702,5,E07000143,2,64.59,125.22,25.84,136.89 +5421,5,E07000143,3,71.06,147.5,25.84,160.24 +6131,5,E07000143,4,81.2,237.69,25.84,258.92 +3290,6,E07000143,0,36.26,266.94,18.64,290.78 +4238,7,E07000143,1,49.84,100.81,25.84,110.36 +4964,7,E07000143,2,58.13,125.22,25.84,136.89 +5607,7,E07000143,3,63.67,147.5,25.84,160.24 +6269,7,E07000143,4,71.06,237.69,25.84,258.92 +3616,8,E07000143,0,55.97,266.94,18.64,290.78 +6550,9,E07000143,1,54.44,126.02,25.84,137.95 +6876,9,E07000143,2,64.59,156.51,25.84,171.11 +7202,9,E07000143,3,71.06,184.37,25.84,200.32 +7528,9,E07000143,4,81.2,297.12,25.84,323.65 +7854,10,E07000143,0,36.26,300.91,18.64,329.21 +31,1,E09000005,1,65.51,145.37,25.84,192.07 +357,1,E09000005,2,77.51,157.04,25.84,197.39 +683,1,E09000005,3,83.97,166.61,25.84,226.01 +1009,1,E09000005,4,101.48,186.77,25.84,251.49 +2639,2,E09000005,0,70.47,317,18.64,502.91 +1335,3,E09000005,1,58.13,118.85,25.84,146.43 +1661,3,E09000005,2,63.67,139.02,25.84,175.09 +1987,3,E09000005,3,71.06,159.17,25.84,200.55 +2313,3,E09000005,4,83.05,259.98,25.84,261.04 +2965,4,E09000005,0,60.1,371.82,18.64,402.8 +3953,5,E09000005,1,65.51,273.78,25.84,298.19 +4568,5,E09000005,2,77.51,355.49,25.84,388.39 +5220,5,E09000005,3,83.97,463.73,25.84,504.06 +5905,5,E09000005,4,101.48,564.54,25.84,615.48 +3291,6,E09000005,0,70.47,633.99,18.64,691.2 +4167,7,E09000005,1,58.13,273.78,25.84,298.19 +4668,7,E09000005,2,63.67,355.49,25.84,388.39 +5320,7,E09000005,3,71.06,463.73,25.84,504.06 +5872,7,E09000005,4,83.05,564.54,25.84,615.48 +3617,8,E09000005,0,60.1,633.99,18.64,691.2 +6551,9,E09000005,1,65.51,342.23,25.84,372.74 +6877,9,E09000005,2,77.51,444.36,25.84,485.5 +7203,9,E09000005,3,83.97,579.66,25.84,630.08 +7529,9,E09000005,4,101.48,705.66,25.84,769.35 +7855,10,E09000005,0,70.47,941.46,18.64,1027.87 +32,1,E07000068,1,54.44,118.85,25.84,148.56 +358,1,E07000068,2,64.59,142.18,25.84,167.67 +684,1,E07000068,3,71.06,155.98,25.84,180.4 +1010,1,E07000068,4,81.2,170.85,25.84,178.28 +2640,2,E07000068,0,36.26,226.42,18.64,423.05 +1336,3,E07000068,1,49.84,99.75,25.84,131.58 +1662,3,E07000068,2,58.13,117.78,25.84,132.64 +1988,3,E07000068,3,63.67,130.52,25.84,143.25 +2314,3,E07000068,4,71.06,148.56,25.84,159.17 +2966,4,E07000068,0,55.97,135.86,18.64,318.19 +4122,5,E07000068,1,54.44,180.4,25.84,197.39 +4703,5,E07000068,2,64.59,223.9,25.84,245.12 +5422,5,E07000068,3,71.06,316.23,25.84,344.88 +6132,5,E07000068,4,81.2,539.06,25.84,587.88 +3292,6,E07000068,0,36.26,605.39,18.64,660.22 +4239,7,E07000068,1,49.84,180.4,25.84,197.39 +4965,7,E07000068,2,58.13,223.9,25.84,245.12 +5608,7,E07000068,3,63.67,316.23,25.84,344.88 +6270,7,E07000068,4,71.06,539.06,25.84,587.88 +3618,8,E07000068,0,55.97,605.39,18.64,660.22 +6552,9,E07000068,1,54.44,225.52,25.84,246.73 +6878,9,E07000068,2,64.59,279.88,25.84,306.4 +7204,9,E07000068,3,71.06,395.3,25.84,431.1 +7530,9,E07000068,4,81.2,673.83,25.84,734.87 +7856,10,E07000068,0,36.26,499.04,18.64,545.21 +33,1,E06000043,1,57.21,123.09,25.84,176.15 +359,1,E06000043,2,71.06,146.43,25.84,186.77 +685,1,E06000043,3,81.2,161.3,25.84,203.75 +1011,1,E06000043,4,89.52,178.28,25.84,221.77 +2641,2,E06000043,0,62.17,268.13,18.64,344.4 +1337,3,E06000043,1,51.68,115.66,25.84,159.17 +1663,3,E06000043,2,62.75,129.46,25.84,145.37 +1989,3,E06000043,3,68.28,149.62,25.84,185.7 +2315,3,E06000043,4,72.9,184.64,25.84,194.19 +2967,4,E06000043,0,48.71,195.45,18.64,204.96 +3989,5,E06000043,1,57.21,176.15,25.84,191.01 +4604,5,E06000043,2,71.06,248.31,25.84,270.61 +5256,5,E06000043,3,81.2,304.55,25.84,332.14 +5941,5,E06000043,4,89.52,449.93,25.84,490.26 +3293,6,E06000043,0,62.17,505.29,18.64,550.58 +4056,7,E06000043,1,51.68,176.15,25.84,191.01 +4751,7,E06000043,2,62.75,248.31,25.84,270.61 +5356,7,E06000043,3,68.28,304.55,25.84,332.14 +6045,7,E06000043,4,72.9,449.93,25.84,490.26 +3619,8,E06000043,0,48.71,505.29,18.64,550.58 +6553,9,E06000043,1,57.21,220.21,25.84,238.77 +6879,9,E06000043,2,71.06,310.37,25.84,338.25 +7205,9,E06000043,3,81.2,380.68,25.84,415.17 +7531,9,E06000043,4,89.52,562.41,25.84,612.82 +7857,10,E06000043,0,62.17,269.62,18.64,294.95 +34,1,E06000023,1,48.92,107.19,25.84,140.08 +360,1,E06000023,2,55.37,120.97,25.84,144.31 +686,1,E06000023,3,61.83,141.13,25.84,161.3 +1012,1,E06000023,4,71.06,158.1,25.84,194.19 +2642,2,E06000023,0,54.93,231.2,18.64,358.7 +1338,3,E06000023,1,47.06,89.13,25.84,210.12 +1664,3,E06000023,2,54.44,100.81,25.84,111.41 +1990,3,E06000023,3,61.83,109.29,25.84,126.28 +2316,3,E06000023,4,73.82,130.52,25.84,130.52 +2968,4,E06000023,0,54.93,115.59,18.64,141.81 +4199,5,E06000023,1,48.92,147.5,25.84,160.24 +4835,5,E06000023,2,55.37,181.46,25.84,198.45 +5466,5,E06000023,3,61.83,226.01,25.84,245.12 +6004,5,E06000023,4,71.06,415.98,25.84,453.12 +3294,6,E06000023,0,54.93,467.14,18.64,508.85 +3915,7,E06000023,1,47.06,147.5,25.84,160.24 +5112,7,E06000023,2,54.44,181.46,25.84,198.45 +5692,7,E06000023,3,61.83,226.01,25.84,245.12 +6404,7,E06000023,4,73.82,415.98,25.84,453.12 +3620,8,E06000023,0,54.93,467.14,18.64,508.85 +6554,9,E06000023,1,48.92,184.37,25.84,200.32 +6880,9,E06000023,2,55.37,226.84,25.84,248.03 +7206,9,E06000023,3,61.83,282.54,25.84,306.4 +7532,9,E06000023,4,71.06,519.97,25.84,566.39 +7858,10,E06000023,0,54.93,269.62,18.64,294.95 +35,1,E07000144,1,54.44,118.85,25.84,148.56 +361,1,E07000144,2,64.59,142.18,25.84,167.67 +687,1,E07000144,3,71.06,155.98,25.84,180.4 +1013,1,E07000144,4,81.2,170.85,25.84,178.28 +2643,2,E07000144,0,36.26,226.42,18.64,423.05 +1339,3,E07000144,1,49.84,99.75,25.84,131.58 +1665,3,E07000144,2,58.13,117.78,25.84,132.64 +1991,3,E07000144,3,63.67,130.52,25.84,143.25 +2317,3,E07000144,4,71.06,148.56,25.84,159.17 +2969,4,E07000144,0,55.97,135.86,18.64,318.19 +4123,5,E07000144,1,54.44,108.24,25.84,117.78 +4704,5,E07000144,2,64.59,130.52,25.84,143.25 +5423,5,E07000144,3,71.06,158.1,25.84,172.97 +6133,5,E07000144,4,81.2,214.35,25.84,234.52 +3295,6,E07000144,0,36.26,240.72,18.64,263.37 +4240,7,E07000144,1,49.84,108.24,25.84,117.78 +4966,7,E07000144,2,58.13,130.52,25.84,143.25 +5609,7,E07000144,3,63.67,158.1,25.84,172.97 +6271,7,E07000144,4,71.06,214.35,25.84,234.52 +3621,8,E07000144,0,55.97,240.72,18.64,263.37 +6555,9,E07000144,1,54.44,135.3,25.84,147.23 +6881,9,E07000144,2,64.59,163.15,25.84,179.06 +7207,9,E07000144,3,71.06,197.62,25.84,216.2 +7533,9,E07000144,4,81.2,267.95,25.84,293.15 +7859,10,E07000144,0,36.26,552.67,18.64,601.83 +36,1,E09000006,1,65.51,145.37,25.84,197.39 +362,1,E09000006,2,77.51,157.04,25.84,192.07 +688,1,E09000006,3,83.97,166.61,25.84,226.01 +1014,1,E09000006,4,101.48,186.77,25.84,251.49 +2644,2,E09000006,0,70.47,317,18.64,502.91 +1340,3,E09000006,1,58.13,118.85,25.84,146.43 +1666,3,E09000006,2,63.67,139.02,25.84,175.09 +1992,3,E09000006,3,71.06,159.17,25.84,200.55 +2318,3,E09000006,4,83.05,259.98,25.84,261.04 +2970,4,E09000006,0,60.1,371.82,18.64,402.8 +3954,5,E09000006,1,65.51,181.46,25.84,198.45 +4569,5,E09000006,2,77.51,237.69,25.84,258.92 +5221,5,E09000006,3,83.97,292.87,25.84,319.41 +5906,5,E09000006,4,101.48,449.93,25.84,490.26 +3296,6,E09000006,0,70.47,505.29,18.64,550.58 +4168,7,E09000006,1,58.13,181.46,25.84,198.45 +4669,7,E09000006,2,63.67,237.69,25.84,258.92 +5321,7,E09000006,3,71.06,292.87,25.84,319.41 +5873,7,E09000006,4,83.05,449.93,25.84,490.26 +3622,8,E09000006,0,60.1,505.29,18.64,550.58 +6556,9,E09000006,1,65.51,226.84,25.84,248.03 +6882,9,E09000006,2,77.51,297.12,25.84,323.65 +7208,9,E09000006,3,83.97,366.11,25.84,399.27 +7534,9,E09000006,4,101.48,562.41,25.84,612.82 +7860,10,E09000006,0,70.47,552.67,18.64,601.83 +37,1,E07000234,1,52.6,98.69,25.84,124.15 +363,1,E07000234,2,58.13,116.72,25.84,136.89 +689,1,E07000234,3,69.2,132.64,25.84,160.24 +1015,1,E07000234,4,80.28,161.3,25.84,178.28 +2645,2,E07000234,0,39.38,245.49,18.64,382.53 +1341,3,E07000234,1,46.13,88.07,25.84,97.63 +1667,3,E07000234,2,49.84,94.47,25.84,102.94 +1993,3,E07000234,3,59.98,104,25.84,119.9 +2319,3,E07000234,4,68.28,127.34,25.84,127.34 +2971,4,E07000234,0,46.63,107.26,18.64,107.26 +4282,5,E07000234,1,52.6,116.72,25.84,127.34 +4892,5,E07000234,2,58.13,134.77,25.84,147.5 +5523,5,E07000234,3,69.2,176.15,25.84,191.01 +6175,5,E07000234,4,80.28,281.2,25.84,306.68 +3297,6,E07000234,0,39.38,315.82,18.64,344.4 +4503,7,E07000234,1,46.13,116.72,25.84,127.34 +5188,7,E07000234,2,49.84,134.77,25.84,147.5 +5779,7,E07000234,3,59.98,176.15,25.84,191.01 +6440,7,E07000234,4,68.28,281.2,25.84,306.68 +3623,8,E07000234,0,46.63,315.82,18.64,344.4 +6557,9,E07000234,1,52.6,145.91,25.84,159.17 +6883,9,E07000234,2,58.13,168.46,25.84,184.37 +7209,9,E07000234,3,69.2,220.21,25.84,238.77 +7535,9,E07000234,4,80.28,351.51,25.84,383.34 +7861,10,E07000234,0,39.38,741.86,18.64,807.38 +38,1,E07000095,1,54.44,118.85,25.84,148.56 +364,1,E07000095,2,64.59,142.18,25.84,167.67 +690,1,E07000095,3,71.06,155.98,25.84,180.4 +1016,1,E07000095,4,81.2,170.85,25.84,178.28 +2646,2,E07000095,0,36.26,226.42,18.64,423.05 +1342,3,E07000095,1,49.84,99.75,25.84,131.58 +1668,3,E07000095,2,58.13,117.78,25.84,132.64 +1994,3,E07000095,3,63.67,130.52,25.84,143.25 +2320,3,E07000095,4,71.06,148.56,25.84,159.17 +2972,4,E07000095,0,55.97,135.86,18.64,318.19 +4124,5,E07000095,1,54.44,153.86,25.84,167.67 +4705,5,E07000095,2,64.59,192.07,25.84,210.12 +5424,5,E07000095,3,71.06,259.98,25.84,282.26 +6134,5,E07000095,4,81.2,414.92,25.84,450.99 +3298,6,E07000095,0,36.26,464.76,18.64,506.47 +4241,7,E07000095,1,49.84,153.86,25.84,167.67 +4967,7,E07000095,2,58.13,192.07,25.84,210.12 +5610,7,E07000095,3,63.67,259.98,25.84,282.26 +6272,7,E07000095,4,71.06,414.92,25.84,450.99 +3624,8,E07000095,0,55.97,464.76,18.64,506.47 +6558,9,E07000095,1,54.44,192.33,25.84,209.57 +6884,9,E07000095,2,64.59,240.08,25.84,262.64 +7210,9,E07000095,3,71.06,324.98,25.84,352.84 +7536,9,E07000095,4,81.2,518.65,25.84,563.74 +7862,10,E07000095,0,36.26,503.5,18.64,549.69 +39,1,E07000172,1,51.68,99.75,25.84,122.03 +365,1,E07000172,2,61.83,114.6,25.84,129.46 +691,1,E07000172,3,68.28,126.28,25.84,137.95 +1017,1,E07000172,4,75.67,158.1,25.84,166.61 +2647,2,E07000172,0,51.82,240.72,18.64,361.1 +1343,3,E07000172,1,46.13,90.21,25.84,107.19 +1669,3,E07000172,2,52.6,96.56,25.84,108.24 +1995,3,E07000172,3,58.13,104,25.84,118.85 +2321,3,E07000172,4,63.67,122.03,25.84,122.03 +2973,4,E07000172,0,49.74,114.39,18.64,123.94 +4317,5,E07000172,1,51.68,102.94,25.84,112.47 +5013,5,E07000172,2,61.83,125.22,25.84,136.89 +5656,5,E07000172,3,68.28,136.89,25.84,148.56 +6231,5,E07000172,4,75.67,196.32,25.84,213.29 +3299,6,E07000172,0,51.82,220.48,18.64,239.54 +4417,7,E07000172,1,46.13,102.94,25.84,112.47 +5153,7,E07000172,2,52.6,125.22,25.84,136.89 +5814,7,E07000172,3,58.13,136.89,25.84,148.56 +6475,7,E07000172,4,63.67,196.32,25.84,213.29 +3625,8,E07000172,0,49.74,220.48,18.64,239.54 +6559,9,E07000172,1,51.68,128.67,25.84,140.6 +6885,9,E07000172,2,61.83,156.51,25.84,171.11 +7211,9,E07000172,3,68.28,171.11,25.84,185.69 +7537,9,E07000172,4,75.67,245.4,25.84,266.62 +7863,10,E07000172,0,51.82,750.78,18.64,819.3 +323,1,E06000060,1,58.37,109.21,26.36,156.29 +649,1,E06000060,2,72.5,129.92,26.36,165.71 +975,1,E06000060,3,82.85,143.11,26.36,180.77 +1301,1,E06000060,4,91.33,158.17,26.36,196.76 +2931,2,E06000060,0,61.06,229.01,18.32,294.16 +1627,3,E06000060,1,52.73,102.61,26.36,141.21 +1953,3,E06000060,2,64.02,114.86,26.36,128.98 +2279,3,E06000060,3,69.67,132.75,26.36,164.76 +2605,3,E06000060,4,74.38,163.82,26.36,172.29 +3257,4,E06000060,0,47.84,166.94,18.32,175.06 +4049,5,E06000060,1,58.37,170.41,26.36,186.42 +4664,5,E06000060,2,72.5,230.66,26.36,250.43 +5316,5,E06000060,3,82.85,329.52,26.36,359.65 +6001,5,E06000060,4,91.33,695.75,26.36,759.78 +3583,6,E06000060,0,61.06,752.21,18.32,821.43 +4116,7,E06000060,1,52.73,170.41,26.36,186.42 +4811,7,E06000060,2,64.02,230.66,26.36,250.43 +5416,7,E06000060,3,69.67,329.52,26.36,359.65 +6105,7,E06000060,4,74.38,695.75,26.36,759.78 +3909,8,E06000060,0,47.84,752.21,18.32,821.43 +6843,9,E06000060,1,58.37,213.01,26.36,233.02 +7169,9,E06000060,2,72.5,288.33,26.36,313.05 +7495,9,E06000060,3,82.85,411.9,26.36,449.56 +7821,9,E06000060,4,91.33,869.7,26.36,949.72 +8147,10,E06000060,0,61.06,269.62,18.64,294.95 +40,1,E07000117,1,51.68,93.39,25.84,116.72 +366,1,E07000117,2,59.06,107.19,25.84,134.77 +692,1,E07000117,3,65.51,119.9,25.84,145.37 +1018,1,E07000117,4,71.98,133.71,25.84,159.17 +2648,2,E07000117,0,55.97,239.54,18.64,342.01 +1344,3,E07000117,1,43.36,85.94,25.84,100.81 +1670,3,E07000117,2,53.52,94.47,25.84,113.53 +1996,3,E07000117,3,58.13,105.06,25.84,124.15 +2322,3,E07000117,4,55.37,118.85,25.84,133.71 +2974,4,E07000117,0,33.16,469.54,18.64,599.44 +4356,5,E07000117,1,51.68,81.71,25.84,88.07 +4926,5,E07000117,2,59.06,97.63,25.84,107.19 +5569,5,E07000117,3,65.51,129.46,25.84,141.13 +6317,5,E07000117,4,71.98,185.7,25.84,202.69 +3300,6,E07000117,0,55.97,207.36,18.64,227.63 +4468,7,E07000117,1,43.36,81.71,25.84,88.07 +5064,7,E07000117,2,53.52,97.63,25.84,107.19 +5744,7,E07000117,3,58.13,129.46,25.84,141.13 +6368,7,E07000117,4,55.37,185.7,25.84,202.69 +3626,8,E07000117,0,33.16,207.36,18.64,227.63 +6560,9,E07000117,1,51.68,102.16,25.84,110.1 +6886,9,E07000117,2,59.06,122.03,25.84,133.98 +7212,9,E07000117,3,65.51,161.83,25.84,176.42 +7538,9,E07000117,4,71.98,232.15,25.84,253.36 +7864,10,E07000117,0,55.97,305.36,18.64,333.68 +41,1,E08000002,1,51.68,93.39,25.84,116.72 +367,1,E08000002,2,59.06,107.19,25.84,134.77 +693,1,E08000002,3,65.51,119.9,25.84,145.37 +1019,1,E08000002,4,71.98,133.71,25.84,159.17 +2649,2,E08000002,0,55.97,239.54,18.64,342.01 +1345,3,E08000002,1,43.36,85.94,25.84,100.81 +1671,3,E08000002,2,53.52,94.47,25.84,113.53 +1997,3,E08000002,3,58.13,105.06,25.84,124.15 +2323,3,E08000002,4,55.37,118.85,25.84,133.71 +2975,4,E08000002,0,33.16,469.54,18.64,599.44 +4357,5,E08000002,1,51.68,97.63,25.84,107.19 +4927,5,E08000002,2,59.06,125.22,25.84,136.89 +5570,5,E08000002,3,65.51,147.5,25.84,160.24 +6318,5,E08000002,4,71.98,203.75,25.84,221.77 +3301,6,E08000002,0,55.97,228.81,18.64,249.07 +4469,7,E08000002,1,43.36,97.63,25.84,107.19 +5065,7,E08000002,2,53.52,125.22,25.84,136.89 +5745,7,E08000002,3,58.13,147.5,25.84,160.24 +6369,7,E08000002,4,55.37,203.75,25.84,221.77 +3627,8,E08000002,0,33.16,228.81,18.64,249.07 +6561,9,E08000002,1,51.68,122.03,25.84,133.98 +6887,9,E08000002,2,59.06,156.51,25.84,171.11 +7213,9,E08000002,3,65.51,184.37,25.84,200.32 +7539,9,E08000002,4,71.98,254.69,25.84,277.23 +7865,10,E08000002,0,55.97,615.22,18.64,670.34 +42,1,E08000033,1,50.76,91.27,25.84,113.53 +368,1,E08000033,2,58.13,108.24,25.84,140.08 +694,1,E08000033,3,62.75,119.9,25.84,161.3 +1020,1,E08000033,4,72.9,144.31,25.84,178.28 +2650,2,E08000033,0,52.86,234.75,18.64,322.95 +1346,3,E08000033,1,46.13,81.71,25.84,92.33 +1672,3,E08000033,2,52.6,112.47,25.84,144.31 +1998,3,E08000033,3,56.29,104,25.84,113.53 +2324,3,E08000033,4,63.67,120.97,25.84,175.09 +2976,4,E08000033,0,51.82,160.88,18.64,190.67 +4392,5,E08000033,1,50.76,97.63,25.84,107.19 +4872,5,E08000033,2,58.13,113.53,25.84,123.09 +5503,5,E08000033,3,62.75,136.89,25.84,148.56 +6108,5,E08000033,4,72.9,202.69,25.84,220.72 +3302,6,E08000033,0,52.86,227.63,18.64,247.88 +4546,7,E08000033,1,46.13,97.63,25.84,107.19 +4814,7,E08000033,2,52.6,113.53,25.84,123.09 +5850,7,E08000033,3,56.29,136.89,25.84,148.56 +6206,7,E08000033,4,63.67,202.69,25.84,220.72 +3628,8,E08000033,0,51.82,227.63,18.64,247.88 +6562,9,E08000033,1,50.76,122.03,25.84,133.98 +6888,9,E08000033,2,52.6,141.94,25.84,153.86 +7214,9,E08000033,3,62.75,171.11,25.84,185.69 +7540,9,E08000033,4,72.9,253.36,25.84,275.9 +7866,10,E08000033,0,52.86,411.13,18.64,448.39 +43,1,E07000008,1,54.44,118.85,25.84,148.56 +369,1,E07000008,2,64.59,142.18,25.84,167.67 +695,1,E07000008,3,71.06,155.98,25.84,180.4 +1021,1,E07000008,4,81.2,170.85,25.84,178.28 +2651,2,E07000008,0,36.26,226.42,18.64,423.05 +1347,3,E07000008,1,49.84,99.75,25.84,131.58 +1673,3,E07000008,2,58.13,117.78,25.84,132.64 +1999,3,E07000008,3,63.67,130.52,25.84,143.25 +2325,3,E07000008,4,71.06,148.56,25.84,159.17 +2977,4,E07000008,0,55.97,135.86,18.64,318.19 +4125,5,E07000008,1,54.44,187.82,25.84,204.81 +4706,5,E07000008,2,64.59,223.9,25.84,245.12 +5425,5,E07000008,3,71.06,259.98,25.84,282.26 +6135,5,E07000008,4,81.2,371.41,25.84,405.36 +3303,6,E07000008,0,36.26,417.11,18.64,455.24 +4242,7,E07000008,1,49.84,187.82,25.84,204.81 +4968,7,E07000008,2,58.13,223.9,25.84,245.12 +5611,7,E07000008,3,63.67,259.98,25.84,282.26 +6273,7,E07000008,4,71.06,371.41,25.84,405.36 +3629,8,E07000008,0,55.97,417.11,18.64,455.24 +6563,9,E07000008,1,54.44,234.77,25.84,256 +6889,9,E07000008,2,64.59,279.88,25.84,306.4 +7215,9,E07000008,3,71.06,324.98,25.84,352.84 +7541,9,E07000008,4,81.2,464.26,25.84,506.71 +7867,10,E07000008,0,36.26,788.01,18.64,858.05 +44,1,E09000007,1,65.51,145.37,25.84,197.39 +370,1,E09000007,2,77.51,157.04,25.84,192.07 +696,1,E09000007,3,83.97,166.61,25.84,226.01 +1022,1,E09000007,4,101.48,186.77,25.84,251.49 +2652,2,E09000007,0,70.47,317,18.64,502.91 +1348,3,E09000007,1,58.13,118.85,25.84,146.43 +1674,3,E09000007,2,63.67,139.02,25.84,175.09 +2000,3,E09000007,3,71.06,159.17,25.84,200.55 +2326,3,E09000007,4,83.05,259.98,25.84,261.04 +2978,4,E09000007,0,60.1,371.82,18.64,402.8 +3955,5,E09000007,1,65.51,365.04,25.84,397.93 +4570,5,E09000007,2,77.51,496.61,25.84,541.18 +5222,5,E09000007,3,83.97,727.96,25.84,794.8 +5907,5,E09000007,4,101.48,1213.96,25.84,1323.25 +3304,6,E09000007,0,70.47,1362.14,18.64,1486.07 +4169,7,E09000007,1,58.13,365.04,25.84,397.93 +4670,7,E09000007,2,63.67,496.61,25.84,541.18 +5322,7,E09000007,3,71.06,727.96,25.84,794.8 +5874,7,E09000007,4,83.05,1213.96,25.84,1323.25 +3630,8,E09000007,0,60.1,1362.14,18.64,1486.07 +6564,9,E09000007,1,65.51,456.3,25.84,497.43 +6890,9,E09000007,2,77.51,620.78,25.84,676.49 +7216,9,E09000007,3,83.97,909.95,25.84,993.49 +7542,9,E09000007,4,101.48,1517.44,25.84,1654.07 +7868,10,E09000007,0,70.47,314.32,18.64,344.12 +45,1,E07000192,1,52.6,98.69,25.84,124.15 +371,1,E07000192,2,58.13,116.72,25.84,136.89 +697,1,E07000192,3,69.2,132.64,25.84,160.24 +1023,1,E07000192,4,80.28,161.3,25.84,178.28 +2653,2,E07000192,0,39.38,245.49,18.64,382.53 +1349,3,E07000192,1,46.13,88.07,25.84,97.63 +1675,3,E07000192,2,49.84,94.47,25.84,102.94 +2001,3,E07000192,3,59.98,104,25.84,119.9 +2327,3,E07000192,4,68.28,127.34,25.84,127.34 +2979,4,E07000192,0,46.63,107.26,18.64,107.26 +4283,5,E07000192,1,52.6,91.27,25.84,99.75 +4893,5,E07000192,2,58.13,114.6,25.84,124.15 +5524,5,E07000192,3,69.2,134.77,25.84,147.5 +6176,5,E07000192,4,80.28,196.32,25.84,213.29 +3305,6,E07000192,0,39.38,220.48,18.64,239.54 +4504,7,E07000192,1,46.13,91.27,25.84,99.75 +5189,7,E07000192,2,49.84,114.6,25.84,124.15 +5780,7,E07000192,3,59.98,134.77,25.84,147.5 +6441,7,E07000192,4,68.28,196.32,25.84,213.29 +3631,8,E07000192,0,46.63,220.48,18.64,239.54 +6565,9,E07000192,1,52.6,114.09,25.84,124.69 +6891,9,E07000192,2,58.13,143.25,25.84,155.2 +7217,9,E07000192,3,69.2,168.46,25.84,184.37 +7543,9,E07000192,4,80.28,245.4,25.84,266.62 +7869,10,E07000192,0,39.38,443.93,18.64,484.13 +46,1,E07000106,1,57.21,123.09,25.84,176.15 +372,1,E07000106,2,71.06,146.43,25.84,186.77 +698,1,E07000106,3,81.2,161.3,25.84,203.75 +1024,1,E07000106,4,89.52,178.28,25.84,221.77 +2654,2,E07000106,0,62.17,268.13,18.64,344.4 +1350,3,E07000106,1,51.68,115.66,25.84,159.17 +1676,3,E07000106,2,62.75,129.46,25.84,145.37 +2002,3,E07000106,3,68.28,149.62,25.84,185.7 +2328,3,E07000106,4,72.9,184.64,25.84,194.19 +2980,4,E07000106,0,48.71,195.45,18.64,204.96 +3990,5,E07000106,1,57.21,157.04,25.84,172.97 +4605,5,E07000106,2,71.06,180.4,25.84,197.39 +5257,5,E07000106,3,81.2,228.14,25.84,247.25 +5942,5,E07000106,4,89.52,354.42,25.84,386.26 +3306,6,E07000106,0,62.17,398.03,18.64,433.79 +4057,7,E07000106,1,51.68,157.04,25.84,172.97 +4752,7,E07000106,2,62.75,180.4,25.84,197.39 +5357,7,E07000106,3,68.28,228.14,25.84,247.25 +6046,7,E07000106,4,72.9,354.42,25.84,386.26 +3632,8,E07000106,0,48.71,398.03,18.64,433.79 +6566,9,E07000106,1,57.21,196.32,25.84,216.2 +6892,9,E07000106,2,71.06,225.52,25.84,246.73 +7218,9,E07000106,3,81.2,285.19,25.84,309.06 +7544,9,E07000106,4,89.52,443.03,25.84,482.83 +7870,10,E07000106,0,62.17,536.27,18.64,585.43 +48,1,E07000069,1,54.44,118.85,25.84,148.56 +374,1,E07000069,2,64.59,142.18,25.84,167.67 +700,1,E07000069,3,71.06,155.98,25.84,180.4 +1026,1,E07000069,4,81.2,170.85,25.84,178.28 +2656,2,E07000069,0,36.26,226.42,18.64,423.05 +1352,3,E07000069,1,49.84,99.75,25.84,131.58 +1678,3,E07000069,2,58.13,117.78,25.84,132.64 +2004,3,E07000069,3,63.67,130.52,25.84,143.25 +2330,3,E07000069,4,71.06,148.56,25.84,159.17 +2982,4,E07000069,0,55.97,135.86,18.64,318.19 +4126,5,E07000069,1,54.44,142.18,25.84,154.93 +4707,5,E07000069,2,64.59,176.15,25.84,191.01 +5426,5,E07000069,3,71.06,203.75,25.84,221.77 +6136,5,E07000069,4,81.2,281.2,25.84,306.68 +3308,6,E07000069,0,36.26,315.82,18.64,344.4 +4243,7,E07000069,1,49.84,142.18,25.84,154.93 +4969,7,E07000069,2,58.13,176.15,25.84,191.01 +5612,7,E07000069,3,63.67,203.75,25.84,221.77 +6274,7,E07000069,4,71.06,281.2,25.84,306.68 +3634,8,E07000069,0,55.97,315.82,18.64,344.4 +6568,9,E07000069,1,54.44,177.73,25.84,193.64 +6894,9,E07000069,2,64.59,220.21,25.84,238.77 +7220,9,E07000069,3,71.06,254.69,25.84,277.23 +7546,9,E07000069,4,81.2,351.51,25.84,383.34 +7872,10,E07000069,0,36.26,314.32,18.64,344.12 +49,1,E06000056,1,54.44,118.85,25.84,148.56 +375,1,E06000056,2,64.59,142.18,25.84,167.67 +701,1,E06000056,3,71.06,155.98,25.84,180.4 +1027,1,E06000056,4,81.2,170.85,25.84,178.28 +2657,2,E06000056,0,36.26,226.42,18.64,423.05 +1353,3,E06000056,1,49.84,99.75,25.84,131.58 +1679,3,E06000056,2,58.13,117.78,25.84,132.64 +2005,3,E06000056,3,63.67,130.52,25.84,143.25 +2331,3,E06000056,4,71.06,148.56,25.84,159.17 +2983,4,E06000056,0,55.97,135.86,18.64,318.19 +4127,5,E06000056,1,54.44,119.9,25.84,130.52 +4708,5,E06000056,2,64.59,147.5,25.84,160.24 +5427,5,E06000056,3,71.06,192.07,25.84,210.12 +6137,5,E06000056,4,81.2,270.61,25.84,295.01 +3309,6,E06000056,0,36.26,303.89,18.64,331.29 +4244,7,E06000056,1,49.84,119.9,25.84,130.52 +4970,7,E06000056,2,58.13,147.5,25.84,160.24 +5613,7,E06000056,3,63.67,192.07,25.84,210.12 +6275,7,E06000056,4,71.06,270.61,25.84,295.01 +3635,8,E06000056,0,55.97,303.89,18.64,331.29 +6569,9,E06000056,1,54.44,149.9,25.84,163.15 +6895,9,E06000056,2,64.59,184.37,25.84,200.32 +7221,9,E06000056,3,71.06,240.08,25.84,262.64 +7547,9,E06000056,4,81.2,338.25,25.84,368.76 +7873,10,E06000056,0,36.26,286.02,18.64,311.34 +50,1,E07000130,1,51.68,99.75,25.84,122.03 +376,1,E07000130,2,61.83,114.6,25.84,129.46 +702,1,E07000130,3,68.28,126.28,25.84,137.95 +1028,1,E07000130,4,75.67,158.1,25.84,166.61 +2658,2,E07000130,0,51.82,240.72,18.64,361.1 +1354,3,E07000130,1,46.13,90.21,25.84,107.19 +1680,3,E07000130,2,52.6,96.56,25.84,108.24 +2006,3,E07000130,3,58.13,104,25.84,118.85 +2332,3,E07000130,4,63.67,122.03,25.84,122.03 +2984,4,E07000130,0,49.74,114.39,18.64,123.94 +4318,5,E07000130,1,51.68,102.94,25.84,112.47 +5014,5,E07000130,2,61.83,125.22,25.84,136.89 +5657,5,E07000130,3,68.28,147.5,25.84,160.24 +6232,5,E07000130,4,75.67,226.01,25.84,245.12 +3310,6,E07000130,0,51.82,251.45,18.64,275.3 +4418,7,E07000130,1,46.13,102.94,25.84,112.47 +5154,7,E07000130,2,52.6,125.22,25.84,136.89 +5815,7,E07000130,3,58.13,147.5,25.84,160.24 +6476,7,E07000130,4,63.67,226.01,25.84,245.12 +3636,8,E07000130,0,49.74,251.45,18.64,275.3 +6570,9,E07000130,1,51.68,128.67,25.84,140.6 +6896,9,E07000130,2,61.83,156.51,25.84,171.11 +7222,9,E07000130,3,68.28,184.37,25.84,200.32 +7548,9,E07000130,4,75.67,282.54,25.84,306.4 +7874,10,E07000130,0,51.82,348.6,18.64,379.86 +51,1,E07000070,1,54.44,118.85,25.84,148.56 +377,1,E07000070,2,64.59,142.18,25.84,167.67 +703,1,E07000070,3,71.06,155.98,25.84,180.4 +1029,1,E07000070,4,81.2,170.85,25.84,178.28 +2659,2,E07000070,0,36.26,226.42,18.64,423.05 +1355,3,E07000070,1,49.84,99.75,25.84,131.58 +1681,3,E07000070,2,58.13,117.78,25.84,132.64 +2007,3,E07000070,3,63.67,130.52,25.84,143.25 +2333,3,E07000070,4,71.06,148.56,25.84,159.17 +2985,4,E07000070,0,55.97,135.86,18.64,318.19 +4128,5,E07000070,1,54.44,142.18,25.84,154.93 +4709,5,E07000070,2,64.59,180.4,25.84,197.39 +5428,5,E07000070,3,71.06,214.35,25.84,234.52 +6138,5,E07000070,4,81.2,371.41,25.84,405.36 +3311,6,E07000070,0,36.26,417.11,18.64,455.24 +4245,7,E07000070,1,49.84,142.18,25.84,154.93 +4971,7,E07000070,2,58.13,180.4,25.84,197.39 +5614,7,E07000070,3,63.67,214.35,25.84,234.52 +6276,7,E07000070,4,71.06,371.41,25.84,405.36 +3637,8,E07000070,0,55.97,417.11,18.64,455.24 +6571,9,E07000070,1,54.44,177.73,25.84,193.64 +6897,9,E07000070,2,64.59,225.52,25.84,246.73 +7223,9,E07000070,3,71.06,267.95,25.84,293.15 +7549,9,E07000070,4,81.2,464.26,25.84,506.71 +7875,10,E07000070,0,36.26,929.54,18.64,1012.97 +52,1,E07000078,1,48.92,107.19,25.84,140.08 +378,1,E07000078,2,55.37,120.97,25.84,144.31 +704,1,E07000078,3,61.83,141.13,25.84,161.3 +1030,1,E07000078,4,71.06,158.1,25.84,194.19 +2660,2,E07000078,0,54.93,231.2,18.64,358.7 +1356,3,E07000078,1,47.06,89.13,25.84,210.12 +1682,3,E07000078,2,54.44,100.81,25.84,111.41 +2008,3,E07000078,3,61.83,109.29,25.84,126.28 +2334,3,E07000078,4,73.82,130.52,25.84,130.52 +2986,4,E07000078,0,54.93,115.59,18.64,141.81 +4200,5,E07000078,1,48.92,128.4,25.84,141.13 +4836,5,E07000078,2,55.37,170.85,25.84,185.7 +5467,5,E07000078,3,61.83,214.35,25.84,234.52 +6005,5,E07000078,4,71.06,471.15,25.84,513.6 +3312,6,E07000078,0,54.93,529.13,18.64,576.82 +3916,7,E07000078,1,47.06,128.4,25.84,141.13 +5113,7,E07000078,2,54.44,170.85,25.84,185.7 +5693,7,E07000078,3,61.83,214.35,25.84,234.52 +6405,7,E07000078,4,73.82,471.15,25.84,513.6 +3638,8,E07000078,0,54.93,529.13,18.64,576.82 +6572,9,E07000078,1,48.92,160.51,25.84,176.42 +6898,9,E07000078,2,55.37,213.57,25.84,232.15 +7224,9,E07000078,3,61.83,267.95,25.84,293.15 +7550,9,E07000078,4,71.06,588.93,25.84,642 +7876,10,E07000078,0,54.93,284.53,18.64,309.82 +53,1,E07000177,1,57.21,123.09,25.84,176.15 +379,1,E07000177,2,71.06,146.43,25.84,186.77 +705,1,E07000177,3,81.2,161.3,25.84,203.75 +1031,1,E07000177,4,89.52,178.28,25.84,221.77 +2661,2,E07000177,0,62.17,268.13,18.64,344.4 +1357,3,E07000177,1,51.68,115.66,25.84,159.17 +1683,3,E07000177,2,62.75,129.46,25.84,145.37 +2009,3,E07000177,3,68.28,149.62,25.84,185.7 +2335,3,E07000177,4,72.9,184.64,25.84,194.19 +2987,4,E07000177,0,48.71,195.45,18.64,204.96 +3991,5,E07000177,1,57.21,134.77,25.84,147.5 +4606,5,E07000177,2,71.06,170.85,25.84,185.7 +5258,5,E07000177,3,81.2,209.06,25.84,228.14 +5943,5,E07000177,4,89.52,337.44,25.84,368.22 +3313,6,E07000177,0,62.17,378.95,18.64,413.53 +4058,7,E07000177,1,51.68,134.77,25.84,147.5 +4753,7,E07000177,2,62.75,170.85,25.84,185.7 +5358,7,E07000177,3,68.28,209.06,25.84,228.14 +6047,7,E07000177,4,72.9,337.44,25.84,368.22 +3639,8,E07000177,0,48.71,378.95,18.64,413.53 +6573,9,E07000177,1,57.21,168.46,25.84,184.37 +6899,9,E07000177,2,71.06,213.57,25.84,232.15 +7225,9,E07000177,3,81.2,261.31,25.84,285.19 +7551,9,E07000177,4,89.52,421.8,25.84,460.26 +7877,10,E07000177,0,62.17,254.72,18.64,278.57 +83,1,E06000049,1,51.68,93.39,25.84,116.72 +409,1,E06000049,2,59.06,107.19,25.84,134.77 +735,1,E06000049,3,65.51,119.9,25.84,145.37 +1061,1,E06000049,4,71.98,133.71,25.84,159.17 +2691,2,E06000049,0,55.97,239.54,18.64,342.01 +1387,3,E06000049,1,43.36,85.94,25.84,100.81 +1713,3,E06000049,2,53.52,94.47,25.84,113.53 +2039,3,E06000049,3,58.13,105.06,25.84,124.15 +2365,3,E06000049,4,55.37,118.85,25.84,133.71 +3017,4,E06000049,0,33.16,469.54,18.64,599.44 +4363,5,E06000049,1,51.68,113.53,25.84,123.09 +4933,5,E06000049,2,59.06,147.5,25.84,160.24 +5576,5,E06000049,3,65.51,192.07,25.84,210.12 +6324,5,E06000049,4,71.98,336.37,25.84,367.16 +3343,6,E06000049,0,55.97,377.76,18.64,412.34 +4475,7,E06000049,1,43.36,113.53,25.84,123.09 +5071,7,E06000049,2,53.52,147.5,25.84,160.24 +5751,7,E06000049,3,58.13,192.07,25.84,210.12 +6375,7,E06000049,4,55.37,336.37,25.84,367.16 +3669,8,E06000049,0,33.16,377.76,18.64,412.34 +6603,9,E06000049,1,51.68,141.94,25.84,153.86 +6929,9,E06000049,2,59.06,184.37,25.84,200.32 +7255,9,E06000049,3,65.51,240.08,25.84,262.64 +7581,9,E06000049,4,71.98,420.48,25.84,458.95 +7907,10,E06000049,0,55.97,333.68,18.64,363.48 +54,1,E06000050,1,51.68,93.39,25.84,116.72 +380,1,E06000050,2,59.06,107.19,25.84,134.77 +706,1,E06000050,3,65.51,119.9,25.84,145.37 +1032,1,E06000050,4,71.98,133.71,25.84,159.17 +2662,2,E06000050,0,55.97,239.54,18.64,342.01 +1358,3,E06000050,1,43.36,85.94,25.84,100.81 +1684,3,E06000050,2,53.52,94.47,25.84,113.53 +2010,3,E06000050,3,58.13,105.06,25.84,124.15 +2336,3,E06000050,4,55.37,118.85,25.84,133.71 +2988,4,E06000050,0,33.16,469.54,18.64,599.44 +4359,5,E06000050,1,51.68,119.9,25.84,130.52 +4929,5,E06000050,2,59.06,142.18,25.84,154.93 +5572,5,E06000050,3,65.51,164.48,25.84,179.34 +6320,5,E06000050,4,71.98,259.98,25.84,282.26 +3314,6,E06000050,0,55.97,291.97,18.64,317 +4471,7,E06000050,1,43.36,119.9,25.84,130.52 +5067,7,E06000050,2,53.52,142.18,25.84,154.93 +5747,7,E06000050,3,58.13,164.48,25.84,179.34 +6371,7,E06000050,4,55.37,259.98,25.84,282.26 +3640,8,E06000050,0,33.16,291.97,18.64,317 +6574,9,E06000050,1,51.68,149.9,25.84,163.15 +6900,9,E06000050,2,59.06,177.73,25.84,193.64 +7226,9,E06000050,3,65.51,205.6,25.84,224.18 +7552,9,E06000050,4,71.98,324.98,25.84,352.84 +7878,10,E06000050,0,55.97,317.29,18.64,345.6 +55,1,E07000034,1,51.68,99.75,25.84,122.03 +381,1,E07000034,2,61.83,114.6,25.84,129.46 +707,1,E07000034,3,68.28,126.28,25.84,137.95 +1033,1,E07000034,4,75.67,158.1,25.84,166.61 +2663,2,E07000034,0,51.82,240.72,18.64,361.1 +1359,3,E07000034,1,46.13,90.21,25.84,107.19 +1685,3,E07000034,2,52.6,96.56,25.84,108.24 +2011,3,E07000034,3,58.13,104,25.84,118.85 +2337,3,E07000034,4,63.67,122.03,25.84,122.03 +2989,4,E07000034,0,49.74,114.39,18.64,123.94 +4319,5,E07000034,1,51.68,97.63,25.84,107.19 +5015,5,E07000034,2,61.83,113.53,25.84,123.09 +5658,5,E07000034,3,68.28,134.77,25.84,147.5 +6233,5,E07000034,4,75.67,186.77,25.84,203.75 +3315,6,E07000034,0,51.82,209.73,18.64,228.81 +4419,7,E07000034,1,46.13,97.63,25.84,107.19 +5155,7,E07000034,2,52.6,113.53,25.84,123.09 +5816,7,E07000034,3,58.13,134.77,25.84,147.5 +6477,7,E07000034,4,63.67,186.77,25.84,203.75 +3641,8,E07000034,0,49.74,209.73,18.64,228.81 +6575,9,E07000034,1,51.68,122.03,25.84,133.98 +6901,9,E07000034,2,61.83,141.94,25.84,153.86 +7227,9,E07000034,3,68.28,168.46,25.84,184.37 +7553,9,E07000034,4,75.67,233.46,25.84,254.69 +7879,10,E07000034,0,51.82,662.89,18.64,722.48 +56,1,E07000225,1,57.21,123.09,25.84,176.15 +382,1,E07000225,2,71.06,146.43,25.84,186.77 +708,1,E07000225,3,81.2,161.3,25.84,203.75 +1034,1,E07000225,4,89.52,178.28,25.84,221.77 +2664,2,E07000225,0,62.17,268.13,18.64,344.4 +1360,3,E07000225,1,51.68,115.66,25.84,159.17 +1686,3,E07000225,2,62.75,129.46,25.84,145.37 +2012,3,E07000225,3,68.28,149.62,25.84,185.7 +2338,3,E07000225,4,72.9,184.64,25.84,194.19 +2990,4,E07000225,0,48.71,195.45,18.64,204.96 +3992,5,E07000225,1,57.21,147.5,25.84,160.24 +4607,5,E07000225,2,71.06,192.07,25.84,210.12 +5259,5,E07000225,3,81.2,248.31,25.84,270.61 +5944,5,E07000225,4,89.52,426.59,25.84,465.84 +3316,6,E07000225,0,62.17,479.07,18.64,523.16 +4059,7,E07000225,1,51.68,147.5,25.84,160.24 +4754,7,E07000225,2,62.75,192.07,25.84,210.12 +5359,7,E07000225,3,68.28,248.31,25.84,270.61 +6048,7,E07000225,4,72.9,426.59,25.84,465.84 +3642,8,E07000225,0,48.71,479.07,18.64,523.16 +6576,9,E07000225,1,57.21,184.37,25.84,200.32 +6902,9,E07000225,2,71.06,240.08,25.84,262.64 +7228,9,E07000225,3,81.2,310.37,25.84,338.25 +7554,9,E07000225,4,89.52,533.22,25.84,582.31 +7880,10,E07000225,0,62.17,646.5,18.64,706.09 +58,1,E07000118,1,51.68,93.39,25.84,116.72 +384,1,E07000118,2,59.06,107.19,25.84,134.77 +710,1,E07000118,3,65.51,119.9,25.84,145.37 +1036,1,E07000118,4,71.98,133.71,25.84,159.17 +2666,2,E07000118,0,55.97,239.54,18.64,342.01 +1362,3,E07000118,1,43.36,85.94,25.84,100.81 +1688,3,E07000118,2,53.52,94.47,25.84,113.53 +2014,3,E07000118,3,58.13,105.06,25.84,124.15 +2340,3,E07000118,4,55.37,118.85,25.84,133.71 +2992,4,E07000118,0,33.16,469.54,18.64,599.44 +4360,5,E07000118,1,51.68,96.56,25.84,105.06 +4930,5,E07000118,2,59.06,125.22,25.84,136.89 +5573,5,E07000118,3,65.51,147.5,25.84,160.24 +6321,5,E07000118,4,71.98,202.69,25.84,220.72 +3318,6,E07000118,0,55.97,227.63,18.64,247.88 +4472,7,E07000118,1,43.36,96.56,25.84,105.06 +5068,7,E07000118,2,53.52,125.22,25.84,136.89 +5748,7,E07000118,3,58.13,147.5,25.84,160.24 +6372,7,E07000118,4,55.37,202.69,25.84,220.72 +3644,8,E07000118,0,33.16,227.63,18.64,247.88 +6578,9,E07000118,1,51.68,120.73,25.84,131.32 +6904,9,E07000118,2,59.06,156.51,25.84,171.11 +7230,9,E07000118,3,65.51,184.37,25.84,200.32 +7556,9,E07000118,4,71.98,253.36,25.84,275.9 +7882,10,E07000118,0,55.97,253.23,18.64,277.06 +60,1,E09000001,1,65.51,145.37,25.84,197.39 +386,1,E09000001,2,77.51,157.04,25.84,192.07 +712,1,E09000001,3,83.97,166.61,25.84,226.01 +1038,1,E09000001,4,101.48,186.77,25.84,251.49 +2668,2,E09000001,0,70.47,317,18.64,502.91 +1364,3,E09000001,1,58.13,118.85,25.84,146.43 +1690,3,E09000001,2,63.67,139.02,25.84,175.09 +2016,3,E09000001,3,71.06,159.17,25.84,200.55 +2342,3,E09000001,4,83.05,259.98,25.84,261.04 +2994,4,E09000001,0,60.1,371.82,18.64,402.8 +3956,5,E09000001,1,65.51,385.2,25.84,420.23 +4571,5,E09000001,2,77.51,491.33,25.84,535.89 +5223,5,E09000001,3,83.97,923.2,25.84,1007.03 +5908,5,E09000001,4,101.48,2253.89,25.84,2458.69 +3320,6,E09000001,0,70.47,3210.51,18.64,3502.48 +4170,7,E09000001,1,58.13,385.2,25.84,420.23 +4671,7,E09000001,2,63.67,491.33,25.84,535.89 +5323,7,E09000001,3,71.06,923.2,25.84,1007.03 +5875,7,E09000001,4,83.05,2253.89,25.84,2458.69 +3646,8,E09000001,0,60.1,3210.51,18.64,3502.48 +6580,9,E09000001,1,65.51,481.52,25.84,525.28 +6906,9,E09000001,2,77.51,614.15,25.84,669.87 +7232,9,E09000001,3,83.97,1154.01,25.84,1258.8 +7558,9,E09000001,4,101.48,2817.36,25.84,3073.38 +7884,10,E09000001,0,70.47,443.93,18.64,484.13 +62,1,E07000071,1,54.44,118.85,25.84,148.56 +388,1,E07000071,2,64.59,142.18,25.84,167.67 +714,1,E07000071,3,71.06,155.98,25.84,180.4 +1040,1,E07000071,4,81.2,170.85,25.84,178.28 +2670,2,E07000071,0,36.26,226.42,18.64,423.05 +1366,3,E07000071,1,49.84,99.75,25.84,131.58 +1692,3,E07000071,2,58.13,117.78,25.84,132.64 +2018,3,E07000071,3,63.67,130.52,25.84,143.25 +2344,3,E07000071,4,71.06,148.56,25.84,159.17 +2996,4,E07000071,0,55.97,135.86,18.64,318.19 +4129,5,E07000071,1,54.44,123.09,25.84,133.71 +4710,5,E07000071,2,64.59,147.5,25.84,160.24 +5429,5,E07000071,3,71.06,191.01,25.84,209.06 +6139,5,E07000071,4,81.2,281.2,25.84,306.68 +3322,6,E07000071,0,36.26,315.82,18.64,344.4 +4246,7,E07000071,1,49.84,123.09,25.84,133.71 +4972,7,E07000071,2,58.13,147.5,25.84,160.24 +5615,7,E07000071,3,63.67,191.01,25.84,209.06 +6277,7,E07000071,4,71.06,281.2,25.84,306.68 +3648,8,E07000071,0,55.97,315.82,18.64,344.4 +6582,9,E07000071,1,54.44,153.86,25.84,167.13 +6908,9,E07000071,2,64.59,184.37,25.84,200.32 +7234,9,E07000071,3,71.06,238.77,25.84,261.31 +7560,9,E07000071,4,81.2,351.51,25.84,383.34 +7886,10,E07000071,0,36.26,472.22,18.64,515.43 +65,1,E06000052,1,48.92,107.19,25.84,140.08 +391,1,E06000052,2,55.37,120.97,25.84,144.31 +717,1,E06000052,3,61.83,141.13,25.84,161.3 +1043,1,E06000052,4,71.06,158.1,25.84,194.19 +2673,2,E06000052,0,54.93,231.2,18.64,358.7 +1369,3,E06000052,1,47.06,89.13,25.84,210.12 +1695,3,E06000052,2,54.44,100.81,25.84,111.41 +2021,3,E06000052,3,61.83,109.29,25.84,126.28 +2347,3,E06000052,4,73.82,130.52,25.84,130.52 +2999,4,E06000052,0,54.93,115.59,18.64,141.81 +4202,5,E06000052,1,48.92,114.6,25.84,124.15 +4838,5,E06000052,2,55.37,142.18,25.84,154.93 +5469,5,E06000052,3,61.83,166.61,25.84,180.4 +6007,5,E06000052,4,71.06,219.66,25.84,239.83 +3325,6,E06000052,0,54.93,246.68,18.64,269.32 +3918,7,E06000052,1,47.06,114.6,25.84,124.15 +5115,7,E06000052,2,54.44,142.18,25.84,154.93 +5695,7,E06000052,3,61.83,166.61,25.84,180.4 +6407,7,E06000052,4,73.82,219.66,25.84,239.83 +3651,8,E06000052,0,54.93,246.68,18.64,269.32 +6585,9,E06000052,1,48.92,143.25,25.84,155.2 +6911,9,E06000052,2,55.37,177.73,25.84,193.64 +7237,9,E06000052,3,61.83,208.27,25.84,225.52 +7563,9,E06000052,4,71.06,274.57,25.84,299.78 +7889,10,E06000052,0,54.93,251.74,18.64,275.59 +66,1,E07000079,1,48.92,107.19,25.84,140.08 +392,1,E07000079,2,55.37,120.97,25.84,144.31 +718,1,E07000079,3,61.83,141.13,25.84,161.3 +1044,1,E07000079,4,71.06,158.1,25.84,194.19 +2674,2,E07000079,0,54.93,231.2,18.64,358.7 +1370,3,E07000079,1,47.06,89.13,25.84,210.12 +1696,3,E07000079,2,54.44,100.81,25.84,111.41 +2022,3,E07000079,3,61.83,109.29,25.84,126.28 +2348,3,E07000079,4,73.82,130.52,25.84,130.52 +3000,4,E07000079,0,54.93,115.59,18.64,141.81 +4203,5,E07000079,1,48.92,125.22,25.84,136.89 +4839,5,E07000079,2,55.37,164.48,25.84,179.34 +5470,5,E07000079,3,61.83,203.75,25.84,221.77 +6008,5,E07000079,4,71.06,447.81,25.84,487.08 +3326,6,E07000079,0,54.93,502.91,18.64,547.01 +3919,7,E07000079,1,47.06,125.22,25.84,136.89 +5116,7,E07000079,2,54.44,164.48,25.84,179.34 +5696,7,E07000079,3,61.83,203.75,25.84,221.77 +6408,7,E07000079,4,73.82,447.81,25.84,487.08 +3652,8,E07000079,0,54.93,502.91,18.64,547.01 +6586,9,E07000079,1,48.92,156.51,25.84,171.11 +6912,9,E07000079,2,55.37,205.6,25.84,224.18 +7238,9,E07000079,3,61.83,254.69,25.84,277.23 +7564,9,E07000079,4,71.06,559.76,25.84,608.86 +7890,10,E07000079,0,54.93,269.62,18.64,294.95 +80,1,E06000047,1,50.76,88.07,25.84,97.63 +406,1,E06000047,2,57.21,101.88,25.84,119.9 +732,1,E06000047,3,60.9,113.53,25.84,159.17 +1058,1,E06000047,4,70.13,127.34,25.84,139.02 +2688,2,E06000047,0,55.97,237.14,18.64,340.83 +1384,3,E06000047,1,42.44,99.75,25.84,105.06 +1710,3,E06000047,2,49.84,90.21,25.84,111.41 +2036,3,E06000047,3,53.52,105.06,25.84,124.15 +2362,3,E06000047,4,56.29,115.66,25.84,119.9 +3014,4,E06000047,0,47.67,253.84,18.64,288.39 +4533,5,E06000047,1,50.76,125.22,25.84,136.89 +5048,5,E06000047,2,57.21,102.94,25.84,112.47 +5553,5,E06000047,3,60.9,123.09,25.84,133.71 +6352,5,E06000047,4,70.13,180.4,25.84,197.39 +3340,6,E06000047,0,55.97,202.58,18.64,221.66 +4452,7,E06000047,1,42.44,125.22,25.84,136.89 +5099,7,E06000047,2,49.84,102.94,25.84,112.47 +5728,7,E06000047,3,53.52,123.09,25.84,133.71 +6510,7,E06000047,4,56.29,180.4,25.84,197.39 +3666,8,E06000047,0,47.67,202.58,18.64,221.66 +6600,9,E06000047,1,42.44,156.51,25.84,171.11 +6926,9,E06000047,2,57.21,128.67,25.84,140.6 +7252,9,E06000047,3,60.9,153.86,25.84,167.13 +7578,9,E06000047,4,70.13,225.52,25.84,246.73 +7904,10,E06000047,0,55.97,318.79,18.64,345.6 +67,1,E08000026,1,52.6,98.69,25.84,124.15 +393,1,E08000026,2,58.13,116.72,25.84,136.89 +719,1,E08000026,3,69.2,132.64,25.84,160.24 +1045,1,E08000026,4,80.28,161.3,25.84,178.28 +2675,2,E08000026,0,39.38,245.49,18.64,382.53 +1371,3,E08000026,1,46.13,88.07,25.84,97.63 +1697,3,E08000026,2,49.84,94.47,25.84,102.94 +2023,3,E08000026,3,59.98,104,25.84,119.9 +2349,3,E08000026,4,68.28,127.34,25.84,127.34 +3001,4,E08000026,0,46.63,107.26,18.64,107.26 +4284,5,E08000026,1,52.6,113.53,25.84,123.09 +4894,5,E08000026,2,58.13,130.52,25.84,143.25 +5525,5,E08000026,3,69.2,147.5,25.84,160.24 +6177,5,E08000026,4,80.28,235.58,25.84,256.8 +3327,6,E08000026,0,39.38,264.56,18.64,288.39 +4505,7,E08000026,1,46.13,113.53,25.84,123.09 +5190,7,E08000026,2,49.84,130.52,25.84,143.25 +5781,7,E08000026,3,59.98,147.5,25.84,160.24 +6442,7,E08000026,4,68.28,235.58,25.84,256.8 +3653,8,E08000026,0,46.63,264.56,18.64,288.39 +6587,9,E08000026,1,52.6,141.94,25.84,153.86 +6913,9,E08000026,2,58.13,163.15,25.84,179.06 +7239,9,E08000026,3,69.2,184.37,25.84,200.32 +7565,9,E08000026,4,80.28,294.49,25.84,320.99 +7891,10,E08000026,0,39.38,411.13,18.64,448.39 +69,1,E07000226,1,57.21,123.09,25.84,176.15 +395,1,E07000226,2,71.06,146.43,25.84,186.77 +721,1,E07000226,3,81.2,161.3,25.84,203.75 +1047,1,E07000226,4,89.52,178.28,25.84,221.77 +2677,2,E07000226,0,62.17,268.13,18.64,344.4 +1373,3,E07000226,1,51.68,115.66,25.84,159.17 +1699,3,E07000226,2,62.75,129.46,25.84,145.37 +2025,3,E07000226,3,68.28,149.62,25.84,185.7 +2351,3,E07000226,4,72.9,184.64,25.84,194.19 +3003,4,E07000226,0,48.71,195.45,18.64,204.96 +3994,5,E07000226,1,57.21,153.86,25.84,167.67 +4609,5,E07000226,2,71.06,192.07,25.84,210.12 +5261,5,E07000226,3,81.2,227.08,25.84,246.18 +5946,5,E07000226,4,89.52,315.17,25.84,342.76 +3329,6,E07000226,0,62.17,353.92,18.64,384.93 +4061,7,E07000226,1,51.68,153.86,25.84,167.67 +4756,7,E07000226,2,62.75,192.07,25.84,210.12 +5361,7,E07000226,3,68.28,227.08,25.84,246.18 +6050,7,E07000226,4,72.9,315.17,25.84,342.76 +3655,8,E07000226,0,48.71,353.92,18.64,384.93 +6589,9,E07000226,1,57.21,192.33,25.84,209.57 +6915,9,E07000226,2,71.06,240.08,25.84,262.64 +7241,9,E07000226,3,81.2,283.85,25.84,307.73 +7567,9,E07000226,4,89.52,393.95,25.84,428.42 +7893,10,E07000226,0,62.17,257.69,18.64,281.53 +70,1,E09000008,1,65.51,145.37,25.84,197.39 +396,1,E09000008,2,77.51,157.04,25.84,192.07 +722,1,E09000008,3,83.97,166.61,25.84,226.01 +1048,1,E09000008,4,101.48,186.77,25.84,251.49 +2678,2,E09000008,0,70.47,317,18.64,502.91 +1374,3,E09000008,1,58.13,118.85,25.84,146.43 +1700,3,E09000008,2,63.67,139.02,25.84,175.09 +2026,3,E09000008,3,71.06,159.17,25.84,200.55 +2352,3,E09000008,4,83.05,259.98,25.84,261.04 +3004,4,E09000008,0,60.1,371.82,18.64,402.8 +3957,5,E09000008,1,65.51,176.15,25.84,191.01 +4572,5,E09000008,2,77.51,214.35,25.84,234.52 +5224,5,E09000008,3,83.97,270.61,25.84,295.01 +5909,5,E09000008,4,101.48,390.53,25.84,424.47 +3330,6,E09000008,0,70.47,437.37,18.64,476.69 +4171,7,E09000008,1,58.13,176.15,25.84,191.01 +4672,7,E09000008,2,63.67,214.35,25.84,234.52 +5324,7,E09000008,3,71.06,270.61,25.84,295.01 +5876,7,E09000008,4,83.05,390.53,25.84,424.47 +3656,8,E09000008,0,60.1,437.37,18.64,476.69 +6590,9,E09000008,1,65.51,220.21,25.84,238.77 +6916,9,E09000008,2,77.51,267.95,25.84,293.15 +7242,9,E09000008,3,83.97,338.25,25.84,368.76 +7568,9,E09000008,4,101.48,488.14,25.84,530.59 +7894,10,E09000008,0,70.47,286.02,18.64,311.34 +8151,1,E06000063,1,51.68,93.39,25.84,116.72 +8152,1,E06000063,2,59.06,107.19,25.84,134.77 +8153,1,E06000063,3,65.51,119.9,25.84,145.37 +8154,1,E06000063,4,71.98,133.71,25.84,159.17 +8159,2,E06000063,0,55.97,239.54,18.64,342.01 +8155,3,E06000063,1,43.36,85.94,25.84,100.81 +8156,3,E06000063,2,53.52,94.47,25.84,113.53 +8157,3,E06000063,3,58.13,105.06,25.84,124.15 +8158,3,E06000063,4,55.37,118.85,25.84,133.71 +8160,4,E06000063,0,33.16,469.54,18.64,599.44 +8163,5,E06000063,1,51.68,114.6,25.84,124.15 +8165,5,E06000063,2,59.06,142.18,25.84,154.93 +8167,5,E06000063,3,65.51,170.85,25.84,185.7 +8169,5,E06000063,4,71.98,214.35,25.84,234.52 +8161,6,E06000063,0,55.97,240.72,18.64,263.37 +8164,7,E06000063,1,43.36,114.6,25.84,124.15 +8166,7,E06000063,2,53.52,142.18,25.84,154.93 +8168,7,E06000063,3,58.13,170.85,25.84,185.7 +8170,7,E06000063,4,55.37,214.35,25.84,234.52 +8162,8,E06000063,0,33.16,240.72,18.64,263.37 +8171,9,E06000063,1,51.68,143.25,25.84,155.2 +8172,9,E06000063,2,59.06,177.73,25.84,193.64 +8173,9,E06000063,3,65.51,213.57,25.84,232.15 +8174,9,E06000063,4,71.98,267.95,25.84,293.15 +8175,10,E06000063,0,55.97,269.62,18.64,294.95 +71,1,E07000096,1,54.44,118.85,25.84,148.56 +397,1,E07000096,2,64.59,142.18,25.84,167.67 +723,1,E07000096,3,71.06,155.98,25.84,180.4 +1049,1,E07000096,4,81.2,170.85,25.84,178.28 +2679,2,E07000096,0,36.26,226.42,18.64,423.05 +1375,3,E07000096,1,49.84,99.75,25.84,131.58 +1701,3,E07000096,2,58.13,117.78,25.84,132.64 +2027,3,E07000096,3,63.67,130.52,25.84,143.25 +2353,3,E07000096,4,71.06,148.56,25.84,159.17 +3005,4,E07000096,0,55.97,135.86,18.64,318.19 +4130,5,E07000096,1,54.44,147.5,25.84,160.24 +4711,5,E07000096,2,64.59,192.07,25.84,210.12 +5430,5,E07000096,3,71.06,270.61,25.84,295.01 +6140,5,E07000096,4,81.2,448.87,25.84,489.2 +3331,6,E07000096,0,36.26,504.09,18.64,549.39 +4247,7,E07000096,1,49.84,147.5,25.84,160.24 +4973,7,E07000096,2,58.13,192.07,25.84,210.12 +5616,7,E07000096,3,63.67,270.61,25.84,295.01 +6278,7,E07000096,4,71.06,448.87,25.84,489.2 +3657,8,E07000096,0,55.97,504.09,18.64,549.39 +6591,9,E07000096,1,54.44,184.37,25.84,200.32 +6917,9,E07000096,2,64.59,240.08,25.84,262.64 +7243,9,E07000096,3,71.06,338.25,25.84,368.76 +7569,9,E07000096,4,81.2,561.08,25.84,611.49 +7895,10,E07000096,0,36.26,819.3,18.64,892.3 +72,1,E06000005,1,50.76,88.07,25.84,97.63 +398,1,E06000005,2,57.21,101.88,25.84,119.9 +724,1,E06000005,3,60.9,113.53,25.84,159.17 +1050,1,E06000005,4,70.13,127.34,25.84,139.02 +2680,2,E06000005,0,55.97,237.14,18.64,340.83 +1376,3,E06000005,1,42.44,99.75,25.84,105.06 +1702,3,E06000005,2,49.84,90.21,25.84,111.41 +2028,3,E06000005,3,53.52,105.06,25.84,124.15 +2354,3,E06000005,4,56.29,115.66,25.84,119.9 +3006,4,E06000005,0,47.67,253.84,18.64,288.39 +4532,5,E06000005,1,50.76,90.21,25.84,97.63 +5047,5,E06000005,2,57.21,109.29,25.84,118.85 +5552,5,E06000005,3,60.9,130.52,25.84,143.25 +6351,5,E06000005,4,70.13,186.77,25.84,203.75 +3332,6,E06000005,0,55.97,209.73,18.64,228.81 +4451,7,E06000005,1,42.44,90.21,25.84,97.63 +5098,7,E06000005,2,49.84,109.29,25.84,118.85 +5727,7,E06000005,3,53.52,130.52,25.84,143.25 +6509,7,E06000005,4,56.29,186.77,25.84,203.75 +3658,8,E06000005,0,47.67,209.73,18.64,228.81 +6592,9,E06000005,1,42.44,112.76,25.84,122.03 +6918,9,E06000005,2,57.21,136.63,25.84,148.56 +7244,9,E06000005,3,60.9,163.15,25.84,179.06 +7570,9,E06000005,4,70.13,233.46,25.84,254.69 +7896,10,E06000005,0,55.97,536.27,18.64,583.94 +73,1,E07000107,1,57.21,123.09,25.84,176.15 +399,1,E07000107,2,71.06,146.43,25.84,186.77 +725,1,E07000107,3,81.2,161.3,25.84,203.75 +1051,1,E07000107,4,89.52,178.28,25.84,221.77 +2681,2,E07000107,0,62.17,268.13,18.64,344.4 +1377,3,E07000107,1,51.68,115.66,25.84,159.17 +1703,3,E07000107,2,62.75,129.46,25.84,145.37 +2029,3,E07000107,3,68.28,149.62,25.84,185.7 +2355,3,E07000107,4,72.9,184.64,25.84,194.19 +3007,4,E07000107,0,48.71,195.45,18.64,204.96 +3995,5,E07000107,1,57.21,136.89,25.84,148.56 +4610,5,E07000107,2,71.06,180.4,25.84,197.39 +5262,5,E07000107,3,81.2,209.06,25.84,228.14 +5947,5,E07000107,4,89.52,326.84,25.84,356.55 +3333,6,E07000107,0,62.17,367.04,18.64,400.41 +4062,7,E07000107,1,51.68,136.89,25.84,148.56 +4757,7,E07000107,2,62.75,180.4,25.84,197.39 +5362,7,E07000107,3,68.28,209.06,25.84,228.14 +6051,7,E07000107,4,72.9,326.84,25.84,356.55 +3659,8,E07000107,0,48.71,367.04,18.64,400.41 +6593,9,E07000107,1,57.21,171.11,25.84,185.69 +6919,9,E07000107,2,71.06,225.52,25.84,246.73 +7245,9,E07000107,3,81.2,261.31,25.84,285.19 +7571,9,E07000107,4,89.52,408.54,25.84,445.68 +7897,10,E07000107,0,62.17,750.78,18.64,819.3 +75,1,E06000015,1,51.68,99.75,25.84,122.03 +401,1,E06000015,2,61.83,114.6,25.84,129.46 +727,1,E06000015,3,68.28,126.28,25.84,137.95 +1053,1,E06000015,4,75.67,158.1,25.84,166.61 +2683,2,E06000015,0,51.82,240.72,18.64,361.1 +1379,3,E06000015,1,46.13,90.21,25.84,107.19 +1705,3,E06000015,2,52.6,96.56,25.84,108.24 +2031,3,E06000015,3,58.13,104,25.84,118.85 +2357,3,E06000015,4,63.67,122.03,25.84,122.03 +3009,4,E06000015,0,49.74,114.39,18.64,123.94 +4322,5,E06000015,1,51.68,97.63,25.84,107.19 +5018,5,E06000015,2,61.83,119.9,25.84,130.52 +5661,5,E06000015,3,68.28,142.18,25.84,154.93 +6236,5,E06000015,4,75.67,226.01,25.84,245.12 +3335,6,E06000015,0,51.82,251.45,18.64,275.3 +4422,7,E06000015,1,46.13,97.63,25.84,107.19 +5158,7,E06000015,2,52.6,119.9,25.84,130.52 +5819,7,E06000015,3,58.13,142.18,25.84,154.93 +6480,7,E06000015,4,63.67,226.01,25.84,245.12 +3661,8,E06000015,0,49.74,251.45,18.64,275.3 +6595,9,E06000015,1,51.68,122.03,25.84,133.98 +6921,9,E06000015,2,61.83,149.9,25.84,163.15 +7247,9,E06000015,3,68.28,177.73,25.84,193.64 +7573,9,E06000015,4,75.67,282.54,25.84,306.4 +7899,10,E06000015,0,51.82,379.86,18.64,414.12 +76,1,E07000035,1,51.68,99.75,25.84,122.03 +402,1,E07000035,2,61.83,114.6,25.84,129.46 +728,1,E07000035,3,68.28,126.28,25.84,137.95 +1054,1,E07000035,4,75.67,158.1,25.84,166.61 +2684,2,E07000035,0,51.82,240.72,18.64,361.1 +1380,3,E07000035,1,46.13,90.21,25.84,107.19 +1706,3,E07000035,2,52.6,96.56,25.84,108.24 +2032,3,E07000035,3,58.13,104,25.84,118.85 +2358,3,E07000035,4,63.67,122.03,25.84,122.03 +3010,4,E07000035,0,49.74,114.39,18.64,123.94 +4323,5,E07000035,1,51.68,109.29,25.84,118.85 +5019,5,E07000035,2,61.83,134.77,25.84,147.5 +5662,5,E07000035,3,68.28,158.1,25.84,172.97 +6237,5,E07000035,4,75.67,245.12,25.84,267.41 +3336,6,E07000035,0,51.82,275.3,18.64,300.32 +4423,7,E07000035,1,46.13,109.29,25.84,118.85 +5159,7,E07000035,2,52.6,134.77,25.84,147.5 +5820,7,E07000035,3,58.13,158.1,25.84,172.97 +6481,7,E07000035,4,63.67,245.12,25.84,267.41 +3662,8,E07000035,0,49.74,275.3,18.64,300.32 +6596,9,E07000035,1,51.68,136.63,25.84,148.56 +6922,9,E07000035,2,61.83,168.46,25.84,184.37 +7248,9,E07000035,3,68.28,197.62,25.84,216.2 +7574,9,E07000035,4,75.67,306.4,25.84,334.26 +7900,10,E07000035,0,51.82,443.93,18.64,484.13 +77,1,E08000017,1,50.76,91.27,25.84,113.53 +403,1,E08000017,2,58.13,108.24,25.84,140.08 +729,1,E08000017,3,62.75,119.9,25.84,161.3 +1055,1,E08000017,4,72.9,144.31,25.84,178.28 +2685,2,E08000017,0,52.86,234.75,18.64,322.95 +1381,3,E08000017,1,46.13,81.71,25.84,92.33 +1707,3,E08000017,2,52.6,112.47,25.84,144.31 +2033,3,E08000017,3,56.29,104,25.84,113.53 +2359,3,E08000017,4,63.67,120.97,25.84,175.09 +3011,4,E08000017,0,51.82,160.88,18.64,190.67 +4394,5,E08000017,1,50.76,91.27,25.84,98.69 +4874,5,E08000017,2,58.13,109.29,25.84,118.85 +5505,5,E08000017,3,62.75,125.22,25.84,136.89 +6110,5,E08000017,4,72.9,170.85,25.84,185.7 +3337,6,E08000017,0,52.86,191.88,18.64,208.55 +4548,7,E08000017,1,46.13,91.27,25.84,98.69 +4816,7,E08000017,2,52.6,109.29,25.84,118.85 +5852,7,E08000017,3,56.29,125.22,25.84,136.89 +6208,7,E08000017,4,63.67,170.85,25.84,185.7 +3663,8,E08000017,0,51.82,191.88,18.64,208.55 +6597,9,E08000017,1,50.76,114.09,25.84,123.35 +6923,9,E08000017,2,52.6,136.63,25.84,148.56 +7249,9,E08000017,3,62.75,156.51,25.84,171.11 +7575,9,E08000017,4,72.9,213.57,25.84,232.15 +7901,10,E08000017,0,52.86,239.85,18.64,260.68 +85,1,E06000059,1,48.92,107.19,25.84,140.08 +411,1,E06000059,2,55.37,120.97,25.84,144.31 +737,1,E06000059,3,61.83,141.13,25.84,161.3 +1063,1,E06000059,4,71.06,158.1,25.84,194.19 +2693,2,E06000059,0,54.93,231.2,18.64,358.7 +1389,3,E06000059,1,47.06,89.13,25.84,210.12 +1715,3,E06000059,2,54.44,100.81,25.84,111.41 +2041,3,E06000059,3,61.83,109.29,25.84,126.28 +2367,3,E06000059,4,73.82,130.52,25.84,130.52 +3019,4,E06000059,0,54.93,115.59,18.64,141.81 +4205,5,E06000059,1,48.92,134.77,25.84,147.5 +4841,5,E06000059,2,55.37,170.85,25.84,185.7 +5472,5,E06000059,3,61.83,209.06,25.84,228.14 +6010,5,E06000059,4,71.06,358.66,25.84,391.56 +3345,6,E06000059,0,54.93,402.8,18.64,439.74 +3921,7,E06000059,1,47.06,134.77,25.84,147.5 +5118,7,E06000059,2,54.44,170.85,25.84,185.7 +5698,7,E06000059,3,61.83,209.06,25.84,228.14 +6410,7,E06000059,4,73.82,358.66,25.84,391.56 +3671,8,E06000059,0,54.93,402.8,18.64,439.74 +6605,9,E06000059,1,48.92,168.46,25.84,184.37 +6931,9,E06000059,2,55.37,213.57,25.84,232.15 +7257,9,E06000059,3,61.83,261.31,25.84,285.19 +7583,9,E06000059,4,71.06,448.34,25.84,489.48 +7909,10,E06000059,0,54.93,318.79,18.64,345.6 +78,1,E07000108,1,57.21,123.09,25.84,176.15 +404,1,E07000108,2,71.06,146.43,25.84,186.77 +730,1,E07000108,3,81.2,161.3,25.84,203.75 +1056,1,E07000108,4,89.52,178.28,25.84,221.77 +2686,2,E07000108,0,62.17,268.13,18.64,344.4 +1382,3,E07000108,1,51.68,115.66,25.84,159.17 +1708,3,E07000108,2,62.75,129.46,25.84,145.37 +2034,3,E07000108,3,68.28,149.62,25.84,185.7 +2360,3,E07000108,4,72.9,184.64,25.84,194.19 +3012,4,E07000108,0,48.71,195.45,18.64,204.96 +3996,5,E07000108,1,57.21,105.06,25.84,114.6 +4611,5,E07000108,2,71.06,142.18,25.84,154.93 +5263,5,E07000108,3,81.2,170.85,25.84,185.7 +5948,5,E07000108,4,89.52,237.69,25.84,258.92 +3338,6,E07000108,0,62.17,266.94,18.64,290.78 +4063,7,E07000108,1,51.68,105.06,25.84,114.6 +4758,7,E07000108,2,62.75,142.18,25.84,154.93 +5363,7,E07000108,3,68.28,170.85,25.84,185.7 +6052,7,E07000108,4,72.9,237.69,25.84,258.92 +3664,8,E07000108,0,48.71,266.94,18.64,290.78 +6598,9,E07000108,1,57.21,131.32,25.84,143.25 +6924,9,E07000108,2,71.06,177.73,25.84,193.64 +7250,9,E07000108,3,81.2,213.57,25.84,232.15 +7576,9,E07000108,4,89.52,297.12,25.84,323.65 +7902,10,E07000108,0,62.17,284.53,18.64,309.82 +79,1,E08000027,1,52.6,98.69,25.84,124.15 +405,1,E08000027,2,58.13,116.72,25.84,136.89 +731,1,E08000027,3,69.2,132.64,25.84,160.24 +1057,1,E08000027,4,80.28,161.3,25.84,178.28 +2687,2,E08000027,0,39.38,245.49,18.64,382.53 +1383,3,E08000027,1,46.13,88.07,25.84,97.63 +1709,3,E08000027,2,49.84,94.47,25.84,102.94 +2035,3,E08000027,3,59.98,104,25.84,119.9 +2361,3,E08000027,4,68.28,127.34,25.84,127.34 +3013,4,E08000027,0,46.63,107.26,18.64,107.26 +4285,5,E08000027,1,52.6,97.63,25.84,107.19 +4895,5,E08000027,2,58.13,119.9,25.84,130.52 +5526,5,E08000027,3,69.2,142.18,25.84,154.93 +6178,5,E08000027,4,80.28,192.07,25.84,210.12 +3339,6,E08000027,0,39.38,215.7,18.64,235.95 +4506,7,E08000027,1,46.13,97.63,25.84,107.19 +5191,7,E08000027,2,49.84,119.9,25.84,130.52 +5782,7,E08000027,3,59.98,142.18,25.84,154.93 +6443,7,E08000027,4,68.28,192.07,25.84,210.12 +3665,8,E08000027,0,46.63,215.7,18.64,235.95 +6599,9,E08000027,1,52.6,122.03,25.84,133.98 +6925,9,E08000027,2,58.13,149.9,25.84,163.15 +7251,9,E08000027,3,69.2,177.73,25.84,193.64 +7577,9,E08000027,4,80.28,240.08,25.84,262.64 +7903,10,E08000027,0,39.38,631.61,18.64,688.24 +81,1,E09000009,1,65.51,145.37,25.84,197.39 +407,1,E09000009,2,77.51,157.04,25.84,192.07 +733,1,E09000009,3,83.97,166.61,25.84,226.01 +1059,1,E09000009,4,101.48,186.77,25.84,251.49 +2689,2,E09000009,0,70.47,317,18.64,502.91 +1385,3,E09000009,1,58.13,118.85,25.84,146.43 +1711,3,E09000009,2,63.67,139.02,25.84,175.09 +2037,3,E09000009,3,71.06,159.17,25.84,200.55 +2363,3,E09000009,4,83.05,259.98,25.84,261.04 +3015,4,E09000009,0,60.1,371.82,18.64,402.8 +3958,5,E09000009,1,65.51,237.69,25.84,259.98 +4573,5,E09000009,2,77.51,316.23,25.84,344.88 +5225,5,E09000009,3,83.97,359.73,25.84,392.62 +5910,5,E09000009,4,101.48,608.05,25.84,662.16 +3341,6,E09000009,0,70.47,681.68,18.64,743.63 +4172,7,E09000009,1,58.13,237.69,25.84,259.98 +4673,7,E09000009,2,63.67,316.23,25.84,344.88 +5325,7,E09000009,3,71.06,359.73,25.84,392.62 +5877,7,E09000009,4,83.05,608.05,25.84,662.16 +3667,8,E09000009,0,60.1,681.68,18.64,743.63 +6601,9,E09000009,1,65.51,297.12,25.84,324.98 +6927,9,E09000009,2,77.51,395.3,25.84,431.1 +7253,9,E09000009,3,83.97,449.67,25.84,490.79 +7579,9,E09000009,4,101.48,760.06,25.84,827.71 +7905,10,E09000009,0,70.47,411.13,18.64,448.39 +82,1,E07000009,1,54.44,118.85,25.84,148.56 +408,1,E07000009,2,64.59,142.18,25.84,167.67 +734,1,E07000009,3,71.06,155.98,25.84,180.4 +1060,1,E07000009,4,81.2,170.85,25.84,178.28 +2690,2,E07000009,0,36.26,226.42,18.64,423.05 +1386,3,E07000009,1,49.84,99.75,25.84,131.58 +1712,3,E07000009,2,58.13,117.78,25.84,132.64 +2038,3,E07000009,3,63.67,130.52,25.84,143.25 +2364,3,E07000009,4,71.06,148.56,25.84,159.17 +3016,4,E07000009,0,55.97,135.86,18.64,318.19 +4131,5,E07000009,1,54.44,114.6,25.84,124.15 +4712,5,E07000009,2,64.59,142.18,25.84,154.93 +5431,5,E07000009,3,71.06,181.46,25.84,198.45 +6141,5,E07000009,4,81.2,304.55,25.84,332.14 +3342,6,E07000009,0,36.26,342.01,18.64,373.01 +4248,7,E07000009,1,49.84,114.6,25.84,124.15 +4974,7,E07000009,2,58.13,142.18,25.84,154.93 +5617,7,E07000009,3,63.67,181.46,25.84,198.45 +6279,7,E07000009,4,71.06,304.55,25.84,332.14 +3668,8,E07000009,0,55.97,342.01,18.64,373.01 +6602,9,E07000009,1,54.44,143.25,25.84,155.2 +6928,9,E07000009,2,64.59,177.73,25.84,193.64 +7254,9,E07000009,3,71.06,226.84,25.84,248.03 +7580,9,E07000009,4,81.2,380.68,25.84,415.17 +7906,10,E07000009,0,36.26,300.91,18.64,329.21 +84,1,E07000040,1,48.92,107.19,25.84,140.08 +410,1,E07000040,2,55.37,120.97,25.84,144.31 +736,1,E07000040,3,61.83,141.13,25.84,161.3 +1062,1,E07000040,4,71.06,158.1,25.84,194.19 +2692,2,E07000040,0,54.93,231.2,18.64,358.7 +1388,3,E07000040,1,47.06,89.13,25.84,210.12 +1714,3,E07000040,2,54.44,100.81,25.84,111.41 +2040,3,E07000040,3,61.83,109.29,25.84,126.28 +2366,3,E07000040,4,73.82,130.52,25.84,130.52 +3018,4,E07000040,0,54.93,115.59,18.64,141.81 +4204,5,E07000040,1,48.92,114.6,25.84,124.15 +4840,5,E07000040,2,55.37,147.5,25.84,160.24 +5471,5,E07000040,3,61.83,181.46,25.84,198.45 +6009,5,E07000040,4,71.06,281.2,25.84,306.68 +3344,6,E07000040,0,54.93,315.82,18.64,344.4 +3920,7,E07000040,1,47.06,114.6,25.84,124.15 +5117,7,E07000040,2,54.44,147.5,25.84,160.24 +5697,7,E07000040,3,61.83,181.46,25.84,198.45 +6409,7,E07000040,4,73.82,281.2,25.84,306.68 +3670,8,E07000040,0,54.93,315.82,18.64,344.4 +6604,9,E07000040,1,48.92,143.25,25.84,155.2 +6930,9,E07000040,2,55.37,184.37,25.84,200.32 +7256,9,E07000040,3,61.83,226.84,25.84,248.03 +7582,9,E07000040,4,71.06,351.51,25.84,383.34 +7908,10,E07000040,0,54.93,300.91,18.64,329.21 +86,1,E07000085,1,57.21,123.09,25.84,176.15 +412,1,E07000085,2,71.06,146.43,25.84,186.77 +738,1,E07000085,3,81.2,161.3,25.84,203.75 +1064,1,E07000085,4,89.52,178.28,25.84,221.77 +2694,2,E07000085,0,62.17,268.13,18.64,344.4 +1390,3,E07000085,1,51.68,115.66,25.84,159.17 +1716,3,E07000085,2,62.75,129.46,25.84,145.37 +2042,3,E07000085,3,68.28,149.62,25.84,185.7 +2368,3,E07000085,4,72.9,184.64,25.84,194.19 +3020,4,E07000085,0,48.71,195.45,18.64,204.96 +3997,5,E07000085,1,57.21,136.89,25.84,148.56 +4612,5,E07000085,2,71.06,180.4,25.84,197.39 +5264,5,E07000085,3,81.2,226.01,25.84,245.12 +5949,5,E07000085,4,89.52,404.3,25.84,440.37 +3346,6,E07000085,0,62.17,454.05,18.64,494.54 +4064,7,E07000085,1,51.68,136.89,25.84,148.56 +4759,7,E07000085,2,62.75,180.4,25.84,197.39 +5364,7,E07000085,3,68.28,226.01,25.84,245.12 +6053,7,E07000085,4,72.9,404.3,25.84,440.37 +3672,8,E07000085,0,48.71,454.05,18.64,494.54 +6606,9,E07000085,1,57.21,171.11,25.84,185.69 +6932,9,E07000085,2,71.06,225.52,25.84,246.73 +7258,9,E07000085,3,81.2,282.54,25.84,306.4 +7584,9,E07000085,4,89.52,505.39,25.84,550.49 +7910,10,E07000085,0,62.17,286.02,18.64,311.34 +87,1,E07000242,1,54.44,118.85,25.84,148.56 +413,1,E07000242,2,64.59,142.18,25.84,167.67 +739,1,E07000242,3,71.06,155.98,25.84,180.4 +1065,1,E07000242,4,81.2,170.85,25.84,178.28 +2695,2,E07000242,0,36.26,226.42,18.64,423.05 +1391,3,E07000242,1,49.84,99.75,25.84,131.58 +1717,3,E07000242,2,58.13,117.78,25.84,132.64 +2043,3,E07000242,3,63.67,130.52,25.84,143.25 +2369,3,E07000242,4,71.06,148.56,25.84,159.17 +3021,4,E07000242,0,55.97,135.86,18.64,318.19 +4132,5,E07000242,1,54.44,153.86,25.84,167.67 +4713,5,E07000242,2,64.59,192.07,25.84,210.12 +5432,5,E07000242,3,71.06,269.54,25.84,293.94 +6142,5,E07000242,4,81.2,393.68,25.84,428.71 +3347,6,E07000242,0,36.26,442.13,18.64,481.46 +4249,7,E07000242,1,49.84,153.86,25.84,167.67 +4975,7,E07000242,2,58.13,192.07,25.84,210.12 +5618,7,E07000242,3,63.67,269.54,25.84,293.94 +6280,7,E07000242,4,71.06,393.68,25.84,428.71 +3673,8,E07000242,0,55.97,442.13,18.64,481.46 +6607,9,E07000242,1,54.44,192.33,25.84,209.57 +6933,9,E07000242,2,64.59,240.08,25.84,262.64 +7259,9,E07000242,3,71.06,336.93,25.84,367.42 +7585,9,E07000242,4,81.2,492.12,25.84,535.89 +7911,10,E07000242,0,36.26,253.23,18.64,277.06 +88,1,E07000137,1,51.68,99.75,25.84,122.03 +414,1,E07000137,2,61.83,114.6,25.84,129.46 +740,1,E07000137,3,68.28,126.28,25.84,137.95 +1066,1,E07000137,4,75.67,158.1,25.84,166.61 +2696,2,E07000137,0,51.82,240.72,18.64,361.1 +1392,3,E07000137,1,46.13,90.21,25.84,107.19 +1718,3,E07000137,2,52.6,96.56,25.84,108.24 +2044,3,E07000137,3,58.13,104,25.84,118.85 +2370,3,E07000137,4,63.67,122.03,25.84,122.03 +3022,4,E07000137,0,49.74,114.39,18.64,123.94 +4324,5,E07000137,1,51.68,87.01,25.84,94.47 +5020,5,E07000137,2,61.83,109.29,25.84,118.85 +5663,5,E07000137,3,68.28,125.22,25.84,137.95 +6238,5,E07000137,4,75.67,159.17,25.84,174.02 +3348,6,E07000137,0,51.82,178.77,18.64,195.45 +4424,7,E07000137,1,46.13,87.01,25.84,94.47 +5160,7,E07000137,2,52.6,109.29,25.84,118.85 +5821,7,E07000137,3,58.13,125.22,25.84,137.95 +6482,7,E07000137,4,63.67,159.17,25.84,174.02 +3674,8,E07000137,0,49.74,178.77,18.64,195.45 +6608,9,E07000137,1,51.68,108.78,25.84,118.06 +6934,9,E07000137,2,61.83,136.63,25.84,148.56 +7260,9,E07000137,3,68.28,156.51,25.84,172.43 +7586,9,E07000137,4,75.67,198.96,25.84,217.54 +7912,10,E07000137,0,51.82,348.6,18.64,379.86 +90,1,E06000011,1,50.76,91.27,25.84,113.53 +416,1,E06000011,2,58.13,108.24,25.84,140.08 +742,1,E06000011,3,62.75,119.9,25.84,161.3 +1068,1,E06000011,4,72.9,144.31,25.84,178.28 +2698,2,E06000011,0,52.86,234.75,18.64,322.95 +1394,3,E06000011,1,46.13,81.71,25.84,92.33 +1720,3,E06000011,2,52.6,112.47,25.84,144.31 +2046,3,E06000011,3,56.29,104,25.84,113.53 +2372,3,E06000011,4,63.67,120.97,25.84,175.09 +3024,4,E06000011,0,51.82,160.88,18.64,190.67 +4395,5,E06000011,1,50.76,89.13,25.84,96.56 +4875,5,E06000011,2,58.13,112.47,25.84,122.03 +5506,5,E06000011,3,62.75,134.77,25.84,147.5 +6111,5,E06000011,4,72.9,186.77,25.84,203.75 +3350,6,E06000011,0,52.86,209.73,18.64,228.81 +4549,7,E06000011,1,46.13,89.13,25.84,96.56 +4817,7,E06000011,2,52.6,112.47,25.84,122.03 +5853,7,E06000011,3,56.29,134.77,25.84,147.5 +6209,7,E06000011,4,63.67,186.77,25.84,203.75 +3676,8,E06000011,0,51.82,209.73,18.64,228.81 +6610,9,E06000011,1,50.76,111.41,25.84,120.73 +6936,9,E06000011,2,52.6,140.6,25.84,152.55 +7262,9,E06000011,3,62.75,168.46,25.84,184.37 +7588,9,E06000011,4,72.9,233.46,25.84,254.69 +7914,10,E06000011,0,52.86,378.39,18.64,412.63 +91,1,E07000193,1,52.6,98.69,25.84,124.15 +417,1,E07000193,2,58.13,116.72,25.84,136.89 +743,1,E07000193,3,69.2,132.64,25.84,160.24 +1069,1,E07000193,4,80.28,161.3,25.84,178.28 +2699,2,E07000193,0,39.38,245.49,18.64,382.53 +1395,3,E07000193,1,46.13,88.07,25.84,97.63 +1721,3,E07000193,2,49.84,94.47,25.84,102.94 +2047,3,E07000193,3,59.98,104,25.84,119.9 +2373,3,E07000193,4,68.28,127.34,25.84,127.34 +3025,4,E07000193,0,46.63,107.26,18.64,107.26 +4286,5,E07000193,1,52.6,91.27,25.84,99.75 +4896,5,E07000193,2,58.13,114.6,25.84,124.15 +5527,5,E07000193,3,69.2,147.5,25.84,160.24 +6179,5,E07000193,4,80.28,203.75,25.84,221.77 +3351,6,E07000193,0,39.38,228.81,18.64,249.07 +4507,7,E07000193,1,46.13,91.27,25.84,99.75 +5192,7,E07000193,2,49.84,114.6,25.84,124.15 +5783,7,E07000193,3,59.98,147.5,25.84,160.24 +6444,7,E07000193,4,68.28,203.75,25.84,221.77 +3677,8,E07000193,0,46.63,228.81,18.64,249.07 +6611,9,E07000193,1,52.6,114.09,25.84,124.69 +6937,9,E07000193,2,58.13,143.25,25.84,155.2 +7263,9,E07000193,3,69.2,184.37,25.84,200.32 +7589,9,E07000193,4,80.28,254.69,25.84,277.23 +7915,10,E07000193,0,39.38,347.11,18.64,379.86 +264,1,E07000244,1,54.44,118.85,25.84,148.56 +590,1,E07000244,2,64.59,142.18,25.84,167.67 +916,1,E07000244,3,71.06,155.98,25.84,180.4 +1242,1,E07000244,4,81.2,170.85,25.84,178.28 +2872,2,E07000244,0,36.26,226.42,18.64,423.05 +1568,3,E07000244,1,49.84,99.75,25.84,131.58 +1894,3,E07000244,2,58.13,117.78,25.84,132.64 +2220,3,E07000244,3,63.67,130.52,25.84,143.25 +2546,3,E07000244,4,71.06,148.56,25.84,159.17 +3198,4,E07000244,0,55.97,135.86,18.64,318.19 +4156,5,E07000244,1,54.44,105.06,25.84,114.6 +4737,5,E07000244,2,64.59,125.22,25.84,136.89 +5456,5,E07000244,3,71.06,153.86,25.84,167.67 +6166,5,E07000244,4,81.2,227.08,25.84,246.18 +3524,6,E07000244,0,36.26,255.02,18.64,276.48 +4273,7,E07000244,1,49.84,105.06,25.84,114.6 +4999,7,E07000244,2,58.13,125.22,25.84,136.89 +5642,7,E07000244,3,63.67,153.86,25.84,167.67 +6304,7,E07000244,4,71.06,227.08,25.84,246.18 +3850,8,E07000244,0,55.97,255.02,18.64,276.48 +6784,9,E07000244,1,54.44,131.32,25.84,143.25 +7110,9,E07000244,2,64.59,156.51,25.84,171.11 +7436,9,E07000244,3,71.06,192.33,25.84,209.57 +7762,9,E07000244,4,81.2,283.85,25.84,307.73 +8088,10,E07000244,0,36.26,443.93,18.64,484.13 +92,1,E07000061,1,57.21,123.09,25.84,176.15 +418,1,E07000061,2,71.06,146.43,25.84,186.77 +744,1,E07000061,3,81.2,161.3,25.84,203.75 +1070,1,E07000061,4,89.52,178.28,25.84,221.77 +2700,2,E07000061,0,62.17,268.13,18.64,344.4 +1396,3,E07000061,1,51.68,115.66,25.84,159.17 +1722,3,E07000061,2,62.75,129.46,25.84,145.37 +2048,3,E07000061,3,68.28,149.62,25.84,185.7 +2374,3,E07000061,4,72.9,184.64,25.84,194.19 +3026,4,E07000061,0,48.71,195.45,18.64,204.96 +3998,5,E07000061,1,57.21,130.52,25.84,143.25 +4613,5,E07000061,2,71.06,170.85,25.84,185.7 +5265,5,E07000061,3,81.2,209.06,25.84,228.14 +5950,5,E07000061,4,89.52,472.21,25.84,514.66 +3352,6,E07000061,0,62.17,530.31,18.64,578 +4065,7,E07000061,1,51.68,130.52,25.84,143.25 +4760,7,E07000061,2,62.75,170.85,25.84,185.7 +5365,7,E07000061,3,68.28,209.06,25.84,228.14 +6054,7,E07000061,4,72.9,472.21,25.84,514.66 +3678,8,E07000061,0,48.71,530.31,18.64,578 +6612,9,E07000061,1,57.21,163.15,25.84,179.06 +6938,9,E07000061,2,71.06,213.57,25.84,232.15 +7264,9,E07000061,3,81.2,261.31,25.84,285.19 +7590,9,E07000061,4,89.52,590.27,25.84,643.34 +7916,10,E07000061,0,62.17,379.86,18.64,414.12 +93,1,E07000086,1,57.21,123.09,25.84,176.15 +419,1,E07000086,2,71.06,146.43,25.84,186.77 +745,1,E07000086,3,81.2,161.3,25.84,203.75 +1071,1,E07000086,4,89.52,178.28,25.84,221.77 +2701,2,E07000086,0,62.17,268.13,18.64,344.4 +1397,3,E07000086,1,51.68,115.66,25.84,159.17 +1723,3,E07000086,2,62.75,129.46,25.84,145.37 +2049,3,E07000086,3,68.28,149.62,25.84,185.7 +2375,3,E07000086,4,72.9,184.64,25.84,194.19 +3027,4,E07000086,0,48.71,195.45,18.64,204.96 +3999,5,E07000086,1,57.21,134.77,25.84,147.5 +4614,5,E07000086,2,71.06,164.48,25.84,179.34 +5266,5,E07000086,3,81.2,202.69,25.84,220.72 +5951,5,E07000086,4,89.52,306.68,25.84,334.25 +3353,6,E07000086,0,62.17,343.2,18.64,375.37 +4066,7,E07000086,1,51.68,134.77,25.84,147.5 +4761,7,E07000086,2,62.75,164.48,25.84,179.34 +5366,7,E07000086,3,68.28,202.69,25.84,220.72 +6055,7,E07000086,4,72.9,306.68,25.84,334.25 +3679,8,E07000086,0,48.71,343.2,18.64,375.37 +6613,9,E07000086,1,57.21,168.46,25.84,184.37 +6939,9,E07000086,2,71.06,205.6,25.84,224.18 +7265,9,E07000086,3,81.2,253.36,25.84,275.9 +7591,9,E07000086,4,89.52,383.34,25.84,417.83 +7917,10,E07000086,0,62.17,503.5,18.64,549.69 +95,1,E07000207,1,57.21,123.09,25.84,176.15 +421,1,E07000207,2,71.06,146.43,25.84,186.77 +747,1,E07000207,3,81.2,161.3,25.84,203.75 +1073,1,E07000207,4,89.52,178.28,25.84,221.77 +2703,2,E07000207,0,62.17,268.13,18.64,344.4 +1399,3,E07000207,1,51.68,115.66,25.84,159.17 +1725,3,E07000207,2,62.75,129.46,25.84,145.37 +2051,3,E07000207,3,68.28,149.62,25.84,185.7 +2377,3,E07000207,4,72.9,184.64,25.84,194.19 +3029,4,E07000207,0,48.71,195.45,18.64,204.96 +4000,5,E07000207,1,57.21,186.77,25.84,203.75 +4615,5,E07000207,2,71.06,270.61,25.84,295.01 +5267,5,E07000207,3,81.2,326.84,25.84,356.55 +5952,5,E07000207,4,89.52,751.3,25.84,819.21 +3355,6,E07000207,0,62.17,843.74,18.64,920.01 +4067,7,E07000207,1,51.68,186.77,25.84,203.75 +4762,7,E07000207,2,62.75,270.61,25.84,295.01 +5367,7,E07000207,3,68.28,326.84,25.84,356.55 +6056,7,E07000207,4,72.9,751.3,25.84,819.21 +3681,8,E07000207,0,48.71,843.74,18.64,920.01 +6615,9,E07000207,1,57.21,233.46,25.84,254.69 +6941,9,E07000207,2,71.06,338.25,25.84,368.76 +7267,9,E07000207,3,81.2,408.54,25.84,445.68 +7593,9,E07000207,4,89.52,939.12,25.84,1024.03 +7919,10,E07000207,0,62.17,473.7,18.64,516.92 +96,1,E09000010,1,65.51,145.37,25.84,197.39 +422,1,E09000010,2,77.51,157.04,25.84,192.07 +748,1,E09000010,3,83.97,166.61,25.84,226.01 +1074,1,E09000010,4,101.48,186.77,25.84,251.49 +2704,2,E09000010,0,70.47,317,18.64,502.91 +1400,3,E09000010,1,58.13,118.85,25.84,146.43 +1726,3,E09000010,2,63.67,139.02,25.84,175.09 +2052,3,E09000010,3,71.06,159.17,25.84,200.55 +2378,3,E09000010,4,83.05,259.98,25.84,261.04 +3030,4,E09000010,0,60.1,371.82,18.64,402.8 +3959,5,E09000010,1,65.51,186.77,25.84,203.75 +4574,5,E09000010,2,77.51,259.98,25.84,282.26 +5226,5,E09000010,3,83.97,304.55,25.84,332.14 +5911,5,E09000010,4,101.48,426.59,25.84,465.84 +3356,6,E09000010,0,70.47,479.07,18.64,523.16 +4173,7,E09000010,1,58.13,186.77,25.84,203.75 +4674,7,E09000010,2,63.67,259.98,25.84,282.26 +5326,7,E09000010,3,71.06,304.55,25.84,332.14 +5878,7,E09000010,4,83.05,426.59,25.84,465.84 +3682,8,E09000010,0,60.1,479.07,18.64,523.16 +6616,9,E09000010,1,65.51,233.46,25.84,254.69 +6942,9,E09000010,2,77.51,324.98,25.84,352.84 +7268,9,E09000010,3,83.97,380.68,25.84,415.17 +7594,9,E09000010,4,101.48,533.22,25.84,582.31 +7920,10,E09000010,0,70.47,308.35,18.64,336.65 +97,1,E07000072,1,54.44,118.85,25.84,148.56 +423,1,E07000072,2,64.59,142.18,25.84,167.67 +749,1,E07000072,3,71.06,155.98,25.84,180.4 +1075,1,E07000072,4,81.2,170.85,25.84,178.28 +2705,2,E07000072,0,36.26,226.42,18.64,423.05 +1401,3,E07000072,1,49.84,99.75,25.84,131.58 +1727,3,E07000072,2,58.13,117.78,25.84,132.64 +2053,3,E07000072,3,63.67,130.52,25.84,143.25 +2379,3,E07000072,4,71.06,148.56,25.84,159.17 +3031,4,E07000072,0,55.97,135.86,18.64,318.19 +4133,5,E07000072,1,54.44,170.85,25.84,185.7 +4714,5,E07000072,2,64.59,227.08,25.84,246.18 +5433,5,E07000072,3,71.06,292.87,25.84,319.41 +6143,5,E07000072,4,81.2,494.49,25.84,539.06 +3357,6,E07000072,0,36.26,555.35,18.64,605.39 +4250,7,E07000072,1,49.84,170.85,25.84,185.7 +4976,7,E07000072,2,58.13,227.08,25.84,246.18 +5619,7,E07000072,3,63.67,292.87,25.84,319.41 +6281,7,E07000072,4,71.06,494.49,25.84,539.06 +3683,8,E07000072,0,55.97,555.35,18.64,605.39 +6617,9,E07000072,1,54.44,213.57,25.84,232.15 +6943,9,E07000072,2,64.59,283.85,25.84,307.73 +7269,9,E07000072,3,71.06,366.11,25.84,399.27 +7595,9,E07000072,4,81.2,618.12,25.84,673.83 +7921,10,E07000072,0,36.26,372.42,18.64,406.69 +98,1,E07000208,1,57.21,123.09,25.84,176.15 +424,1,E07000208,2,71.06,146.43,25.84,186.77 +750,1,E07000208,3,81.2,161.3,25.84,203.75 +1076,1,E07000208,4,89.52,178.28,25.84,221.77 +2706,2,E07000208,0,62.17,268.13,18.64,344.4 +1402,3,E07000208,1,51.68,115.66,25.84,159.17 +1728,3,E07000208,2,62.75,129.46,25.84,145.37 +2054,3,E07000208,3,68.28,149.62,25.84,185.7 +2380,3,E07000208,4,72.9,184.64,25.84,194.19 +3032,4,E07000208,0,48.71,195.45,18.64,204.96 +4001,5,E07000208,1,57.21,186.77,25.84,203.75 +4616,5,E07000208,2,71.06,248.31,25.84,270.61 +5268,5,E07000208,3,81.2,337.44,25.84,368.22 +5953,5,E07000208,4,89.52,523.16,25.84,569.84 +3358,6,E07000208,0,62.17,587.54,18.64,639.96 +4068,7,E07000208,1,51.68,186.77,25.84,203.75 +4763,7,E07000208,2,62.75,248.31,25.84,270.61 +5368,7,E07000208,3,68.28,337.44,25.84,368.22 +6057,7,E07000208,4,72.9,523.16,25.84,569.84 +3684,8,E07000208,0,48.71,587.54,18.64,639.96 +6618,9,E07000208,1,57.21,233.46,25.84,254.69 +6944,9,E07000208,2,71.06,310.37,25.84,338.25 +7270,9,E07000208,3,81.2,421.8,25.84,460.26 +7596,9,E07000208,4,89.52,653.94,25.84,712.3 +7922,10,E07000208,0,62.17,293.46,18.64,320.27 +99,1,E07000036,1,51.68,99.75,25.84,122.03 +425,1,E07000036,2,61.83,114.6,25.84,129.46 +751,1,E07000036,3,68.28,126.28,25.84,137.95 +1077,1,E07000036,4,75.67,158.1,25.84,166.61 +2707,2,E07000036,0,51.82,240.72,18.64,361.1 +1403,3,E07000036,1,46.13,90.21,25.84,107.19 +1729,3,E07000036,2,52.6,96.56,25.84,108.24 +2055,3,E07000036,3,58.13,104,25.84,118.85 +2381,3,E07000036,4,63.67,122.03,25.84,122.03 +3033,4,E07000036,0,49.74,114.39,18.64,123.94 +4326,5,E07000036,1,51.68,91.27,25.84,98.69 +5022,5,E07000036,2,61.83,113.53,25.84,123.09 +5665,5,E07000036,3,68.28,130.52,25.84,143.25 +6240,5,E07000036,4,75.67,203.75,25.84,221.77 +3359,6,E07000036,0,51.82,228.81,18.64,249.07 +4426,7,E07000036,1,46.13,91.27,25.84,98.69 +5162,7,E07000036,2,52.6,113.53,25.84,123.09 +5823,7,E07000036,3,58.13,130.52,25.84,143.25 +6484,7,E07000036,4,63.67,203.75,25.84,221.77 +3685,8,E07000036,0,49.74,228.81,18.64,249.07 +6619,9,E07000036,1,51.68,114.09,25.84,123.35 +6945,9,E07000036,2,61.83,141.94,25.84,153.86 +7271,9,E07000036,3,68.28,163.15,25.84,179.06 +7597,9,E07000036,4,75.67,254.69,25.84,277.23 +7923,10,E07000036,0,51.82,881.9,18.64,962.3 +100,1,E07000041,1,48.92,107.19,25.84,140.08 +426,1,E07000041,2,55.37,120.97,25.84,144.31 +752,1,E07000041,3,61.83,141.13,25.84,161.3 +1078,1,E07000041,4,71.06,158.1,25.84,194.19 +2708,2,E07000041,0,54.93,231.2,18.64,358.7 +1404,3,E07000041,1,47.06,89.13,25.84,210.12 +1730,3,E07000041,2,54.44,100.81,25.84,111.41 +2056,3,E07000041,3,61.83,109.29,25.84,126.28 +2382,3,E07000041,4,73.82,130.52,25.84,130.52 +3034,4,E07000041,0,54.93,115.59,18.64,141.81 +4206,5,E07000041,1,48.92,134.77,25.84,147.5 +4842,5,E07000041,2,55.37,164.48,25.84,179.34 +5473,5,E07000041,3,61.83,203.75,25.84,220.72 +6011,5,E07000041,4,71.06,481.75,25.84,526.35 +3360,6,E07000041,0,54.93,541.04,18.64,591.1 +3922,7,E07000041,1,47.06,134.77,25.84,147.5 +5119,7,E07000041,2,54.44,164.48,25.84,179.34 +5699,7,E07000041,3,61.83,203.75,25.84,220.72 +6411,7,E07000041,4,73.82,481.75,25.84,526.35 +3686,8,E07000041,0,54.93,541.04,18.64,591.1 +6620,9,E07000041,1,48.92,168.46,25.84,184.37 +6946,9,E07000041,2,55.37,205.6,25.84,224.18 +7272,9,E07000041,3,61.83,254.69,25.84,275.9 +7598,9,E07000041,4,71.06,602.21,25.84,657.9 +7924,10,E07000041,0,54.93,308.35,18.64,336.65 +101,1,E07000087,1,57.21,123.09,25.84,176.15 +427,1,E07000087,2,71.06,146.43,25.84,186.77 +753,1,E07000087,3,81.2,161.3,25.84,203.75 +1079,1,E07000087,4,89.52,178.28,25.84,221.77 +2709,2,E07000087,0,62.17,268.13,18.64,344.4 +1405,3,E07000087,1,51.68,115.66,25.84,159.17 +1731,3,E07000087,2,62.75,129.46,25.84,145.37 +2057,3,E07000087,3,68.28,149.62,25.84,185.7 +2383,3,E07000087,4,72.9,184.64,25.84,194.19 +3035,4,E07000087,0,48.71,195.45,18.64,204.96 +4002,5,E07000087,1,57.21,134.77,25.84,147.5 +4617,5,E07000087,2,71.06,164.48,25.84,179.34 +5269,5,E07000087,3,81.2,202.69,25.84,220.72 +5954,5,E07000087,4,89.52,315.17,25.84,342.76 +3361,6,E07000087,0,62.17,353.92,18.64,384.93 +4069,7,E07000087,1,51.68,134.77,25.84,147.5 +4764,7,E07000087,2,62.75,164.48,25.84,179.34 +5369,7,E07000087,3,68.28,202.69,25.84,220.72 +6058,7,E07000087,4,72.9,315.17,25.84,342.76 +3687,8,E07000087,0,48.71,353.92,18.64,384.93 +6621,9,E07000087,1,57.21,168.46,25.84,184.37 +6947,9,E07000087,2,71.06,205.6,25.84,224.18 +7273,9,E07000087,3,81.2,253.36,25.84,275.9 +7599,9,E07000087,4,89.52,393.95,25.84,428.42 +7925,10,E07000087,0,62.17,254.72,18.64,278.57 +102,1,E07000010,1,54.44,118.85,25.84,148.56 +428,1,E07000010,2,64.59,142.18,25.84,167.67 +754,1,E07000010,3,71.06,155.98,25.84,180.4 +1080,1,E07000010,4,81.2,170.85,25.84,178.28 +2710,2,E07000010,0,36.26,226.42,18.64,423.05 +1406,3,E07000010,1,49.84,99.75,25.84,131.58 +1732,3,E07000010,2,58.13,117.78,25.84,132.64 +2058,3,E07000010,3,63.67,130.52,25.84,143.25 +2384,3,E07000010,4,71.06,148.56,25.84,159.17 +3036,4,E07000010,0,55.97,135.86,18.64,318.19 +4134,5,E07000010,1,54.44,95.53,25.84,104 +4715,5,E07000010,2,64.59,125.22,25.84,136.89 +5434,5,E07000010,3,71.06,147.5,25.84,160.24 +6144,5,E07000010,4,81.2,192.07,25.84,210.12 +3362,6,E07000010,0,36.26,215.7,18.64,235.95 +4251,7,E07000010,1,49.84,95.53,25.84,104 +4977,7,E07000010,2,58.13,125.22,25.84,136.89 +5620,7,E07000010,3,63.67,147.5,25.84,160.24 +6282,7,E07000010,4,71.06,192.07,25.84,210.12 +3688,8,E07000010,0,55.97,215.7,18.64,235.95 +6622,9,E07000010,1,54.44,119.38,25.84,129.98 +6948,9,E07000010,2,64.59,156.51,25.84,171.11 +7274,9,E07000010,3,71.06,184.37,25.84,200.32 +7600,9,E07000010,4,81.2,240.08,25.84,262.64 +7926,10,E07000010,0,36.26,341.13,18.64,372.42 +104,1,E07000080,1,48.92,107.19,25.84,140.08 +430,1,E07000080,2,55.37,120.97,25.84,144.31 +756,1,E07000080,3,61.83,141.13,25.84,161.3 +1082,1,E07000080,4,71.06,158.1,25.84,194.19 +2712,2,E07000080,0,54.93,231.2,18.64,358.7 +1408,3,E07000080,1,47.06,89.13,25.84,210.12 +1734,3,E07000080,2,54.44,100.81,25.84,111.41 +2060,3,E07000080,3,61.83,109.29,25.84,126.28 +2386,3,E07000080,4,73.82,130.52,25.84,130.52 +3038,4,E07000080,0,54.93,115.59,18.64,141.81 +4207,5,E07000080,1,48.92,97.63,25.84,107.19 +4843,5,E07000080,2,55.37,126.28,25.84,137.95 +5474,5,E07000080,3,61.83,147.5,25.84,160.24 +6012,5,E07000080,4,71.06,203.75,25.84,221.77 +3364,6,E07000080,0,54.93,228.81,18.64,249.07 +3923,7,E07000080,1,47.06,97.63,25.84,107.19 +5120,7,E07000080,2,54.44,126.28,25.84,137.95 +5700,7,E07000080,3,61.83,147.5,25.84,160.24 +6412,7,E07000080,4,73.82,203.75,25.84,221.77 +3690,8,E07000080,0,54.93,228.81,18.64,249.07 +6624,9,E07000080,1,48.92,122.03,25.84,133.98 +6950,9,E07000080,2,55.37,157.85,25.84,172.43 +7276,9,E07000080,3,61.83,184.37,25.84,200.32 +7602,9,E07000080,4,71.06,254.69,25.84,277.23 +7928,10,E07000080,0,54.93,403.71,18.64,437.96 +105,1,E07000119,1,51.68,93.39,25.84,116.72 +431,1,E07000119,2,59.06,107.19,25.84,134.77 +757,1,E07000119,3,65.51,119.9,25.84,145.37 +1083,1,E07000119,4,71.98,133.71,25.84,159.17 +2713,2,E07000119,0,55.97,239.54,18.64,342.01 +1409,3,E07000119,1,43.36,85.94,25.84,100.81 +1735,3,E07000119,2,53.52,94.47,25.84,113.53 +2061,3,E07000119,3,58.13,105.06,25.84,124.15 +2387,3,E07000119,4,55.37,118.85,25.84,133.71 +3039,4,E07000119,0,33.16,469.54,18.64,599.44 +4365,5,E07000119,1,51.68,102.94,25.84,112.47 +4935,5,E07000119,2,59.06,136.89,25.84,148.56 +5578,5,E07000119,3,65.51,170.85,25.84,185.7 +6326,5,E07000119,4,71.98,248.31,25.84,270.61 +3365,6,E07000119,0,55.97,278.86,18.64,303.89 +4477,7,E07000119,1,43.36,102.94,25.84,112.47 +5073,7,E07000119,2,53.52,136.89,25.84,148.56 +5753,7,E07000119,3,58.13,170.85,25.84,185.7 +6377,7,E07000119,4,55.37,248.31,25.84,270.61 +3691,8,E07000119,0,33.16,278.86,18.64,303.89 +6625,9,E07000119,1,51.68,128.67,25.84,140.6 +6951,9,E07000119,2,59.06,171.11,25.84,185.69 +7277,9,E07000119,3,65.51,213.57,25.84,232.15 +7603,9,E07000119,4,71.98,310.37,25.84,338.25 +7929,10,E07000119,0,55.97,473.7,18.64,516.92 +106,1,E08000037,1,50.76,88.07,25.84,97.63 +432,1,E08000037,2,57.21,101.88,25.84,119.9 +758,1,E08000037,3,60.9,113.53,25.84,159.17 +1084,1,E08000037,4,70.13,127.34,25.84,139.02 +2714,2,E08000037,0,55.97,237.14,18.64,340.83 +1410,3,E08000037,1,42.44,99.75,25.84,105.06 +1736,3,E08000037,2,49.84,90.21,25.84,111.41 +2062,3,E08000037,3,53.52,105.06,25.84,124.15 +2388,3,E08000037,4,56.29,115.66,25.84,119.9 +3040,4,E08000037,0,47.67,253.84,18.64,288.39 +4534,5,E08000037,1,50.76,113.53,25.84,123.09 +5049,5,E08000037,2,57.21,119.9,25.84,130.52 +5554,5,E08000037,3,60.9,142.18,25.84,154.93 +6353,5,E08000037,4,70.13,192.07,25.84,210.12 +3366,6,E08000037,0,55.97,215.7,18.64,235.95 +4453,7,E08000037,1,42.44,113.53,25.84,123.09 +5100,7,E08000037,2,49.84,119.9,25.84,130.52 +5729,7,E08000037,3,53.52,142.18,25.84,154.93 +6511,7,E08000037,4,56.29,192.07,25.84,210.12 +3692,8,E08000037,0,47.67,215.7,18.64,235.95 +6626,9,E08000037,1,42.44,141.94,25.84,153.86 +6952,9,E08000037,2,57.21,149.9,25.84,163.15 +7278,9,E08000037,3,60.9,177.73,25.84,193.64 +7604,9,E08000037,4,70.13,240.08,25.84,262.64 +7930,10,E08000037,0,55.97,379.86,18.64,414.12 +107,1,E07000173,1,51.68,99.75,25.84,122.03 +433,1,E07000173,2,61.83,114.6,25.84,129.46 +759,1,E07000173,3,68.28,126.28,25.84,137.95 +1085,1,E07000173,4,75.67,158.1,25.84,166.61 +2715,2,E07000173,0,51.82,240.72,18.64,361.1 +1411,3,E07000173,1,46.13,90.21,25.84,107.19 +1737,3,E07000173,2,52.6,96.56,25.84,108.24 +2063,3,E07000173,3,58.13,104,25.84,118.85 +2389,3,E07000173,4,63.67,122.03,25.84,122.03 +3041,4,E07000173,0,49.74,114.39,18.64,123.94 +4327,5,E07000173,1,51.68,102.94,25.84,112.47 +5023,5,E07000173,2,61.83,119.9,25.84,130.52 +5666,5,E07000173,3,68.28,146.43,25.84,158.1 +6241,5,E07000173,4,75.67,202.69,25.84,220.72 +3367,6,E07000173,0,51.82,227.63,18.64,247.88 +4427,7,E07000173,1,46.13,102.94,25.84,112.47 +5163,7,E07000173,2,52.6,119.9,25.84,130.52 +5824,7,E07000173,3,58.13,146.43,25.84,158.1 +6485,7,E07000173,4,63.67,202.69,25.84,220.72 +3693,8,E07000173,0,49.74,227.63,18.64,247.88 +6627,9,E07000173,1,51.68,128.67,25.84,140.6 +6953,9,E07000173,2,61.83,149.9,25.84,163.15 +7279,9,E07000173,3,68.28,183.04,25.84,197.62 +7605,9,E07000173,4,75.67,253.36,25.84,275.9 +7931,10,E07000173,0,51.82,756.74,18.64,825.27 +108,1,E07000081,1,48.92,107.19,25.84,140.08 +434,1,E07000081,2,55.37,120.97,25.84,144.31 +760,1,E07000081,3,61.83,141.13,25.84,161.3 +1086,1,E07000081,4,71.06,158.1,25.84,194.19 +2716,2,E07000081,0,54.93,231.2,18.64,358.7 +1412,3,E07000081,1,47.06,89.13,25.84,210.12 +1738,3,E07000081,2,54.44,100.81,25.84,111.41 +2064,3,E07000081,3,61.83,109.29,25.84,126.28 +2390,3,E07000081,4,73.82,130.52,25.84,130.52 +3042,4,E07000081,0,54.93,115.59,18.64,141.81 +4208,5,E07000081,1,48.92,109.29,25.84,118.85 +4844,5,E07000081,2,55.37,130.52,25.84,143.25 +5475,5,E07000081,3,61.83,164.48,25.84,179.34 +6013,5,E07000081,4,71.06,248.31,25.84,270.61 +3368,6,E07000081,0,54.93,278.86,18.64,303.89 +3924,7,E07000081,1,47.06,109.29,25.84,118.85 +5121,7,E07000081,2,54.44,130.52,25.84,143.25 +5701,7,E07000081,3,61.83,164.48,25.84,179.34 +6413,7,E07000081,4,73.82,248.31,25.84,270.61 +3694,8,E07000081,0,54.93,278.86,18.64,303.89 +6628,9,E07000081,1,48.92,136.63,25.84,148.56 +6954,9,E07000081,2,55.37,163.15,25.84,179.06 +7280,9,E07000081,3,61.83,205.6,25.84,224.18 +7606,9,E07000081,4,71.06,310.37,25.84,338.25 +7932,10,E07000081,0,54.93,372.42,18.64,406.69 +109,1,E07000088,1,57.21,123.09,25.84,176.15 +435,1,E07000088,2,71.06,146.43,25.84,186.77 +761,1,E07000088,3,81.2,161.3,25.84,203.75 +1087,1,E07000088,4,89.52,178.28,25.84,221.77 +2717,2,E07000088,0,62.17,268.13,18.64,344.4 +1413,3,E07000088,1,51.68,115.66,25.84,159.17 +1739,3,E07000088,2,62.75,129.46,25.84,145.37 +2065,3,E07000088,3,68.28,149.62,25.84,185.7 +2391,3,E07000088,4,72.9,184.64,25.84,194.19 +3043,4,E07000088,0,48.71,195.45,18.64,204.96 +4003,5,E07000088,1,57.21,125.22,25.84,136.89 +4618,5,E07000088,2,71.06,147.5,25.84,160.24 +5270,5,E07000088,3,81.2,176.15,25.84,191.01 +5955,5,E07000088,4,89.52,281.2,25.84,306.68 +3369,6,E07000088,0,62.17,315.82,18.64,344.4 +4070,7,E07000088,1,51.68,125.22,25.84,136.89 +4765,7,E07000088,2,62.75,147.5,25.84,160.24 +5370,7,E07000088,3,68.28,176.15,25.84,191.01 +6059,7,E07000088,4,72.9,281.2,25.84,306.68 +3695,8,E07000088,0,48.71,315.82,18.64,344.4 +6629,9,E07000088,1,57.21,156.51,25.84,171.11 +6955,9,E07000088,2,71.06,184.37,25.84,200.32 +7281,9,E07000088,3,81.2,220.21,25.84,238.77 +7607,9,E07000088,4,89.52,351.51,25.84,383.34 +7933,10,E07000088,0,62.17,239.85,18.64,260.68 +110,1,E07000109,1,57.21,123.09,25.84,176.15 +436,1,E07000109,2,71.06,146.43,25.84,186.77 +762,1,E07000109,3,81.2,161.3,25.84,203.75 +1088,1,E07000109,4,89.52,178.28,25.84,221.77 +2718,2,E07000109,0,62.17,268.13,18.64,344.4 +1414,3,E07000109,1,51.68,115.66,25.84,159.17 +1740,3,E07000109,2,62.75,129.46,25.84,145.37 +2066,3,E07000109,3,68.28,149.62,25.84,185.7 +2392,3,E07000109,4,72.9,184.64,25.84,194.19 +3044,4,E07000109,0,48.71,195.45,18.64,204.96 +4004,5,E07000109,1,57.21,125.22,25.84,136.89 +4619,5,E07000109,2,71.06,159.17,25.84,174.02 +5271,5,E07000109,3,81.2,186.77,25.84,203.75 +5956,5,E07000109,4,89.52,270.61,25.84,295.01 +3370,6,E07000109,0,62.17,303.89,18.64,331.29 +4071,7,E07000109,1,51.68,125.22,25.84,136.89 +4766,7,E07000109,2,62.75,159.17,25.84,174.02 +5371,7,E07000109,3,68.28,186.77,25.84,203.75 +6060,7,E07000109,4,72.9,270.61,25.84,295.01 +3696,8,E07000109,0,48.71,303.89,18.64,331.29 +6630,9,E07000109,1,57.21,156.51,25.84,171.11 +6956,9,E07000109,2,71.06,198.96,25.84,217.54 +7282,9,E07000109,3,81.2,233.46,25.84,254.69 +7608,9,E07000109,4,89.52,338.25,25.84,368.76 +7934,10,E07000109,0,62.17,394.77,18.64,430.5 +111,1,E07000145,1,54.44,118.85,25.84,148.56 +437,1,E07000145,2,64.59,142.18,25.84,167.67 +763,1,E07000145,3,71.06,155.98,25.84,180.4 +1089,1,E07000145,4,81.2,170.85,25.84,178.28 +2719,2,E07000145,0,36.26,226.42,18.64,423.05 +1415,3,E07000145,1,49.84,99.75,25.84,131.58 +1741,3,E07000145,2,58.13,117.78,25.84,132.64 +2067,3,E07000145,3,63.67,130.52,25.84,143.25 +2393,3,E07000145,4,71.06,148.56,25.84,159.17 +3045,4,E07000145,0,55.97,135.86,18.64,318.19 +4136,5,E07000145,1,54.44,98.69,25.84,108.24 +4717,5,E07000145,2,64.59,119.9,25.84,130.52 +5436,5,E07000145,3,71.06,130.52,25.84,142.18 +6146,5,E07000145,4,81.2,171.91,25.84,186.77 +3371,6,E07000145,0,36.26,193.06,18.64,209.73 +4253,7,E07000145,1,49.84,98.69,25.84,108.24 +4979,7,E07000145,2,58.13,119.9,25.84,130.52 +5622,7,E07000145,3,63.67,130.52,25.84,142.18 +6284,7,E07000145,4,71.06,171.91,25.84,186.77 +3697,8,E07000145,0,55.97,193.06,18.64,209.73 +6631,9,E07000145,1,54.44,123.35,25.84,135.3 +6957,9,E07000145,2,64.59,149.9,25.84,163.15 +7283,9,E07000145,3,71.06,163.15,25.84,177.73 +7609,9,E07000145,4,81.2,214.91,25.84,233.46 +7935,10,E07000145,0,36.26,254.72,18.64,278.57 +112,1,E09000011,1,65.51,145.37,25.84,197.39 +438,1,E09000011,2,77.51,157.04,25.84,192.07 +764,1,E09000011,3,83.97,166.61,25.84,226.01 +1090,1,E09000011,4,101.48,186.77,25.84,251.49 +2720,2,E09000011,0,70.47,317,18.64,502.91 +1416,3,E09000011,1,58.13,118.85,25.84,146.43 +1742,3,E09000011,2,63.67,139.02,25.84,175.09 +2068,3,E09000011,3,71.06,159.17,25.84,200.55 +2394,3,E09000011,4,83.05,259.98,25.84,261.04 +3046,4,E09000011,0,60.1,371.82,18.64,402.8 +3960,5,E09000011,1,65.51,198.45,25.84,215.41 +4575,5,E09000011,2,77.51,281.2,25.84,306.68 +5227,5,E09000011,3,83.97,292.87,25.84,319.41 +5912,5,E09000011,4,101.48,383.08,25.84,417.04 +3372,6,E09000011,0,70.47,430.21,18.64,468.35 +4174,7,E09000011,1,58.13,198.45,25.84,215.41 +4675,7,E09000011,2,63.67,281.2,25.84,306.68 +5327,7,E09000011,3,71.06,292.87,25.84,319.41 +5879,7,E09000011,4,83.05,383.08,25.84,417.04 +3698,8,E09000011,0,60.1,430.21,18.64,468.35 +6632,9,E09000011,1,65.51,248.03,25.84,269.26 +6958,9,E09000011,2,77.51,351.51,25.84,383.34 +7284,9,E09000011,3,83.97,366.11,25.84,399.27 +7610,9,E09000011,4,101.48,478.85,25.84,521.29 +7936,10,E09000011,0,70.47,411.13,18.64,448.39 +113,1,E07000209,1,57.21,123.09,25.84,176.15 +439,1,E07000209,2,71.06,146.43,25.84,186.77 +765,1,E07000209,3,81.2,161.3,25.84,203.75 +1091,1,E07000209,4,89.52,178.28,25.84,221.77 +2721,2,E07000209,0,62.17,268.13,18.64,344.4 +1417,3,E07000209,1,51.68,115.66,25.84,159.17 +1743,3,E07000209,2,62.75,129.46,25.84,145.37 +2069,3,E07000209,3,68.28,149.62,25.84,185.7 +2395,3,E07000209,4,72.9,184.64,25.84,194.19 +3047,4,E07000209,0,48.71,195.45,18.64,204.96 +4005,5,E07000209,1,57.21,192.07,25.84,210.12 +4620,5,E07000209,2,71.06,269.54,25.84,293.94 +5272,5,E07000209,3,81.2,326.84,25.84,356.55 +5957,5,E07000209,4,89.52,561.35,25.84,611.23 +3373,6,E07000209,0,62.17,630.42,18.64,686.44 +4072,7,E07000209,1,51.68,192.07,25.84,210.12 +4767,7,E07000209,2,62.75,269.54,25.84,293.94 +5372,7,E07000209,3,68.28,326.84,25.84,356.55 +6061,7,E07000209,4,72.9,561.35,25.84,611.23 +3699,8,E07000209,0,48.71,630.42,18.64,686.44 +6633,9,E07000209,1,57.21,240.08,25.84,262.64 +6959,9,E07000209,2,71.06,336.93,25.84,367.42 +7285,9,E07000209,3,81.2,408.54,25.84,445.68 +7611,9,E07000209,4,89.52,701.69,25.84,764.03 +7937,10,E07000209,0,62.17,269.62,18.64,294.95 +114,1,E09000012,1,65.51,145.37,25.84,197.39 +440,1,E09000012,2,77.51,157.04,25.84,192.07 +766,1,E09000012,3,83.97,166.61,25.84,226.01 +1092,1,E09000012,4,101.48,186.77,25.84,251.49 +2722,2,E09000012,0,70.47,317,18.64,502.91 +1418,3,E09000012,1,58.13,118.85,25.84,146.43 +1744,3,E09000012,2,63.67,139.02,25.84,175.09 +2070,3,E09000012,3,71.06,159.17,25.84,200.55 +2396,3,E09000012,4,83.05,259.98,25.84,261.04 +3048,4,E09000012,0,60.1,371.82,18.64,402.8 +3961,5,E09000012,1,65.51,307.74,25.84,335.31 +4576,5,E09000012,2,77.51,370.33,25.84,404.3 +5228,5,E09000012,3,83.97,438.24,25.84,477.53 +5913,5,E09000012,4,101.48,583.64,25.84,635.64 +3374,6,E09000012,0,70.47,655.45,18.64,713.85 +4175,7,E09000012,1,58.13,307.74,25.84,335.31 +4676,7,E09000012,2,63.67,370.33,25.84,404.3 +5328,7,E09000012,3,71.06,438.24,25.84,477.53 +5880,7,E09000012,4,83.05,583.64,25.84,635.64 +3700,8,E09000012,0,60.1,655.45,18.64,713.85 +6634,9,E09000012,1,65.51,384.68,25.84,419.17 +6960,9,E09000012,2,77.51,462.92,25.84,505.39 +7286,9,E09000012,3,83.97,547.82,25.84,596.91 +7612,9,E09000012,4,101.48,729.54,25.84,794.53 +7938,10,E09000012,0,70.47,1257.26,18.64,1371.98 +115,1,E06000006,1,51.68,93.39,25.84,116.72 +441,1,E06000006,2,59.06,107.19,25.84,134.77 +767,1,E06000006,3,65.51,119.9,25.84,145.37 +1093,1,E06000006,4,71.98,133.71,25.84,159.17 +2723,2,E06000006,0,55.97,239.54,18.64,342.01 +1419,3,E06000006,1,43.36,85.94,25.84,100.81 +1745,3,E06000006,2,53.52,94.47,25.84,113.53 +2071,3,E06000006,3,58.13,105.06,25.84,124.15 +2397,3,E06000006,4,55.37,118.85,25.84,133.71 +3049,4,E06000006,0,33.16,469.54,18.64,599.44 +4366,5,E06000006,1,51.68,102.94,25.84,112.47 +4936,5,E06000006,2,59.06,114.6,25.84,124.15 +5579,5,E06000006,3,65.51,134.77,25.84,147.5 +6327,5,E06000006,4,71.98,203.75,25.84,221.77 +3375,6,E06000006,0,55.97,228.81,18.64,249.07 +4478,7,E06000006,1,43.36,102.94,25.84,112.47 +5074,7,E06000006,2,53.52,114.6,25.84,124.15 +5754,7,E06000006,3,58.13,134.77,25.84,147.5 +6378,7,E06000006,4,55.37,203.75,25.84,221.77 +3701,8,E06000006,0,33.16,228.81,18.64,249.07 +6635,9,E06000006,1,51.68,128.67,25.84,140.6 +6961,9,E06000006,2,59.06,143.25,25.84,155.2 +7287,9,E06000006,3,65.51,168.46,25.84,184.37 +7613,9,E06000006,4,71.98,254.69,25.84,277.23 +7939,10,E06000006,0,55.97,348.6,18.64,379.86 +117,1,E09000013,1,65.51,145.37,25.84,197.39 +443,1,E09000013,2,77.51,157.04,25.84,192.07 +769,1,E09000013,3,83.97,166.61,25.84,226.01 +1095,1,E09000013,4,101.48,186.77,25.84,251.49 +2725,2,E09000013,0,70.47,317,18.64,502.91 +1421,3,E09000013,1,58.13,118.85,25.84,146.43 +1747,3,E09000013,2,63.67,139.02,25.84,175.09 +2073,3,E09000013,3,71.06,159.17,25.84,200.55 +2399,3,E09000013,4,83.05,259.98,25.84,261.04 +3051,4,E09000013,0,60.1,371.82,18.64,402.8 +3962,5,E09000013,1,65.51,317.29,25.84,345.93 +4577,5,E09000013,2,77.51,423.41,25.84,461.6 +5229,5,E09000013,3,83.97,608.05,25.84,662.16 +5914,5,E09000013,4,101.48,972.01,25.84,1059.03 +3377,6,E09000013,0,70.47,1090.41,18.64,1189.33 +4176,7,E09000013,1,58.13,317.29,25.84,345.93 +4677,7,E09000013,2,63.67,423.41,25.84,461.6 +5329,7,E09000013,3,71.06,608.05,25.84,662.16 +5881,7,E09000013,4,83.05,972.01,25.84,1059.03 +3703,8,E09000013,0,60.1,1090.41,18.64,1189.33 +6637,9,E09000013,1,65.51,396.59,25.84,432.43 +6963,9,E09000013,2,77.51,529.26,25.84,576.98 +7289,9,E09000013,3,83.97,760.06,25.84,827.71 +7615,9,E09000013,4,101.48,1215.02,25.84,1323.81 +7941,10,E09000013,0,70.47,615.22,18.64,670.34 +118,1,E07000131,1,51.68,99.75,25.84,122.03 +444,1,E07000131,2,61.83,114.6,25.84,129.46 +770,1,E07000131,3,68.28,126.28,25.84,137.95 +1096,1,E07000131,4,75.67,158.1,25.84,166.61 +2726,2,E07000131,0,51.82,240.72,18.64,361.1 +1422,3,E07000131,1,46.13,90.21,25.84,107.19 +1748,3,E07000131,2,52.6,96.56,25.84,108.24 +2074,3,E07000131,3,58.13,104,25.84,118.85 +2400,3,E07000131,4,63.67,122.03,25.84,122.03 +3052,4,E07000131,0,49.74,114.39,18.64,123.94 +4328,5,E07000131,1,51.68,107.19,25.84,116.72 +5024,5,E07000131,2,61.83,125.22,25.84,136.89 +5667,5,E07000131,3,68.28,158.1,25.84,172.97 +6242,5,E07000131,4,75.67,248.31,25.84,270.61 +3378,6,E07000131,0,51.82,278.86,18.64,303.89 +4428,7,E07000131,1,46.13,107.19,25.84,116.72 +5164,7,E07000131,2,52.6,125.22,25.84,136.89 +5825,7,E07000131,3,58.13,158.1,25.84,172.97 +6486,7,E07000131,4,63.67,248.31,25.84,270.61 +3704,8,E07000131,0,49.74,278.86,18.64,303.89 +6638,9,E07000131,1,51.68,133.98,25.84,145.91 +6964,9,E07000131,2,61.83,156.51,25.84,171.11 +7290,9,E07000131,3,68.28,197.62,25.84,216.2 +7616,9,E07000131,4,75.67,310.37,25.84,338.25 +7942,10,E07000131,0,51.82,269.62,18.64,294.95 +119,1,E09000014,1,65.51,145.37,25.84,197.39 +445,1,E09000014,2,77.51,157.04,25.84,192.07 +771,1,E09000014,3,83.97,166.61,25.84,226.01 +1097,1,E09000014,4,101.48,186.77,25.84,251.49 +2727,2,E09000014,0,70.47,317,18.64,502.91 +1423,3,E09000014,1,58.13,118.85,25.84,146.43 +1749,3,E09000014,2,63.67,139.02,25.84,175.09 +2075,3,E09000014,3,71.06,159.17,25.84,200.55 +2401,3,E09000014,4,83.05,259.98,25.84,261.04 +3053,4,E09000014,0,60.1,371.82,18.64,402.8 +3963,5,E09000014,1,65.51,259.98,25.84,282.26 +4578,5,E09000014,2,77.51,332.14,25.84,361.84 +5230,5,E09000014,3,83.97,414.92,25.84,452.05 +5915,5,E09000014,4,101.48,632.45,25.84,689.74 +3379,6,E09000014,0,70.47,709.09,18.64,774.62 +4177,7,E09000014,1,58.13,259.98,25.84,282.26 +4678,7,E09000014,2,63.67,332.14,25.84,361.84 +5330,7,E09000014,3,71.06,414.92,25.84,452.05 +5882,7,E09000014,4,83.05,632.45,25.84,689.74 +3705,8,E09000014,0,60.1,709.09,18.64,774.62 +6639,9,E09000014,1,65.51,324.98,25.84,352.84 +6965,9,E09000014,2,77.51,415.17,25.84,452.31 +7291,9,E09000014,3,83.97,518.65,25.84,565.05 +7617,9,E09000014,4,101.48,790.55,25.84,862.19 +7943,10,E09000014,0,70.47,239.85,18.64,260.68 +120,1,E07000073,1,54.44,118.85,25.84,148.56 +446,1,E07000073,2,64.59,142.18,25.84,167.67 +772,1,E07000073,3,71.06,155.98,25.84,180.4 +1098,1,E07000073,4,81.2,170.85,25.84,178.28 +2728,2,E07000073,0,36.26,226.42,18.64,423.05 +1424,3,E07000073,1,49.84,99.75,25.84,131.58 +1750,3,E07000073,2,58.13,117.78,25.84,132.64 +2076,3,E07000073,3,63.67,130.52,25.84,143.25 +2402,3,E07000073,4,71.06,148.56,25.84,159.17 +3054,4,E07000073,0,55.97,135.86,18.64,318.19 +4137,5,E07000073,1,54.44,132.64,25.84,145.37 +4718,5,E07000073,2,64.59,179.34,25.84,196.32 +5437,5,E07000073,3,71.06,214.35,25.84,234.52 +6147,5,E07000073,4,81.2,316.23,25.84,344.88 +3380,6,E07000073,0,36.26,355.12,18.64,387.3 +4254,7,E07000073,1,49.84,132.64,25.84,145.37 +4980,7,E07000073,2,58.13,179.34,25.84,196.32 +5623,7,E07000073,3,63.67,214.35,25.84,234.52 +6285,7,E07000073,4,71.06,316.23,25.84,344.88 +3706,8,E07000073,0,55.97,355.12,18.64,387.3 +6640,9,E07000073,1,54.44,165.81,25.84,181.72 +6966,9,E07000073,2,64.59,224.18,25.84,245.4 +7292,9,E07000073,3,71.06,267.95,25.84,293.15 +7618,9,E07000073,4,81.2,395.3,25.84,431.1 +7944,10,E07000073,0,36.26,521.38,18.64,569.06 +122,1,E09000015,1,65.51,145.37,25.84,197.39 +448,1,E09000015,2,77.51,157.04,25.84,192.07 +774,1,E09000015,3,83.97,166.61,25.84,226.01 +1100,1,E09000015,4,101.48,186.77,25.84,251.49 +2730,2,E09000015,0,70.47,317,18.64,502.91 +1426,3,E09000015,1,58.13,118.85,25.84,146.43 +1752,3,E09000015,2,63.67,139.02,25.84,175.09 +2078,3,E09000015,3,71.06,159.17,25.84,200.55 +2404,3,E09000015,4,83.05,259.98,25.84,261.04 +3056,4,E09000015,0,60.1,371.82,18.64,402.8 +3964,5,E09000015,1,65.51,198.45,25.84,215.41 +4579,5,E09000015,2,77.51,259.98,25.84,282.26 +5231,5,E09000015,3,83.97,316.23,25.84,344.88 +5916,5,E09000015,4,101.48,449.93,25.84,490.26 +3382,6,E09000015,0,70.47,505.29,18.64,550.58 +4178,7,E09000015,1,58.13,198.45,25.84,215.41 +4679,7,E09000015,2,63.67,259.98,25.84,282.26 +5331,7,E09000015,3,71.06,316.23,25.84,344.88 +5883,7,E09000015,4,83.05,449.93,25.84,490.26 +3708,8,E09000015,0,60.1,505.29,18.64,550.58 +6642,9,E09000015,1,65.51,248.03,25.84,269.26 +6968,9,E09000015,2,77.51,324.98,25.84,352.84 +7294,9,E09000015,3,83.97,395.3,25.84,431.1 +7620,9,E09000015,4,101.48,562.41,25.84,612.82 +7946,10,E09000015,0,70.47,624.16,18.64,680.77 +123,1,E07000089,1,57.21,123.09,25.84,176.15 +449,1,E07000089,2,71.06,146.43,25.84,186.77 +775,1,E07000089,3,81.2,161.3,25.84,203.75 +1101,1,E07000089,4,89.52,178.28,25.84,221.77 +2731,2,E07000089,0,62.17,268.13,18.64,344.4 +1427,3,E07000089,1,51.68,115.66,25.84,159.17 +1753,3,E07000089,2,62.75,129.46,25.84,145.37 +2079,3,E07000089,3,68.28,149.62,25.84,185.7 +2405,3,E07000089,4,72.9,184.64,25.84,194.19 +3057,4,E07000089,0,48.71,195.45,18.64,204.96 +4006,5,E07000089,1,57.21,164.48,25.84,179.34 +4621,5,E07000089,2,71.06,198.45,25.84,215.41 +5273,5,E07000089,3,81.2,270.61,25.84,295.01 +5958,5,E07000089,4,89.52,415.98,25.84,453.12 +3383,6,E07000089,0,62.17,467.14,18.64,508.85 +4073,7,E07000089,1,51.68,164.48,25.84,179.34 +4768,7,E07000089,2,62.75,198.45,25.84,215.41 +5373,7,E07000089,3,68.28,270.61,25.84,295.01 +6062,7,E07000089,4,72.9,415.98,25.84,453.12 +3709,8,E07000089,0,48.71,467.14,18.64,508.85 +6643,9,E07000089,1,57.21,205.6,25.84,224.18 +6969,9,E07000089,2,71.06,248.03,25.84,269.26 +7295,9,E07000089,3,81.2,338.25,25.84,368.76 +7621,9,E07000089,4,89.52,519.97,25.84,566.39 +7947,10,E07000089,0,62.17,286.02,18.64,311.34 +124,1,E06000001,1,50.76,88.07,25.84,97.63 +450,1,E06000001,2,57.21,101.88,25.84,119.9 +776,1,E06000001,3,60.9,113.53,25.84,159.17 +1102,1,E06000001,4,70.13,127.34,25.84,139.02 +2732,2,E06000001,0,55.97,237.14,18.64,340.83 +1428,3,E06000001,1,42.44,99.75,25.84,105.06 +1754,3,E06000001,2,49.84,90.21,25.84,111.41 +2080,3,E06000001,3,53.52,105.06,25.84,124.15 +2406,3,E06000001,4,56.29,115.66,25.84,119.9 +3058,4,E06000001,0,47.67,253.84,18.64,288.39 +4535,5,E06000001,1,50.76,92.33,25.84,100.81 +5050,5,E06000001,2,57.21,104,25.84,114.6 +5555,5,E06000001,3,60.9,134.77,25.84,147.5 +6354,5,E06000001,4,70.13,170.85,25.84,185.7 +3384,6,E06000001,0,55.97,191.88,18.64,208.55 +4454,7,E06000001,1,42.44,92.33,25.84,100.81 +5101,7,E06000001,2,49.84,104,25.84,114.6 +5730,7,E06000001,3,53.52,134.77,25.84,147.5 +6512,7,E06000001,4,56.29,170.85,25.84,185.7 +3710,8,E06000001,0,47.67,191.88,18.64,208.55 +6644,9,E06000001,1,42.44,115.39,25.84,126.02 +6970,9,E06000001,2,57.21,129.98,25.84,143.25 +7296,9,E06000001,3,60.9,168.46,25.84,184.37 +7622,9,E06000001,4,70.13,213.57,25.84,232.15 +7948,10,E06000001,0,55.97,443.93,18.64,484.13 +125,1,E07000062,1,57.21,123.09,25.84,176.15 +451,1,E07000062,2,71.06,146.43,25.84,186.77 +777,1,E07000062,3,81.2,161.3,25.84,203.75 +1103,1,E07000062,4,89.52,178.28,25.84,221.77 +2733,2,E07000062,0,62.17,268.13,18.64,344.4 +1429,3,E07000062,1,51.68,115.66,25.84,159.17 +1755,3,E07000062,2,62.75,129.46,25.84,145.37 +2081,3,E07000062,3,68.28,149.62,25.84,185.7 +2407,3,E07000062,4,72.9,184.64,25.84,194.19 +3059,4,E07000062,0,48.71,195.45,18.64,204.96 +4007,5,E07000062,1,57.21,99.75,25.84,109.29 +4622,5,E07000062,2,71.06,134.77,25.84,147.5 +5274,5,E07000062,3,81.2,170.85,25.84,185.7 +5959,5,E07000062,4,89.52,248.31,25.84,270.61 +3385,6,E07000062,0,62.17,278.86,18.64,303.89 +4074,7,E07000062,1,51.68,99.75,25.84,109.29 +4769,7,E07000062,2,62.75,134.77,25.84,147.5 +5374,7,E07000062,3,68.28,170.85,25.84,185.7 +6063,7,E07000062,4,72.9,248.31,25.84,270.61 +3711,8,E07000062,0,48.71,278.86,18.64,303.89 +6645,9,E07000062,1,57.21,124.69,25.84,136.63 +6971,9,E07000062,2,71.06,168.46,25.84,184.37 +7297,9,E07000062,3,81.2,213.57,25.84,232.15 +7623,9,E07000062,4,89.52,310.37,25.84,338.25 +7949,10,E07000062,0,62.17,381.34,18.64,415.6 +126,1,E07000090,1,57.21,123.09,25.84,176.15 +452,1,E07000090,2,71.06,146.43,25.84,186.77 +778,1,E07000090,3,81.2,161.3,25.84,203.75 +1104,1,E07000090,4,89.52,178.28,25.84,221.77 +2734,2,E07000090,0,62.17,268.13,18.64,344.4 +1430,3,E07000090,1,51.68,115.66,25.84,159.17 +1756,3,E07000090,2,62.75,129.46,25.84,145.37 +2082,3,E07000090,3,68.28,149.62,25.84,185.7 +2408,3,E07000090,4,72.9,184.64,25.84,194.19 +3060,4,E07000090,0,48.71,195.45,18.64,204.96 +4008,5,E07000090,1,57.21,130.52,25.84,143.25 +4623,5,E07000090,2,71.06,159.17,25.84,174.02 +5275,5,E07000090,3,81.2,192.07,25.84,210.12 +5960,5,E07000090,4,89.52,281.2,25.84,306.68 +3386,6,E07000090,0,62.17,315.82,18.64,344.4 +4075,7,E07000090,1,51.68,130.52,25.84,143.25 +4770,7,E07000090,2,62.75,159.17,25.84,174.02 +5375,7,E07000090,3,68.28,192.07,25.84,210.12 +6064,7,E07000090,4,72.9,281.2,25.84,306.68 +3712,8,E07000090,0,48.71,315.82,18.64,344.4 +6646,9,E07000090,1,57.21,163.15,25.84,179.06 +6972,9,E07000090,2,71.06,198.96,25.84,217.54 +7298,9,E07000090,3,81.2,240.08,25.84,262.64 +7624,9,E07000090,4,89.52,351.51,25.84,383.34 +7950,10,E07000090,0,62.17,286.02,18.64,311.34 +127,1,E09000016,1,65.51,145.37,25.84,197.39 +453,1,E09000016,2,77.51,157.04,25.84,192.07 +779,1,E09000016,3,83.97,166.61,25.84,226.01 +1105,1,E09000016,4,101.48,186.77,25.84,251.49 +2735,2,E09000016,0,70.47,317,18.64,502.91 +1431,3,E09000016,1,58.13,118.85,25.84,146.43 +1757,3,E09000016,2,63.67,139.02,25.84,175.09 +2083,3,E09000016,3,71.06,159.17,25.84,200.55 +2409,3,E09000016,4,83.05,259.98,25.84,261.04 +3061,4,E09000016,0,60.1,371.82,18.64,402.8 +3965,5,E09000016,1,65.51,161.3,25.84,176.15 +4580,5,E09000016,2,77.51,203.75,25.84,221.77 +5232,5,E09000016,3,83.97,248.31,25.84,270.61 +5917,5,E09000016,4,101.48,405.36,25.84,441.43 +3387,6,E09000016,0,70.47,455.24,18.64,495.73 +4179,7,E09000016,1,58.13,161.3,25.84,176.15 +4680,7,E09000016,2,63.67,203.75,25.84,221.77 +5332,7,E09000016,3,71.06,248.31,25.84,270.61 +5884,7,E09000016,4,83.05,405.36,25.84,441.43 +3713,8,E09000016,0,60.1,455.24,18.64,495.73 +6647,9,E09000016,1,65.51,201.61,25.84,220.21 +6973,9,E09000016,2,77.51,254.69,25.84,277.23 +7299,9,E09000016,3,83.97,310.37,25.84,338.25 +7625,9,E09000016,4,101.48,506.71,25.84,551.8 +7951,10,E09000016,0,70.47,253.23,18.64,277.06 +128,1,E06000019,1,52.6,98.69,25.84,124.15 +454,1,E06000019,2,58.13,116.72,25.84,136.89 +780,1,E06000019,3,69.2,132.64,25.84,160.24 +1106,1,E06000019,4,80.28,161.3,25.84,178.28 +2736,2,E06000019,0,39.38,245.49,18.64,382.53 +1432,3,E06000019,1,46.13,88.07,25.84,97.63 +1758,3,E06000019,2,49.84,94.47,25.84,102.94 +2084,3,E06000019,3,59.98,104,25.84,119.9 +2410,3,E06000019,4,68.28,127.34,25.84,127.34 +3062,4,E06000019,0,46.63,107.26,18.64,107.26 +4287,5,E06000019,1,52.6,109.29,25.84,118.85 +4897,5,E06000019,2,58.13,130.52,25.84,143.25 +5528,5,E06000019,3,69.2,158.1,25.84,172.97 +6180,5,E06000019,4,80.28,214.35,25.84,234.52 +3388,6,E06000019,0,39.38,240.72,18.64,263.37 +4508,7,E06000019,1,46.13,109.29,25.84,118.85 +5193,7,E06000019,2,49.84,130.52,25.84,143.25 +5784,7,E06000019,3,59.98,158.1,25.84,172.97 +6445,7,E06000019,4,68.28,214.35,25.84,234.52 +3714,8,E06000019,0,46.63,240.72,18.64,263.37 +6648,9,E06000019,1,52.6,136.63,25.84,148.56 +6974,9,E06000019,2,58.13,163.15,25.84,179.06 +7300,9,E06000019,3,69.2,197.62,25.84,216.2 +7626,9,E06000019,4,80.28,267.95,25.84,293.15 +7952,10,E06000019,0,39.38,613.74,18.64,668.86 +129,1,E07000098,1,54.44,118.85,25.84,148.56 +455,1,E07000098,2,64.59,142.18,25.84,167.67 +781,1,E07000098,3,71.06,155.98,25.84,180.4 +1107,1,E07000098,4,81.2,170.85,25.84,178.28 +2737,2,E07000098,0,36.26,226.42,18.64,423.05 +1433,3,E07000098,1,49.84,99.75,25.84,131.58 +1759,3,E07000098,2,58.13,117.78,25.84,132.64 +2085,3,E07000098,3,63.67,130.52,25.84,143.25 +2411,3,E07000098,4,71.06,148.56,25.84,159.17 +3063,4,E07000098,0,55.97,135.86,18.64,318.19 +4138,5,E07000098,1,54.44,176.15,25.84,191.01 +4719,5,E07000098,2,64.59,227.08,25.84,246.18 +5438,5,E07000098,3,71.06,316.23,25.84,344.88 +6148,5,E07000098,4,81.2,526.35,25.84,573.01 +3389,6,E07000098,0,36.26,591.1,18.64,643.54 +4255,7,E07000098,1,49.84,176.15,25.84,191.01 +4981,7,E07000098,2,58.13,227.08,25.84,246.18 +5624,7,E07000098,3,63.67,316.23,25.84,344.88 +6286,7,E07000098,4,71.06,526.35,25.84,573.01 +3715,8,E07000098,0,55.97,591.1,18.64,643.54 +6649,9,E07000098,1,54.44,220.21,25.84,238.77 +6975,9,E07000098,2,64.59,283.85,25.84,307.73 +7301,9,E07000098,3,71.06,395.3,25.84,431.1 +7627,9,E07000098,4,81.2,657.9,25.84,716.27 +7953,10,E07000098,0,36.26,269.62,18.64,294.95 +130,1,E07000037,1,51.68,99.75,25.84,122.03 +456,1,E07000037,2,61.83,114.6,25.84,129.46 +782,1,E07000037,3,68.28,126.28,25.84,137.95 +1108,1,E07000037,4,75.67,158.1,25.84,166.61 +2738,2,E07000037,0,51.82,240.72,18.64,361.1 +1434,3,E07000037,1,46.13,90.21,25.84,107.19 +1760,3,E07000037,2,52.6,96.56,25.84,108.24 +2086,3,E07000037,3,58.13,104,25.84,118.85 +2412,3,E07000037,4,63.67,122.03,25.84,122.03 +3064,4,E07000037,0,49.74,114.39,18.64,123.94 +4329,5,E07000037,1,51.68,102.94,25.84,112.47 +5025,5,E07000037,2,61.83,125.22,25.84,136.89 +5668,5,E07000037,3,68.28,153.86,25.84,167.67 +6243,5,E07000037,4,75.67,192.07,25.84,210.12 +3390,6,E07000037,0,51.82,215.7,18.64,235.95 +4429,7,E07000037,1,46.13,102.94,25.84,112.47 +5165,7,E07000037,2,52.6,125.22,25.84,136.89 +5826,7,E07000037,3,58.13,153.86,25.84,167.67 +6487,7,E07000037,4,63.67,192.07,25.84,210.12 +3716,8,E07000037,0,49.74,215.7,18.64,235.95 +6650,9,E07000037,1,51.68,128.67,25.84,140.6 +6976,9,E07000037,2,61.83,156.51,25.84,171.11 +7302,9,E07000037,3,68.28,192.33,25.84,209.57 +7628,9,E07000037,4,75.67,240.08,25.84,262.64 +7954,10,E07000037,0,51.82,318.79,18.64,345.6 +131,1,E09000017,1,65.51,145.37,25.84,197.39 +457,1,E09000017,2,77.51,157.04,25.84,192.07 +783,1,E09000017,3,83.97,166.61,25.84,226.01 +1109,1,E09000017,4,101.48,186.77,25.84,251.49 +2739,2,E09000017,0,70.47,317,18.64,502.91 +1435,3,E09000017,1,58.13,118.85,25.84,146.43 +1761,3,E09000017,2,63.67,139.02,25.84,175.09 +2087,3,E09000017,3,71.06,159.17,25.84,200.55 +2413,3,E09000017,4,83.05,259.98,25.84,261.04 +3065,4,E09000017,0,60.1,371.82,18.64,402.8 +3966,5,E09000017,1,65.51,181.46,25.84,198.45 +4581,5,E09000017,2,77.51,248.31,25.84,270.61 +5233,5,E09000017,3,83.97,292.87,25.84,319.41 +5918,5,E09000017,4,101.48,426.59,25.84,465.84 +3391,6,E09000017,0,70.47,479.07,18.64,523.16 +4180,7,E09000017,1,58.13,181.46,25.84,198.45 +4681,7,E09000017,2,63.67,248.31,25.84,270.61 +5333,7,E09000017,3,71.06,292.87,25.84,319.41 +5885,7,E09000017,4,83.05,426.59,25.84,465.84 +3717,8,E09000017,0,60.1,479.07,18.64,523.16 +6651,9,E09000017,1,65.51,226.84,25.84,248.03 +6977,9,E09000017,2,77.51,310.37,25.84,338.25 +7303,9,E09000017,3,83.97,366.11,25.84,399.27 +7629,9,E09000017,4,101.48,533.22,25.84,582.31 +7955,10,E09000017,0,70.47,278.57,18.64,302.41 +132,1,E07000132,1,51.68,99.75,25.84,122.03 +458,1,E07000132,2,61.83,114.6,25.84,129.46 +784,1,E07000132,3,68.28,126.28,25.84,137.95 +1110,1,E07000132,4,75.67,158.1,25.84,166.61 +2740,2,E07000132,0,51.82,240.72,18.64,361.1 +1436,3,E07000132,1,46.13,90.21,25.84,107.19 +1762,3,E07000132,2,52.6,96.56,25.84,108.24 +2088,3,E07000132,3,58.13,104,25.84,118.85 +2414,3,E07000132,4,63.67,122.03,25.84,122.03 +3066,4,E07000132,0,49.74,114.39,18.64,123.94 +4330,5,E07000132,1,51.68,92.33,25.84,99.75 +5026,5,E07000132,2,61.83,119.9,25.84,130.52 +5669,5,E07000132,3,68.28,141.13,25.84,153.86 +6244,5,E07000132,4,75.67,214.35,25.84,234.52 +3392,6,E07000132,0,51.82,240.72,18.64,263.37 +4430,7,E07000132,1,46.13,92.33,25.84,99.75 +5166,7,E07000132,2,52.6,119.9,25.84,130.52 +5827,7,E07000132,3,58.13,141.13,25.84,153.86 +6488,7,E07000132,4,63.67,214.35,25.84,234.52 +3718,8,E07000132,0,49.74,240.72,18.64,263.37 +6652,9,E07000132,1,51.68,115.39,25.84,124.69 +6978,9,E07000132,2,61.83,149.9,25.84,163.15 +7304,9,E07000132,3,68.28,176.42,25.84,192.33 +7630,9,E07000132,4,75.67,267.95,25.84,293.15 +7956,10,E07000132,0,51.82,443.93,18.64,484.13 +133,1,E07000227,1,57.21,123.09,25.84,176.15 +459,1,E07000227,2,71.06,146.43,25.84,186.77 +785,1,E07000227,3,81.2,161.3,25.84,203.75 +1111,1,E07000227,4,89.52,178.28,25.84,221.77 +2741,2,E07000227,0,62.17,268.13,18.64,344.4 +1437,3,E07000227,1,51.68,115.66,25.84,159.17 +1763,3,E07000227,2,62.75,129.46,25.84,145.37 +2089,3,E07000227,3,68.28,149.62,25.84,185.7 +2415,3,E07000227,4,72.9,184.64,25.84,194.19 +3067,4,E07000227,0,48.71,195.45,18.64,204.96 +4009,5,E07000227,1,57.21,147.5,25.84,160.24 +4624,5,E07000227,2,71.06,186.77,25.84,203.75 +5276,5,E07000227,3,81.2,259.98,25.84,282.26 +5961,5,E07000227,4,89.52,426.59,25.84,465.84 +3393,6,E07000227,0,62.17,479.07,18.64,523.16 +4076,7,E07000227,1,51.68,147.5,25.84,160.24 +4771,7,E07000227,2,62.75,186.77,25.84,203.75 +5376,7,E07000227,3,68.28,259.98,25.84,282.26 +6065,7,E07000227,4,72.9,426.59,25.84,465.84 +3719,8,E07000227,0,48.71,479.07,18.64,523.16 +6653,9,E07000227,1,57.21,184.37,25.84,200.32 +6979,9,E07000227,2,71.06,233.46,25.84,254.69 +7305,9,E07000227,3,81.2,324.98,25.84,352.84 +7631,9,E07000227,4,89.52,533.22,25.84,582.31 +7957,10,E07000227,0,62.17,342.63,18.64,373.91 +134,1,E09000018,1,65.51,145.37,25.84,197.39 +460,1,E09000018,2,77.51,157.04,25.84,192.07 +786,1,E09000018,3,83.97,166.61,25.84,226.01 +1112,1,E09000018,4,101.48,186.77,25.84,251.49 +2742,2,E09000018,0,70.47,317,18.64,502.91 +1438,3,E09000018,1,58.13,118.85,25.84,146.43 +1764,3,E09000018,2,63.67,139.02,25.84,175.09 +2090,3,E09000018,3,71.06,159.17,25.84,200.55 +2416,3,E09000018,4,83.05,259.98,25.84,261.04 +3068,4,E09000018,0,60.1,371.82,18.64,402.8 +3967,5,E09000018,1,65.51,215.41,25.84,235.58 +4582,5,E09000018,2,77.51,292.87,25.84,319.41 +5234,5,E09000018,3,83.97,316.23,25.84,344.88 +5919,5,E09000018,4,101.48,727.96,25.84,794.8 +3394,6,E09000018,0,70.47,817.52,18.64,892.61 +4181,7,E09000018,1,58.13,215.41,25.84,235.58 +4682,7,E09000018,2,63.67,292.87,25.84,319.41 +5334,7,E09000018,3,71.06,316.23,25.84,344.88 +5886,7,E09000018,4,83.05,727.96,25.84,794.8 +3720,8,E09000018,0,60.1,817.52,18.64,892.61 +6654,9,E09000018,1,65.51,269.26,25.84,294.49 +6980,9,E09000018,2,77.51,366.11,25.84,399.27 +7306,9,E09000018,3,83.97,395.3,25.84,431.1 +7632,9,E09000018,4,101.48,909.95,25.84,993.49 +7958,10,E09000018,0,70.47,284.53,18.64,309.82 +135,1,E07000011,1,54.44,118.85,25.84,148.56 +461,1,E07000011,2,64.59,142.18,25.84,167.67 +787,1,E07000011,3,71.06,155.98,25.84,180.4 +1113,1,E07000011,4,81.2,170.85,25.84,178.28 +2743,2,E07000011,0,36.26,226.42,18.64,423.05 +1439,3,E07000011,1,49.84,99.75,25.84,131.58 +1765,3,E07000011,2,58.13,117.78,25.84,132.64 +2091,3,E07000011,3,63.67,130.52,25.84,143.25 +2417,3,E07000011,4,71.06,148.56,25.84,159.17 +3069,4,E07000011,0,55.97,135.86,18.64,318.19 +4139,5,E07000011,1,54.44,113.53,25.84,123.09 +4720,5,E07000011,2,64.59,143.25,25.84,155.98 +5439,5,E07000011,3,71.06,170.85,25.84,185.7 +6149,5,E07000011,4,81.2,281.2,25.84,306.68 +3395,6,E07000011,0,36.26,315.82,18.64,344.4 +4256,7,E07000011,1,49.84,113.53,25.84,123.09 +4982,7,E07000011,2,58.13,143.25,25.84,155.98 +5625,7,E07000011,3,63.67,170.85,25.84,185.7 +6287,7,E07000011,4,71.06,281.2,25.84,306.68 +3721,8,E07000011,0,55.97,315.82,18.64,344.4 +6655,9,E07000011,1,54.44,141.94,25.84,153.86 +6981,9,E07000011,2,64.59,179.06,25.84,194.98 +7307,9,E07000011,3,71.06,213.57,25.84,232.15 +7633,9,E07000011,4,81.2,351.51,25.84,383.34 +7959,10,E07000011,0,36.26,284.53,18.64,309.82 +136,1,E07000120,1,51.68,93.39,25.84,116.72 +462,1,E07000120,2,59.06,107.19,25.84,134.77 +788,1,E07000120,3,65.51,119.9,25.84,145.37 +1114,1,E07000120,4,71.98,133.71,25.84,159.17 +2744,2,E07000120,0,55.97,239.54,18.64,342.01 +1440,3,E07000120,1,43.36,85.94,25.84,100.81 +1766,3,E07000120,2,53.52,94.47,25.84,113.53 +2092,3,E07000120,3,58.13,105.06,25.84,124.15 +2418,3,E07000120,4,55.37,118.85,25.84,133.71 +3070,4,E07000120,0,33.16,469.54,18.64,599.44 +4367,5,E07000120,1,51.68,90.21,25.84,97.63 +4937,5,E07000120,2,59.06,98.69,25.84,108.24 +5580,5,E07000120,3,65.51,125.22,25.84,136.89 +6328,5,E07000120,4,71.98,170.85,25.84,185.7 +3396,6,E07000120,0,55.97,191.88,18.64,208.55 +4479,7,E07000120,1,43.36,90.21,25.84,97.63 +5075,7,E07000120,2,53.52,98.69,25.84,108.24 +5755,7,E07000120,3,58.13,125.22,25.84,136.89 +6379,7,E07000120,4,55.37,170.85,25.84,185.7 +3722,8,E07000120,0,33.16,191.88,18.64,208.55 +6656,9,E07000120,1,51.68,112.76,25.84,122.03 +6982,9,E07000120,2,59.06,123.35,25.84,135.3 +7308,9,E07000120,3,65.51,156.51,25.84,171.11 +7634,9,E07000120,4,71.98,213.57,25.84,232.15 +7960,10,E07000120,0,55.97,269.62,18.64,294.95 +137,1,E07000202,1,54.44,118.85,25.84,148.56 +463,1,E07000202,2,64.59,142.18,25.84,167.67 +789,1,E07000202,3,71.06,155.98,25.84,180.4 +1115,1,E07000202,4,81.2,170.85,25.84,178.28 +2745,2,E07000202,0,36.26,226.42,18.64,423.05 +1441,3,E07000202,1,49.84,99.75,25.84,131.58 +1767,3,E07000202,2,58.13,117.78,25.84,132.64 +2093,3,E07000202,3,63.67,130.52,25.84,143.25 +2419,3,E07000202,4,71.06,148.56,25.84,159.17 +3071,4,E07000202,0,55.97,135.86,18.64,318.19 +4140,5,E07000202,1,54.44,102.94,25.84,112.47 +4721,5,E07000202,2,64.59,125.22,25.84,136.89 +5440,5,E07000202,3,71.06,146.43,25.84,158.1 +6150,5,E07000202,4,81.2,245.12,25.84,266.35 +3397,6,E07000202,0,36.26,274.11,18.64,299.12 +4257,7,E07000202,1,49.84,102.94,25.84,112.47 +4983,7,E07000202,2,58.13,125.22,25.84,136.89 +5626,7,E07000202,3,63.67,146.43,25.84,158.1 +6288,7,E07000202,4,71.06,245.12,25.84,266.35 +3723,8,E07000202,0,55.97,274.11,18.64,299.12 +6657,9,E07000202,1,54.44,128.67,25.84,140.6 +6983,9,E07000202,2,64.59,156.51,25.84,171.11 +7309,9,E07000202,3,71.06,183.04,25.84,197.62 +7635,9,E07000202,4,81.2,306.4,25.84,332.95 +7961,10,E07000202,0,36.26,318.79,18.64,345.6 +138,1,E06000046,1,57.21,123.09,25.84,176.15 +464,1,E06000046,2,71.06,146.43,25.84,186.77 +790,1,E06000046,3,81.2,161.3,25.84,203.75 +1116,1,E06000046,4,89.52,178.28,25.84,221.77 +2746,2,E06000046,0,62.17,268.13,18.64,344.4 +1442,3,E06000046,1,51.68,115.66,25.84,159.17 +1768,3,E06000046,2,62.75,129.46,25.84,145.37 +2094,3,E06000046,3,68.28,149.62,25.84,185.7 +2420,3,E06000046,4,72.9,184.64,25.84,194.19 +3072,4,E06000046,0,48.71,195.45,18.64,204.96 +4010,5,E06000046,1,57.21,107.19,25.84,116.72 +4625,5,E06000046,2,71.06,136.89,25.84,148.56 +5277,5,E06000046,3,81.2,170.85,25.84,185.7 +5962,5,E06000046,4,89.52,237.69,25.84,258.92 +3398,6,E06000046,0,62.17,266.94,18.64,290.78 +4077,7,E06000046,1,51.68,107.19,25.84,116.72 +4772,7,E06000046,2,62.75,136.89,25.84,148.56 +5377,7,E06000046,3,68.28,170.85,25.84,185.7 +6066,7,E06000046,4,72.9,237.69,25.84,258.92 +3724,8,E06000046,0,48.71,266.94,18.64,290.78 +6658,9,E06000046,1,57.21,133.98,25.84,145.91 +6984,9,E06000046,2,71.06,171.11,25.84,185.69 +7310,9,E06000046,3,81.2,213.57,25.84,232.15 +7636,9,E06000046,4,89.52,297.12,25.84,323.65 +7962,10,E06000046,0,62.17,348.6,18.64,379.86 +139,1,E06000053,1,48.92,107.19,25.84,140.08 +465,1,E06000053,2,55.37,120.97,25.84,144.31 +791,1,E06000053,3,61.83,141.13,25.84,161.3 +1117,1,E06000053,4,71.06,158.1,25.84,194.19 +2747,2,E06000053,0,54.93,231.2,18.64,358.7 +1443,3,E06000053,1,47.06,89.13,25.84,210.12 +1769,3,E06000053,2,54.44,100.81,25.84,111.41 +2095,3,E06000053,3,61.83,109.29,25.84,126.28 +2421,3,E06000053,4,73.82,130.52,25.84,130.52 +3073,4,E06000053,0,54.93,115.59,18.64,141.81 +4209,5,E06000053,1,48.92,129.46,25.84,142.18 +4845,5,E06000053,2,55.37,164.48,25.84,179.34 +5476,5,E06000053,3,61.83,192.07,25.84,210.12 +6014,5,E06000053,4,71.06,292.87,25.84,319.41 +3399,6,E06000053,0,54.93,215.7,18.64,235.95 +3925,7,E06000053,1,47.06,129.46,25.84,142.18 +5122,7,E06000053,2,54.44,164.48,25.84,179.34 +5702,7,E06000053,3,61.83,192.07,25.84,210.12 +6414,7,E06000053,4,73.82,292.87,25.84,319.41 +3725,8,E06000053,0,54.93,215.7,18.64,235.95 +6659,9,E06000053,1,48.92,161.83,25.84,177.73 +6985,9,E06000053,2,55.37,205.6,25.84,224.18 +7311,9,E06000053,3,61.83,240.08,25.84,262.64 +7637,9,E06000053,4,71.06,366.11,25.84,399.27 +7963,10,E06000053,0,54.93,379.86,18.64,414.12 +140,1,E09000019,1,65.51,145.37,25.84,197.39 +466,1,E09000019,2,77.51,157.04,25.84,192.07 +792,1,E09000019,3,83.97,166.61,25.84,226.01 +1118,1,E09000019,4,101.48,186.77,25.84,251.49 +2748,2,E09000019,0,70.47,317,18.64,502.91 +1444,3,E09000019,1,58.13,118.85,25.84,146.43 +1770,3,E09000019,2,63.67,139.02,25.84,175.09 +2096,3,E09000019,3,71.06,159.17,25.84,200.55 +2422,3,E09000019,4,83.05,259.98,25.84,261.04 +3074,4,E09000019,0,60.1,371.82,18.64,402.8 +3968,5,E09000019,1,65.51,332.14,25.84,361.84 +4583,5,E09000019,2,77.51,447.81,25.84,488.14 +5235,5,E09000019,3,83.97,524.21,25.84,570.9 +5920,5,E09000019,4,101.48,651.55,25.84,710.97 +3400,6,E09000019,0,70.47,731.72,18.64,798.45 +4182,7,E09000019,1,58.13,332.14,25.84,361.84 +4683,7,E09000019,2,63.67,447.81,25.84,488.14 +5335,7,E09000019,3,71.06,524.21,25.84,570.9 +5887,7,E09000019,4,83.05,651.55,25.84,710.97 +3726,8,E09000019,0,60.1,731.72,18.64,798.45 +6660,9,E09000019,1,65.51,415.17,25.84,452.31 +6986,9,E09000019,2,77.51,559.76,25.84,610.16 +7312,9,E09000019,3,83.97,655.27,25.84,713.62 +7638,9,E09000019,4,101.48,814.43,25.84,888.72 +7964,10,E09000019,0,70.47,253.23,18.64,277.06 +141,1,E09000020,1,65.51,145.37,25.84,197.39 +467,1,E09000020,2,77.51,157.04,25.84,192.07 +793,1,E09000020,3,83.97,166.61,25.84,226.01 +1119,1,E09000020,4,101.48,186.77,25.84,251.49 +2749,2,E09000020,0,70.47,317,18.64,502.91 +1445,3,E09000020,1,58.13,118.85,25.84,146.43 +1771,3,E09000020,2,63.67,139.02,25.84,175.09 +2097,3,E09000020,3,71.06,159.17,25.84,200.55 +2423,3,E09000020,4,83.05,259.98,25.84,261.04 +3075,4,E09000020,0,60.1,371.82,18.64,402.8 +3969,5,E09000020,1,65.51,481.75,25.84,526.35 +4584,5,E09000020,2,77.51,727.96,25.84,794.8 +5236,5,E09000020,3,83.97,1552.48,25.84,1692.54 +5921,5,E09000020,4,101.48,2859.82,25.84,3118.73 +3401,6,E09000020,0,70.47,3210.51,18.64,3502.48 +4183,7,E09000020,1,58.13,481.75,25.84,526.35 +4684,7,E09000020,2,63.67,727.96,25.84,794.8 +5336,7,E09000020,3,71.06,1552.48,25.84,1692.54 +5888,7,E09000020,4,83.05,2859.82,25.84,3118.73 +3727,8,E09000020,0,60.1,3210.51,18.64,3502.48 +6661,9,E09000020,1,65.51,602.21,25.84,657.9 +6987,9,E09000020,2,77.51,909.95,25.84,993.49 +7313,9,E09000020,3,83.97,1940.6,25.84,2115.67 +7639,9,E09000020,4,101.48,3574.77,25.84,3898.4 +7965,10,E09000020,0,70.47,269.62,18.64,294.95 +143,1,E07000146,1,54.44,118.85,25.84,148.56 +469,1,E07000146,2,64.59,142.18,25.84,167.67 +795,1,E07000146,3,71.06,155.98,25.84,180.4 +1121,1,E07000146,4,81.2,170.85,25.84,178.28 +2751,2,E07000146,0,36.26,226.42,18.64,423.05 +1447,3,E07000146,1,49.84,99.75,25.84,131.58 +1773,3,E07000146,2,58.13,117.78,25.84,132.64 +2099,3,E07000146,3,63.67,130.52,25.84,143.25 +2425,3,E07000146,4,71.06,148.56,25.84,159.17 +3077,4,E07000146,0,55.97,135.86,18.64,318.19 +4141,5,E07000146,1,54.44,99.75,25.84,109.29 +4722,5,E07000146,2,64.59,125.22,25.84,136.89 +5441,5,E07000146,3,71.06,147.5,25.84,160.24 +6151,5,E07000146,4,81.2,243.02,25.84,265.29 +3403,6,E07000146,0,36.26,272.91,18.64,297.95 +4258,7,E07000146,1,49.84,99.75,25.84,109.29 +4984,7,E07000146,2,58.13,125.22,25.84,136.89 +5627,7,E07000146,3,63.67,147.5,25.84,160.24 +6289,7,E07000146,4,71.06,243.02,25.84,265.29 +3729,8,E07000146,0,55.97,272.91,18.64,297.95 +6663,9,E07000146,1,54.44,124.69,25.84,136.63 +6989,9,E07000146,2,64.59,156.51,25.84,171.11 +7315,9,E07000146,3,71.06,184.37,25.84,200.32 +7641,9,E07000146,4,81.2,303.74,25.84,331.63 +7967,10,E07000146,0,36.26,591.38,18.64,645.02 +144,1,E06000010,1,50.76,91.27,25.84,113.53 +470,1,E06000010,2,58.13,108.24,25.84,140.08 +796,1,E06000010,3,62.75,119.9,25.84,161.3 +1122,1,E06000010,4,72.9,144.31,25.84,178.28 +2752,2,E06000010,0,52.86,234.75,18.64,322.95 +1448,3,E06000010,1,46.13,81.71,25.84,92.33 +1774,3,E06000010,2,52.6,112.47,25.84,144.31 +2100,3,E06000010,3,56.29,104,25.84,113.53 +2426,3,E06000010,4,63.67,120.97,25.84,175.09 +3078,4,E06000010,0,51.82,160.88,18.64,190.67 +4398,5,E06000010,1,50.76,81.71,25.84,88.07 +4878,5,E06000010,2,58.13,102.94,25.84,112.47 +5509,5,E06000010,3,62.75,125.22,25.84,136.89 +6114,5,E06000010,4,72.9,170.85,25.84,185.7 +3404,6,E06000010,0,52.86,191.88,18.64,208.55 +4552,7,E06000010,1,46.13,81.71,25.84,88.07 +4820,7,E06000010,2,52.6,102.94,25.84,112.47 +5856,7,E06000010,3,56.29,125.22,25.84,136.89 +6212,7,E06000010,4,63.67,170.85,25.84,185.7 +3730,8,E06000010,0,51.82,191.88,18.64,208.55 +6664,9,E06000010,1,50.76,102.16,25.84,110.1 +6990,9,E06000010,2,52.6,128.67,25.84,140.6 +7316,9,E06000010,3,62.75,156.51,25.84,171.11 +7642,9,E06000010,4,72.9,213.57,25.84,232.15 +7968,10,E06000010,0,52.86,223.45,18.64,244.32 +145,1,E09000021,1,65.51,145.37,25.84,197.39 +471,1,E09000021,2,77.51,157.04,25.84,192.07 +797,1,E09000021,3,83.97,166.61,25.84,226.01 +1123,1,E09000021,4,101.48,186.77,25.84,251.49 +2753,2,E09000021,0,70.47,317,18.64,502.91 +1449,3,E09000021,1,58.13,118.85,25.84,146.43 +1775,3,E09000021,2,63.67,139.02,25.84,175.09 +2101,3,E09000021,3,71.06,159.17,25.84,200.55 +2427,3,E09000021,4,83.05,259.98,25.84,261.04 +3079,4,E09000021,0,60.1,371.82,18.64,402.8 +3970,5,E09000021,1,65.51,209.06,25.84,228.14 +4585,5,E09000021,2,77.51,270.61,25.84,295.01 +5237,5,E09000021,3,83.97,336.37,25.84,367.16 +5922,5,E09000021,4,101.48,561.35,25.84,611.23 +3405,6,E09000021,0,70.47,630.42,18.64,686.44 +4184,7,E09000021,1,58.13,209.06,25.84,228.14 +4685,7,E09000021,2,63.67,270.61,25.84,295.01 +5337,7,E09000021,3,71.06,336.37,25.84,367.16 +5889,7,E09000021,4,83.05,561.35,25.84,611.23 +3731,8,E09000021,0,60.1,630.42,18.64,686.44 +6665,9,E09000021,1,65.51,261.31,25.84,285.19 +6991,9,E09000021,2,77.51,338.25,25.84,368.76 +7317,9,E09000021,3,83.97,420.48,25.84,458.95 +7643,9,E09000021,4,101.48,701.69,25.84,764.03 +7969,10,E09000021,0,70.47,284.53,18.64,309.82 +146,1,E08000034,1,50.76,91.27,25.84,113.53 +472,1,E08000034,2,58.13,108.24,25.84,140.08 +798,1,E08000034,3,62.75,119.9,25.84,161.3 +1124,1,E08000034,4,72.9,144.31,25.84,178.28 +2754,2,E08000034,0,52.86,234.75,18.64,322.95 +1450,3,E08000034,1,46.13,81.71,25.84,92.33 +1776,3,E08000034,2,52.6,112.47,25.84,144.31 +2102,3,E08000034,3,56.29,104,25.84,113.53 +2428,3,E08000034,4,63.67,120.97,25.84,175.09 +3080,4,E08000034,0,51.82,160.88,18.64,190.67 +4399,5,E08000034,1,50.76,96.56,25.84,105.06 +4879,5,E08000034,2,58.13,113.53,25.84,123.09 +5510,5,E08000034,3,62.75,134.77,25.84,147.5 +6115,5,E08000034,4,72.9,192.07,25.84,210.12 +3406,6,E08000034,0,52.86,215.7,18.64,235.95 +4553,7,E08000034,1,46.13,96.56,25.84,105.06 +4821,7,E08000034,2,52.6,113.53,25.84,123.09 +5857,7,E08000034,3,56.29,134.77,25.84,147.5 +6213,7,E08000034,4,63.67,192.07,25.84,210.12 +3732,8,E08000034,0,51.82,215.7,18.64,235.95 +6666,9,E08000034,1,50.76,120.73,25.84,131.32 +6992,9,E08000034,2,52.6,141.94,25.84,153.86 +7318,9,E08000034,3,62.75,168.46,25.84,184.37 +7644,9,E08000034,4,72.9,240.08,25.84,262.64 +7970,10,E08000034,0,52.86,308.35,18.64,336.65 +147,1,E08000011,1,51.68,93.39,25.84,116.72 +473,1,E08000011,2,59.06,107.19,25.84,134.77 +799,1,E08000011,3,65.51,119.9,25.84,145.37 +1125,1,E08000011,4,71.98,133.71,25.84,159.17 +2755,2,E08000011,0,55.97,239.54,18.64,342.01 +1451,3,E08000011,1,43.36,85.94,25.84,100.81 +1777,3,E08000011,2,53.52,94.47,25.84,113.53 +2103,3,E08000011,3,58.13,105.06,25.84,124.15 +2429,3,E08000011,4,55.37,118.85,25.84,133.71 +3081,4,E08000011,0,33.16,469.54,18.64,599.44 +4368,5,E08000011,1,51.68,109.29,25.84,118.85 +4938,5,E08000011,2,59.06,125.22,25.84,136.89 +5581,5,E08000011,3,65.51,142.18,25.84,154.93 +6329,5,E08000011,4,71.98,203.75,25.84,221.77 +3407,6,E08000011,0,55.97,228.81,18.64,249.07 +4480,7,E08000011,1,43.36,109.29,25.84,118.85 +5076,7,E08000011,2,53.52,125.22,25.84,136.89 +5756,7,E08000011,3,58.13,142.18,25.84,154.93 +6380,7,E08000011,4,55.37,203.75,25.84,221.77 +3733,8,E08000011,0,33.16,228.81,18.64,249.07 +6667,9,E08000011,1,51.68,136.63,25.84,148.56 +6993,9,E08000011,2,59.06,156.51,25.84,171.11 +7319,9,E08000011,3,65.51,177.73,25.84,193.64 +7645,9,E08000011,4,71.98,254.69,25.84,277.23 +7971,10,E08000011,0,55.97,516.92,18.64,563.1 +148,1,E09000022,1,65.51,145.37,25.84,197.39 +474,1,E09000022,2,77.51,157.04,25.84,192.07 +800,1,E09000022,3,83.97,166.61,25.84,226.01 +1126,1,E09000022,4,101.48,186.77,25.84,251.49 +2756,2,E09000022,0,70.47,317,18.64,502.91 +1452,3,E09000022,1,58.13,118.85,25.84,146.43 +1778,3,E09000022,2,63.67,139.02,25.84,175.09 +2104,3,E09000022,3,71.06,159.17,25.84,200.55 +2430,3,E09000022,4,83.05,259.98,25.84,261.04 +3082,4,E09000022,0,60.1,371.82,18.64,402.8 +3971,5,E09000022,1,65.51,273.78,25.84,298.19 +4586,5,E09000022,2,77.51,326.84,25.84,356.55 +5238,5,E09000022,3,83.97,428.71,25.84,467.97 +5923,5,E09000022,4,101.48,613.35,25.84,667.48 +3408,6,E09000022,0,70.47,686.44,18.64,749.59 +4185,7,E09000022,1,58.13,273.78,25.84,298.19 +4686,7,E09000022,2,63.67,326.84,25.84,356.55 +5338,7,E09000022,3,71.06,428.71,25.84,467.97 +5890,7,E09000022,4,83.05,613.35,25.84,667.48 +3734,8,E09000022,0,60.1,686.44,18.64,749.59 +6668,9,E09000022,1,65.51,342.23,25.84,372.74 +6994,9,E09000022,2,77.51,408.54,25.84,445.68 +7320,9,E09000022,3,83.97,535.89,25.84,584.95 +7646,9,E09000022,4,101.48,766.71,25.84,834.33 +7972,10,E09000022,0,70.47,278.57,18.64,302.41 +149,1,E07000121,1,51.68,93.39,25.84,116.72 +475,1,E07000121,2,59.06,107.19,25.84,134.77 +801,1,E07000121,3,65.51,119.9,25.84,145.37 +1127,1,E07000121,4,71.98,133.71,25.84,159.17 +2757,2,E07000121,0,55.97,239.54,18.64,342.01 +1453,3,E07000121,1,43.36,85.94,25.84,100.81 +1779,3,E07000121,2,53.52,94.47,25.84,113.53 +2105,3,E07000121,3,58.13,105.06,25.84,124.15 +2431,3,E07000121,4,55.37,118.85,25.84,133.71 +3083,4,E07000121,0,33.16,469.54,18.64,599.44 +4369,5,E07000121,1,51.68,109.29,25.84,118.85 +4939,5,E07000121,2,59.06,130.52,25.84,143.25 +5582,5,E07000121,3,65.51,147.5,25.84,160.24 +6330,5,E07000121,4,71.98,180.4,25.84,197.39 +3409,6,E07000121,0,55.97,202.58,18.64,221.66 +4481,7,E07000121,1,43.36,109.29,25.84,118.85 +5077,7,E07000121,2,53.52,130.52,25.84,143.25 +5757,7,E07000121,3,58.13,147.5,25.84,160.24 +6381,7,E07000121,4,55.37,180.4,25.84,197.39 +3735,8,E07000121,0,33.16,202.58,18.64,221.66 +6669,9,E07000121,1,51.68,136.63,25.84,148.56 +6995,9,E07000121,2,59.06,163.15,25.84,179.06 +7321,9,E07000121,3,65.51,184.37,25.84,200.32 +7647,9,E07000121,4,71.98,225.52,25.84,246.73 +7973,10,E07000121,0,55.97,302.41,18.64,330.71 +150,1,E08000035,1,50.76,91.27,25.84,113.53 +476,1,E08000035,2,58.13,108.24,25.84,140.08 +802,1,E08000035,3,62.75,119.9,25.84,161.3 +1128,1,E08000035,4,72.9,144.31,25.84,178.28 +2758,2,E08000035,0,52.86,234.75,18.64,322.95 +1454,3,E08000035,1,46.13,81.71,25.84,92.33 +1780,3,E08000035,2,52.6,112.47,25.84,144.31 +2106,3,E08000035,3,56.29,104,25.84,113.53 +2432,3,E08000035,4,63.67,120.97,25.84,175.09 +3084,4,E08000035,0,51.82,160.88,18.64,190.67 +4400,5,E08000035,1,50.76,125.22,25.84,136.89 +4880,5,E08000035,2,58.13,153.86,25.84,167.67 +5511,5,E08000035,3,62.75,188.88,25.84,205.88 +6116,5,E08000035,4,72.9,409.6,25.84,446.76 +3410,6,E08000035,0,52.86,460,18.64,501.72 +4554,7,E08000035,1,46.13,125.22,25.84,136.89 +4822,7,E08000035,2,52.6,153.86,25.84,167.67 +5858,7,E08000035,3,56.29,188.88,25.84,205.88 +6214,7,E08000035,4,63.67,409.6,25.84,446.76 +3736,8,E08000035,0,51.82,460,18.64,501.72 +6670,9,E08000035,1,50.76,156.51,25.84,171.11 +6996,9,E08000035,2,52.6,192.33,25.84,209.57 +7322,9,E08000035,3,62.75,236.12,25.84,257.33 +7648,9,E08000035,4,72.9,512.02,25.84,558.42 +7974,10,E08000035,0,52.86,284.53,18.64,309.82 +151,1,E06000016,1,51.68,99.75,25.84,122.03 +477,1,E06000016,2,61.83,114.6,25.84,129.46 +803,1,E06000016,3,68.28,126.28,25.84,137.95 +1129,1,E06000016,4,75.67,158.1,25.84,166.61 +2759,2,E06000016,0,51.82,240.72,18.64,361.1 +1455,3,E06000016,1,46.13,90.21,25.84,107.19 +1781,3,E06000016,2,52.6,96.56,25.84,108.24 +2107,3,E06000016,3,58.13,104,25.84,118.85 +2433,3,E06000016,4,63.67,122.03,25.84,122.03 +3085,4,E06000016,0,49.74,114.39,18.64,123.94 +4332,5,E06000016,1,51.68,107.19,25.84,116.72 +5028,5,E06000016,2,61.83,125.22,25.84,136.89 +5671,5,E06000016,3,68.28,136.89,25.84,148.56 +6246,5,E06000016,4,75.67,197.39,25.84,214.35 +3411,6,E06000016,0,51.82,220.48,18.64,240.72 +4432,7,E06000016,1,46.13,107.19,25.84,116.72 +5168,7,E06000016,2,52.6,125.22,25.84,136.89 +5829,7,E06000016,3,58.13,136.89,25.84,148.56 +6490,7,E06000016,4,63.67,197.39,25.84,214.35 +3737,8,E06000016,0,49.74,220.48,18.64,240.72 +6671,9,E06000016,1,51.68,133.98,25.84,145.91 +6997,9,E06000016,2,61.83,156.51,25.84,171.11 +7323,9,E06000016,3,68.28,171.11,25.84,185.69 +7649,9,E06000016,4,75.67,246.73,25.84,267.95 +7975,10,E06000016,0,51.82,473.7,18.64,516.92 +152,1,E07000063,1,57.21,123.09,25.84,176.15 +478,1,E07000063,2,71.06,146.43,25.84,186.77 +804,1,E07000063,3,81.2,161.3,25.84,203.75 +1130,1,E07000063,4,89.52,178.28,25.84,221.77 +2760,2,E07000063,0,62.17,268.13,18.64,344.4 +1456,3,E07000063,1,51.68,115.66,25.84,159.17 +1782,3,E07000063,2,62.75,129.46,25.84,145.37 +2108,3,E07000063,3,68.28,149.62,25.84,185.7 +2434,3,E07000063,4,72.9,184.64,25.84,194.19 +3086,4,E07000063,0,48.71,195.45,18.64,204.96 +4011,5,E07000063,1,57.21,142.18,25.84,154.93 +4626,5,E07000063,2,71.06,186.77,25.84,203.75 +5278,5,E07000063,3,81.2,226.01,25.84,245.12 +5963,5,E07000063,4,89.52,337.44,25.84,368.22 +3412,6,E07000063,0,62.17,378.95,18.64,413.53 +4078,7,E07000063,1,51.68,142.18,25.84,154.93 +4773,7,E07000063,2,62.75,186.77,25.84,203.75 +5378,7,E07000063,3,68.28,226.01,25.84,245.12 +6067,7,E07000063,4,72.9,337.44,25.84,368.22 +3738,8,E07000063,0,48.71,378.95,18.64,413.53 +6672,9,E07000063,1,57.21,177.73,25.84,193.64 +6998,9,E07000063,2,71.06,233.46,25.84,254.69 +7324,9,E07000063,3,81.2,282.54,25.84,306.4 +7650,9,E07000063,4,89.52,421.8,25.84,460.26 +7976,10,E07000063,0,62.17,788.01,18.64,858.05 +153,1,E09000023,1,65.51,145.37,25.84,197.39 +479,1,E09000023,2,77.51,157.04,25.84,192.07 +805,1,E09000023,3,83.97,166.61,25.84,226.01 +1131,1,E09000023,4,101.48,186.77,25.84,251.49 +2761,2,E09000023,0,70.47,317,18.64,502.91 +1457,3,E09000023,1,58.13,118.85,25.84,146.43 +1783,3,E09000023,2,63.67,139.02,25.84,175.09 +2109,3,E09000023,3,71.06,159.17,25.84,200.55 +2435,3,E09000023,4,83.05,259.98,25.84,261.04 +3087,4,E09000023,0,60.1,371.82,18.64,402.8 +3972,5,E09000023,1,65.51,192.07,25.84,210.12 +4587,5,E09000023,2,77.51,248.31,25.84,270.61 +5239,5,E09000023,3,83.97,316.23,25.84,344.88 +5924,5,E09000023,4,101.48,467.97,25.84,509.36 +3413,6,E09000023,0,70.47,525.55,18.64,572.03 +4186,7,E09000023,1,58.13,192.07,25.84,210.12 +4687,7,E09000023,2,63.67,248.31,25.84,270.61 +5339,7,E09000023,3,71.06,316.23,25.84,344.88 +5891,7,E09000023,4,83.05,467.97,25.84,509.36 +3739,8,E09000023,0,60.1,525.55,18.64,572.03 +6673,9,E09000023,1,65.51,240.08,25.84,262.64 +6999,9,E09000023,2,77.51,310.37,25.84,338.25 +7325,9,E09000023,3,83.97,395.3,25.84,431.1 +7651,9,E09000023,4,101.48,584.95,25.84,636.7 +7977,10,E09000023,0,70.47,458.81,18.64,500.53 +154,1,E07000194,1,52.6,98.69,25.84,124.15 +480,1,E07000194,2,58.13,116.72,25.84,136.89 +806,1,E07000194,3,69.2,132.64,25.84,160.24 +1132,1,E07000194,4,80.28,161.3,25.84,178.28 +2762,2,E07000194,0,39.38,245.49,18.64,382.53 +1458,3,E07000194,1,46.13,88.07,25.84,97.63 +1784,3,E07000194,2,49.84,94.47,25.84,102.94 +2110,3,E07000194,3,59.98,104,25.84,119.9 +2436,3,E07000194,4,68.28,127.34,25.84,127.34 +3088,4,E07000194,0,46.63,107.26,18.64,107.26 +4288,5,E07000194,1,52.6,113.53,25.84,123.09 +4898,5,E07000194,2,58.13,134.77,25.84,147.5 +5529,5,E07000194,3,69.2,170.85,25.84,185.7 +6181,5,E07000194,4,80.28,269.54,25.84,293.94 +3414,6,E07000194,0,39.38,302.7,18.64,330.11 +4509,7,E07000194,1,46.13,113.53,25.84,123.09 +5194,7,E07000194,2,49.84,134.77,25.84,147.5 +5785,7,E07000194,3,59.98,170.85,25.84,185.7 +6446,7,E07000194,4,68.28,269.54,25.84,293.94 +3740,8,E07000194,0,46.63,302.7,18.64,330.11 +6674,9,E07000194,1,52.6,141.94,25.84,153.86 +7000,9,E07000194,2,58.13,168.46,25.84,184.37 +7326,9,E07000194,3,69.2,213.57,25.84,232.15 +7652,9,E07000194,4,80.28,336.93,25.84,367.42 +7978,10,E07000194,0,39.38,269.62,18.64,294.95 +155,1,E07000138,1,51.68,99.75,25.84,122.03 +481,1,E07000138,2,61.83,114.6,25.84,129.46 +807,1,E07000138,3,68.28,126.28,25.84,137.95 +1133,1,E07000138,4,75.67,158.1,25.84,166.61 +2763,2,E07000138,0,51.82,240.72,18.64,361.1 +1459,3,E07000138,1,46.13,90.21,25.84,107.19 +1785,3,E07000138,2,52.6,96.56,25.84,108.24 +2111,3,E07000138,3,58.13,104,25.84,118.85 +2437,3,E07000138,4,63.67,122.03,25.84,122.03 +3089,4,E07000138,0,49.74,114.39,18.64,123.94 +4333,5,E07000138,1,51.68,102.94,25.84,112.47 +5029,5,E07000138,2,61.83,117.78,25.84,128.4 +5672,5,E07000138,3,68.28,134.77,25.84,147.5 +6247,5,E07000138,4,75.67,175.09,25.84,189.94 +3415,6,E07000138,0,51.82,196.63,18.64,213.31 +4433,7,E07000138,1,46.13,102.94,25.84,112.47 +5169,7,E07000138,2,52.6,117.78,25.84,128.4 +5830,7,E07000138,3,58.13,134.77,25.84,147.5 +6491,7,E07000138,4,63.67,175.09,25.84,189.94 +3741,8,E07000138,0,49.74,196.63,18.64,213.31 +6675,9,E07000138,1,51.68,128.67,25.84,140.6 +7001,9,E07000138,2,61.83,147.23,25.84,160.51 +7327,9,E07000138,3,68.28,168.46,25.84,184.37 +7653,9,E07000138,4,75.67,218.87,25.84,237.44 +7979,10,E07000138,0,51.82,628.63,18.64,686.73 +156,1,E08000012,1,51.68,93.39,25.84,116.72 +482,1,E08000012,2,59.06,107.19,25.84,134.77 +808,1,E08000012,3,65.51,119.9,25.84,145.37 +1134,1,E08000012,4,71.98,133.71,25.84,159.17 +2764,2,E08000012,0,55.97,239.54,18.64,342.01 +1460,3,E08000012,1,43.36,85.94,25.84,100.81 +1786,3,E08000012,2,53.52,94.47,25.84,113.53 +2112,3,E08000012,3,58.13,105.06,25.84,124.15 +2438,3,E08000012,4,55.37,118.85,25.84,133.71 +3090,4,E08000012,0,33.16,469.54,18.64,599.44 +4370,5,E08000012,1,51.68,113.53,25.84,123.09 +4940,5,E08000012,2,59.06,147.5,25.84,160.24 +5583,5,E08000012,3,65.51,142.18,25.84,154.93 +6331,5,E08000012,4,71.98,227.08,25.84,246.18 +3416,6,E08000012,0,55.97,255.02,18.64,276.48 +4482,7,E08000012,1,43.36,113.53,25.84,123.09 +5078,7,E08000012,2,53.52,147.5,25.84,160.24 +5758,7,E08000012,3,58.13,142.18,25.84,154.93 +6382,7,E08000012,4,55.37,227.08,25.84,246.18 +3742,8,E08000012,0,33.16,255.02,18.64,276.48 +6676,9,E08000012,1,51.68,141.94,25.84,153.86 +7002,9,E08000012,2,59.06,184.37,25.84,200.32 +7328,9,E08000012,3,65.51,177.73,25.84,193.64 +7654,9,E08000012,4,71.98,283.85,25.84,307.73 +7980,10,E08000012,0,55.97,403.71,18.64,439.44 +157,1,E06000032,1,54.44,118.85,25.84,148.56 +483,1,E06000032,2,64.59,142.18,25.84,167.67 +809,1,E06000032,3,71.06,155.98,25.84,180.4 +1135,1,E06000032,4,81.2,170.85,25.84,178.28 +2765,2,E06000032,0,36.26,226.42,18.64,423.05 +1461,3,E06000032,1,49.84,99.75,25.84,131.58 +1787,3,E06000032,2,58.13,117.78,25.84,132.64 +2113,3,E06000032,3,63.67,130.52,25.84,143.25 +2439,3,E06000032,4,71.06,148.56,25.84,159.17 +3091,4,E06000032,0,55.97,135.86,18.64,318.19 +4142,5,E06000032,1,54.44,119.9,25.84,130.52 +4723,5,E06000032,2,64.59,147.5,25.84,160.24 +5442,5,E06000032,3,71.06,180.4,25.84,197.39 +6152,5,E06000032,4,81.2,248.31,25.84,270.61 +3417,6,E06000032,0,36.26,278.86,18.64,303.89 +4259,7,E06000032,1,49.84,119.9,25.84,130.52 +4985,7,E06000032,2,58.13,147.5,25.84,160.24 +5628,7,E06000032,3,63.67,180.4,25.84,197.39 +6290,7,E06000032,4,71.06,248.31,25.84,270.61 +3743,8,E06000032,0,55.97,278.86,18.64,303.89 +6677,9,E06000032,1,54.44,149.9,25.84,163.15 +7003,9,E06000032,2,64.59,184.37,25.84,200.32 +7329,9,E06000032,3,71.06,225.52,25.84,246.73 +7655,9,E06000032,4,81.2,310.37,25.84,338.25 +7981,10,E06000032,0,36.26,348.6,18.64,379.86 +158,1,E07000110,1,57.21,123.09,25.84,176.15 +484,1,E07000110,2,71.06,146.43,25.84,186.77 +810,1,E07000110,3,81.2,161.3,25.84,203.75 +1136,1,E07000110,4,89.52,178.28,25.84,221.77 +2766,2,E07000110,0,62.17,268.13,18.64,344.4 +1462,3,E07000110,1,51.68,115.66,25.84,159.17 +1788,3,E07000110,2,62.75,129.46,25.84,145.37 +2114,3,E07000110,3,68.28,149.62,25.84,185.7 +2440,3,E07000110,4,72.9,184.64,25.84,194.19 +3092,4,E07000110,0,48.71,195.45,18.64,204.96 +4012,5,E07000110,1,57.21,134.77,25.84,147.5 +4627,5,E07000110,2,71.06,164.48,25.84,179.34 +5279,5,E07000110,3,81.2,192.07,25.84,210.12 +5964,5,E07000110,4,89.52,281.2,25.84,306.68 +3418,6,E07000110,0,62.17,315.82,18.64,344.4 +4079,7,E07000110,1,51.68,134.77,25.84,147.5 +4774,7,E07000110,2,62.75,164.48,25.84,179.34 +5379,7,E07000110,3,68.28,192.07,25.84,210.12 +6068,7,E07000110,4,72.9,281.2,25.84,306.68 +3744,8,E07000110,0,48.71,315.82,18.64,344.4 +6678,9,E07000110,1,57.21,168.46,25.84,184.37 +7004,9,E07000110,2,71.06,205.6,25.84,224.18 +7330,9,E07000110,3,81.2,240.08,25.84,262.64 +7656,9,E07000110,4,89.52,351.51,25.84,383.34 +7982,10,E07000110,0,62.17,819.3,18.64,892.3 +159,1,E07000074,1,54.44,118.85,25.84,148.56 +485,1,E07000074,2,64.59,142.18,25.84,167.67 +811,1,E07000074,3,71.06,155.98,25.84,180.4 +1137,1,E07000074,4,81.2,170.85,25.84,178.28 +2767,2,E07000074,0,36.26,226.42,18.64,423.05 +1463,3,E07000074,1,49.84,99.75,25.84,131.58 +1789,3,E07000074,2,58.13,117.78,25.84,132.64 +2115,3,E07000074,3,63.67,130.52,25.84,143.25 +2441,3,E07000074,4,71.06,148.56,25.84,159.17 +3093,4,E07000074,0,55.97,135.86,18.64,318.19 +4143,5,E07000074,1,54.44,125.22,25.84,136.89 +4724,5,E07000074,2,64.59,164.48,25.84,179.34 +5443,5,E07000074,3,71.06,192.07,25.84,210.12 +6153,5,E07000074,4,81.2,292.87,25.84,319.41 +3419,6,E07000074,0,36.26,328.92,18.64,358.7 +4260,7,E07000074,1,49.84,125.22,25.84,136.89 +4986,7,E07000074,2,58.13,164.48,25.84,179.34 +5629,7,E07000074,3,63.67,192.07,25.84,210.12 +6291,7,E07000074,4,71.06,292.87,25.84,319.41 +3745,8,E07000074,0,55.97,328.92,18.64,358.7 +6679,9,E07000074,1,54.44,156.51,25.84,171.11 +7005,9,E07000074,2,64.59,205.6,25.84,224.18 +7331,9,E07000074,3,71.06,240.08,25.84,262.64 +7657,9,E07000074,4,81.2,366.11,25.84,399.27 +7983,10,E07000074,0,36.26,394.77,18.64,430.5 +160,1,E07000235,1,52.6,98.69,25.84,124.15 +486,1,E07000235,2,58.13,116.72,25.84,136.89 +812,1,E07000235,3,69.2,132.64,25.84,160.24 +1138,1,E07000235,4,80.28,161.3,25.84,178.28 +2768,2,E07000235,0,39.38,245.49,18.64,382.53 +1464,3,E07000235,1,46.13,88.07,25.84,97.63 +1790,3,E07000235,2,49.84,94.47,25.84,102.94 +2116,3,E07000235,3,59.98,104,25.84,119.9 +2442,3,E07000235,4,68.28,127.34,25.84,127.34 +3094,4,E07000235,0,46.63,107.26,18.64,107.26 +4289,5,E07000235,1,52.6,113.53,25.84,123.09 +4899,5,E07000235,2,58.13,134.77,25.84,147.5 +5530,5,E07000235,3,69.2,164.48,25.84,179.34 +6182,5,E07000235,4,80.28,270.61,25.84,295.01 +3420,6,E07000235,0,39.38,303.89,18.64,331.29 +4510,7,E07000235,1,46.13,113.53,25.84,123.09 +5195,7,E07000235,2,49.84,134.77,25.84,147.5 +5786,7,E07000235,3,59.98,164.48,25.84,179.34 +6447,7,E07000235,4,68.28,270.61,25.84,295.01 +3746,8,E07000235,0,46.63,303.89,18.64,331.29 +6680,9,E07000235,1,52.6,141.94,25.84,153.86 +7006,9,E07000235,2,58.13,168.46,25.84,184.37 +7332,9,E07000235,3,69.2,205.6,25.84,224.18 +7658,9,E07000235,4,80.28,338.25,25.84,368.76 +7984,10,E07000235,0,39.38,379.86,18.64,414.12 +61,1,E08000003,1,51.68,93.39,25.84,116.72 +387,1,E08000003,2,59.06,107.19,25.84,134.77 +713,1,E08000003,3,65.51,119.9,25.84,145.37 +1039,1,E08000003,4,71.98,133.71,25.84,159.17 +2669,2,E08000003,0,55.97,239.54,18.64,342.01 +1365,3,E08000003,1,43.36,85.94,25.84,100.81 +1691,3,E08000003,2,53.52,94.47,25.84,113.53 +2017,3,E08000003,3,58.13,105.06,25.84,124.15 +2343,3,E08000003,4,55.37,118.85,25.84,133.71 +2995,4,E08000003,0,33.16,469.54,18.64,599.44 +4361,5,E08000003,1,51.68,130.52,25.84,143.25 +4931,5,E08000003,2,59.06,153.86,25.84,167.67 +5574,5,E08000003,3,65.51,174.02,25.84,189.94 +6322,5,E08000003,4,71.98,270.61,25.84,295.01 +3321,6,E08000003,0,55.97,303.89,18.64,331.29 +4473,7,E08000003,1,43.36,130.52,25.84,143.25 +5069,7,E08000003,2,53.52,153.86,25.84,167.67 +5749,7,E08000003,3,58.13,174.02,25.84,189.94 +6373,7,E08000003,4,55.37,270.61,25.84,295.01 +3647,8,E08000003,0,33.16,303.89,18.64,331.29 +6581,9,E08000003,1,51.68,163.15,25.84,179.06 +6907,9,E08000003,2,59.06,192.33,25.84,209.57 +7233,9,E08000003,3,65.51,217.54,25.84,237.44 +7559,9,E08000003,4,71.98,338.25,25.84,368.76 +7885,10,E08000003,0,55.97,253.23,18.64,277.06 +161,1,E07000174,1,51.68,99.75,25.84,122.03 +487,1,E07000174,2,61.83,114.6,25.84,129.46 +813,1,E07000174,3,68.28,126.28,25.84,137.95 +1139,1,E07000174,4,75.67,158.1,25.84,166.61 +2769,2,E07000174,0,51.82,240.72,18.64,361.1 +1465,3,E07000174,1,46.13,90.21,25.84,107.19 +1791,3,E07000174,2,52.6,96.56,25.84,108.24 +2117,3,E07000174,3,58.13,104,25.84,118.85 +2443,3,E07000174,4,63.67,122.03,25.84,122.03 +3095,4,E07000174,0,49.74,114.39,18.64,123.94 +4334,5,E07000174,1,51.68,88.07,25.84,96.56 +5030,5,E07000174,2,61.83,109.29,25.84,118.85 +5673,5,E07000174,3,68.28,125.22,25.84,136.89 +6248,5,E07000174,4,75.67,180.4,25.84,197.39 +3421,6,E07000174,0,51.82,202.58,18.64,221.66 +4434,7,E07000174,1,46.13,88.07,25.84,96.56 +5170,7,E07000174,2,52.6,109.29,25.84,118.85 +5831,7,E07000174,3,58.13,125.22,25.84,136.89 +6492,7,E07000174,4,63.67,180.4,25.84,197.39 +3747,8,E07000174,0,49.74,202.58,18.64,221.66 +6681,9,E07000174,1,51.68,110.1,25.84,120.73 +7007,9,E07000174,2,61.83,136.63,25.84,148.56 +7333,9,E07000174,3,68.28,156.51,25.84,171.11 +7659,9,E07000174,4,75.67,225.52,25.84,246.73 +7985,10,E07000174,0,51.82,379.86,18.64,414.12 +280,1,E06000035,1,57.21,123.09,25.84,176.15 +606,1,E06000035,2,71.06,146.43,25.84,186.77 +932,1,E06000035,3,81.2,161.3,25.84,203.75 +1258,1,E06000035,4,89.52,178.28,25.84,221.77 +2888,2,E06000035,0,62.17,268.13,18.64,344.4 +1584,3,E06000035,1,51.68,115.66,25.84,159.17 +1910,3,E06000035,2,62.75,129.46,25.84,145.37 +2236,3,E06000035,3,68.28,149.62,25.84,185.7 +2562,3,E06000035,4,72.9,184.64,25.84,194.19 +3214,4,E06000035,0,48.71,195.45,18.64,204.96 +4036,5,E06000035,1,57.21,125.22,25.84,136.89 +4651,5,E06000035,2,71.06,147.5,25.84,160.24 +5303,5,E06000035,3,81.2,170.85,25.84,185.7 +5988,5,E06000035,4,89.52,270.61,25.84,295.01 +3540,6,E06000035,0,62.17,303.89,18.64,331.29 +4103,7,E06000035,1,51.68,125.22,25.84,136.89 +4798,7,E06000035,2,62.75,147.5,25.84,160.24 +5403,7,E06000035,3,68.28,170.85,25.84,185.7 +6092,7,E06000035,4,72.9,270.61,25.84,295.01 +3866,8,E06000035,0,48.71,303.89,18.64,331.29 +6800,9,E06000035,1,57.21,156.51,25.84,171.11 +7126,9,E06000035,2,71.06,184.37,25.84,200.32 +7452,9,E06000035,3,81.2,213.57,25.84,232.15 +7778,9,E06000035,4,89.52,338.25,25.84,368.76 +8104,10,E06000035,0,62.17,379.86,18.64,414.12 +162,1,E07000133,1,51.68,99.75,25.84,122.03 +488,1,E07000133,2,61.83,114.6,25.84,129.46 +814,1,E07000133,3,68.28,126.28,25.84,137.95 +1140,1,E07000133,4,75.67,158.1,25.84,166.61 +2770,2,E07000133,0,51.82,240.72,18.64,361.1 +1466,3,E07000133,1,46.13,90.21,25.84,107.19 +1792,3,E07000133,2,52.6,96.56,25.84,108.24 +2118,3,E07000133,3,58.13,104,25.84,118.85 +2444,3,E07000133,4,63.67,122.03,25.84,122.03 +3096,4,E07000133,0,49.74,114.39,18.64,123.94 +4335,5,E07000133,1,51.68,97.63,25.84,107.19 +5031,5,E07000133,2,61.83,119.9,25.84,130.52 +5674,5,E07000133,3,68.28,136.89,25.84,148.56 +6249,5,E07000133,4,75.67,281.2,25.84,306.68 +3422,6,E07000133,0,51.82,315.82,18.64,344.4 +4435,7,E07000133,1,46.13,97.63,25.84,107.19 +5171,7,E07000133,2,52.6,119.9,25.84,130.52 +5832,7,E07000133,3,58.13,136.89,25.84,148.56 +6493,7,E07000133,4,63.67,281.2,25.84,306.68 +3748,8,E07000133,0,49.74,315.82,18.64,344.4 +6682,9,E07000133,1,51.68,122.03,25.84,133.98 +7008,9,E07000133,2,61.83,149.9,25.84,163.15 +7334,9,E07000133,3,68.28,171.11,25.84,185.69 +7660,9,E07000133,4,75.67,351.51,25.84,383.34 +7986,10,E07000133,0,51.82,411.13,18.64,448.39 +164,1,E09000024,1,65.51,145.37,25.84,197.39 +490,1,E09000024,2,77.51,157.04,25.84,192.07 +816,1,E09000024,3,83.97,166.61,25.84,226.01 +1142,1,E09000024,4,101.48,186.77,25.84,251.49 +2772,2,E09000024,0,70.47,317,18.64,502.91 +1468,3,E09000024,1,58.13,118.85,25.84,146.43 +1794,3,E09000024,2,63.67,139.02,25.84,175.09 +2120,3,E09000024,3,71.06,159.17,25.84,200.55 +2446,3,E09000024,4,83.05,259.98,25.84,261.04 +3098,4,E09000024,0,60.1,371.82,18.64,402.8 +3973,5,E09000024,1,65.51,237.69,25.84,258.92 +4588,5,E09000024,2,77.51,304.55,25.84,332.14 +5240,5,E09000024,3,83.97,371.41,25.84,405.36 +5925,5,E09000024,4,101.48,583.64,25.84,635.64 +3424,6,E09000024,0,70.47,655.45,18.64,713.85 +4187,7,E09000024,1,58.13,237.69,25.84,258.92 +4688,7,E09000024,2,63.67,304.55,25.84,332.14 +5340,7,E09000024,3,71.06,371.41,25.84,405.36 +5892,7,E09000024,4,83.05,583.64,25.84,635.64 +3750,8,E09000024,0,60.1,655.45,18.64,713.85 +6684,9,E09000024,1,65.51,297.12,25.84,323.65 +7010,9,E09000024,2,77.51,380.68,25.84,415.17 +7336,9,E09000024,3,83.97,464.26,25.84,506.71 +7662,9,E09000024,4,101.48,729.54,25.84,794.53 +7988,10,E09000024,0,70.47,394.77,18.64,430.5 +165,1,E07000042,1,48.92,107.19,25.84,140.08 +491,1,E07000042,2,55.37,120.97,25.84,144.31 +817,1,E07000042,3,61.83,141.13,25.84,161.3 +1143,1,E07000042,4,71.06,158.1,25.84,194.19 +2773,2,E07000042,0,54.93,231.2,18.64,358.7 +1469,3,E07000042,1,47.06,89.13,25.84,210.12 +1795,3,E07000042,2,54.44,100.81,25.84,111.41 +2121,3,E07000042,3,61.83,109.29,25.84,126.28 +2447,3,E07000042,4,73.82,130.52,25.84,130.52 +3099,4,E07000042,0,54.93,115.59,18.64,141.81 +4211,5,E07000042,1,48.92,102.94,25.84,112.47 +4847,5,E07000042,2,55.37,130.52,25.84,143.25 +5478,5,E07000042,3,61.83,164.48,25.84,180.4 +6016,5,E07000042,4,71.06,248.31,25.84,270.61 +3425,6,E07000042,0,54.93,278.86,18.64,303.89 +3927,7,E07000042,1,47.06,102.94,25.84,112.47 +5124,7,E07000042,2,54.44,130.52,25.84,143.25 +5704,7,E07000042,3,61.83,164.48,25.84,180.4 +6416,7,E07000042,4,73.82,248.31,25.84,270.61 +3751,8,E07000042,0,54.93,278.86,18.64,303.89 +6685,9,E07000042,1,48.92,128.67,25.84,140.6 +7011,9,E07000042,2,55.37,163.15,25.84,179.06 +7337,9,E07000042,3,61.83,205.6,25.84,225.52 +7663,9,E07000042,4,71.06,310.37,25.84,338.25 +7989,10,E07000042,0,54.93,348.6,18.64,379.86 +166,1,E07000203,1,54.44,118.85,25.84,148.56 +492,1,E07000203,2,64.59,142.18,25.84,167.67 +818,1,E07000203,3,71.06,155.98,25.84,180.4 +1144,1,E07000203,4,81.2,170.85,25.84,178.28 +2774,2,E07000203,0,36.26,226.42,18.64,423.05 +1470,3,E07000203,1,49.84,99.75,25.84,131.58 +1796,3,E07000203,2,58.13,117.78,25.84,132.64 +2122,3,E07000203,3,63.67,130.52,25.84,143.25 +2448,3,E07000203,4,71.06,148.56,25.84,159.17 +3100,4,E07000203,0,55.97,135.86,18.64,318.19 +4144,5,E07000203,1,54.44,100.81,25.84,110.36 +4725,5,E07000203,2,64.59,125.22,25.84,136.89 +5444,5,E07000203,3,71.06,159.17,25.84,174.02 +6154,5,E07000203,4,81.2,287.59,25.84,313.05 +3426,6,E07000203,0,36.26,322.95,18.64,351.54 +4261,7,E07000203,1,49.84,100.81,25.84,110.36 +4987,7,E07000203,2,58.13,125.22,25.84,136.89 +5630,7,E07000203,3,63.67,159.17,25.84,174.02 +6292,7,E07000203,4,71.06,287.59,25.84,313.05 +3752,8,E07000203,0,55.97,322.95,18.64,351.54 +6686,9,E07000203,1,54.44,126.02,25.84,137.95 +7012,9,E07000203,2,64.59,156.51,25.84,171.11 +7338,9,E07000203,3,71.06,198.96,25.84,217.54 +7664,9,E07000203,4,81.2,359.47,25.84,391.31 +7990,10,E07000203,0,36.26,318.79,18.64,345.6 +167,1,E07000228,1,57.21,123.09,25.84,176.15 +493,1,E07000228,2,71.06,146.43,25.84,186.77 +819,1,E07000228,3,81.2,161.3,25.84,203.75 +1145,1,E07000228,4,89.52,178.28,25.84,221.77 +2775,2,E07000228,0,62.17,268.13,18.64,344.4 +1471,3,E07000228,1,51.68,115.66,25.84,159.17 +1797,3,E07000228,2,62.75,129.46,25.84,145.37 +2123,3,E07000228,3,68.28,149.62,25.84,185.7 +2449,3,E07000228,4,72.9,184.64,25.84,194.19 +3101,4,E07000228,0,48.71,195.45,18.64,204.96 +4013,5,E07000228,1,57.21,153.86,25.84,167.67 +4628,5,E07000228,2,71.06,192.07,25.84,210.12 +5280,5,E07000228,3,81.2,268.48,25.84,292.87 +5965,5,E07000228,4,89.52,448.87,25.84,489.2 +3427,6,E07000228,0,62.17,502.91,18.64,549.39 +4080,7,E07000228,1,51.68,153.86,25.84,167.67 +4775,7,E07000228,2,62.75,192.07,25.84,210.12 +5380,7,E07000228,3,68.28,268.48,25.84,292.87 +6069,7,E07000228,4,72.9,448.87,25.84,489.2 +3753,8,E07000228,0,48.71,502.91,18.64,549.39 +6687,9,E07000228,1,57.21,192.33,25.84,209.57 +7013,9,E07000228,2,71.06,240.08,25.84,262.64 +7339,9,E07000228,3,81.2,335.59,25.84,366.11 +7665,9,E07000228,4,89.52,561.08,25.84,611.49 +7991,10,E07000228,0,62.17,245.79,18.64,266.63 +168,1,E06000002,1,50.76,88.07,25.84,97.63 +494,1,E06000002,2,57.21,101.88,25.84,119.9 +820,1,E06000002,3,60.9,113.53,25.84,159.17 +1146,1,E06000002,4,70.13,127.34,25.84,139.02 +2776,2,E06000002,0,55.97,237.14,18.64,340.83 +1472,3,E06000002,1,42.44,99.75,25.84,105.06 +1798,3,E06000002,2,49.84,90.21,25.84,111.41 +2124,3,E06000002,3,53.52,105.06,25.84,124.15 +2450,3,E06000002,4,56.29,115.66,25.84,119.9 +3102,4,E06000002,0,47.67,253.84,18.64,288.39 +4536,5,E06000002,1,50.76,97.63,25.84,107.19 +5051,5,E06000002,2,57.21,114.6,25.84,124.15 +5556,5,E06000002,3,60.9,132.64,25.84,145.37 +6355,5,E06000002,4,70.13,192.07,25.84,210.12 +3428,6,E06000002,0,55.97,215.7,18.64,235.95 +4455,7,E06000002,1,42.44,97.63,25.84,107.19 +5102,7,E06000002,2,49.84,114.6,25.84,124.15 +5731,7,E06000002,3,53.52,132.64,25.84,145.37 +6513,7,E06000002,4,56.29,192.07,25.84,210.12 +3754,8,E06000002,0,47.67,215.7,18.64,235.95 +6688,9,E06000002,1,42.44,122.03,25.84,133.98 +7014,9,E06000002,2,57.21,143.25,25.84,155.2 +7340,9,E06000002,3,60.9,165.81,25.84,181.72 +7666,9,E06000002,4,70.13,240.08,25.84,262.64 +7992,10,E06000002,0,55.97,378.39,18.64,412.63 +169,1,E06000042,1,57.21,123.09,25.84,176.15 +495,1,E06000042,2,71.06,146.43,25.84,186.77 +821,1,E06000042,3,81.2,161.3,25.84,203.75 +1147,1,E06000042,4,89.52,178.28,25.84,221.77 +2777,2,E06000042,0,62.17,268.13,18.64,344.4 +1473,3,E06000042,1,51.68,115.66,25.84,159.17 +1799,3,E06000042,2,62.75,129.46,25.84,145.37 +2125,3,E06000042,3,68.28,149.62,25.84,185.7 +2451,3,E06000042,4,72.9,184.64,25.84,194.19 +3103,4,E06000042,0,48.71,195.45,18.64,204.96 +4014,5,E06000042,1,57.21,134.77,25.84,147.5 +4629,5,E06000042,2,71.06,164.48,25.84,179.34 +5281,5,E06000042,3,81.2,186.77,25.84,203.75 +5966,5,E06000042,4,89.52,326.84,25.84,356.55 +3429,6,E06000042,0,62.17,367.04,18.64,400.41 +4081,7,E06000042,1,51.68,134.77,25.84,147.5 +4776,7,E06000042,2,62.75,164.48,25.84,179.34 +5381,7,E06000042,3,68.28,186.77,25.84,203.75 +6070,7,E06000042,4,72.9,326.84,25.84,356.55 +3755,8,E06000042,0,48.71,367.04,18.64,400.41 +6689,9,E06000042,1,57.21,168.46,25.84,184.37 +7015,9,E06000042,2,71.06,205.6,25.84,224.18 +7341,9,E06000042,3,81.2,233.46,25.84,254.69 +7667,9,E06000042,4,89.52,408.54,25.84,445.68 +7993,10,E06000042,0,62.17,656.94,18.64,715.04 +170,1,E07000210,1,57.21,123.09,25.84,176.15 +496,1,E07000210,2,71.06,146.43,25.84,186.77 +822,1,E07000210,3,81.2,161.3,25.84,203.75 +1148,1,E07000210,4,89.52,178.28,25.84,221.77 +2778,2,E07000210,0,62.17,268.13,18.64,344.4 +1474,3,E07000210,1,51.68,115.66,25.84,159.17 +1800,3,E07000210,2,62.75,129.46,25.84,145.37 +2126,3,E07000210,3,68.28,149.62,25.84,185.7 +2452,3,E07000210,4,72.9,184.64,25.84,194.19 +3104,4,E07000210,0,48.71,195.45,18.64,204.96 +4015,5,E07000210,1,57.21,164.48,25.84,179.34 +4630,5,E07000210,2,71.06,237.69,25.84,258.92 +5282,5,E07000210,3,81.2,326.84,25.84,356.55 +5967,5,E07000210,4,89.52,561.35,25.84,611.23 +3430,6,E07000210,0,62.17,630.42,18.64,686.44 +4082,7,E07000210,1,51.68,164.48,25.84,179.34 +4777,7,E07000210,2,62.75,237.69,25.84,258.92 +5382,7,E07000210,3,68.28,326.84,25.84,356.55 +6071,7,E07000210,4,72.9,561.35,25.84,611.23 +3756,8,E07000210,0,48.71,630.42,18.64,686.44 +6690,9,E07000210,1,57.21,205.6,25.84,224.18 +7016,9,E07000210,2,71.06,297.12,25.84,323.65 +7342,9,E07000210,3,81.2,408.54,25.84,445.68 +7668,9,E07000210,4,89.52,701.69,25.84,764.03 +7994,10,E07000210,0,62.17,473.7,18.64,516.92 +171,1,E07000091,1,57.21,123.09,25.84,176.15 +497,1,E07000091,2,71.06,146.43,25.84,186.77 +823,1,E07000091,3,81.2,161.3,25.84,203.75 +1149,1,E07000091,4,89.52,178.28,25.84,221.77 +2779,2,E07000091,0,62.17,268.13,18.64,344.4 +1475,3,E07000091,1,51.68,115.66,25.84,159.17 +1801,3,E07000091,2,62.75,129.46,25.84,145.37 +2127,3,E07000091,3,68.28,149.62,25.84,185.7 +2453,3,E07000091,4,72.9,184.64,25.84,194.19 +3105,4,E07000091,0,48.71,195.45,18.64,204.96 +4016,5,E07000091,1,57.21,134.77,25.84,147.5 +4631,5,E07000091,2,71.06,174.02,25.84,188.88 +5283,5,E07000091,3,81.2,214.35,25.84,234.52 +5968,5,E07000091,4,89.52,337.44,25.84,368.22 +3431,6,E07000091,0,62.17,378.95,18.64,413.53 +4083,7,E07000091,1,51.68,134.77,25.84,147.5 +4778,7,E07000091,2,62.75,174.02,25.84,188.88 +5383,7,E07000091,3,68.28,214.35,25.84,234.52 +6072,7,E07000091,4,72.9,337.44,25.84,368.22 +3757,8,E07000091,0,48.71,378.95,18.64,413.53 +6691,9,E07000091,1,57.21,168.46,25.84,184.37 +7017,9,E07000091,2,71.06,217.54,25.84,236.12 +7343,9,E07000091,3,81.2,267.95,25.84,293.15 +7669,9,E07000091,4,89.52,421.8,25.84,460.26 +7995,10,E07000091,0,62.17,275.59,18.64,300.91 +172,1,E07000175,1,51.68,99.75,25.84,122.03 +498,1,E07000175,2,61.83,114.6,25.84,129.46 +824,1,E07000175,3,68.28,126.28,25.84,137.95 +1150,1,E07000175,4,75.67,158.1,25.84,166.61 +2780,2,E07000175,0,51.82,240.72,18.64,361.1 +1476,3,E07000175,1,46.13,90.21,25.84,107.19 +1802,3,E07000175,2,52.6,96.56,25.84,108.24 +2128,3,E07000175,3,58.13,104,25.84,118.85 +2454,3,E07000175,4,63.67,122.03,25.84,122.03 +3106,4,E07000175,0,49.74,114.39,18.64,123.94 +4336,5,E07000175,1,51.68,92.33,25.84,99.75 +5032,5,E07000175,2,61.83,113.53,25.84,123.09 +5675,5,E07000175,3,68.28,132.64,25.84,145.37 +6250,5,E07000175,4,75.67,202.69,25.84,220.72 +3432,6,E07000175,0,51.82,227.63,18.64,247.88 +4436,7,E07000175,1,46.13,92.33,25.84,99.75 +5172,7,E07000175,2,52.6,113.53,25.84,123.09 +5833,7,E07000175,3,58.13,132.64,25.84,145.37 +6494,7,E07000175,4,63.67,202.69,25.84,220.72 +3758,8,E07000175,0,49.74,227.63,18.64,247.88 +6692,9,E07000175,1,51.68,115.39,25.84,124.69 +7018,9,E07000175,2,61.83,141.94,25.84,153.86 +7344,9,E07000175,3,68.28,165.81,25.84,181.72 +7670,9,E07000175,4,75.67,253.36,25.84,275.9 +7996,10,E07000175,0,51.82,575,18.64,627.12 +174,1,E08000021,1,50.76,88.07,25.84,97.63 +500,1,E08000021,2,57.21,101.88,25.84,119.9 +826,1,E08000021,3,60.9,113.53,25.84,159.17 +1152,1,E08000021,4,70.13,127.34,25.84,139.02 +2782,2,E08000021,0,55.97,237.14,18.64,340.83 +1478,3,E08000021,1,42.44,99.75,25.84,105.06 +1804,3,E08000021,2,49.84,90.21,25.84,111.41 +2130,3,E08000021,3,53.52,105.06,25.84,124.15 +2456,3,E08000021,4,56.29,115.66,25.84,119.9 +3108,4,E08000021,0,47.67,253.84,18.64,288.39 +4537,5,E08000021,1,50.76,113.53,25.84,123.09 +5052,5,E08000021,2,57.21,134.77,25.84,147.5 +5557,5,E08000021,3,60.9,142.18,25.84,154.93 +6356,5,E08000021,4,70.13,215.41,25.84,235.58 +3434,6,E08000021,0,55.97,241.92,18.64,264.56 +4456,7,E08000021,1,42.44,113.53,25.84,123.09 +5103,7,E08000021,2,49.84,134.77,25.84,147.5 +5732,7,E08000021,3,53.52,142.18,25.84,154.93 +6514,7,E08000021,4,56.29,215.41,25.84,235.58 +3760,8,E08000021,0,47.67,241.92,18.64,264.56 +6694,9,E08000021,1,42.44,141.94,25.84,153.86 +7020,9,E08000021,2,57.21,168.46,25.84,184.37 +7346,9,E08000021,3,60.9,177.73,25.84,193.64 +7672,9,E08000021,4,70.13,269.26,25.84,294.49 +7998,10,E08000021,0,55.97,253.23,18.64,277.06 +173,1,E07000195,1,52.6,98.69,25.84,124.15 +499,1,E07000195,2,58.13,116.72,25.84,136.89 +825,1,E07000195,3,69.2,132.64,25.84,160.24 +1151,1,E07000195,4,80.28,161.3,25.84,178.28 +2781,2,E07000195,0,39.38,245.49,18.64,382.53 +1477,3,E07000195,1,46.13,88.07,25.84,97.63 +1803,3,E07000195,2,49.84,94.47,25.84,102.94 +2129,3,E07000195,3,59.98,104,25.84,119.9 +2455,3,E07000195,4,68.28,127.34,25.84,127.34 +3107,4,E07000195,0,46.63,107.26,18.64,107.26 +4290,5,E07000195,1,52.6,97.63,25.84,107.19 +4900,5,E07000195,2,58.13,113.53,25.84,123.09 +5531,5,E07000195,3,69.2,134.77,25.84,147.5 +6183,5,E07000195,4,80.28,198.45,25.84,215.41 +3433,6,E07000195,0,39.38,222.84,18.64,241.92 +4511,7,E07000195,1,46.13,97.63,25.84,107.19 +5196,7,E07000195,2,49.84,113.53,25.84,123.09 +5787,7,E07000195,3,59.98,134.77,25.84,147.5 +6448,7,E07000195,4,68.28,198.45,25.84,215.41 +3759,8,E07000195,0,46.63,222.84,18.64,241.92 +6693,9,E07000195,1,52.6,122.03,25.84,133.98 +7019,9,E07000195,2,58.13,141.94,25.84,153.86 +7345,9,E07000195,3,69.2,168.46,25.84,184.37 +7671,9,E07000195,4,80.28,248.03,25.84,269.26 +7997,10,E07000195,0,39.38,858.05,18.64,936.99 +175,1,E09000025,1,65.51,145.37,25.84,197.39 +501,1,E09000025,2,77.51,157.04,25.84,192.07 +827,1,E09000025,3,83.97,166.61,25.84,226.01 +1153,1,E09000025,4,101.48,186.77,25.84,251.49 +2783,2,E09000025,0,70.47,317,18.64,502.91 +1479,3,E09000025,1,58.13,118.85,25.84,146.43 +1805,3,E09000025,2,63.67,139.02,25.84,175.09 +2131,3,E09000025,3,71.06,159.17,25.84,200.55 +2457,3,E09000025,4,83.05,259.98,25.84,261.04 +3109,4,E09000025,0,60.1,371.82,18.64,402.8 +3974,5,E09000025,1,65.51,208,25.84,227.08 +4589,5,E09000025,2,77.51,253.61,25.84,276.96 +5241,5,E09000025,3,83.97,292.87,25.84,319.41 +5926,5,E09000025,4,101.48,368.22,25.84,401.13 +3435,6,E09000025,0,70.47,413.53,18.64,450.45 +4188,7,E09000025,1,58.13,208,25.84,227.08 +4689,7,E09000025,2,63.67,253.61,25.84,276.96 +5341,7,E09000025,3,71.06,292.87,25.84,319.41 +5893,7,E09000025,4,83.05,368.22,25.84,401.13 +3761,8,E09000025,0,60.1,413.53,18.64,450.45 +6695,9,E09000025,1,65.51,259.98,25.84,283.85 +7021,9,E09000025,2,77.51,317.02,25.84,346.2 +7347,9,E09000025,3,83.97,366.11,25.84,399.27 +7673,9,E09000025,4,101.48,460.26,25.84,501.4 +7999,10,E09000025,0,70.47,286.02,18.64,311.34 +176,1,E07000043,1,48.92,107.19,25.84,140.08 +502,1,E07000043,2,55.37,120.97,25.84,144.31 +828,1,E07000043,3,61.83,141.13,25.84,161.3 +1154,1,E07000043,4,71.06,158.1,25.84,194.19 +2784,2,E07000043,0,54.93,231.2,18.64,358.7 +1480,3,E07000043,1,47.06,89.13,25.84,210.12 +1806,3,E07000043,2,54.44,100.81,25.84,111.41 +2132,3,E07000043,3,61.83,109.29,25.84,126.28 +2458,3,E07000043,4,73.82,130.52,25.84,130.52 +3110,4,E07000043,0,54.93,115.59,18.64,141.81 +4212,5,E07000043,1,48.92,102.94,25.84,112.47 +4848,5,E07000043,2,55.37,134.77,25.84,147.5 +5479,5,E07000043,3,61.83,159.17,25.84,174.02 +6017,5,E07000043,4,71.06,219.66,25.84,239.83 +3436,6,E07000043,0,54.93,246.68,18.64,269.32 +3928,7,E07000043,1,47.06,102.94,25.84,112.47 +5125,7,E07000043,2,54.44,134.77,25.84,147.5 +5705,7,E07000043,3,61.83,159.17,25.84,174.02 +6417,7,E07000043,4,73.82,219.66,25.84,239.83 +3762,8,E07000043,0,54.93,246.68,18.64,269.32 +6696,9,E07000043,1,48.92,128.67,25.84,140.6 +7022,9,E07000043,2,55.37,168.46,25.84,184.37 +7348,9,E07000043,3,61.83,198.96,25.84,217.54 +7674,9,E07000043,4,71.06,274.57,25.84,299.78 +8000,10,E07000043,0,54.93,269.62,18.64,294.95 +178,1,E07000038,1,51.68,99.75,25.84,122.03 +504,1,E07000038,2,61.83,114.6,25.84,129.46 +830,1,E07000038,3,68.28,126.28,25.84,137.95 +1156,1,E07000038,4,75.67,158.1,25.84,166.61 +2786,2,E07000038,0,51.82,240.72,18.64,361.1 +1482,3,E07000038,1,46.13,90.21,25.84,107.19 +1808,3,E07000038,2,52.6,96.56,25.84,108.24 +2134,3,E07000038,3,58.13,104,25.84,118.85 +2460,3,E07000038,4,63.67,122.03,25.84,122.03 +3112,4,E07000038,0,49.74,114.39,18.64,123.94 +4337,5,E07000038,1,51.68,91.27,25.84,98.69 +5033,5,E07000038,2,61.83,114.6,25.84,124.15 +5676,5,E07000038,3,68.28,147.5,25.84,160.24 +6251,5,E07000038,4,75.67,202.69,25.84,220.72 +3438,6,E07000038,0,51.82,227.63,18.64,247.88 +4437,7,E07000038,1,46.13,91.27,25.84,98.69 +5173,7,E07000038,2,52.6,114.6,25.84,124.15 +5834,7,E07000038,3,58.13,147.5,25.84,160.24 +6495,7,E07000038,4,63.67,202.69,25.84,220.72 +3764,8,E07000038,0,49.74,227.63,18.64,247.88 +6698,9,E07000038,1,51.68,114.09,25.84,123.35 +7024,9,E07000038,2,61.83,143.25,25.84,155.2 +7350,9,E07000038,3,68.28,184.37,25.84,200.32 +7676,9,E07000038,4,75.67,253.36,25.84,275.9 +8002,10,E07000038,0,51.82,788.01,18.64,858.05 +179,1,E06000012,1,50.76,91.27,25.84,113.53 +505,1,E06000012,2,58.13,108.24,25.84,140.08 +831,1,E06000012,3,62.75,119.9,25.84,161.3 +1157,1,E06000012,4,72.9,144.31,25.84,178.28 +2787,2,E06000012,0,52.86,234.75,18.64,322.95 +1483,3,E06000012,1,46.13,81.71,25.84,92.33 +1809,3,E06000012,2,52.6,112.47,25.84,144.31 +2135,3,E06000012,3,56.29,104,25.84,113.53 +2461,3,E06000012,4,63.67,120.97,25.84,175.09 +3113,4,E06000012,0,51.82,160.88,18.64,190.67 +4401,5,E06000012,1,50.76,84.89,25.84,92.33 +4881,5,E06000012,2,58.13,107.19,25.84,116.72 +5512,5,E06000012,3,62.75,113.53,25.84,123.09 +6117,5,E06000012,4,72.9,159.17,25.84,174.02 +3439,6,E06000012,0,52.86,178.77,18.64,195.45 +4555,7,E06000012,1,46.13,84.89,25.84,92.33 +4823,7,E06000012,2,52.6,107.19,25.84,116.72 +5859,7,E06000012,3,56.29,113.53,25.84,123.09 +6215,7,E06000012,4,63.67,159.17,25.84,174.02 +3765,8,E06000012,0,51.82,178.77,18.64,195.45 +6699,9,E06000012,1,50.76,106.13,25.84,115.39 +7025,9,E06000012,2,52.6,133.98,25.84,145.91 +7351,9,E06000012,3,62.75,141.94,25.84,153.86 +7677,9,E06000012,4,72.9,198.96,25.84,217.54 +8003,10,E06000012,0,52.86,239.85,18.64,260.68 +180,1,E07000099,1,54.44,118.85,25.84,148.56 +506,1,E07000099,2,64.59,142.18,25.84,167.67 +832,1,E07000099,3,71.06,155.98,25.84,180.4 +1158,1,E07000099,4,81.2,170.85,25.84,178.28 +2788,2,E07000099,0,36.26,226.42,18.64,423.05 +1484,3,E07000099,1,49.84,99.75,25.84,131.58 +1810,3,E07000099,2,58.13,117.78,25.84,132.64 +2136,3,E07000099,3,63.67,130.52,25.84,143.25 +2462,3,E07000099,4,71.06,148.56,25.84,159.17 +3114,4,E07000099,0,55.97,135.86,18.64,318.19 +4145,5,E07000099,1,54.44,130.52,25.84,143.25 +4726,5,E07000099,2,64.59,169.79,25.84,184.64 +5445,5,E07000099,3,71.06,217.53,25.84,237.69 +6155,5,E07000099,4,81.2,421.28,25.84,459.48 +3440,6,E07000099,0,36.26,473.1,18.64,516 +4262,7,E07000099,1,49.84,130.52,25.84,143.25 +4988,7,E07000099,2,58.13,169.79,25.84,184.64 +5631,7,E07000099,3,63.67,217.53,25.84,237.69 +6293,7,E07000099,4,71.06,421.28,25.84,459.48 +3766,8,E07000099,0,55.97,473.1,18.64,516 +6700,9,E07000099,1,54.44,163.15,25.84,179.06 +7026,9,E07000099,2,64.59,212.23,25.84,230.81 +7352,9,E07000099,3,71.06,271.92,25.84,297.12 +7678,9,E07000099,4,81.2,526.6,25.84,574.35 +8004,10,E07000099,0,36.26,341.13,18.64,372.42 +181,1,E07000139,1,51.68,99.75,25.84,122.03 +507,1,E07000139,2,61.83,114.6,25.84,129.46 +833,1,E07000139,3,68.28,126.28,25.84,137.95 +1159,1,E07000139,4,75.67,158.1,25.84,166.61 +2789,2,E07000139,0,51.82,240.72,18.64,361.1 +1485,3,E07000139,1,46.13,90.21,25.84,107.19 +1811,3,E07000139,2,52.6,96.56,25.84,108.24 +2137,3,E07000139,3,58.13,104,25.84,118.85 +2463,3,E07000139,4,63.67,122.03,25.84,122.03 +3115,4,E07000139,0,49.74,114.39,18.64,123.94 +4338,5,E07000139,1,51.68,102.94,25.84,112.47 +5034,5,E07000139,2,61.83,113.53,25.84,123.09 +5677,5,E07000139,3,68.28,136.89,25.84,148.56 +6252,5,E07000139,4,75.67,192.07,25.84,210.12 +3441,6,E07000139,0,51.82,215.7,18.64,235.95 +4438,7,E07000139,1,46.13,102.94,25.84,112.47 +5174,7,E07000139,2,52.6,113.53,25.84,123.09 +5835,7,E07000139,3,58.13,136.89,25.84,148.56 +6496,7,E07000139,4,63.67,192.07,25.84,210.12 +3767,8,E07000139,0,49.74,215.7,18.64,235.95 +6701,9,E07000139,1,51.68,128.67,25.84,140.6 +7027,9,E07000139,2,61.83,141.94,25.84,153.86 +7353,9,E07000139,3,68.28,171.11,25.84,185.69 +7679,9,E07000139,4,75.67,240.08,25.84,262.64 +8005,10,E07000139,0,51.82,4013.13,18.64,4378.1 +182,1,E06000013,1,50.76,91.27,25.84,113.53 +508,1,E06000013,2,58.13,108.24,25.84,140.08 +834,1,E06000013,3,62.75,119.9,25.84,161.3 +1160,1,E06000013,4,72.9,144.31,25.84,178.28 +2790,2,E06000013,0,52.86,234.75,18.64,322.95 +1486,3,E06000013,1,46.13,81.71,25.84,92.33 +1812,3,E06000013,2,52.6,112.47,25.84,144.31 +2138,3,E06000013,3,56.29,104,25.84,113.53 +2464,3,E06000013,4,63.67,120.97,25.84,175.09 +3116,4,E06000013,0,51.82,160.88,18.64,190.67 +4402,5,E06000013,1,50.76,81.71,25.84,88.07 +4882,5,E06000013,2,58.13,102.94,25.84,112.47 +5513,5,E06000013,3,62.75,114.6,25.84,124.15 +6118,5,E06000013,4,72.9,180.4,25.84,197.39 +3442,6,E06000013,0,52.86,202.58,18.64,221.66 +4556,7,E06000013,1,46.13,81.71,25.84,88.07 +4824,7,E06000013,2,52.6,102.94,25.84,112.47 +5860,7,E06000013,3,56.29,114.6,25.84,124.15 +6216,7,E06000013,4,63.67,180.4,25.84,197.39 +3768,8,E06000013,0,51.82,202.58,18.64,221.66 +6702,9,E06000013,1,50.76,102.16,25.84,110.1 +7028,9,E06000013,2,52.6,128.67,25.84,140.6 +7354,9,E06000013,3,62.75,143.25,25.84,155.2 +7680,9,E06000013,4,72.9,225.52,25.84,246.73 +8006,10,E06000013,0,52.86,914.64,18.64,998.07 +183,1,E07000147,1,54.44,118.85,25.84,148.56 +509,1,E07000147,2,64.59,142.18,25.84,167.67 +835,1,E07000147,3,71.06,155.98,25.84,180.4 +1161,1,E07000147,4,81.2,170.85,25.84,178.28 +2791,2,E07000147,0,36.26,226.42,18.64,423.05 +1487,3,E07000147,1,49.84,99.75,25.84,131.58 +1813,3,E07000147,2,58.13,117.78,25.84,132.64 +2139,3,E07000147,3,63.67,130.52,25.84,143.25 +2465,3,E07000147,4,71.06,148.56,25.84,159.17 +3117,4,E07000147,0,55.97,135.86,18.64,318.19 +4146,5,E07000147,1,54.44,99.75,25.84,109.29 +4727,5,E07000147,2,64.59,125.22,25.84,136.89 +5446,5,E07000147,3,71.06,164.48,25.84,179.34 +6156,5,E07000147,4,81.2,270.61,25.84,295.01 +3443,6,E07000147,0,36.26,303.89,18.64,331.29 +4263,7,E07000147,1,49.84,99.75,25.84,109.29 +4989,7,E07000147,2,58.13,125.22,25.84,136.89 +5632,7,E07000147,3,63.67,164.48,25.84,179.34 +6294,7,E07000147,4,71.06,270.61,25.84,295.01 +3769,8,E07000147,0,55.97,303.89,18.64,331.29 +6703,9,E07000147,1,54.44,124.69,25.84,136.63 +7029,9,E07000147,2,64.59,156.51,25.84,171.11 +7355,9,E07000147,3,71.06,205.6,25.84,224.18 +7681,9,E07000147,4,81.2,338.25,25.84,368.76 +8007,10,E07000147,0,36.26,269.62,18.64,294.95 +89,1,E06000061,1,51.68,99.75,25.84,122.03 +415,1,E06000061,2,61.83,114.6,25.84,129.46 +741,1,E06000061,3,68.28,126.28,25.84,137.95 +1067,1,E06000061,4,75.67,158.1,25.84,166.61 +2697,2,E06000061,0,51.82,240.72,18.64,361.1 +1393,3,E06000061,1,46.13,90.21,25.84,107.19 +1719,3,E06000061,2,52.6,96.56,25.84,108.24 +2045,3,E06000061,3,58.13,104,25.84,118.85 +2371,3,E06000061,4,63.67,122.03,25.84,122.03 +3023,4,E06000061,0,49.74,114.39,18.64,123.94 +4320,5,E06000061,1,51.68,97.63,25.84,107.19 +5021,5,E06000061,2,61.83,125.22,25.84,136.89 +5664,5,E06000061,3,68.28,147.5,25.84,160.24 +6239,5,E06000061,4,75.67,248.31,25.84,270.61 +3349,6,E06000061,0,51.82,278.86,18.64,303.89 +4425,7,E06000061,1,46.13,97.63,25.84,107.19 +5161,7,E06000061,2,52.6,125.22,25.84,136.89 +5822,7,E06000061,3,58.13,147.5,25.84,160.24 +6483,7,E06000061,4,63.67,248.31,25.84,270.61 +3675,8,E06000061,0,49.74,278.86,18.64,303.89 +6609,9,E06000061,1,51.68,122.03,25.84,133.98 +6935,9,E06000061,2,61.83,156.51,25.84,171.11 +7261,9,E06000061,3,68.28,184.37,25.84,200.32 +7587,9,E06000061,4,75.67,310.37,25.84,338.25 +7913,10,E06000061,0,51.82,333.68,18.64,363.48 +184,1,E06000024,1,48.92,107.19,25.84,140.08 +510,1,E06000024,2,55.37,120.97,25.84,144.31 +836,1,E06000024,3,61.83,141.13,25.84,161.3 +1162,1,E06000024,4,71.06,158.1,25.84,194.19 +2792,2,E06000024,0,54.93,231.2,18.64,358.7 +1488,3,E06000024,1,47.06,89.13,25.84,210.12 +1814,3,E06000024,2,54.44,100.81,25.84,111.41 +2140,3,E06000024,3,61.83,109.29,25.84,126.28 +2466,3,E06000024,4,73.82,130.52,25.84,130.52 +3118,4,E06000024,0,54.93,115.59,18.64,141.81 +4214,5,E06000024,1,48.92,113.53,25.84,123.09 +4850,5,E06000024,2,55.37,136.89,25.84,148.56 +5481,5,E06000024,3,61.83,164.48,25.84,179.34 +6019,5,E06000024,4,71.06,248.31,25.84,270.61 +3444,6,E06000024,0,54.93,278.86,18.64,303.89 +3930,7,E06000024,1,47.06,113.53,25.84,123.09 +5127,7,E06000024,2,54.44,136.89,25.84,148.56 +5707,7,E06000024,3,61.83,164.48,25.84,179.34 +6419,7,E06000024,4,73.82,248.31,25.84,270.61 +3770,8,E06000024,0,54.93,278.86,18.64,303.89 +6704,9,E06000024,1,48.92,141.94,25.84,153.86 +7030,9,E06000024,2,55.37,171.11,25.84,185.69 +7356,9,E06000024,3,61.83,205.6,25.84,224.18 +7682,9,E06000024,4,71.06,310.37,25.84,338.25 +8008,10,E06000024,0,54.93,342.63,18.64,373.91 +185,1,E08000022,1,50.76,88.07,25.84,97.63 +511,1,E08000022,2,57.21,101.88,25.84,119.9 +837,1,E08000022,3,60.9,113.53,25.84,159.17 +1163,1,E08000022,4,70.13,127.34,25.84,139.02 +2793,2,E08000022,0,55.97,237.14,18.64,340.83 +1489,3,E08000022,1,42.44,99.75,25.84,105.06 +1815,3,E08000022,2,49.84,90.21,25.84,111.41 +2141,3,E08000022,3,53.52,105.06,25.84,124.15 +2467,3,E08000022,4,56.29,115.66,25.84,119.9 +3119,4,E08000022,0,47.67,253.84,18.64,288.39 +4538,5,E08000022,1,50.76,98.69,25.84,108.24 +5053,5,E08000022,2,57.21,125.22,25.84,136.89 +5558,5,E08000022,3,60.9,147.5,25.84,160.24 +6357,5,E08000022,4,70.13,227.08,25.84,246.18 +3445,6,E08000022,0,55.97,255.02,18.64,276.48 +4457,7,E08000022,1,42.44,98.69,25.84,108.24 +5104,7,E08000022,2,49.84,125.22,25.84,136.89 +5733,7,E08000022,3,53.52,147.5,25.84,160.24 +6515,7,E08000022,4,56.29,227.08,25.84,246.18 +3771,8,E08000022,0,47.67,255.02,18.64,276.48 +6705,9,E08000022,1,42.44,123.35,25.84,135.3 +7031,9,E08000022,2,57.21,156.51,25.84,171.11 +7357,9,E08000022,3,60.9,184.37,25.84,200.32 +7683,9,E08000022,4,70.13,283.85,25.84,307.73 +8009,10,E08000022,0,55.97,239.85,18.64,260.68 +186,1,E07000218,1,52.6,98.69,25.84,124.15 +512,1,E07000218,2,58.13,116.72,25.84,136.89 +838,1,E07000218,3,69.2,132.64,25.84,160.24 +1164,1,E07000218,4,80.28,161.3,25.84,178.28 +2794,2,E07000218,0,39.38,245.49,18.64,382.53 +1490,3,E07000218,1,46.13,88.07,25.84,97.63 +1816,3,E07000218,2,49.84,94.47,25.84,102.94 +2142,3,E07000218,3,59.98,104,25.84,119.9 +2468,3,E07000218,4,68.28,127.34,25.84,127.34 +3120,4,E07000218,0,46.63,107.26,18.64,107.26 +4291,5,E07000218,1,52.6,102.94,25.84,112.47 +4901,5,E07000218,2,58.13,125.22,25.84,136.89 +5532,5,E07000218,3,69.2,147.5,25.84,160.24 +6184,5,E07000218,4,80.28,192.07,25.84,210.12 +3446,6,E07000218,0,39.38,215.7,18.64,235.95 +4512,7,E07000218,1,46.13,102.94,25.84,112.47 +5197,7,E07000218,2,49.84,125.22,25.84,136.89 +5788,7,E07000218,3,59.98,147.5,25.84,160.24 +6449,7,E07000218,4,68.28,192.07,25.84,210.12 +3772,8,E07000218,0,46.63,215.7,18.64,235.95 +6706,9,E07000218,1,52.6,128.67,25.84,140.6 +7032,9,E07000218,2,58.13,156.51,25.84,171.11 +7358,9,E07000218,3,69.2,184.37,25.84,200.32 +7684,9,E07000218,4,80.28,240.08,25.84,262.64 +8010,10,E07000218,0,39.38,394.77,18.64,430.5 +187,1,E07000134,1,51.68,99.75,25.84,122.03 +513,1,E07000134,2,61.83,114.6,25.84,129.46 +839,1,E07000134,3,68.28,126.28,25.84,137.95 +1165,1,E07000134,4,75.67,158.1,25.84,166.61 +2795,2,E07000134,0,51.82,240.72,18.64,361.1 +1491,3,E07000134,1,46.13,90.21,25.84,107.19 +1817,3,E07000134,2,52.6,96.56,25.84,108.24 +2143,3,E07000134,3,58.13,104,25.84,118.85 +2469,3,E07000134,4,63.67,122.03,25.84,122.03 +3121,4,E07000134,0,49.74,114.39,18.64,123.94 +4339,5,E07000134,1,51.68,97.63,25.84,107.19 +5035,5,E07000134,2,61.83,119.9,25.84,130.52 +5678,5,E07000134,3,68.28,136.89,25.84,148.56 +6253,5,E07000134,4,75.67,202.69,25.84,220.72 +3447,6,E07000134,0,51.82,227.63,18.64,247.88 +4439,7,E07000134,1,46.13,97.63,25.84,107.19 +5175,7,E07000134,2,52.6,119.9,25.84,130.52 +5836,7,E07000134,3,58.13,136.89,25.84,148.56 +6497,7,E07000134,4,63.67,202.69,25.84,220.72 +3773,8,E07000134,0,49.74,227.63,18.64,247.88 +6707,9,E07000134,1,51.68,122.03,25.84,133.98 +7033,9,E07000134,2,61.83,149.9,25.84,163.15 +7359,9,E07000134,3,68.28,171.11,25.84,185.69 +7685,9,E07000134,4,75.67,253.36,25.84,275.9 +8011,10,E07000134,0,51.82,1021.9,18.64,1115.75 +8201,1,E06000065,1,50.76,91.27,25.84,113.53 +8202,1,E06000065,2,58.13,108.24,25.84,140.08 +8203,1,E06000065,3,62.75,119.9,25.84,161.3 +8204,1,E06000065,4,72.9,144.31,25.84,178.28 +8209,2,E06000065,0,52.86,234.75,18.64,322.95 +8205,3,E06000065,1,46.13,81.71,25.84,92.33 +8206,3,E06000065,2,52.6,112.47,25.84,144.31 +8207,3,E06000065,3,56.29,104,25.84,113.53 +8208,3,E06000065,4,63.67,120.97,25.84,175.09 +8210,4,E06000065,0,51.82,160.88,18.64,190.67 +8213,5,E06000065,1,50.76,125.22,25.84,136.89 +8216,5,E06000065,2,58.13,157.04,25.84,172.97 +8217,5,E06000065,3,62.75,192.07,25.84,210.12 +8219,5,E06000065,4,72.9,371.41,25.84,405.36 +8211,6,E06000065,0,52.86,417.11,18.64,455.24 +8214,7,E06000065,1,46.13,125.22,25.84,136.89 +8215,7,E06000065,2,52.6,157.04,25.84,172.97 +8218,7,E06000065,3,56.29,192.07,25.84,210.12 +8220,7,E06000065,4,63.67,371.41,25.84,405.36 +8212,8,E06000065,0,51.82,417.11,18.64,455.24 +8221,9,E06000065,1,50.76,156.51,25.84,171.11 +8222,9,E06000065,2,52.6,196.32,25.84,216.2 +8223,9,E06000065,3,62.75,240.08,25.84,262.64 +8224,9,E06000065,4,72.9,464.26,25.84,506.71 +8225,10,E06000065,0,52.86,598.84,18.64,653.96 +189,1,E06000057,1,50.76,88.07,25.84,97.63 +515,1,E06000057,2,57.21,101.88,25.84,119.9 +841,1,E06000057,3,60.9,113.53,25.84,159.17 +1167,1,E06000057,4,70.13,127.34,25.84,139.02 +2797,2,E06000057,0,55.97,237.14,18.64,340.83 +1493,3,E06000057,1,42.44,99.75,25.84,105.06 +1819,3,E06000057,2,49.84,90.21,25.84,111.41 +2145,3,E06000057,3,53.52,105.06,25.84,124.15 +2471,3,E06000057,4,56.29,115.66,25.84,119.9 +3123,4,E06000057,0,47.67,253.84,18.64,288.39 +4539,5,E06000057,1,50.76,91.27,25.84,98.69 +5054,5,E06000057,2,57.21,109.29,25.84,118.85 +5559,5,E06000057,3,60.9,125.22,25.84,136.89 +6358,5,E06000057,4,70.13,202.69,25.84,220.72 +3449,6,E06000057,0,55.97,227.63,18.64,247.88 +4458,7,E06000057,1,42.44,91.27,25.84,98.69 +5105,7,E06000057,2,49.84,109.29,25.84,118.85 +5734,7,E06000057,3,53.52,125.22,25.84,136.89 +6516,7,E06000057,4,56.29,202.69,25.84,220.72 +3775,8,E06000057,0,47.67,227.63,18.64,247.88 +6709,9,E06000057,1,42.44,114.09,25.84,123.35 +7035,9,E06000057,2,57.21,136.63,25.84,148.56 +7361,9,E06000057,3,60.9,156.51,25.84,171.11 +7687,9,E06000057,4,70.13,253.36,25.84,275.9 +8013,10,E06000057,0,55.97,300.91,18.64,329.21 +190,1,E07000148,1,54.44,118.85,25.84,148.56 +516,1,E07000148,2,64.59,142.18,25.84,167.67 +842,1,E07000148,3,71.06,155.98,25.84,180.4 +1168,1,E07000148,4,81.2,170.85,25.84,178.28 +2798,2,E07000148,0,36.26,226.42,18.64,423.05 +1494,3,E07000148,1,49.84,99.75,25.84,131.58 +1820,3,E07000148,2,58.13,117.78,25.84,132.64 +2146,3,E07000148,3,63.67,130.52,25.84,143.25 +2472,3,E07000148,4,71.06,148.56,25.84,159.17 +3124,4,E07000148,0,55.97,135.86,18.64,318.19 +4147,5,E07000148,1,54.44,113.53,25.84,123.09 +4728,5,E07000148,2,64.59,134.77,25.84,147.5 +5447,5,E07000148,3,71.06,170.85,25.84,185.7 +6157,5,E07000148,4,81.2,244.06,25.84,266.35 +3450,6,E07000148,0,36.26,274.11,18.64,299.12 +4264,7,E07000148,1,49.84,113.53,25.84,123.09 +4990,7,E07000148,2,58.13,134.77,25.84,147.5 +5633,7,E07000148,3,63.67,170.85,25.84,185.7 +6295,7,E07000148,4,71.06,244.06,25.84,266.35 +3776,8,E07000148,0,55.97,274.11,18.64,299.12 +6710,9,E07000148,1,54.44,141.94,25.84,153.86 +7036,9,E07000148,2,64.59,168.46,25.84,184.37 +7362,9,E07000148,3,71.06,213.57,25.84,232.15 +7688,9,E07000148,4,81.2,305.08,25.84,332.95 +8014,10,E07000148,0,36.26,598.84,18.64,653.96 +191,1,E06000018,1,51.68,99.75,25.84,122.03 +517,1,E06000018,2,61.83,114.6,25.84,129.46 +843,1,E06000018,3,68.28,126.28,25.84,137.95 +1169,1,E06000018,4,75.67,158.1,25.84,166.61 +2799,2,E06000018,0,51.82,240.72,18.64,361.1 +1495,3,E06000018,1,46.13,90.21,25.84,107.19 +1821,3,E06000018,2,52.6,96.56,25.84,108.24 +2147,3,E06000018,3,58.13,104,25.84,118.85 +2473,3,E06000018,4,63.67,122.03,25.84,122.03 +3125,4,E06000018,0,49.74,114.39,18.64,123.94 +4341,5,E06000018,1,51.68,119.9,25.84,130.52 +5037,5,E06000018,2,61.83,147.5,25.84,160.24 +5680,5,E06000018,3,68.28,147.5,25.84,160.24 +6255,5,E06000018,4,75.67,316.23,25.84,344.88 +3451,6,E06000018,0,51.82,355.12,18.64,387.3 +4441,7,E06000018,1,46.13,119.9,25.84,130.52 +5177,7,E06000018,2,52.6,147.5,25.84,160.24 +5838,7,E06000018,3,58.13,147.5,25.84,160.24 +6499,7,E06000018,4,63.67,316.23,25.84,344.88 +3777,8,E06000018,0,49.74,355.12,18.64,387.3 +6711,9,E06000018,1,51.68,149.9,25.84,163.15 +7037,9,E06000018,2,61.83,184.37,25.84,200.32 +7363,9,E06000018,3,68.28,184.37,25.84,200.32 +7689,9,E06000018,4,75.67,395.3,25.84,431.1 +8015,10,E06000018,0,51.82,269.62,18.64,294.95 +192,1,E07000219,1,52.6,98.69,25.84,124.15 +518,1,E07000219,2,58.13,116.72,25.84,136.89 +844,1,E07000219,3,69.2,132.64,25.84,160.24 +1170,1,E07000219,4,80.28,161.3,25.84,178.28 +2800,2,E07000219,0,39.38,245.49,18.64,382.53 +1496,3,E07000219,1,46.13,88.07,25.84,97.63 +1822,3,E07000219,2,49.84,94.47,25.84,102.94 +2148,3,E07000219,3,59.98,104,25.84,119.9 +2474,3,E07000219,4,68.28,127.34,25.84,127.34 +3126,4,E07000219,0,46.63,107.26,18.64,107.26 +4292,5,E07000219,1,52.6,97.63,25.84,107.19 +4902,5,E07000219,2,58.13,118.85,25.84,129.46 +5533,5,E07000219,3,69.2,142.18,25.84,154.93 +6185,5,E07000219,4,80.28,198.45,25.84,215.41 +3452,6,E07000219,0,39.38,222.84,18.64,241.92 +4513,7,E07000219,1,46.13,97.63,25.84,107.19 +5198,7,E07000219,2,49.84,118.85,25.84,129.46 +5789,7,E07000219,3,59.98,142.18,25.84,154.93 +6450,7,E07000219,4,68.28,198.45,25.84,215.41 +3778,8,E07000219,0,46.63,222.84,18.64,241.92 +6712,9,E07000219,1,52.6,122.03,25.84,133.98 +7038,9,E07000219,2,58.13,148.56,25.84,161.83 +7364,9,E07000219,3,69.2,177.73,25.84,193.64 +7690,9,E07000219,4,80.28,248.03,25.84,269.26 +8016,10,E07000219,0,39.38,738.88,18.64,804.41 +193,1,E07000135,1,51.68,99.75,25.84,122.03 +519,1,E07000135,2,61.83,114.6,25.84,129.46 +845,1,E07000135,3,68.28,126.28,25.84,137.95 +1171,1,E07000135,4,75.67,158.1,25.84,166.61 +2801,2,E07000135,0,51.82,240.72,18.64,361.1 +1497,3,E07000135,1,46.13,90.21,25.84,107.19 +1823,3,E07000135,2,52.6,96.56,25.84,108.24 +2149,3,E07000135,3,58.13,104,25.84,118.85 +2475,3,E07000135,4,63.67,122.03,25.84,122.03 +3127,4,E07000135,0,49.74,114.39,18.64,123.94 +4342,5,E07000135,1,51.68,102.94,25.84,112.47 +5038,5,E07000135,2,61.83,125.22,25.84,136.89 +5681,5,E07000135,3,68.28,147.5,25.84,160.24 +6256,5,E07000135,4,75.67,227.08,25.84,246.18 +3453,6,E07000135,0,51.82,255.02,18.64,276.48 +4442,7,E07000135,1,46.13,102.94,25.84,112.47 +5178,7,E07000135,2,52.6,125.22,25.84,136.89 +5839,7,E07000135,3,58.13,147.5,25.84,160.24 +6500,7,E07000135,4,63.67,227.08,25.84,246.18 +3779,8,E07000135,0,49.74,255.02,18.64,276.48 +6713,9,E07000135,1,51.68,128.67,25.84,140.6 +7039,9,E07000135,2,61.83,156.51,25.84,171.11 +7365,9,E07000135,3,68.28,184.37,25.84,200.32 +7691,9,E07000135,4,75.67,283.85,25.84,307.73 +8017,10,E07000135,0,51.82,300.91,18.64,329.21 +194,1,E08000004,1,51.68,93.39,25.84,116.72 +520,1,E08000004,2,59.06,107.19,25.84,134.77 +846,1,E08000004,3,65.51,119.9,25.84,145.37 +1172,1,E08000004,4,71.98,133.71,25.84,159.17 +2802,2,E08000004,0,55.97,239.54,18.64,342.01 +1498,3,E08000004,1,43.36,85.94,25.84,100.81 +1824,3,E08000004,2,53.52,94.47,25.84,113.53 +2150,3,E08000004,3,58.13,105.06,25.84,124.15 +2476,3,E08000004,4,55.37,118.85,25.84,133.71 +3128,4,E08000004,0,33.16,469.54,18.64,599.44 +4371,5,E08000004,1,51.68,102.94,25.84,112.47 +4941,5,E08000004,2,59.06,113.53,25.84,123.09 +5584,5,E08000004,3,65.51,136.89,25.84,148.56 +6332,5,E08000004,4,71.98,192.07,25.84,210.12 +3454,6,E08000004,0,55.97,215.7,18.64,235.95 +4483,7,E08000004,1,43.36,102.94,25.84,112.47 +5079,7,E08000004,2,53.52,113.53,25.84,123.09 +5759,7,E08000004,3,58.13,136.89,25.84,148.56 +6383,7,E08000004,4,55.37,192.07,25.84,210.12 +3780,8,E08000004,0,33.16,215.7,18.64,235.95 +6714,9,E08000004,1,51.68,128.67,25.84,140.6 +7040,9,E08000004,2,59.06,141.94,25.84,153.86 +7366,9,E08000004,3,65.51,171.11,25.84,185.69 +7692,9,E08000004,4,71.98,240.08,25.84,262.64 +8018,10,E08000004,0,55.97,569.06,18.64,619.69 +195,1,E07000178,1,57.21,123.09,25.84,176.15 +521,1,E07000178,2,71.06,146.43,25.84,186.77 +847,1,E07000178,3,81.2,161.3,25.84,203.75 +1173,1,E07000178,4,89.52,178.28,25.84,221.77 +2803,2,E07000178,0,62.17,268.13,18.64,344.4 +1499,3,E07000178,1,51.68,115.66,25.84,159.17 +1825,3,E07000178,2,62.75,129.46,25.84,145.37 +2151,3,E07000178,3,68.28,149.62,25.84,185.7 +2477,3,E07000178,4,72.9,184.64,25.84,194.19 +3129,4,E07000178,0,48.71,195.45,18.64,204.96 +4017,5,E07000178,1,57.21,189.94,25.84,208 +4632,5,E07000178,2,71.06,237.69,25.84,258.92 +5284,5,E07000178,3,81.2,292.87,25.84,319.41 +5969,5,E07000178,4,89.52,437.18,25.84,476.46 +3455,6,E07000178,0,62.17,490.98,18.64,535.08 +4084,7,E07000178,1,51.68,189.94,25.84,208 +4779,7,E07000178,2,62.75,237.69,25.84,258.92 +5384,7,E07000178,3,68.28,292.87,25.84,319.41 +6073,7,E07000178,4,72.9,437.18,25.84,476.46 +3781,8,E07000178,0,48.71,490.98,18.64,535.08 +6715,9,E07000178,1,57.21,237.44,25.84,259.98 +7041,9,E07000178,2,71.06,297.12,25.84,323.65 +7367,9,E07000178,3,81.2,366.11,25.84,399.27 +7693,9,E07000178,4,89.52,546.48,25.84,595.55 +8019,10,E07000178,0,62.17,394.77,18.64,430.5 +196,1,E07000122,1,51.68,93.39,25.84,116.72 +522,1,E07000122,2,59.06,107.19,25.84,134.77 +848,1,E07000122,3,65.51,119.9,25.84,145.37 +1174,1,E07000122,4,71.98,133.71,25.84,159.17 +2804,2,E07000122,0,55.97,239.54,18.64,342.01 +1500,3,E07000122,1,43.36,85.94,25.84,100.81 +1826,3,E07000122,2,53.52,94.47,25.84,113.53 +2152,3,E07000122,3,58.13,105.06,25.84,124.15 +2478,3,E07000122,4,55.37,118.85,25.84,133.71 +3130,4,E07000122,0,33.16,469.54,18.64,599.44 +4372,5,E07000122,1,51.68,90.21,25.84,97.63 +4942,5,E07000122,2,59.06,97.63,25.84,108.24 +5585,5,E07000122,3,65.51,125.22,25.84,136.89 +6333,5,E07000122,4,71.98,180.4,25.84,197.39 +3456,6,E07000122,0,55.97,202.58,18.64,221.66 +4484,7,E07000122,1,43.36,90.21,25.84,97.63 +5080,7,E07000122,2,53.52,97.63,25.84,108.24 +5760,7,E07000122,3,58.13,125.22,25.84,136.89 +6384,7,E07000122,4,55.37,180.4,25.84,197.39 +3782,8,E07000122,0,33.16,202.58,18.64,221.66 +6716,9,E07000122,1,51.68,112.76,25.84,122.03 +7042,9,E07000122,2,59.06,122.03,25.84,135.3 +7368,9,E07000122,3,65.51,156.51,25.84,171.11 +7694,9,E07000122,4,71.98,225.52,25.84,246.73 +8020,10,E07000122,0,55.97,348.6,18.64,379.86 +197,1,E06000031,1,54.44,118.85,25.84,148.56 +523,1,E06000031,2,64.59,142.18,25.84,167.67 +849,1,E06000031,3,71.06,155.98,25.84,180.4 +1175,1,E06000031,4,81.2,170.85,25.84,178.28 +2805,2,E06000031,0,36.26,226.42,18.64,423.05 +1501,3,E06000031,1,49.84,99.75,25.84,131.58 +1827,3,E06000031,2,58.13,117.78,25.84,132.64 +2153,3,E06000031,3,63.67,130.52,25.84,143.25 +2479,3,E06000031,4,71.06,148.56,25.84,159.17 +3131,4,E06000031,0,55.97,135.86,18.64,318.19 +4148,5,E06000031,1,54.44,102.94,25.84,112.47 +4729,5,E06000031,2,64.59,125.22,25.84,136.89 +5448,5,E06000031,3,71.06,147.5,25.84,160.24 +6158,5,E06000031,4,81.2,203.75,25.84,221.77 +3457,6,E06000031,0,36.26,228.81,18.64,249.07 +4265,7,E06000031,1,49.84,102.94,25.84,112.47 +4991,7,E06000031,2,58.13,125.22,25.84,136.89 +5634,7,E06000031,3,63.67,147.5,25.84,160.24 +6296,7,E06000031,4,71.06,203.75,25.84,221.77 +3783,8,E06000031,0,55.97,228.81,18.64,249.07 +6717,9,E06000031,1,54.44,128.67,25.84,140.6 +7043,9,E06000031,2,64.59,156.51,25.84,171.11 +7369,9,E06000031,3,71.06,184.37,25.84,200.32 +7695,9,E06000031,4,81.2,254.69,25.84,277.23 +8021,10,E06000031,0,36.26,239.85,18.64,260.68 +198,1,E06000026,1,48.92,107.19,25.84,140.08 +524,1,E06000026,2,55.37,120.97,25.84,144.31 +850,1,E06000026,3,61.83,141.13,25.84,161.3 +1176,1,E06000026,4,71.06,158.1,25.84,194.19 +2806,2,E06000026,0,54.93,231.2,18.64,358.7 +1502,3,E06000026,1,47.06,89.13,25.84,210.12 +1828,3,E06000026,2,54.44,100.81,25.84,111.41 +2154,3,E06000026,3,61.83,109.29,25.84,126.28 +2480,3,E06000026,4,73.82,130.52,25.84,130.52 +3132,4,E06000026,0,54.93,115.59,18.64,141.81 +4215,5,E06000026,1,48.92,110.36,25.84,119.9 +4851,5,E06000026,2,55.37,136.89,25.84,148.56 +5482,5,E06000026,3,61.83,159.17,25.84,174.02 +6020,5,E06000026,4,71.06,271.67,25.84,296.07 +3458,6,E06000026,0,54.93,305.08,18.64,332.48 +3931,7,E06000026,1,47.06,110.36,25.84,119.9 +5128,7,E06000026,2,54.44,136.89,25.84,148.56 +5708,7,E06000026,3,61.83,159.17,25.84,174.02 +6420,7,E06000026,4,73.82,271.67,25.84,296.07 +3784,8,E06000026,0,54.93,305.08,18.64,332.48 +6718,9,E06000026,1,48.92,137.95,25.84,149.9 +7044,9,E06000026,2,55.37,171.11,25.84,185.69 +7370,9,E06000026,3,61.83,198.96,25.84,217.54 +7696,9,E06000026,4,71.06,339.58,25.84,370.08 +8022,10,E06000026,0,54.93,583.94,18.64,636.07 +200,1,E06000044,1,57.21,123.09,25.84,176.15 +526,1,E06000044,2,71.06,146.43,25.84,186.77 +852,1,E06000044,3,81.2,161.3,25.84,203.75 +1178,1,E06000044,4,89.52,178.28,25.84,221.77 +2808,2,E06000044,0,62.17,268.13,18.64,344.4 +1504,3,E06000044,1,51.68,115.66,25.84,159.17 +1830,3,E06000044,2,62.75,129.46,25.84,145.37 +2156,3,E06000044,3,68.28,149.62,25.84,185.7 +2482,3,E06000044,4,72.9,184.64,25.84,194.19 +3134,4,E06000044,0,48.71,195.45,18.64,204.96 +4018,5,E06000044,1,57.21,125.22,25.84,136.89 +4633,5,E06000044,2,71.06,153.86,25.84,167.67 +5285,5,E06000044,3,81.2,192.07,25.84,210.12 +5970,5,E06000044,4,89.52,316.23,25.84,344.88 +3460,6,E06000044,0,62.17,355.12,18.64,387.3 +4085,7,E06000044,1,51.68,125.22,25.84,136.89 +4780,7,E06000044,2,62.75,153.86,25.84,167.67 +5385,7,E06000044,3,68.28,192.07,25.84,210.12 +6074,7,E06000044,4,72.9,316.23,25.84,344.88 +3786,8,E06000044,0,48.71,355.12,18.64,387.3 +6720,9,E06000044,1,57.21,156.51,25.84,171.11 +7046,9,E06000044,2,71.06,192.33,25.84,209.57 +7372,9,E06000044,3,81.2,240.08,25.84,262.64 +7698,9,E06000044,4,89.52,395.3,25.84,431.1 +8024,10,E06000044,0,62.17,631.61,18.64,688.24 +201,1,E07000123,1,51.68,93.39,25.84,116.72 +527,1,E07000123,2,59.06,107.19,25.84,134.77 +853,1,E07000123,3,65.51,119.9,25.84,145.37 +1179,1,E07000123,4,71.98,133.71,25.84,159.17 +2809,2,E07000123,0,55.97,239.54,18.64,342.01 +1505,3,E07000123,1,43.36,85.94,25.84,100.81 +1831,3,E07000123,2,53.52,94.47,25.84,113.53 +2157,3,E07000123,3,58.13,105.06,25.84,124.15 +2483,3,E07000123,4,55.37,118.85,25.84,133.71 +3135,4,E07000123,0,33.16,469.54,18.64,599.44 +4373,5,E07000123,1,51.68,102.94,25.84,112.47 +4943,5,E07000123,2,59.06,130.52,25.84,143.25 +5586,5,E07000123,3,65.51,147.5,25.84,160.24 +6334,5,E07000123,4,71.98,203.75,25.84,221.77 +3461,6,E07000123,0,55.97,228.81,18.64,249.07 +4485,7,E07000123,1,43.36,102.94,25.84,112.47 +5081,7,E07000123,2,53.52,130.52,25.84,143.25 +5761,7,E07000123,3,58.13,147.5,25.84,160.24 +6385,7,E07000123,4,55.37,203.75,25.84,221.77 +3787,8,E07000123,0,33.16,228.81,18.64,249.07 +6721,9,E07000123,1,51.68,128.67,25.84,140.6 +7047,9,E07000123,2,59.06,163.15,25.84,179.06 +7373,9,E07000123,3,65.51,184.37,25.84,200.32 +7699,9,E07000123,4,71.98,254.69,25.84,277.23 +8025,10,E07000123,0,55.97,521.38,18.64,569.06 +203,1,E06000038,1,57.21,123.09,25.84,176.15 +529,1,E06000038,2,71.06,146.43,25.84,186.77 +855,1,E06000038,3,81.2,161.3,25.84,203.75 +1181,1,E06000038,4,89.52,178.28,25.84,221.77 +2811,2,E06000038,0,62.17,268.13,18.64,344.4 +1507,3,E06000038,1,51.68,115.66,25.84,159.17 +1833,3,E06000038,2,62.75,129.46,25.84,145.37 +2159,3,E06000038,3,68.28,149.62,25.84,185.7 +2485,3,E06000038,4,72.9,184.64,25.84,194.19 +3137,4,E06000038,0,48.71,195.45,18.64,204.96 +4019,5,E06000038,1,57.21,159.17,25.84,174.02 +4634,5,E06000038,2,71.06,202.69,25.84,220.72 +5286,5,E06000038,3,81.2,219.66,25.84,239.83 +5971,5,E06000038,4,89.52,445.68,25.84,484.95 +3463,6,E06000038,0,62.17,499.33,18.64,544.63 +4086,7,E06000038,1,51.68,159.17,25.84,174.02 +4781,7,E06000038,2,62.75,202.69,25.84,220.72 +5386,7,E06000038,3,68.28,219.66,25.84,239.83 +6075,7,E06000038,4,72.9,445.68,25.84,484.95 +3789,8,E06000038,0,48.71,499.33,18.64,544.63 +6723,9,E06000038,1,57.21,198.96,25.84,217.54 +7049,9,E06000038,2,71.06,253.36,25.84,275.9 +7375,9,E06000038,3,81.2,274.57,25.84,299.78 +7701,9,E06000038,4,89.52,557.11,25.84,606.19 +8027,10,E06000038,0,62.17,443.93,18.64,484.13 +204,1,E09000026,1,65.51,145.37,25.84,197.39 +530,1,E09000026,2,77.51,157.04,25.84,192.07 +856,1,E09000026,3,83.97,166.61,25.84,226.01 +1182,1,E09000026,4,101.48,186.77,25.84,251.49 +2812,2,E09000026,0,70.47,317,18.64,502.91 +1508,3,E09000026,1,58.13,118.85,25.84,146.43 +1834,3,E09000026,2,63.67,139.02,25.84,175.09 +2160,3,E09000026,3,71.06,159.17,25.84,200.55 +2486,3,E09000026,4,83.05,259.98,25.84,261.04 +3138,4,E09000026,0,60.1,371.82,18.64,402.8 +3975,5,E09000026,1,65.51,181.46,25.84,198.45 +4590,5,E09000026,2,77.51,237.69,25.84,258.92 +5242,5,E09000026,3,83.97,292.87,25.84,319.41 +5927,5,E09000026,4,101.48,371.41,25.84,405.36 +3464,6,E09000026,0,70.47,417.11,18.64,455.24 +4189,7,E09000026,1,58.13,181.46,25.84,198.45 +4690,7,E09000026,2,63.67,237.69,25.84,258.92 +5342,7,E09000026,3,71.06,292.87,25.84,319.41 +5894,7,E09000026,4,83.05,371.41,25.84,405.36 +3790,8,E09000026,0,60.1,417.11,18.64,455.24 +6724,9,E09000026,1,65.51,226.84,25.84,248.03 +7050,9,E09000026,2,77.51,297.12,25.84,323.65 +7376,9,E09000026,3,83.97,366.11,25.84,399.27 +7702,9,E09000026,4,101.48,464.26,25.84,506.71 +8028,10,E09000026,0,70.47,886.34,18.64,968.27 +205,1,E06000003,1,50.76,88.07,25.84,97.63 +531,1,E06000003,2,57.21,101.88,25.84,119.9 +857,1,E06000003,3,60.9,113.53,25.84,159.17 +1183,1,E06000003,4,70.13,127.34,25.84,139.02 +2813,2,E06000003,0,55.97,237.14,18.64,340.83 +1509,3,E06000003,1,42.44,99.75,25.84,105.06 +1835,3,E06000003,2,49.84,90.21,25.84,111.41 +2161,3,E06000003,3,53.52,105.06,25.84,124.15 +2487,3,E06000003,4,56.29,115.66,25.84,119.9 +3139,4,E06000003,0,47.67,253.84,18.64,288.39 +4540,5,E06000003,1,50.76,97.63,25.84,107.19 +5055,5,E06000003,2,57.21,114.6,25.84,124.15 +5560,5,E06000003,3,60.9,132.64,25.84,145.37 +6359,5,E06000003,4,70.13,170.85,25.84,185.7 +3465,6,E06000003,0,55.97,191.88,18.64,208.55 +4459,7,E06000003,1,42.44,97.63,25.84,107.19 +5106,7,E06000003,2,49.84,114.6,25.84,124.15 +5735,7,E06000003,3,53.52,132.64,25.84,145.37 +6517,7,E06000003,4,56.29,170.85,25.84,185.7 +3791,8,E06000003,0,47.67,191.88,18.64,208.55 +6725,9,E06000003,1,42.44,122.03,25.84,133.98 +7051,9,E06000003,2,57.21,143.25,25.84,155.2 +7377,9,E06000003,3,60.9,165.81,25.84,181.72 +7703,9,E06000003,4,70.13,213.57,25.84,232.15 +8029,10,E06000003,0,55.97,348.6,18.64,379.86 +206,1,E07000236,1,52.6,98.69,25.84,124.15 +532,1,E07000236,2,58.13,116.72,25.84,136.89 +858,1,E07000236,3,69.2,132.64,25.84,160.24 +1184,1,E07000236,4,80.28,161.3,25.84,178.28 +2814,2,E07000236,0,39.38,245.49,18.64,382.53 +1510,3,E07000236,1,46.13,88.07,25.84,97.63 +1836,3,E07000236,2,49.84,94.47,25.84,102.94 +2162,3,E07000236,3,59.98,104,25.84,119.9 +2488,3,E07000236,4,68.28,127.34,25.84,127.34 +3140,4,E07000236,0,46.63,107.26,18.64,107.26 +4293,5,E07000236,1,52.6,109.29,25.84,118.85 +4903,5,E07000236,2,58.13,130.52,25.84,143.25 +5534,5,E07000236,3,69.2,147.5,25.84,160.24 +6186,5,E07000236,4,80.28,192.07,25.84,210.12 +3466,6,E07000236,0,39.38,215.7,18.64,235.95 +4514,7,E07000236,1,46.13,109.29,25.84,118.85 +5199,7,E07000236,2,49.84,130.52,25.84,143.25 +5790,7,E07000236,3,59.98,147.5,25.84,160.24 +6451,7,E07000236,4,68.28,192.07,25.84,210.12 +3792,8,E07000236,0,46.63,215.7,18.64,235.95 +6726,9,E07000236,1,52.6,136.63,25.84,148.56 +7052,9,E07000236,2,58.13,163.15,25.84,179.06 +7378,9,E07000236,3,69.2,184.37,25.84,200.32 +7704,9,E07000236,4,80.28,240.08,25.84,262.64 +8030,10,E07000236,0,39.38,1363.04,18.64,1486.68 +207,1,E07000211,1,57.21,123.09,25.84,176.15 +533,1,E07000211,2,71.06,146.43,25.84,186.77 +859,1,E07000211,3,81.2,161.3,25.84,203.75 +1185,1,E07000211,4,89.52,178.28,25.84,221.77 +2815,2,E07000211,0,62.17,268.13,18.64,344.4 +1511,3,E07000211,1,51.68,115.66,25.84,159.17 +1837,3,E07000211,2,62.75,129.46,25.84,145.37 +2163,3,E07000211,3,68.28,149.62,25.84,185.7 +2489,3,E07000211,4,72.9,184.64,25.84,194.19 +3141,4,E07000211,0,48.71,195.45,18.64,204.96 +4020,5,E07000211,1,57.21,159.17,25.84,174.02 +4635,5,E07000211,2,71.06,209.06,25.84,228.14 +5287,5,E07000211,3,81.2,269.54,25.84,293.94 +5972,5,E07000211,4,89.52,438.24,25.84,477.53 +3467,6,E07000211,0,62.17,492.18,18.64,536.27 +4087,7,E07000211,1,51.68,159.17,25.84,174.02 +4782,7,E07000211,2,62.75,209.06,25.84,228.14 +5387,7,E07000211,3,68.28,269.54,25.84,293.94 +6076,7,E07000211,4,72.9,438.24,25.84,477.53 +3793,8,E07000211,0,48.71,492.18,18.64,536.27 +6727,9,E07000211,1,57.21,198.96,25.84,217.54 +7053,9,E07000211,2,71.06,261.31,25.84,285.19 +7379,9,E07000211,3,81.2,336.93,25.84,367.42 +7705,9,E07000211,4,89.52,547.82,25.84,596.91 +8031,10,E07000211,0,62.17,286.02,18.64,311.34 +208,1,E07000124,1,51.68,93.39,25.84,116.72 +534,1,E07000124,2,59.06,107.19,25.84,134.77 +860,1,E07000124,3,65.51,119.9,25.84,145.37 +1186,1,E07000124,4,71.98,133.71,25.84,159.17 +2816,2,E07000124,0,55.97,239.54,18.64,342.01 +1512,3,E07000124,1,43.36,85.94,25.84,100.81 +1838,3,E07000124,2,53.52,94.47,25.84,113.53 +2164,3,E07000124,3,58.13,105.06,25.84,124.15 +2490,3,E07000124,4,55.37,118.85,25.84,133.71 +3142,4,E07000124,0,33.16,469.54,18.64,599.44 +4374,5,E07000124,1,51.68,102.94,25.84,112.47 +4944,5,E07000124,2,59.06,130.52,25.84,143.25 +5587,5,E07000124,3,65.51,158.1,25.84,172.97 +6335,5,E07000124,4,71.98,248.31,25.84,270.61 +3468,6,E07000124,0,55.97,278.86,18.64,303.89 +4486,7,E07000124,1,43.36,102.94,25.84,112.47 +5082,7,E07000124,2,53.52,130.52,25.84,143.25 +5762,7,E07000124,3,58.13,158.1,25.84,172.97 +6386,7,E07000124,4,55.37,248.31,25.84,270.61 +3794,8,E07000124,0,33.16,278.86,18.64,303.89 +6728,9,E07000124,1,51.68,128.67,25.84,140.6 +7054,9,E07000124,2,59.06,163.15,25.84,179.06 +7380,9,E07000124,3,65.51,197.62,25.84,216.2 +7706,9,E07000124,4,71.98,310.37,25.84,338.25 +8032,10,E07000124,0,55.97,819.3,18.64,892.3 +210,1,E09000027,1,65.51,145.37,25.84,197.39 +536,1,E09000027,2,77.51,157.04,25.84,192.07 +862,1,E09000027,3,83.97,166.61,25.84,226.01 +1188,1,E09000027,4,101.48,186.77,25.84,251.49 +2818,2,E09000027,0,70.47,317,18.64,502.91 +1514,3,E09000027,1,58.13,118.85,25.84,146.43 +1840,3,E09000027,2,63.67,139.02,25.84,175.09 +2166,3,E09000027,3,71.06,159.17,25.84,200.55 +2492,3,E09000027,4,83.05,259.98,25.84,261.04 +3144,4,E09000027,0,60.1,371.82,18.64,402.8 +3976,5,E09000027,1,65.51,248.31,25.84,270.61 +4591,5,E09000027,2,77.51,336.37,25.84,367.16 +5243,5,E09000027,3,83.97,472.21,25.84,514.66 +5928,5,E09000027,4,101.48,895.6,25.84,977.32 +3470,6,E09000027,0,70.47,1005.8,18.64,1097.58 +4190,7,E09000027,1,58.13,248.31,25.84,270.61 +4691,7,E09000027,2,63.67,336.37,25.84,367.16 +5343,7,E09000027,3,71.06,472.21,25.84,514.66 +5895,7,E09000027,4,83.05,895.6,25.84,977.32 +3796,8,E09000027,0,60.1,1005.8,18.64,1097.58 +6730,9,E09000027,1,65.51,310.37,25.84,338.25 +7056,9,E09000027,2,77.51,420.48,25.84,458.95 +7382,9,E09000027,3,83.97,590.27,25.84,643.34 +7708,9,E09000027,4,101.48,1119.51,25.84,1221.66 +8034,10,E09000027,0,70.47,788.01,18.64,858.05 +211,1,E08000005,1,51.68,93.39,25.84,116.72 +537,1,E08000005,2,59.06,107.19,25.84,134.77 +863,1,E08000005,3,65.51,119.9,25.84,145.37 +1189,1,E08000005,4,71.98,133.71,25.84,159.17 +2819,2,E08000005,0,55.97,239.54,18.64,342.01 +1515,3,E08000005,1,43.36,85.94,25.84,100.81 +1841,3,E08000005,2,53.52,94.47,25.84,113.53 +2167,3,E08000005,3,58.13,105.06,25.84,124.15 +2493,3,E08000005,4,55.37,118.85,25.84,133.71 +3145,4,E08000005,0,33.16,469.54,18.64,599.44 +4375,5,E08000005,1,51.68,95.53,25.84,104 +4945,5,E08000005,2,59.06,109.29,25.84,118.85 +5588,5,E08000005,3,65.51,130.52,25.84,143.25 +6336,5,E08000005,4,71.98,192.07,25.84,210.12 +3471,6,E08000005,0,55.97,215.7,18.64,235.95 +4487,7,E08000005,1,43.36,95.53,25.84,104 +5083,7,E08000005,2,53.52,109.29,25.84,118.85 +5763,7,E08000005,3,58.13,130.52,25.84,143.25 +6387,7,E08000005,4,55.37,192.07,25.84,210.12 +3797,8,E08000005,0,33.16,215.7,18.64,235.95 +6731,9,E08000005,1,51.68,119.38,25.84,129.98 +7057,9,E08000005,2,59.06,136.63,25.84,148.56 +7383,9,E08000005,3,65.51,163.15,25.84,179.06 +7709,9,E08000005,4,71.98,240.08,25.84,262.64 +8035,10,E08000005,0,55.97,537.76,18.64,585.43 +212,1,E07000075,1,54.44,118.85,25.84,148.56 +538,1,E07000075,2,64.59,142.18,25.84,167.67 +864,1,E07000075,3,71.06,155.98,25.84,180.4 +1190,1,E07000075,4,81.2,170.85,25.84,178.28 +2820,2,E07000075,0,36.26,226.42,18.64,423.05 +1516,3,E07000075,1,49.84,99.75,25.84,131.58 +1842,3,E07000075,2,58.13,117.78,25.84,132.64 +2168,3,E07000075,3,63.67,130.52,25.84,143.25 +2494,3,E07000075,4,71.06,148.56,25.84,159.17 +3146,4,E07000075,0,55.97,135.86,18.64,318.19 +4149,5,E07000075,1,54.44,134.77,25.84,147.5 +4730,5,E07000075,2,64.59,180.4,25.84,197.39 +5449,5,E07000075,3,71.06,214.35,25.84,234.52 +6159,5,E07000075,4,81.2,292.87,25.84,319.41 +3472,6,E07000075,0,36.26,328.92,18.64,358.7 +4266,7,E07000075,1,49.84,134.77,25.84,147.5 +4992,7,E07000075,2,58.13,180.4,25.84,197.39 +5635,7,E07000075,3,63.67,214.35,25.84,234.52 +6297,7,E07000075,4,71.06,292.87,25.84,319.41 +3798,8,E07000075,0,55.97,328.92,18.64,358.7 +6732,9,E07000075,1,54.44,168.46,25.84,184.37 +7058,9,E07000075,2,64.59,225.52,25.84,246.73 +7384,9,E07000075,3,71.06,267.95,25.84,293.15 +7710,9,E07000075,4,81.2,366.11,25.84,399.27 +8036,10,E07000075,0,36.26,241.34,18.64,262.16 +213,1,E07000125,1,51.68,93.39,25.84,116.72 +539,1,E07000125,2,59.06,107.19,25.84,134.77 +865,1,E07000125,3,65.51,119.9,25.84,145.37 +1191,1,E07000125,4,71.98,133.71,25.84,159.17 +2821,2,E07000125,0,55.97,239.54,18.64,342.01 +1517,3,E07000125,1,43.36,85.94,25.84,100.81 +1843,3,E07000125,2,53.52,94.47,25.84,113.53 +2169,3,E07000125,3,58.13,105.06,25.84,124.15 +2495,3,E07000125,4,55.37,118.85,25.84,133.71 +3147,4,E07000125,0,33.16,469.54,18.64,599.44 +4376,5,E07000125,1,51.68,91.27,25.84,98.69 +4946,5,E07000125,2,59.06,109.29,25.84,118.85 +5589,5,E07000125,3,65.51,125.22,25.84,136.89 +6337,5,E07000125,4,71.98,181.46,25.84,198.45 +3473,6,E07000125,0,55.97,203.78,18.64,222.84 +4488,7,E07000125,1,43.36,91.27,25.84,98.69 +5084,7,E07000125,2,53.52,109.29,25.84,118.85 +5764,7,E07000125,3,58.13,125.22,25.84,136.89 +6388,7,E07000125,4,55.37,181.46,25.84,198.45 +3799,8,E07000125,0,33.16,203.78,18.64,222.84 +6733,9,E07000125,1,51.68,114.09,25.84,123.35 +7059,9,E07000125,2,59.06,136.63,25.84,148.56 +7385,9,E07000125,3,65.51,156.51,25.84,171.11 +7711,9,E07000125,4,71.98,226.84,25.84,248.03 +8037,10,E07000125,0,55.97,379.86,18.64,414.12 +214,1,E07000064,1,57.21,123.09,25.84,176.15 +540,1,E07000064,2,71.06,146.43,25.84,186.77 +866,1,E07000064,3,81.2,161.3,25.84,203.75 +1192,1,E07000064,4,89.52,178.28,25.84,221.77 +2822,2,E07000064,0,62.17,268.13,18.64,344.4 +1518,3,E07000064,1,51.68,115.66,25.84,159.17 +1844,3,E07000064,2,62.75,129.46,25.84,145.37 +2170,3,E07000064,3,68.28,149.62,25.84,185.7 +2496,3,E07000064,4,72.9,184.64,25.84,194.19 +3148,4,E07000064,0,48.71,195.45,18.64,204.96 +4021,5,E07000064,1,57.21,116.72,25.84,127.34 +4636,5,E07000064,2,71.06,147.5,25.84,160.24 +5288,5,E07000064,3,81.2,198.45,25.84,215.41 +5973,5,E07000064,4,89.52,281.2,25.84,306.68 +3474,6,E07000064,0,62.17,315.82,18.64,344.4 +4088,7,E07000064,1,51.68,116.72,25.84,127.34 +4783,7,E07000064,2,62.75,147.5,25.84,160.24 +5388,7,E07000064,3,68.28,198.45,25.84,215.41 +6077,7,E07000064,4,72.9,281.2,25.84,306.68 +3800,8,E07000064,0,48.71,315.82,18.64,344.4 +6734,9,E07000064,1,57.21,145.91,25.84,159.17 +7060,9,E07000064,2,71.06,184.37,25.84,200.32 +7386,9,E07000064,3,81.2,248.03,25.84,269.26 +7712,9,E07000064,4,89.52,351.51,25.84,383.34 +8038,10,E07000064,0,62.17,394.77,18.64,430.5 +215,1,E08000018,1,50.76,91.27,25.84,113.53 +541,1,E08000018,2,58.13,108.24,25.84,140.08 +867,1,E08000018,3,62.75,119.9,25.84,161.3 +1193,1,E08000018,4,72.9,144.31,25.84,178.28 +2823,2,E08000018,0,52.86,234.75,18.64,322.95 +1519,3,E08000018,1,46.13,81.71,25.84,92.33 +1845,3,E08000018,2,52.6,112.47,25.84,144.31 +2171,3,E08000018,3,56.29,104,25.84,113.53 +2497,3,E08000018,4,63.67,120.97,25.84,175.09 +3149,4,E08000018,0,51.82,160.88,18.64,190.67 +4404,5,E08000018,1,50.76,87.01,25.84,94.47 +4884,5,E08000018,2,58.13,113.53,25.84,123.09 +5515,5,E08000018,3,62.75,125.22,25.84,136.89 +6120,5,E08000018,4,72.9,170.85,25.84,185.7 +3475,6,E08000018,0,52.86,191.88,18.64,208.55 +4558,7,E08000018,1,46.13,87.01,25.84,94.47 +4826,7,E08000018,2,52.6,113.53,25.84,123.09 +5862,7,E08000018,3,56.29,125.22,25.84,136.89 +6218,7,E08000018,4,63.67,170.85,25.84,185.7 +3801,8,E08000018,0,51.82,191.88,18.64,208.55 +6735,9,E08000018,1,50.76,108.78,25.84,118.06 +7061,9,E08000018,2,52.6,141.94,25.84,153.86 +7387,9,E08000018,3,62.75,156.51,25.84,171.11 +7713,9,E08000018,4,72.9,213.57,25.84,232.15 +8039,10,E08000018,0,52.86,348.6,18.64,379.86 +216,1,E07000220,1,52.6,98.69,25.84,124.15 +542,1,E07000220,2,58.13,116.72,25.84,136.89 +868,1,E07000220,3,69.2,132.64,25.84,160.24 +1194,1,E07000220,4,80.28,161.3,25.84,178.28 +2824,2,E07000220,0,39.38,245.49,18.64,382.53 +1520,3,E07000220,1,46.13,88.07,25.84,97.63 +1846,3,E07000220,2,49.84,94.47,25.84,102.94 +2172,3,E07000220,3,59.98,104,25.84,119.9 +2498,3,E07000220,4,68.28,127.34,25.84,127.34 +3150,4,E07000220,0,46.63,107.26,18.64,107.26 +4294,5,E07000220,1,52.6,102.94,25.84,112.47 +4904,5,E07000220,2,58.13,125.22,25.84,136.89 +5535,5,E07000220,3,69.2,153.86,25.84,167.67 +6187,5,E07000220,4,80.28,265.29,25.84,289.68 +3476,6,E07000220,0,39.38,297.95,18.64,325.34 +4515,7,E07000220,1,46.13,102.94,25.84,112.47 +5200,7,E07000220,2,49.84,125.22,25.84,136.89 +5791,7,E07000220,3,59.98,153.86,25.84,167.67 +6452,7,E07000220,4,68.28,265.29,25.84,289.68 +3802,8,E07000220,0,46.63,297.95,18.64,325.34 +6736,9,E07000220,1,52.6,128.67,25.84,140.6 +7062,9,E07000220,2,58.13,156.51,25.84,171.11 +7388,9,E07000220,3,69.2,192.33,25.84,209.57 +7714,9,E07000220,4,80.28,331.63,25.84,362.13 +8040,10,E07000220,0,39.38,284.53,18.64,309.82 +217,1,E07000212,1,57.21,123.09,25.84,176.15 +543,1,E07000212,2,71.06,146.43,25.84,186.77 +869,1,E07000212,3,81.2,161.3,25.84,203.75 +1195,1,E07000212,4,89.52,178.28,25.84,221.77 +2825,2,E07000212,0,62.17,268.13,18.64,344.4 +1521,3,E07000212,1,51.68,115.66,25.84,159.17 +1847,3,E07000212,2,62.75,129.46,25.84,145.37 +2173,3,E07000212,3,68.28,149.62,25.84,185.7 +2499,3,E07000212,4,72.9,184.64,25.84,194.19 +3151,4,E07000212,0,48.71,195.45,18.64,204.96 +4022,5,E07000212,1,57.21,181.46,25.84,198.45 +4637,5,E07000212,2,71.06,248.31,25.84,270.61 +5289,5,E07000212,3,81.2,304.55,25.84,332.14 +5974,5,E07000212,4,89.52,539.06,25.84,587.88 +3477,6,E07000212,0,62.17,605.39,18.64,660.22 +4089,7,E07000212,1,51.68,181.46,25.84,198.45 +4784,7,E07000212,2,62.75,248.31,25.84,270.61 +5389,7,E07000212,3,68.28,304.55,25.84,332.14 +6078,7,E07000212,4,72.9,539.06,25.84,587.88 +3803,8,E07000212,0,48.71,605.39,18.64,660.22 +6737,9,E07000212,1,57.21,226.84,25.84,248.03 +7063,9,E07000212,2,71.06,310.37,25.84,338.25 +7389,9,E07000212,3,81.2,380.68,25.84,415.17 +7715,9,E07000212,4,89.52,673.83,25.84,734.87 +8041,10,E07000212,0,62.17,269.62,18.64,294.95 +218,1,E07000176,1,51.68,99.75,25.84,122.03 +544,1,E07000176,2,61.83,114.6,25.84,129.46 +870,1,E07000176,3,68.28,126.28,25.84,137.95 +1196,1,E07000176,4,75.67,158.1,25.84,166.61 +2826,2,E07000176,0,51.82,240.72,18.64,361.1 +1522,3,E07000176,1,46.13,90.21,25.84,107.19 +1848,3,E07000176,2,52.6,96.56,25.84,108.24 +2174,3,E07000176,3,58.13,104,25.84,118.85 +2500,3,E07000176,4,63.67,122.03,25.84,122.03 +3152,4,E07000176,0,49.74,114.39,18.64,123.94 +4343,5,E07000176,1,51.68,109.29,25.84,118.85 +5039,5,E07000176,2,61.83,134.77,25.84,147.5 +5682,5,E07000176,3,68.28,170.85,25.84,185.7 +6257,5,E07000176,4,75.67,270.61,25.84,295.01 +3478,6,E07000176,0,51.82,303.89,18.64,331.29 +4443,7,E07000176,1,46.13,109.29,25.84,118.85 +5179,7,E07000176,2,52.6,134.77,25.84,147.5 +5840,7,E07000176,3,58.13,170.85,25.84,185.7 +6501,7,E07000176,4,63.67,270.61,25.84,295.01 +3804,8,E07000176,0,49.74,303.89,18.64,331.29 +6738,9,E07000176,1,51.68,136.63,25.84,148.56 +7064,9,E07000176,2,61.83,168.46,25.84,184.37 +7390,9,E07000176,3,68.28,213.57,25.84,232.15 +7716,9,E07000176,4,75.67,338.25,25.84,368.76 +8042,10,E07000176,0,51.82,348.6,18.64,379.86 +219,1,E07000092,1,57.21,123.09,25.84,176.15 +545,1,E07000092,2,71.06,146.43,25.84,186.77 +871,1,E07000092,3,81.2,161.3,25.84,203.75 +1197,1,E07000092,4,89.52,178.28,25.84,221.77 +2827,2,E07000092,0,62.17,268.13,18.64,344.4 +1523,3,E07000092,1,51.68,115.66,25.84,159.17 +1849,3,E07000092,2,62.75,129.46,25.84,145.37 +2175,3,E07000092,3,68.28,149.62,25.84,185.7 +2501,3,E07000092,4,72.9,184.64,25.84,194.19 +3153,4,E07000092,0,48.71,195.45,18.64,204.96 +4023,5,E07000092,1,57.21,147.5,25.84,160.24 +4638,5,E07000092,2,71.06,181.46,25.84,198.45 +5290,5,E07000092,3,81.2,237.69,25.84,258.92 +5975,5,E07000092,4,89.52,337.44,25.84,368.22 +3479,6,E07000092,0,62.17,378.95,18.64,413.53 +4090,7,E07000092,1,51.68,147.5,25.84,160.24 +4785,7,E07000092,2,62.75,181.46,25.84,198.45 +5390,7,E07000092,3,68.28,237.69,25.84,258.92 +6079,7,E07000092,4,72.9,337.44,25.84,368.22 +3805,8,E07000092,0,48.71,378.95,18.64,413.53 +6739,9,E07000092,1,57.21,184.37,25.84,200.32 +7065,9,E07000092,2,71.06,226.84,25.84,248.03 +7391,9,E07000092,3,81.2,297.12,25.84,323.65 +7717,9,E07000092,4,89.52,421.8,25.84,460.26 +8043,10,E07000092,0,62.17,286.02,18.64,311.34 +220,1,E06000017,1,51.68,99.75,25.84,122.03 +546,1,E06000017,2,61.83,114.6,25.84,129.46 +872,1,E06000017,3,68.28,126.28,25.84,137.95 +1198,1,E06000017,4,75.67,158.1,25.84,166.61 +2828,2,E06000017,0,51.82,240.72,18.64,361.1 +1524,3,E06000017,1,46.13,90.21,25.84,107.19 +1850,3,E06000017,2,52.6,96.56,25.84,108.24 +2176,3,E06000017,3,58.13,104,25.84,118.85 +2502,3,E06000017,4,63.67,122.03,25.84,122.03 +3154,4,E06000017,0,49.74,114.39,18.64,123.94 +4344,5,E06000017,1,51.68,109.29,25.84,118.85 +5040,5,E06000017,2,61.83,130.52,25.84,143.25 +5683,5,E06000017,3,68.28,164.48,25.84,179.34 +6258,5,E06000017,4,75.67,287.59,25.84,311.99 +3480,6,E06000017,0,51.82,322.95,18.64,350.36 +4444,7,E06000017,1,46.13,109.29,25.84,118.85 +5180,7,E06000017,2,52.6,130.52,25.84,143.25 +5841,7,E06000017,3,58.13,164.48,25.84,179.34 +6502,7,E06000017,4,63.67,287.59,25.84,311.99 +3806,8,E06000017,0,49.74,322.95,18.64,350.36 +6740,9,E06000017,1,51.68,136.63,25.84,148.56 +7066,9,E06000017,2,61.83,163.15,25.84,179.06 +7392,9,E06000017,3,68.28,205.6,25.84,224.18 +7718,9,E06000017,4,75.67,359.47,25.84,389.97 +8044,10,E06000017,0,51.82,269.62,18.64,294.95 +222,1,E08000006,1,51.68,93.39,25.84,116.72 +548,1,E08000006,2,59.06,107.19,25.84,134.77 +874,1,E08000006,3,65.51,119.9,25.84,145.37 +1200,1,E08000006,4,71.98,133.71,25.84,159.17 +2830,2,E08000006,0,55.97,239.54,18.64,342.01 +1526,3,E08000006,1,43.36,85.94,25.84,100.81 +1852,3,E08000006,2,53.52,94.47,25.84,113.53 +2178,3,E08000006,3,58.13,105.06,25.84,124.15 +2504,3,E08000006,4,55.37,118.85,25.84,133.71 +3156,4,E08000006,0,33.16,469.54,18.64,599.44 +4377,5,E08000006,1,51.68,113.53,25.84,123.09 +4947,5,E08000006,2,59.06,130.52,25.84,143.25 +5590,5,E08000006,3,65.51,147.5,25.84,160.24 +6338,5,E08000006,4,71.98,243.02,25.84,265.29 +3482,6,E08000006,0,55.97,272.91,18.64,297.95 +4489,7,E08000006,1,43.36,113.53,25.84,123.09 +5085,7,E08000006,2,53.52,130.52,25.84,143.25 +5765,7,E08000006,3,58.13,147.5,25.84,160.24 +6389,7,E08000006,4,55.37,243.02,25.84,265.29 +3808,8,E08000006,0,33.16,272.91,18.64,297.95 +6742,9,E08000006,1,51.68,141.94,25.84,153.86 +7068,9,E08000006,2,59.06,163.15,25.84,179.06 +7394,9,E08000006,3,65.51,184.37,25.84,200.32 +7720,9,E08000006,4,71.98,303.74,25.84,331.63 +8046,10,E08000006,0,55.97,442.4,18.64,481.18 +223,1,E08000028,1,52.6,98.69,25.84,124.15 +549,1,E08000028,2,58.13,116.72,25.84,136.89 +875,1,E08000028,3,69.2,132.64,25.84,160.24 +1201,1,E08000028,4,80.28,161.3,25.84,178.28 +2831,2,E08000028,0,39.38,245.49,18.64,382.53 +1527,3,E08000028,1,46.13,88.07,25.84,97.63 +1853,3,E08000028,2,49.84,94.47,25.84,102.94 +2179,3,E08000028,3,59.98,104,25.84,119.9 +2505,3,E08000028,4,68.28,127.34,25.84,127.34 +3157,4,E08000028,0,46.63,107.26,18.64,107.26 +4295,5,E08000028,1,52.6,99.75,25.84,109.29 +4905,5,E08000028,2,58.13,119.9,25.84,130.52 +5536,5,E08000028,3,69.2,134.77,25.84,147.5 +6188,5,E08000028,4,80.28,181.46,25.84,198.45 +3483,6,E08000028,0,39.38,203.78,18.64,222.84 +4516,7,E08000028,1,46.13,99.75,25.84,109.29 +5201,7,E08000028,2,49.84,119.9,25.84,130.52 +5792,7,E08000028,3,59.98,134.77,25.84,147.5 +6453,7,E08000028,4,68.28,181.46,25.84,198.45 +3809,8,E08000028,0,46.63,203.78,18.64,222.84 +6743,9,E08000028,1,52.6,124.69,25.84,136.63 +7069,9,E08000028,2,58.13,149.9,25.84,163.15 +7395,9,E08000028,3,69.2,168.46,25.84,184.37 +7721,9,E08000028,4,80.28,226.84,25.84,248.03 +8047,10,E08000028,0,39.38,676.32,18.64,738.88 +226,1,E08000014,1,51.68,93.39,25.84,116.72 +552,1,E08000014,2,59.06,107.19,25.84,134.77 +878,1,E08000014,3,65.51,119.9,25.84,145.37 +1204,1,E08000014,4,71.98,133.71,25.84,159.17 +2834,2,E08000014,0,55.97,239.54,18.64,342.01 +1530,3,E08000014,1,43.36,85.94,25.84,100.81 +1856,3,E08000014,2,53.52,94.47,25.84,113.53 +2182,3,E08000014,3,58.13,105.06,25.84,124.15 +2508,3,E08000014,4,55.37,118.85,25.84,133.71 +3160,4,E08000014,0,33.16,469.54,18.64,599.44 +4378,5,E08000014,1,51.68,102.94,25.84,112.47 +4948,5,E08000014,2,59.06,131.58,25.84,144.31 +5591,5,E08000014,3,65.51,153.86,25.84,167.67 +6339,5,E08000014,4,71.98,219.66,25.84,239.83 +3486,6,E08000014,0,55.97,246.68,18.64,269.32 +4490,7,E08000014,1,43.36,102.94,25.84,112.47 +5086,7,E08000014,2,53.52,131.58,25.84,144.31 +5766,7,E08000014,3,58.13,153.86,25.84,167.67 +6390,7,E08000014,4,55.37,219.66,25.84,239.83 +3812,8,E08000014,0,33.16,246.68,18.64,269.32 +6746,9,E08000014,1,51.68,128.67,25.84,140.6 +7072,9,E08000014,2,59.06,164.47,25.84,180.39 +7398,9,E08000014,3,65.51,192.33,25.84,209.57 +7724,9,E08000014,4,71.98,274.57,25.84,299.78 +8050,10,E08000014,0,55.97,286.02,18.64,311.34 +228,1,E07000111,1,57.21,123.09,25.84,176.15 +554,1,E07000111,2,71.06,146.43,25.84,186.77 +880,1,E07000111,3,81.2,161.3,25.84,203.75 +1206,1,E07000111,4,89.52,178.28,25.84,221.77 +2836,2,E07000111,0,62.17,268.13,18.64,344.4 +1532,3,E07000111,1,51.68,115.66,25.84,159.17 +1858,3,E07000111,2,62.75,129.46,25.84,145.37 +2184,3,E07000111,3,68.28,149.62,25.84,185.7 +2510,3,E07000111,4,72.9,184.64,25.84,194.19 +3162,4,E07000111,0,48.71,195.45,18.64,204.96 +4024,5,E07000111,1,57.21,159.17,25.84,174.02 +4639,5,E07000111,2,71.06,214.35,25.84,234.52 +5291,5,E07000111,3,81.2,315.17,25.84,342.76 +5976,5,E07000111,4,89.52,628.21,25.84,685.51 +3488,6,E07000111,0,62.17,705.52,18.64,769.85 +4091,7,E07000111,1,51.68,159.17,25.84,174.02 +4786,7,E07000111,2,62.75,214.35,25.84,234.52 +5391,7,E07000111,3,68.28,315.17,25.84,342.76 +6080,7,E07000111,4,72.9,628.21,25.84,685.51 +3814,8,E07000111,0,48.71,705.52,18.64,769.85 +6748,9,E07000111,1,57.21,198.96,25.84,217.54 +7074,9,E07000111,2,71.06,267.95,25.84,293.15 +7400,9,E07000111,3,81.2,393.95,25.84,428.42 +7726,9,E07000111,4,89.52,785.27,25.84,856.88 +8052,10,E07000111,0,62.17,734.4,18.64,799.92 +229,1,E08000019,1,50.76,91.27,25.84,113.53 +555,1,E08000019,2,58.13,108.24,25.84,140.08 +881,1,E08000019,3,62.75,119.9,25.84,161.3 +1207,1,E08000019,4,72.9,144.31,25.84,178.28 +2837,2,E08000019,0,52.86,234.75,18.64,322.95 +1533,3,E08000019,1,46.13,81.71,25.84,92.33 +1859,3,E08000019,2,52.6,112.47,25.84,144.31 +2185,3,E08000019,3,56.29,104,25.84,113.53 +2511,3,E08000019,4,63.67,120.97,25.84,175.09 +3163,4,E08000019,0,51.82,160.88,18.64,190.67 +4408,5,E08000019,1,50.76,114.6,25.84,124.15 +4888,5,E08000019,2,58.13,130.52,25.84,143.25 +5519,5,E08000019,3,62.75,136.89,25.84,148.56 +6124,5,E08000019,4,72.9,209.06,25.84,228.14 +3489,6,E08000019,0,52.86,234.75,18.64,256.21 +4562,7,E08000019,1,46.13,114.6,25.84,124.15 +4830,7,E08000019,2,52.6,130.52,25.84,143.25 +5866,7,E08000019,3,56.29,136.89,25.84,148.56 +6222,7,E08000019,4,63.67,209.06,25.84,228.14 +3815,8,E08000019,0,51.82,234.75,18.64,256.21 +6749,9,E08000019,1,50.76,143.25,25.84,155.2 +7075,9,E08000019,2,52.6,163.15,25.84,179.06 +7401,9,E08000019,3,62.75,171.11,25.84,185.69 +7727,9,E08000019,4,72.9,261.31,25.84,285.19 +8053,10,E08000019,0,52.86,694.16,18.64,756.74 +230,1,E07000112,1,57.21,123.09,25.84,176.15 +556,1,E07000112,2,71.06,146.43,25.84,186.77 +882,1,E07000112,3,81.2,161.3,25.84,203.75 +1208,1,E07000112,4,89.52,178.28,25.84,221.77 +2838,2,E07000112,0,62.17,268.13,18.64,344.4 +1534,3,E07000112,1,51.68,115.66,25.84,159.17 +1860,3,E07000112,2,62.75,129.46,25.84,145.37 +2186,3,E07000112,3,68.28,149.62,25.84,185.7 +2512,3,E07000112,4,72.9,184.64,25.84,194.19 +3164,4,E07000112,0,48.71,195.45,18.64,204.96 +4025,5,E07000112,1,57.21,102.94,25.84,112.47 +4640,5,E07000112,2,71.06,141.13,25.84,153.86 +5292,5,E07000112,3,81.2,170.85,25.84,185.7 +5977,5,E07000112,4,89.52,265.29,25.84,289.68 +3490,6,E07000112,0,62.17,297.95,18.64,325.34 +4092,7,E07000112,1,51.68,102.94,25.84,112.47 +4787,7,E07000112,2,62.75,141.13,25.84,153.86 +5392,7,E07000112,3,68.28,170.85,25.84,185.7 +6081,7,E07000112,4,72.9,265.29,25.84,289.68 +3816,8,E07000112,0,48.71,297.95,18.64,325.34 +6750,9,E07000112,1,57.21,128.67,25.84,140.6 +7076,9,E07000112,2,71.06,176.42,25.84,192.33 +7402,9,E07000112,3,81.2,213.57,25.84,232.15 +7728,9,E07000112,4,89.52,331.63,25.84,362.13 +8054,10,E07000112,0,62.17,598.84,18.64,653.96 +231,1,E06000051,1,52.6,98.69,25.84,124.15 +557,1,E06000051,2,58.13,116.72,25.84,136.89 +883,1,E06000051,3,69.2,132.64,25.84,160.24 +1209,1,E06000051,4,80.28,161.3,25.84,178.28 +2839,2,E06000051,0,39.38,245.49,18.64,382.53 +1535,3,E06000051,1,46.13,88.07,25.84,97.63 +1861,3,E06000051,2,49.84,94.47,25.84,102.94 +2187,3,E06000051,3,59.98,104,25.84,119.9 +2513,3,E06000051,4,68.28,127.34,25.84,127.34 +3165,4,E06000051,0,46.63,107.26,18.64,107.26 +4296,5,E06000051,1,52.6,102.94,25.84,112.47 +4906,5,E06000051,2,58.13,125.22,25.84,136.89 +5537,5,E06000051,3,69.2,147.5,25.84,160.24 +6189,5,E06000051,4,80.28,219.66,25.84,239.83 +3491,6,E06000051,0,39.38,246.68,18.64,269.32 +4517,7,E06000051,1,46.13,102.94,25.84,112.47 +5202,7,E06000051,2,49.84,125.22,25.84,136.89 +5793,7,E06000051,3,59.98,147.5,25.84,160.24 +6454,7,E06000051,4,68.28,219.66,25.84,239.83 +3817,8,E06000051,0,46.63,246.68,18.64,269.32 +6751,9,E06000051,1,52.6,128.67,25.84,140.6 +7077,9,E06000051,2,58.13,156.51,25.84,171.11 +7403,9,E06000051,3,69.2,184.37,25.84,200.32 +7729,9,E06000051,4,80.28,274.57,25.84,299.78 +8055,10,E06000051,0,39.38,1054.69,18.64,1150.03 +232,1,E06000039,1,57.21,123.09,25.84,176.15 +558,1,E06000039,2,71.06,146.43,25.84,186.77 +884,1,E06000039,3,81.2,161.3,25.84,203.75 +1210,1,E06000039,4,89.52,178.28,25.84,221.77 +2840,2,E06000039,0,62.17,268.13,18.64,344.4 +1536,3,E06000039,1,51.68,115.66,25.84,159.17 +1862,3,E06000039,2,62.75,129.46,25.84,145.37 +2188,3,E06000039,3,68.28,149.62,25.84,185.7 +2514,3,E06000039,4,72.9,184.64,25.84,194.19 +3166,4,E06000039,0,48.71,195.45,18.64,204.96 +4026,5,E06000039,1,57.21,153.86,25.84,167.67 +4641,5,E06000039,2,71.06,192.07,25.84,210.12 +5293,5,E06000039,3,81.2,237.69,25.84,258.92 +5978,5,E06000039,4,89.52,337.44,25.84,368.22 +3492,6,E06000039,0,62.17,378.95,18.64,413.53 +4093,7,E06000039,1,51.68,153.86,25.84,167.67 +4788,7,E06000039,2,62.75,192.07,25.84,210.12 +5393,7,E06000039,3,68.28,237.69,25.84,258.92 +6082,7,E06000039,4,72.9,337.44,25.84,368.22 +3818,8,E06000039,0,48.71,378.95,18.64,413.53 +6752,9,E06000039,1,57.21,192.33,25.84,209.57 +7078,9,E06000039,2,71.06,240.08,25.84,262.64 +7404,9,E06000039,3,81.2,297.12,25.84,323.65 +7730,9,E06000039,4,89.52,421.8,25.84,460.26 +8056,10,E06000039,0,62.17,428.99,18.64,469.23 +233,1,E08000029,1,52.6,98.69,25.84,124.15 +559,1,E08000029,2,58.13,116.72,25.84,136.89 +885,1,E08000029,3,69.2,132.64,25.84,160.24 +1211,1,E08000029,4,80.28,161.3,25.84,178.28 +2841,2,E08000029,0,39.38,245.49,18.64,382.53 +1537,3,E08000029,1,46.13,88.07,25.84,97.63 +1863,3,E08000029,2,49.84,94.47,25.84,102.94 +2189,3,E08000029,3,59.98,104,25.84,119.9 +2515,3,E08000029,4,68.28,127.34,25.84,127.34 +3167,4,E08000029,0,46.63,107.26,18.64,107.26 +4297,5,E08000029,1,52.6,125.22,25.84,136.89 +4907,5,E08000029,2,58.13,159.17,25.84,174.02 +5538,5,E08000029,3,69.2,192.07,25.84,210.12 +6190,5,E08000029,4,80.28,358.66,25.84,391.56 +3493,6,E08000029,0,39.38,402.8,18.64,439.74 +4518,7,E08000029,1,46.13,125.22,25.84,136.89 +5203,7,E08000029,2,49.84,159.17,25.84,174.02 +5794,7,E08000029,3,59.98,192.07,25.84,210.12 +6455,7,E08000029,4,68.28,358.66,25.84,391.56 +3819,8,E08000029,0,46.63,402.8,18.64,439.74 +6753,9,E08000029,1,52.6,156.51,25.84,171.11 +7079,9,E08000029,2,58.13,198.96,25.84,217.54 +7405,9,E08000029,3,69.2,240.08,25.84,262.64 +7731,9,E08000029,4,80.28,448.34,25.84,489.48 +8057,10,E08000029,0,39.38,662.89,18.64,722.48 +8226,1,E06000066,1,48.92,107.19,25.84,140.08 +8227,1,E06000066,2,55.37,120.97,25.84,144.31 +8228,1,E06000066,3,61.83,141.13,25.84,161.3 +8229,1,E06000066,4,71.06,158.1,25.84,194.19 +8234,2,E06000066,0,54.93,231.2,18.64,358.7 +8230,3,E06000066,1,47.06,89.13,25.84,210.12 +8231,3,E06000066,2,54.44,100.81,25.84,111.41 +8232,3,E06000066,3,61.83,109.29,25.84,126.28 +8233,3,E06000066,4,73.82,130.52,25.84,130.52 +8235,4,E06000066,0,54.93,115.59,18.64,141.81 +8239,5,E06000066,1,48.92,113.53,25.84,123.09 +8240,5,E06000066,2,55.37,136.89,25.84,148.56 +8242,5,E06000066,3,61.83,164.48,25.84,179.34 +8244,5,E06000066,4,71.06,248.31,25.84,270.61 +8236,6,E06000066,0,54.93,303.89,18.64,331.29 +8238,7,E06000066,1,47.06,113.53,25.84,123.09 +8241,7,E06000066,2,54.44,136.89,25.84,148.56 +8243,7,E06000066,3,61.83,164.48,25.84,179.34 +8245,7,E06000066,4,73.82,248.31,25.84,270.61 +8237,8,E06000066,0,54.93,303.89,18.64,331.29 +8246,9,E06000066,1,48.92,141.94,25.84,153.86 +8247,9,E06000066,2,55.37,171.11,25.84,185.69 +8248,9,E06000066,3,61.83,205.6,25.84,224.18 +8249,9,E06000066,4,71.06,310.37,25.84,338.25 +8250,10,E06000066,0,54.93,318.79,18.64,345.6 +235,1,E07000012,1,54.44,118.85,25.84,148.56 +561,1,E07000012,2,64.59,142.18,25.84,167.67 +887,1,E07000012,3,71.06,155.98,25.84,180.4 +1213,1,E07000012,4,81.2,170.85,25.84,178.28 +2843,2,E07000012,0,36.26,226.42,18.64,423.05 +1539,3,E07000012,1,49.84,99.75,25.84,131.58 +1865,3,E07000012,2,58.13,117.78,25.84,132.64 +2191,3,E07000012,3,63.67,130.52,25.84,143.25 +2517,3,E07000012,4,71.06,148.56,25.84,159.17 +3169,4,E07000012,0,55.97,135.86,18.64,318.19 +4150,5,E07000012,1,54.44,147.5,25.84,160.24 +4731,5,E07000012,2,64.59,170.85,25.84,185.7 +5450,5,E07000012,3,71.06,202.69,25.84,220.72 +6160,5,E07000012,4,81.2,316.23,25.84,344.88 +3495,6,E07000012,0,36.26,355.12,18.64,387.3 +4267,7,E07000012,1,49.84,147.5,25.84,160.24 +4993,7,E07000012,2,58.13,170.85,25.84,185.7 +5636,7,E07000012,3,63.67,202.69,25.84,220.72 +6298,7,E07000012,4,71.06,316.23,25.84,344.88 +3821,8,E07000012,0,55.97,355.12,18.64,387.3 +6755,9,E07000012,1,54.44,184.37,25.84,200.32 +7081,9,E07000012,2,64.59,213.57,25.84,232.15 +7407,9,E07000012,3,71.06,253.36,25.84,275.9 +7733,9,E07000012,4,81.2,395.3,25.84,431.1 +8059,10,E07000012,0,36.26,286.02,18.64,311.34 +236,1,E07000039,1,51.68,99.75,25.84,122.03 +562,1,E07000039,2,61.83,114.6,25.84,129.46 +888,1,E07000039,3,68.28,126.28,25.84,137.95 +1214,1,E07000039,4,75.67,158.1,25.84,166.61 +2844,2,E07000039,0,51.82,240.72,18.64,361.1 +1540,3,E07000039,1,46.13,90.21,25.84,107.19 +1866,3,E07000039,2,52.6,96.56,25.84,108.24 +2192,3,E07000039,3,58.13,104,25.84,118.85 +2518,3,E07000039,4,63.67,122.03,25.84,122.03 +3170,4,E07000039,0,49.74,114.39,18.64,123.94 +4345,5,E07000039,1,51.68,102.94,25.84,112.47 +5041,5,E07000039,2,61.83,125.22,25.84,136.89 +5684,5,E07000039,3,68.28,147.5,25.84,160.24 +6259,5,E07000039,4,75.67,247.25,25.84,270.61 +3496,6,E07000039,0,51.82,277.67,18.64,303.89 +4445,7,E07000039,1,46.13,102.94,25.84,112.47 +5181,7,E07000039,2,52.6,125.22,25.84,136.89 +5842,7,E07000039,3,58.13,147.5,25.84,160.24 +6503,7,E07000039,4,63.67,247.25,25.84,270.61 +3822,8,E07000039,0,49.74,277.67,18.64,303.89 +6756,9,E07000039,1,51.68,128.67,25.84,140.6 +7082,9,E07000039,2,61.83,156.51,25.84,171.11 +7408,9,E07000039,3,68.28,184.37,25.84,200.32 +7734,9,E07000039,4,75.67,309.06,25.84,338.25 +8060,10,E07000039,0,51.82,262.16,18.64,286.02 +237,1,E06000025,1,48.92,107.19,25.84,140.08 +563,1,E06000025,2,55.37,120.97,25.84,144.31 +889,1,E06000025,3,61.83,141.13,25.84,161.3 +1215,1,E06000025,4,71.06,158.1,25.84,194.19 +2845,2,E06000025,0,54.93,231.2,18.64,358.7 +1541,3,E06000025,1,47.06,89.13,25.84,210.12 +1867,3,E06000025,2,54.44,100.81,25.84,111.41 +2193,3,E06000025,3,61.83,109.29,25.84,126.28 +2519,3,E06000025,4,73.82,130.52,25.84,130.52 +3171,4,E06000025,0,54.93,115.59,18.64,141.81 +4219,5,E06000025,1,48.92,125.22,25.84,136.89 +4855,5,E06000025,2,55.37,150.69,25.84,164.48 +5486,5,E06000025,3,61.83,186.77,25.84,203.75 +6024,5,E06000025,4,71.06,269.54,25.84,293.94 +3497,6,E06000025,0,54.93,302.7,18.64,330.11 +3935,7,E06000025,1,47.06,125.22,25.84,136.89 +5132,7,E06000025,2,54.44,150.69,25.84,164.48 +5712,7,E06000025,3,61.83,186.77,25.84,203.75 +6424,7,E06000025,4,73.82,269.54,25.84,293.94 +3823,8,E06000025,0,54.93,302.7,18.64,330.11 +6757,9,E06000025,1,48.92,156.51,25.84,171.11 +7083,9,E06000025,2,55.37,188.36,25.84,205.6 +7409,9,E06000025,3,61.83,233.46,25.84,254.69 +7735,9,E06000025,4,71.06,336.93,25.84,367.42 +8061,10,E06000025,0,54.93,348.6,18.64,379.86 +238,1,E07000044,1,48.92,107.19,25.84,140.08 +564,1,E07000044,2,55.37,120.97,25.84,144.31 +890,1,E07000044,3,61.83,141.13,25.84,161.3 +1216,1,E07000044,4,71.06,158.1,25.84,194.19 +2846,2,E07000044,0,54.93,231.2,18.64,358.7 +1542,3,E07000044,1,47.06,89.13,25.84,210.12 +1868,3,E07000044,2,54.44,100.81,25.84,111.41 +2194,3,E07000044,3,61.83,109.29,25.84,126.28 +2520,3,E07000044,4,73.82,130.52,25.84,130.52 +3172,4,E07000044,0,54.93,115.59,18.64,141.81 +4220,5,E07000044,1,48.92,113.53,25.84,124.15 +4856,5,E07000044,2,55.37,142.18,25.84,154.93 +5487,5,E07000044,3,61.83,180.4,25.84,197.39 +6025,5,E07000044,4,71.06,248.31,25.84,270.61 +3498,6,E07000044,0,54.93,278.86,18.64,303.89 +3936,7,E07000044,1,47.06,113.53,25.84,124.15 +5133,7,E07000044,2,54.44,142.18,25.84,154.93 +5713,7,E07000044,3,61.83,180.4,25.84,197.39 +6425,7,E07000044,4,73.82,248.31,25.84,270.61 +3824,8,E07000044,0,54.93,278.86,18.64,303.89 +6758,9,E07000044,1,48.92,141.94,25.84,155.2 +7084,9,E07000044,2,55.37,177.73,25.84,193.64 +7410,9,E07000044,3,61.83,225.52,25.84,246.73 +7736,9,E07000044,4,71.06,310.37,25.84,338.25 +8062,10,E07000044,0,54.93,223.45,18.64,244.32 +239,1,E07000140,1,51.68,99.75,25.84,122.03 +565,1,E07000140,2,61.83,114.6,25.84,129.46 +891,1,E07000140,3,68.28,126.28,25.84,137.95 +1217,1,E07000140,4,75.67,158.1,25.84,166.61 +2847,2,E07000140,0,51.82,240.72,18.64,361.1 +1543,3,E07000140,1,46.13,90.21,25.84,107.19 +1869,3,E07000140,2,52.6,96.56,25.84,108.24 +2195,3,E07000140,3,58.13,104,25.84,118.85 +2521,3,E07000140,4,63.67,122.03,25.84,122.03 +3173,4,E07000140,0,49.74,114.39,18.64,123.94 +4346,5,E07000140,1,51.68,99.75,25.84,109.29 +5042,5,E07000140,2,61.83,119.9,25.84,130.52 +5685,5,E07000140,3,68.28,136.89,25.84,148.56 +6260,5,E07000140,4,75.67,180.4,25.84,197.39 +3499,6,E07000140,0,51.82,202.58,18.64,221.66 +4446,7,E07000140,1,46.13,99.75,25.84,109.29 +5182,7,E07000140,2,52.6,119.9,25.84,130.52 +5843,7,E07000140,3,58.13,136.89,25.84,148.56 +6504,7,E07000140,4,63.67,180.4,25.84,197.39 +3825,8,E07000140,0,49.74,202.58,18.64,221.66 +6759,9,E07000140,1,51.68,124.69,25.84,136.63 +7085,9,E07000140,2,61.83,149.9,25.84,163.15 +7411,9,E07000140,3,68.28,171.11,25.84,185.69 +7737,9,E07000140,4,75.67,225.52,25.84,246.73 +8063,10,E07000140,0,51.82,552.67,18.64,601.83 +240,1,E07000141,1,51.68,99.75,25.84,122.03 +566,1,E07000141,2,61.83,114.6,25.84,129.46 +892,1,E07000141,3,68.28,126.28,25.84,137.95 +1218,1,E07000141,4,75.67,158.1,25.84,166.61 +2848,2,E07000141,0,51.82,240.72,18.64,361.1 +1544,3,E07000141,1,46.13,90.21,25.84,107.19 +1870,3,E07000141,2,52.6,96.56,25.84,108.24 +2196,3,E07000141,3,58.13,104,25.84,118.85 +2522,3,E07000141,4,63.67,122.03,25.84,122.03 +3174,4,E07000141,0,49.74,114.39,18.64,123.94 +4347,5,E07000141,1,51.68,97.63,25.84,107.19 +5043,5,E07000141,2,61.83,125.22,25.84,136.89 +5686,5,E07000141,3,68.28,147.5,25.84,160.24 +6261,5,E07000141,4,75.67,203.75,25.84,221.77 +3500,6,E07000141,0,51.82,228.81,18.64,249.07 +4447,7,E07000141,1,46.13,97.63,25.84,107.19 +5183,7,E07000141,2,52.6,125.22,25.84,136.89 +5844,7,E07000141,3,58.13,147.5,25.84,160.24 +6505,7,E07000141,4,63.67,203.75,25.84,221.77 +3826,8,E07000141,0,49.74,228.81,18.64,249.07 +6760,9,E07000141,1,51.68,122.03,25.84,133.98 +7086,9,E07000141,2,61.83,156.51,25.84,171.11 +7412,9,E07000141,3,68.28,184.37,25.84,200.32 +7738,9,E07000141,4,75.67,254.69,25.84,277.23 +8064,10,E07000141,0,51.82,567.58,18.64,618.2 +242,1,E07000149,1,54.44,118.85,25.84,148.56 +568,1,E07000149,2,64.59,142.18,25.84,167.67 +894,1,E07000149,3,71.06,155.98,25.84,180.4 +1220,1,E07000149,4,81.2,170.85,25.84,178.28 +2850,2,E07000149,0,36.26,226.42,18.64,423.05 +1546,3,E07000149,1,49.84,99.75,25.84,131.58 +1872,3,E07000149,2,58.13,117.78,25.84,132.64 +2198,3,E07000149,3,63.67,130.52,25.84,143.25 +2524,3,E07000149,4,71.06,148.56,25.84,159.17 +3176,4,E07000149,0,55.97,135.86,18.64,318.19 +4151,5,E07000149,1,54.44,102.94,25.84,112.47 +4732,5,E07000149,2,64.59,125.22,25.84,136.89 +5451,5,E07000149,3,71.06,147.5,25.84,160.24 +6161,5,E07000149,4,81.2,214.35,25.84,234.52 +3502,6,E07000149,0,36.26,240.72,18.64,263.37 +4268,7,E07000149,1,49.84,102.94,25.84,112.47 +4994,7,E07000149,2,58.13,125.22,25.84,136.89 +5637,7,E07000149,3,63.67,147.5,25.84,160.24 +6299,7,E07000149,4,71.06,214.35,25.84,234.52 +3828,8,E07000149,0,55.97,240.72,18.64,263.37 +6762,9,E07000149,1,54.44,128.67,25.84,140.6 +7088,9,E07000149,2,64.59,156.51,25.84,171.11 +7414,9,E07000149,3,71.06,184.37,25.84,200.32 +7740,9,E07000149,4,81.2,267.95,25.84,293.15 +8066,10,E07000149,0,36.26,394.77,18.64,430.5 +244,1,E07000179,1,57.21,123.09,25.84,176.15 +570,1,E07000179,2,71.06,146.43,25.84,186.77 +896,1,E07000179,3,81.2,161.3,25.84,203.75 +1222,1,E07000179,4,89.52,178.28,25.84,221.77 +2852,2,E07000179,0,62.17,268.13,18.64,344.4 +1548,3,E07000179,1,51.68,115.66,25.84,159.17 +1874,3,E07000179,2,62.75,129.46,25.84,145.37 +2200,3,E07000179,3,68.28,149.62,25.84,185.7 +2526,3,E07000179,4,72.9,184.64,25.84,194.19 +3178,4,E07000179,0,48.71,195.45,18.64,204.96 +4028,5,E07000179,1,57.21,157.04,25.84,170.85 +4643,5,E07000179,2,71.06,192.07,25.84,210.12 +5295,5,E07000179,3,81.2,281.2,25.84,306.68 +5980,5,E07000179,4,89.52,449.93,25.84,490.26 +3504,6,E07000179,0,62.17,505.29,18.64,550.58 +4095,7,E07000179,1,51.68,157.04,25.84,170.85 +4790,7,E07000179,2,62.75,192.07,25.84,210.12 +5395,7,E07000179,3,68.28,281.2,25.84,306.68 +6084,7,E07000179,4,72.9,449.93,25.84,490.26 +3830,8,E07000179,0,48.71,505.29,18.64,550.58 +6764,9,E07000179,1,57.21,196.32,25.84,213.57 +7090,9,E07000179,2,71.06,240.08,25.84,262.64 +7416,9,E07000179,3,81.2,351.51,25.84,383.34 +7742,9,E07000179,4,89.52,562.41,25.84,612.82 +8068,10,E07000179,0,62.17,427.52,18.64,466.26 +245,1,E07000126,1,51.68,93.39,25.84,116.72 +571,1,E07000126,2,59.06,107.19,25.84,134.77 +897,1,E07000126,3,65.51,119.9,25.84,145.37 +1223,1,E07000126,4,71.98,133.71,25.84,159.17 +2853,2,E07000126,0,55.97,239.54,18.64,342.01 +1549,3,E07000126,1,43.36,85.94,25.84,100.81 +1875,3,E07000126,2,53.52,94.47,25.84,113.53 +2201,3,E07000126,3,58.13,105.06,25.84,124.15 +2527,3,E07000126,4,55.37,118.85,25.84,133.71 +3179,4,E07000126,0,33.16,469.54,18.64,599.44 +4380,5,E07000126,1,51.68,101.88,25.84,112.47 +4950,5,E07000126,2,59.06,125.22,25.84,136.89 +5593,5,E07000126,3,65.51,142.18,25.84,154.93 +6341,5,E07000126,4,71.98,202.69,25.84,220.72 +3505,6,E07000126,0,55.97,227.63,18.64,247.88 +4492,7,E07000126,1,43.36,101.88,25.84,112.47 +5088,7,E07000126,2,53.52,125.22,25.84,136.89 +5768,7,E07000126,3,58.13,142.18,25.84,154.93 +6392,7,E07000126,4,55.37,202.69,25.84,220.72 +3831,8,E07000126,0,33.16,227.63,18.64,247.88 +6765,9,E07000126,1,51.68,127.34,25.84,140.6 +7091,9,E07000126,2,59.06,156.51,25.84,171.11 +7417,9,E07000126,3,65.51,177.73,25.84,193.64 +7743,9,E07000126,4,71.98,253.36,25.84,275.9 +8069,10,E07000126,0,55.97,852.08,18.64,929.54 +247,1,E07000196,1,52.6,98.69,25.84,124.15 +573,1,E07000196,2,58.13,116.72,25.84,136.89 +899,1,E07000196,3,69.2,132.64,25.84,160.24 +1225,1,E07000196,4,80.28,161.3,25.84,178.28 +2855,2,E07000196,0,39.38,245.49,18.64,382.53 +1551,3,E07000196,1,46.13,88.07,25.84,97.63 +1877,3,E07000196,2,49.84,94.47,25.84,102.94 +2203,3,E07000196,3,59.98,104,25.84,119.9 +2529,3,E07000196,4,68.28,127.34,25.84,127.34 +3181,4,E07000196,0,46.63,107.26,18.64,107.26 +4298,5,E07000196,1,52.6,102.94,25.84,112.47 +4908,5,E07000196,2,58.13,125.22,25.84,136.89 +5539,5,E07000196,3,69.2,147.5,25.84,160.24 +6191,5,E07000196,4,80.28,227.08,25.84,246.18 +3507,6,E07000196,0,39.38,255.02,18.64,276.48 +4519,7,E07000196,1,46.13,102.94,25.84,112.47 +5204,7,E07000196,2,49.84,125.22,25.84,136.89 +5795,7,E07000196,3,59.98,147.5,25.84,160.24 +6456,7,E07000196,4,68.28,227.08,25.84,246.18 +3833,8,E07000196,0,46.63,255.02,18.64,276.48 +6767,9,E07000196,1,52.6,128.67,25.84,140.6 +7093,9,E07000196,2,58.13,156.51,25.84,171.11 +7419,9,E07000196,3,69.2,184.37,25.84,200.32 +7745,9,E07000196,4,80.28,283.85,25.84,307.73 +8071,10,E07000196,0,39.38,269.62,18.64,294.95 +248,1,E08000023,1,50.76,88.07,25.84,97.63 +574,1,E08000023,2,57.21,101.88,25.84,119.9 +900,1,E08000023,3,60.9,113.53,25.84,159.17 +1226,1,E08000023,4,70.13,127.34,25.84,139.02 +2856,2,E08000023,0,55.97,237.14,18.64,340.83 +1552,3,E08000023,1,42.44,99.75,25.84,105.06 +1878,3,E08000023,2,49.84,90.21,25.84,111.41 +2204,3,E08000023,3,53.52,105.06,25.84,124.15 +2530,3,E08000023,4,56.29,115.66,25.84,119.9 +3182,4,E08000023,0,47.67,253.84,18.64,288.39 +4541,5,E08000023,1,50.76,92.33,25.84,99.75 +5056,5,E08000023,2,57.21,114.6,25.84,124.15 +5561,5,E08000023,3,60.9,130.52,25.84,143.25 +6360,5,E08000023,4,70.13,170.85,25.84,185.7 +3508,6,E08000023,0,55.97,191.88,18.64,208.55 +4460,7,E08000023,1,42.44,92.33,25.84,99.75 +5107,7,E08000023,2,49.84,114.6,25.84,124.15 +5736,7,E08000023,3,53.52,130.52,25.84,143.25 +6518,7,E08000023,4,56.29,170.85,25.84,185.7 +3834,8,E08000023,0,47.67,191.88,18.64,208.55 +6768,9,E08000023,1,42.44,115.39,25.84,124.69 +7094,9,E08000023,2,57.21,143.25,25.84,155.2 +7420,9,E08000023,3,60.9,163.15,25.84,179.06 +7746,9,E08000023,4,70.13,213.57,25.84,232.15 +8072,10,E08000023,0,55.97,333.68,18.64,363.48 +249,1,E06000045,1,57.21,123.09,25.84,176.15 +575,1,E06000045,2,71.06,146.43,25.84,186.77 +901,1,E06000045,3,81.2,161.3,25.84,203.75 +1227,1,E06000045,4,89.52,178.28,25.84,221.77 +2857,2,E06000045,0,62.17,268.13,18.64,344.4 +1553,3,E06000045,1,51.68,115.66,25.84,159.17 +1879,3,E06000045,2,62.75,129.46,25.84,145.37 +2205,3,E06000045,3,68.28,149.62,25.84,185.7 +2531,3,E06000045,4,72.9,184.64,25.84,194.19 +3183,4,E06000045,0,48.71,195.45,18.64,204.96 +4029,5,E06000045,1,57.21,125.22,25.84,136.89 +4644,5,E06000045,2,71.06,170.85,25.84,185.7 +5296,5,E06000045,3,81.2,202.69,25.84,220.72 +5981,5,E06000045,4,89.52,316.23,25.84,344.88 +3509,6,E06000045,0,62.17,355.12,18.64,387.3 +4096,7,E06000045,1,51.68,125.22,25.84,136.89 +4791,7,E06000045,2,62.75,170.85,25.84,185.7 +5396,7,E06000045,3,68.28,202.69,25.84,220.72 +6085,7,E06000045,4,72.9,316.23,25.84,344.88 +3835,8,E06000045,0,48.71,355.12,18.64,387.3 +6769,9,E06000045,1,57.21,156.51,25.84,171.11 +7095,9,E06000045,2,71.06,213.57,25.84,232.15 +7421,9,E06000045,3,81.2,253.36,25.84,275.9 +7747,9,E06000045,4,89.52,395.3,25.84,431.1 +8073,10,E06000045,0,62.17,503.5,18.64,549.69 +250,1,E06000033,1,54.44,118.85,25.84,148.56 +576,1,E06000033,2,64.59,142.18,25.84,167.67 +902,1,E06000033,3,71.06,155.98,25.84,180.4 +1228,1,E06000033,4,81.2,170.85,25.84,178.28 +2858,2,E06000033,0,36.26,226.42,18.64,423.05 +1554,3,E06000033,1,49.84,99.75,25.84,131.58 +1880,3,E06000033,2,58.13,117.78,25.84,132.64 +2206,3,E06000033,3,63.67,130.52,25.84,143.25 +2532,3,E06000033,4,71.06,148.56,25.84,159.17 +3184,4,E06000033,0,55.97,135.86,18.64,318.19 +4152,5,E06000033,1,54.44,125.22,25.84,136.89 +4733,5,E06000033,2,64.59,159.17,25.84,174.02 +5452,5,E06000033,3,71.06,202.69,25.84,220.72 +6162,5,E06000033,4,81.2,270.61,25.84,295.01 +3510,6,E06000033,0,36.26,303.89,18.64,331.29 +4269,7,E06000033,1,49.84,125.22,25.84,136.89 +4995,7,E06000033,2,58.13,159.17,25.84,174.02 +5638,7,E06000033,3,63.67,202.69,25.84,220.72 +6300,7,E06000033,4,71.06,270.61,25.84,295.01 +3836,8,E06000033,0,55.97,303.89,18.64,331.29 +6770,9,E06000033,1,54.44,156.51,25.84,171.11 +7096,9,E06000033,2,64.59,198.96,25.84,217.54 +7422,9,E06000033,3,71.06,253.36,25.84,275.9 +7748,9,E06000033,4,81.2,338.25,25.84,368.76 +8074,10,E06000033,0,36.26,239.85,18.64,260.68 +251,1,E09000028,1,65.51,145.37,25.84,197.39 +577,1,E09000028,2,77.51,157.04,25.84,192.07 +903,1,E09000028,3,83.97,166.61,25.84,226.01 +1229,1,E09000028,4,101.48,186.77,25.84,251.49 +2859,2,E09000028,0,70.47,317,18.64,502.91 +1555,3,E09000028,1,58.13,118.85,25.84,146.43 +1881,3,E09000028,2,63.67,139.02,25.84,175.09 +2207,3,E09000028,3,71.06,159.17,25.84,200.55 +2533,3,E09000028,4,83.05,259.98,25.84,261.04 +3185,4,E09000028,0,60.1,371.82,18.64,402.8 +3977,5,E09000028,1,65.51,292.87,25.84,319.41 +4592,5,E09000028,2,77.51,385.2,25.84,420.23 +5244,5,E09000028,3,83.97,393.68,25.84,428.71 +5929,5,E09000028,4,101.48,535.89,25.84,583.64 +3511,6,E09000028,0,70.47,600.65,18.64,655.45 +4191,7,E09000028,1,58.13,292.87,25.84,319.41 +4692,7,E09000028,2,63.67,385.2,25.84,420.23 +5344,7,E09000028,3,71.06,393.68,25.84,428.71 +5896,7,E09000028,4,83.05,535.89,25.84,583.64 +3837,8,E09000028,0,60.1,600.65,18.64,655.45 +6771,9,E09000028,1,65.51,366.11,25.84,399.27 +7097,9,E09000028,2,77.51,481.52,25.84,525.28 +7423,9,E09000028,3,83.97,492.12,25.84,535.89 +7749,9,E09000028,4,101.48,669.87,25.84,729.54 +8075,10,E09000028,0,70.47,344.12,18.64,375.38 +252,1,E07000213,1,57.21,123.09,25.84,176.15 +578,1,E07000213,2,71.06,146.43,25.84,186.77 +904,1,E07000213,3,81.2,161.3,25.84,203.75 +1230,1,E07000213,4,89.52,178.28,25.84,221.77 +2860,2,E07000213,0,62.17,268.13,18.64,344.4 +1556,3,E07000213,1,51.68,115.66,25.84,159.17 +1882,3,E07000213,2,62.75,129.46,25.84,145.37 +2208,3,E07000213,3,68.28,149.62,25.84,185.7 +2534,3,E07000213,4,72.9,184.64,25.84,194.19 +3186,4,E07000213,0,48.71,195.45,18.64,204.96 +4030,5,E07000213,1,57.21,180.4,25.84,197.39 +4645,5,E07000213,2,71.06,214.35,25.84,234.52 +5297,5,E07000213,3,81.2,281.2,25.84,306.68 +5982,5,E07000213,4,89.52,382.01,25.84,415.98 +3512,6,E07000213,0,62.17,429.02,18.64,467.14 +4097,7,E07000213,1,51.68,180.4,25.84,197.39 +4792,7,E07000213,2,62.75,214.35,25.84,234.52 +5397,7,E07000213,3,68.28,281.2,25.84,306.68 +6086,7,E07000213,4,72.9,382.01,25.84,415.98 +3838,8,E07000213,0,48.71,429.02,18.64,467.14 +6772,9,E07000213,1,57.21,225.52,25.84,246.73 +7098,9,E07000213,2,71.06,267.95,25.84,293.15 +7424,9,E07000213,3,81.2,351.51,25.84,383.34 +7750,9,E07000213,4,89.52,477.53,25.84,519.97 +8076,10,E07000213,0,62.17,314.32,18.64,344.12 +253,1,E07000240,1,54.44,118.85,25.84,148.56 +579,1,E07000240,2,64.59,142.18,25.84,167.67 +905,1,E07000240,3,71.06,155.98,25.84,180.4 +1231,1,E07000240,4,81.2,170.85,25.84,178.28 +2861,2,E07000240,0,36.26,226.42,18.64,423.05 +1557,3,E07000240,1,49.84,99.75,25.84,131.58 +1883,3,E07000240,2,58.13,117.78,25.84,132.64 +2209,3,E07000240,3,63.67,130.52,25.84,143.25 +2535,3,E07000240,4,71.06,148.56,25.84,159.17 +3187,4,E07000240,0,55.97,135.86,18.64,318.19 +4153,5,E07000240,1,54.44,170.85,25.84,185.7 +4734,5,E07000240,2,64.59,259.98,25.84,282.26 +5453,5,E07000240,3,71.06,316.23,25.84,344.88 +6163,5,E07000240,4,81.2,583.64,25.84,635.64 +3513,6,E07000240,0,36.26,655.45,18.64,713.85 +4270,7,E07000240,1,49.84,170.85,25.84,185.7 +4996,7,E07000240,2,58.13,259.98,25.84,282.26 +5639,7,E07000240,3,63.67,316.23,25.84,344.88 +6301,7,E07000240,4,71.06,583.64,25.84,635.64 +3839,8,E07000240,0,55.97,655.45,18.64,713.85 +6773,9,E07000240,1,54.44,213.57,25.84,232.15 +7099,9,E07000240,2,64.59,324.98,25.84,352.84 +7425,9,E07000240,3,71.06,395.3,25.84,431.1 +7751,9,E07000240,4,81.2,729.54,25.84,794.53 +8077,10,E07000240,0,36.26,458.81,18.64,500.53 +255,1,E08000013,1,51.68,93.39,25.84,116.72 +581,1,E08000013,2,59.06,107.19,25.84,134.77 +907,1,E08000013,3,65.51,119.9,25.84,145.37 +1233,1,E08000013,4,71.98,133.71,25.84,159.17 +2863,2,E08000013,0,55.97,239.54,18.64,342.01 +1559,3,E08000013,1,43.36,85.94,25.84,100.81 +1885,3,E08000013,2,53.52,94.47,25.84,113.53 +2211,3,E08000013,3,58.13,105.06,25.84,124.15 +2537,3,E08000013,4,55.37,118.85,25.84,133.71 +3189,4,E08000013,0,33.16,469.54,18.64,599.44 +4381,5,E08000013,1,51.68,97.63,25.84,107.19 +4951,5,E08000013,2,59.06,111.41,25.84,120.97 +5594,5,E08000013,3,65.51,134.77,25.84,147.5 +6342,5,E08000013,4,71.98,192.07,25.84,210.12 +3515,6,E08000013,0,55.97,215.7,18.64,235.95 +4493,7,E08000013,1,43.36,97.63,25.84,107.19 +5089,7,E08000013,2,53.52,111.41,25.84,120.97 +5769,7,E08000013,3,58.13,134.77,25.84,147.5 +6393,7,E08000013,4,55.37,192.07,25.84,210.12 +3841,8,E08000013,0,33.16,215.7,18.64,235.95 +6775,9,E08000013,1,51.68,122.03,25.84,133.98 +7101,9,E08000013,2,59.06,139.27,25.84,151.21 +7427,9,E08000013,3,65.51,168.46,25.84,184.37 +7753,9,E08000013,4,71.98,240.08,25.84,262.64 +8079,10,E08000013,0,55.97,262.16,18.64,286.02 +256,1,E07000197,1,52.6,98.69,25.84,124.15 +582,1,E07000197,2,58.13,116.72,25.84,136.89 +908,1,E07000197,3,69.2,132.64,25.84,160.24 +1234,1,E07000197,4,80.28,161.3,25.84,178.28 +2864,2,E07000197,0,39.38,245.49,18.64,382.53 +1560,3,E07000197,1,46.13,88.07,25.84,97.63 +1886,3,E07000197,2,49.84,94.47,25.84,102.94 +2212,3,E07000197,3,59.98,104,25.84,119.9 +2538,3,E07000197,4,68.28,127.34,25.84,127.34 +3190,4,E07000197,0,46.63,107.26,18.64,107.26 +4299,5,E07000197,1,52.6,102.94,25.84,112.47 +4909,5,E07000197,2,58.13,125.22,25.84,136.89 +5540,5,E07000197,3,69.2,147.5,25.84,160.24 +6192,5,E07000197,4,80.28,203.75,25.84,221.77 +3516,6,E07000197,0,39.38,228.81,18.64,249.07 +4520,7,E07000197,1,46.13,102.94,25.84,112.47 +5205,7,E07000197,2,49.84,125.22,25.84,136.89 +5796,7,E07000197,3,59.98,147.5,25.84,160.24 +6457,7,E07000197,4,68.28,203.75,25.84,221.77 +3842,8,E07000197,0,46.63,228.81,18.64,249.07 +6776,9,E07000197,1,52.6,128.67,25.84,140.6 +7102,9,E07000197,2,58.13,156.51,25.84,171.11 +7428,9,E07000197,3,69.2,184.37,25.84,200.32 +7754,9,E07000197,4,80.28,254.69,25.84,277.23 +8080,10,E07000197,0,39.38,630.13,18.64,686.73 +257,1,E07000198,1,52.6,98.69,25.84,124.15 +583,1,E07000198,2,58.13,116.72,25.84,136.89 +909,1,E07000198,3,69.2,132.64,25.84,160.24 +1235,1,E07000198,4,80.28,161.3,25.84,178.28 +2865,2,E07000198,0,39.38,245.49,18.64,382.53 +1561,3,E07000198,1,46.13,88.07,25.84,97.63 +1887,3,E07000198,2,49.84,94.47,25.84,102.94 +2213,3,E07000198,3,59.98,104,25.84,119.9 +2539,3,E07000198,4,68.28,127.34,25.84,127.34 +3191,4,E07000198,0,46.63,107.26,18.64,107.26 +4300,5,E07000198,1,52.6,91.27,25.84,98.69 +4910,5,E07000198,2,58.13,109.29,25.84,118.85 +5541,5,E07000198,3,69.2,134.77,25.84,147.5 +6193,5,E07000198,4,80.28,183.59,25.84,200.55 +3517,6,E07000198,0,39.38,206.16,18.64,225.23 +4521,7,E07000198,1,46.13,91.27,25.84,98.69 +5206,7,E07000198,2,49.84,109.29,25.84,118.85 +5797,7,E07000198,3,59.98,134.77,25.84,147.5 +6458,7,E07000198,4,68.28,183.59,25.84,200.55 +3843,8,E07000198,0,46.63,206.16,18.64,225.23 +6777,9,E07000198,1,52.6,114.09,25.84,123.35 +7103,9,E07000198,2,58.13,136.63,25.84,148.56 +7429,9,E07000198,3,69.2,168.46,25.84,184.37 +7755,9,E07000198,4,80.28,229.48,25.84,250.7 +8081,10,E07000198,0,39.38,546.7,18.64,595.86 +258,1,E07000243,1,54.44,118.85,25.84,148.56 +584,1,E07000243,2,64.59,142.18,25.84,167.67 +910,1,E07000243,3,71.06,155.98,25.84,180.4 +1236,1,E07000243,4,81.2,170.85,25.84,178.28 +2866,2,E07000243,0,36.26,226.42,18.64,423.05 +1562,3,E07000243,1,49.84,99.75,25.84,131.58 +1888,3,E07000243,2,58.13,117.78,25.84,132.64 +2214,3,E07000243,3,63.67,130.52,25.84,143.25 +2540,3,E07000243,4,71.06,148.56,25.84,159.17 +3192,4,E07000243,0,55.97,135.86,18.64,318.19 +4155,5,E07000243,1,54.44,131.58,25.84,144.31 +4736,5,E07000243,2,64.59,170.85,25.84,185.7 +5455,5,E07000243,3,71.06,181.46,25.84,198.45 +6165,5,E07000243,4,81.2,292.87,25.84,319.41 +3518,6,E07000243,0,36.26,328.92,18.64,358.7 +4272,7,E07000243,1,49.84,131.58,25.84,144.31 +4998,7,E07000243,2,58.13,170.85,25.84,185.7 +5641,7,E07000243,3,63.67,181.46,25.84,198.45 +6303,7,E07000243,4,71.06,292.87,25.84,319.41 +3844,8,E07000243,0,55.97,328.92,18.64,358.7 +6778,9,E07000243,1,54.44,164.47,25.84,180.39 +7104,9,E07000243,2,64.59,213.57,25.84,232.15 +7430,9,E07000243,3,71.06,226.84,25.84,248.03 +7756,9,E07000243,4,81.2,366.11,25.84,399.27 +8082,10,E07000243,0,36.26,442.4,18.64,481.18 +259,1,E08000007,1,51.68,93.39,25.84,116.72 +585,1,E08000007,2,59.06,107.19,25.84,134.77 +911,1,E08000007,3,65.51,119.9,25.84,145.37 +1237,1,E08000007,4,71.98,133.71,25.84,159.17 +2867,2,E08000007,0,55.97,239.54,18.64,342.01 +1563,3,E08000007,1,43.36,85.94,25.84,100.81 +1889,3,E08000007,2,53.52,94.47,25.84,113.53 +2215,3,E08000007,3,58.13,105.06,25.84,124.15 +2541,3,E08000007,4,55.37,118.85,25.84,133.71 +3193,4,E08000007,0,33.16,469.54,18.64,599.44 +4382,5,E08000007,1,51.68,113.53,25.84,123.09 +4952,5,E08000007,2,59.06,134.77,25.84,147.5 +5595,5,E08000007,3,65.51,159.17,25.84,174.02 +6343,5,E08000007,4,71.98,227.08,25.84,246.18 +3519,6,E08000007,0,55.97,255.02,18.64,276.48 +4494,7,E08000007,1,43.36,113.53,25.84,123.09 +5090,7,E08000007,2,53.52,134.77,25.84,147.5 +5770,7,E08000007,3,58.13,159.17,25.84,174.02 +6394,7,E08000007,4,55.37,227.08,25.84,246.18 +3845,8,E08000007,0,33.16,255.02,18.64,276.48 +6779,9,E08000007,1,51.68,141.94,25.84,153.86 +7105,9,E08000007,2,59.06,168.46,25.84,184.37 +7431,9,E08000007,3,65.51,198.96,25.84,217.54 +7757,9,E08000007,4,71.98,283.85,25.84,307.73 +8083,10,E08000007,0,55.97,330.71,18.64,360.51 +260,1,E06000004,1,50.76,88.07,25.84,97.63 +586,1,E06000004,2,57.21,101.88,25.84,119.9 +912,1,E06000004,3,60.9,113.53,25.84,159.17 +1238,1,E06000004,4,70.13,127.34,25.84,139.02 +2868,2,E06000004,0,55.97,237.14,18.64,340.83 +1564,3,E06000004,1,42.44,99.75,25.84,105.06 +1890,3,E06000004,2,49.84,90.21,25.84,111.41 +2216,3,E06000004,3,53.52,105.06,25.84,124.15 +2542,3,E06000004,4,56.29,115.66,25.84,119.9 +3194,4,E06000004,0,47.67,253.84,18.64,288.39 +4542,5,E06000004,1,50.76,94.47,25.84,102.94 +5057,5,E06000004,2,57.21,125.22,25.84,136.89 +5562,5,E06000004,3,60.9,136.89,25.84,148.56 +6361,5,E06000004,4,70.13,192.07,25.84,210.12 +3520,6,E06000004,0,55.97,215.7,18.64,235.95 +4461,7,E06000004,1,42.44,94.47,25.84,102.94 +5108,7,E06000004,2,49.84,125.22,25.84,136.89 +5737,7,E06000004,3,53.52,136.89,25.84,148.56 +6519,7,E06000004,4,56.29,192.07,25.84,210.12 +3846,8,E06000004,0,47.67,215.7,18.64,235.95 +6780,9,E06000004,1,42.44,118.06,25.84,128.67 +7106,9,E06000004,2,57.21,156.51,25.84,171.11 +7432,9,E06000004,3,60.9,171.11,25.84,185.69 +7758,9,E06000004,4,70.13,240.08,25.84,262.64 +8084,10,E06000004,0,55.97,253.23,18.64,277.06 +261,1,E06000021,1,52.6,98.69,25.84,124.15 +587,1,E06000021,2,58.13,116.72,25.84,136.89 +913,1,E06000021,3,69.2,132.64,25.84,160.24 +1239,1,E06000021,4,80.28,161.3,25.84,178.28 +2869,2,E06000021,0,39.38,245.49,18.64,382.53 +1565,3,E06000021,1,46.13,88.07,25.84,97.63 +1891,3,E06000021,2,49.84,94.47,25.84,102.94 +2217,3,E06000021,3,59.98,104,25.84,119.9 +2543,3,E06000021,4,68.28,127.34,25.84,127.34 +3195,4,E06000021,0,46.63,107.26,18.64,107.26 +4301,5,E06000021,1,52.6,91.27,25.84,98.69 +4911,5,E06000021,2,58.13,102.94,25.84,112.47 +5542,5,E06000021,3,69.2,130.52,25.84,143.25 +6194,5,E06000021,4,80.28,180.4,25.84,196.32 +3521,6,E06000021,0,39.38,201.39,18.64,220.48 +4522,7,E06000021,1,46.13,91.27,25.84,98.69 +5207,7,E06000021,2,49.84,102.94,25.84,112.47 +5798,7,E06000021,3,59.98,130.52,25.84,143.25 +6459,7,E06000021,4,68.28,180.4,25.84,196.32 +3847,8,E06000021,0,46.63,201.39,18.64,220.48 +6781,9,E06000021,1,52.6,114.09,25.84,123.35 +7107,9,E06000021,2,58.13,128.67,25.84,140.6 +7433,9,E06000021,3,69.2,163.15,25.84,179.06 +7759,9,E06000021,4,80.28,225.52,25.84,245.4 +8085,10,E06000021,0,39.38,628.63,18.64,683.76 +262,1,E07000221,1,52.6,98.69,25.84,124.15 +588,1,E07000221,2,58.13,116.72,25.84,136.89 +914,1,E07000221,3,69.2,132.64,25.84,160.24 +1240,1,E07000221,4,80.28,161.3,25.84,178.28 +2870,2,E07000221,0,39.38,245.49,18.64,382.53 +1566,3,E07000221,1,46.13,88.07,25.84,97.63 +1892,3,E07000221,2,49.84,94.47,25.84,102.94 +2218,3,E07000221,3,59.98,104,25.84,119.9 +2544,3,E07000221,4,68.28,127.34,25.84,127.34 +3196,4,E07000221,0,46.63,107.26,18.64,107.26 +4302,5,E07000221,1,52.6,127.34,25.84,140.08 +4912,5,E07000221,2,58.13,157.04,25.84,172.97 +5543,5,E07000221,3,69.2,202.69,25.84,220.72 +6195,5,E07000221,4,80.28,336.37,25.84,367.16 +3522,6,E07000221,0,39.38,377.76,18.64,412.34 +4523,7,E07000221,1,46.13,127.34,25.84,140.08 +5208,7,E07000221,2,49.84,157.04,25.84,172.97 +5799,7,E07000221,3,59.98,202.69,25.84,220.72 +6460,7,E07000221,4,68.28,336.37,25.84,367.16 +3848,8,E07000221,0,46.63,377.76,18.64,412.34 +6782,9,E07000221,1,52.6,159.17,25.84,175.09 +7108,9,E07000221,2,58.13,196.32,25.84,216.2 +7434,9,E07000221,3,69.2,253.36,25.84,275.9 +7760,9,E07000221,4,80.28,420.48,25.84,458.95 +8086,10,E07000221,0,39.38,308.35,18.64,336.65 +263,1,E07000082,1,48.92,107.19,25.84,140.08 +589,1,E07000082,2,55.37,120.97,25.84,144.31 +915,1,E07000082,3,61.83,141.13,25.84,161.3 +1241,1,E07000082,4,71.06,158.1,25.84,194.19 +2871,2,E07000082,0,54.93,231.2,18.64,358.7 +1567,3,E07000082,1,47.06,89.13,25.84,210.12 +1893,3,E07000082,2,54.44,100.81,25.84,111.41 +2219,3,E07000082,3,61.83,109.29,25.84,126.28 +2545,3,E07000082,4,73.82,130.52,25.84,130.52 +3197,4,E07000082,0,54.93,115.59,18.64,141.81 +4222,5,E07000082,1,48.92,112.47,25.84,122.03 +4858,5,E07000082,2,55.37,147.5,25.84,160.24 +5489,5,E07000082,3,61.83,181.46,25.84,198.45 +6027,5,E07000082,4,71.06,316.23,25.84,344.88 +3523,6,E07000082,0,54.93,355.12,18.64,387.3 +3938,7,E07000082,1,47.06,112.47,25.84,122.03 +5135,7,E07000082,2,54.44,147.5,25.84,160.24 +5715,7,E07000082,3,61.83,181.46,25.84,198.45 +6427,7,E07000082,4,73.82,316.23,25.84,344.88 +3849,8,E07000082,0,54.93,355.12,18.64,387.3 +6783,9,E07000082,1,48.92,140.6,25.84,152.55 +7109,9,E07000082,2,55.37,184.37,25.84,200.32 +7435,9,E07000082,3,61.83,226.84,25.84,248.03 +7761,9,E07000082,4,71.06,395.3,25.84,431.1 +8087,10,E07000082,0,54.93,284.53,18.64,309.82 +265,1,E08000024,1,50.76,88.07,25.84,97.63 +591,1,E08000024,2,57.21,101.88,25.84,119.9 +917,1,E08000024,3,60.9,113.53,25.84,159.17 +1243,1,E08000024,4,70.13,127.34,25.84,139.02 +2873,2,E08000024,0,55.97,237.14,18.64,340.83 +1569,3,E08000024,1,42.44,99.75,25.84,105.06 +1895,3,E08000024,2,49.84,90.21,25.84,111.41 +2221,3,E08000024,3,53.52,105.06,25.84,124.15 +2547,3,E08000024,4,56.29,115.66,25.84,119.9 +3199,4,E08000024,0,47.67,253.84,18.64,288.39 +4543,5,E08000024,1,50.76,102.94,25.84,112.47 +5058,5,E08000024,2,57.21,125.22,25.84,136.89 +5563,5,E08000024,3,60.9,134.77,25.84,147.5 +6362,5,E08000024,4,70.13,180.4,25.84,197.39 +3525,6,E08000024,0,55.97,202.58,18.64,221.66 +4462,7,E08000024,1,42.44,102.94,25.84,112.47 +5109,7,E08000024,2,49.84,125.22,25.84,136.89 +5738,7,E08000024,3,53.52,134.77,25.84,147.5 +6520,7,E08000024,4,56.29,180.4,25.84,197.39 +3851,8,E08000024,0,47.67,202.58,18.64,221.66 +6785,9,E08000024,1,42.44,128.67,25.84,140.6 +7111,9,E08000024,2,57.21,156.51,25.84,171.11 +7437,9,E08000024,3,60.9,168.46,25.84,184.37 +7763,9,E08000024,4,70.13,225.52,25.84,246.73 +8089,10,E08000024,0,55.97,394.77,18.64,430.5 +266,1,E07000214,1,57.21,123.09,25.84,176.15 +592,1,E07000214,2,71.06,146.43,25.84,186.77 +918,1,E07000214,3,81.2,161.3,25.84,203.75 +1244,1,E07000214,4,89.52,178.28,25.84,221.77 +2874,2,E07000214,0,62.17,268.13,18.64,344.4 +1570,3,E07000214,1,51.68,115.66,25.84,159.17 +1896,3,E07000214,2,62.75,129.46,25.84,145.37 +2222,3,E07000214,3,68.28,149.62,25.84,185.7 +2548,3,E07000214,4,72.9,184.64,25.84,194.19 +3200,4,E07000214,0,48.71,195.45,18.64,204.96 +4031,5,E07000214,1,57.21,159.17,25.84,174.02 +4646,5,E07000214,2,71.06,209.06,25.84,228.14 +5298,5,E07000214,3,81.2,281.2,25.84,306.68 +5983,5,E07000214,4,89.52,460.54,25.84,503 +3526,6,E07000214,0,62.17,517.2,18.64,564.9 +4098,7,E07000214,1,51.68,159.17,25.84,174.02 +4793,7,E07000214,2,62.75,209.06,25.84,228.14 +5398,7,E07000214,3,68.28,281.2,25.84,306.68 +6087,7,E07000214,4,72.9,460.54,25.84,503 +3852,8,E07000214,0,48.71,517.2,18.64,564.9 +6786,9,E07000214,1,57.21,198.96,25.84,217.54 +7112,9,E07000214,2,71.06,261.31,25.84,285.19 +7438,9,E07000214,3,81.2,351.51,25.84,383.34 +7764,9,E07000214,4,89.52,575.68,25.84,628.74 +8090,10,E07000214,0,62.17,4013.13,18.64,4378.1 +267,1,E09000029,1,65.51,145.37,25.84,197.39 +593,1,E09000029,2,77.51,157.04,25.84,192.07 +919,1,E09000029,3,83.97,166.61,25.84,226.01 +1245,1,E09000029,4,101.48,186.77,25.84,251.49 +2875,2,E09000029,0,70.47,317,18.64,502.91 +1571,3,E09000029,1,58.13,118.85,25.84,146.43 +1897,3,E09000029,2,63.67,139.02,25.84,175.09 +2223,3,E09000029,3,71.06,159.17,25.84,200.55 +2549,3,E09000029,4,83.05,259.98,25.84,261.04 +3201,4,E09000029,0,60.1,371.82,18.64,402.8 +3978,5,E09000029,1,65.51,170.85,25.84,185.7 +4593,5,E09000029,2,77.51,214.35,25.84,234.52 +5245,5,E09000029,3,83.97,292.87,25.84,319.41 +5930,5,E09000029,4,101.48,472.21,25.84,514.66 +3527,6,E09000029,0,70.47,530.31,18.64,578 +4192,7,E09000029,1,58.13,170.85,25.84,185.7 +4693,7,E09000029,2,63.67,214.35,25.84,234.52 +5345,7,E09000029,3,71.06,292.87,25.84,319.41 +5897,7,E09000029,4,83.05,472.21,25.84,514.66 +3853,8,E09000029,0,60.1,530.31,18.64,578 +6787,9,E09000029,1,65.51,213.57,25.84,232.15 +7113,9,E09000029,2,77.51,267.95,25.84,293.15 +7439,9,E09000029,3,83.97,366.11,25.84,399.27 +7765,9,E09000029,4,101.48,590.27,25.84,643.34 +8091,10,E09000029,0,70.47,284.53,18.64,309.82 +268,1,E07000113,1,57.21,123.09,25.84,176.15 +594,1,E07000113,2,71.06,146.43,25.84,186.77 +920,1,E07000113,3,81.2,161.3,25.84,203.75 +1246,1,E07000113,4,89.52,178.28,25.84,221.77 +2876,2,E07000113,0,62.17,268.13,18.64,344.4 +1572,3,E07000113,1,51.68,115.66,25.84,159.17 +1898,3,E07000113,2,62.75,129.46,25.84,145.37 +2224,3,E07000113,3,68.28,149.62,25.84,185.7 +2550,3,E07000113,4,72.9,184.64,25.84,194.19 +3202,4,E07000113,0,48.71,195.45,18.64,204.96 +4032,5,E07000113,1,57.21,122.03,25.84,132.64 +4647,5,E07000113,2,71.06,147.5,25.84,160.24 +5299,5,E07000113,3,81.2,170.85,25.84,185.7 +5984,5,E07000113,4,89.52,226.01,25.84,246.18 +3528,6,E07000113,0,62.17,253.84,18.64,276.48 +4099,7,E07000113,1,51.68,122.03,25.84,132.64 +4794,7,E07000113,2,62.75,147.5,25.84,160.24 +5399,7,E07000113,3,68.28,170.85,25.84,185.7 +6088,7,E07000113,4,72.9,226.01,25.84,246.18 +3854,8,E07000113,0,48.71,253.84,18.64,276.48 +6788,9,E07000113,1,57.21,152.55,25.84,165.81 +7114,9,E07000113,2,71.06,184.37,25.84,200.32 +7440,9,E07000113,3,81.2,213.57,25.84,232.15 +7766,9,E07000113,4,89.52,282.54,25.84,307.73 +8092,10,E07000113,0,62.17,598.84,18.64,653.96 +269,1,E06000030,1,48.92,107.19,25.84,140.08 +595,1,E06000030,2,55.37,120.97,25.84,144.31 +921,1,E06000030,3,61.83,141.13,25.84,161.3 +1247,1,E06000030,4,71.06,158.1,25.84,194.19 +2877,2,E06000030,0,54.93,231.2,18.64,358.7 +1573,3,E06000030,1,47.06,89.13,25.84,210.12 +1899,3,E06000030,2,54.44,100.81,25.84,111.41 +2225,3,E06000030,3,61.83,109.29,25.84,126.28 +2551,3,E06000030,4,73.82,130.52,25.84,130.52 +3203,4,E06000030,0,54.93,115.59,18.64,141.81 +4223,5,E06000030,1,48.92,113.53,25.84,123.09 +4859,5,E06000030,2,55.37,134.77,25.84,147.5 +5490,5,E06000030,3,61.83,170.85,25.84,185.7 +6028,5,E06000030,4,71.06,237.69,25.84,258.92 +3529,6,E06000030,0,54.93,266.94,18.64,290.78 +3939,7,E06000030,1,47.06,113.53,25.84,123.09 +5136,7,E06000030,2,54.44,134.77,25.84,147.5 +5716,7,E06000030,3,61.83,170.85,25.84,185.7 +6428,7,E06000030,4,73.82,237.69,25.84,258.92 +3855,8,E06000030,0,54.93,266.94,18.64,290.78 +6789,9,E06000030,1,48.92,141.94,25.84,153.86 +7115,9,E06000030,2,55.37,168.46,25.84,184.37 +7441,9,E06000030,3,61.83,213.57,25.84,232.15 +7767,9,E06000030,4,71.06,297.12,25.84,323.65 +8093,10,E06000030,0,54.93,262.16,18.64,286.02 +270,1,E08000008,1,51.68,93.39,25.84,116.72 +596,1,E08000008,2,59.06,107.19,25.84,134.77 +922,1,E08000008,3,65.51,119.9,25.84,145.37 +1248,1,E08000008,4,71.98,133.71,25.84,159.17 +2878,2,E08000008,0,55.97,239.54,18.64,342.01 +1574,3,E08000008,1,43.36,85.94,25.84,100.81 +1900,3,E08000008,2,53.52,94.47,25.84,113.53 +2226,3,E08000008,3,58.13,105.06,25.84,124.15 +2552,3,E08000008,4,55.37,118.85,25.84,133.71 +3204,4,E08000008,0,33.16,469.54,18.64,599.44 +4383,5,E08000008,1,51.68,102.94,25.84,112.47 +4953,5,E08000008,2,59.06,113.53,25.84,123.09 +5596,5,E08000008,3,65.51,136.89,25.84,148.56 +6344,5,E08000008,4,71.98,181.46,25.84,198.45 +3530,6,E08000008,0,55.97,203.78,18.64,222.84 +4495,7,E08000008,1,43.36,102.94,25.84,112.47 +5091,7,E08000008,2,53.52,113.53,25.84,123.09 +5771,7,E08000008,3,58.13,136.89,25.84,148.56 +6395,7,E08000008,4,55.37,181.46,25.84,198.45 +3856,8,E08000008,0,33.16,203.78,18.64,222.84 +6790,9,E08000008,1,51.68,128.67,25.84,140.6 +7116,9,E08000008,2,59.06,141.94,25.84,153.86 +7442,9,E08000008,3,65.51,171.11,25.84,185.69 +7768,9,E08000008,4,71.98,226.84,25.84,248.03 +8094,10,E08000008,0,55.97,364.96,18.64,396.26 +271,1,E07000199,1,52.6,98.69,25.84,124.15 +597,1,E07000199,2,58.13,116.72,25.84,136.89 +923,1,E07000199,3,69.2,132.64,25.84,160.24 +1249,1,E07000199,4,80.28,161.3,25.84,178.28 +2879,2,E07000199,0,39.38,245.49,18.64,382.53 +1575,3,E07000199,1,46.13,88.07,25.84,97.63 +1901,3,E07000199,2,49.84,94.47,25.84,102.94 +2227,3,E07000199,3,59.98,104,25.84,119.9 +2553,3,E07000199,4,68.28,127.34,25.84,127.34 +3205,4,E07000199,0,46.63,107.26,18.64,107.26 +4303,5,E07000199,1,52.6,102.94,25.84,112.47 +4913,5,E07000199,2,58.13,125.22,25.84,136.89 +5544,5,E07000199,3,69.2,147.5,25.84,160.24 +6196,5,E07000199,4,80.28,202.69,25.84,220.72 +3531,6,E07000199,0,39.38,227.63,18.64,247.88 +4524,7,E07000199,1,46.13,102.94,25.84,112.47 +5209,7,E07000199,2,49.84,125.22,25.84,136.89 +5800,7,E07000199,3,59.98,147.5,25.84,160.24 +6461,7,E07000199,4,68.28,202.69,25.84,220.72 +3857,8,E07000199,0,46.63,227.63,18.64,247.88 +6791,9,E07000199,1,52.6,128.67,25.84,140.6 +7117,9,E07000199,2,58.13,156.51,25.84,171.11 +7443,9,E07000199,3,69.2,184.37,25.84,200.32 +7769,9,E07000199,4,80.28,253.36,25.84,275.9 +8095,10,E07000199,0,39.38,472.22,18.64,515.43 +272,1,E07000215,1,57.21,123.09,25.84,176.15 +598,1,E07000215,2,71.06,146.43,25.84,186.77 +924,1,E07000215,3,81.2,161.3,25.84,203.75 +1250,1,E07000215,4,89.52,178.28,25.84,221.77 +2880,2,E07000215,0,62.17,268.13,18.64,344.4 +1576,3,E07000215,1,51.68,115.66,25.84,159.17 +1902,3,E07000215,2,62.75,129.46,25.84,145.37 +2228,3,E07000215,3,68.28,149.62,25.84,185.7 +2554,3,E07000215,4,72.9,184.64,25.84,194.19 +3206,4,E07000215,0,48.71,195.45,18.64,204.96 +4033,5,E07000215,1,57.21,164.48,25.84,179.34 +4648,5,E07000215,2,71.06,209.06,25.84,228.14 +5300,5,E07000215,3,81.2,304.55,25.84,332.14 +5985,5,E07000215,4,89.52,662.16,25.84,721.59 +3532,6,E07000215,0,62.17,743.63,18.64,810.38 +4100,7,E07000215,1,51.68,164.48,25.84,179.34 +4795,7,E07000215,2,62.75,209.06,25.84,228.14 +5400,7,E07000215,3,68.28,304.55,25.84,332.14 +6089,7,E07000215,4,72.9,662.16,25.84,721.59 +3858,8,E07000215,0,48.71,743.63,18.64,810.38 +6792,9,E07000215,1,57.21,205.6,25.84,224.18 +7118,9,E07000215,2,71.06,261.31,25.84,285.19 +7444,9,E07000215,3,81.2,380.68,25.84,415.17 +7770,9,E07000215,4,89.52,827.71,25.84,901.98 +8096,10,E07000215,0,62.17,473.7,18.64,516.92 +274,1,E07000045,1,48.92,107.19,25.84,140.08 +600,1,E07000045,2,55.37,120.97,25.84,144.31 +926,1,E07000045,3,61.83,141.13,25.84,161.3 +1252,1,E07000045,4,71.06,158.1,25.84,194.19 +2882,2,E07000045,0,54.93,231.2,18.64,358.7 +1578,3,E07000045,1,47.06,89.13,25.84,210.12 +1904,3,E07000045,2,54.44,100.81,25.84,111.41 +2230,3,E07000045,3,61.83,109.29,25.84,126.28 +2556,3,E07000045,4,73.82,130.52,25.84,130.52 +3208,4,E07000045,0,54.93,115.59,18.64,141.81 +4225,5,E07000045,1,48.92,113.53,25.84,123.09 +4861,5,E07000045,2,55.37,147.5,25.84,160.24 +5492,5,E07000045,3,61.83,176.15,25.84,191.01 +6030,5,E07000045,4,71.06,248.31,25.84,270.61 +3534,6,E07000045,0,54.93,278.86,18.64,303.89 +3941,7,E07000045,1,47.06,113.53,25.84,123.09 +5138,7,E07000045,2,54.44,147.5,25.84,160.24 +5718,7,E07000045,3,61.83,176.15,25.84,191.01 +6430,7,E07000045,4,73.82,248.31,25.84,270.61 +3860,8,E07000045,0,54.93,278.86,18.64,303.89 +6794,9,E07000045,1,48.92,141.94,25.84,153.86 +7120,9,E07000045,2,55.37,184.37,25.84,200.32 +7446,9,E07000045,3,61.83,220.21,25.84,238.77 +7772,9,E07000045,4,71.06,310.37,25.84,338.25 +8098,10,E07000045,0,54.93,661.42,18.64,720.99 +275,1,E06000020,1,52.6,98.69,25.84,124.15 +601,1,E06000020,2,58.13,116.72,25.84,136.89 +927,1,E06000020,3,69.2,132.64,25.84,160.24 +1253,1,E06000020,4,80.28,161.3,25.84,178.28 +2883,2,E06000020,0,39.38,245.49,18.64,382.53 +1579,3,E06000020,1,46.13,88.07,25.84,97.63 +1905,3,E06000020,2,49.84,94.47,25.84,102.94 +2231,3,E06000020,3,59.98,104,25.84,119.9 +2557,3,E06000020,4,68.28,127.34,25.84,127.34 +3209,4,E06000020,0,46.63,107.26,18.64,107.26 +4304,5,E06000020,1,52.6,102.94,25.84,112.47 +4914,5,E06000020,2,58.13,125.22,25.84,136.89 +5545,5,E06000020,3,69.2,142.18,25.84,154.93 +6197,5,E06000020,4,80.28,203.75,25.84,221.77 +3535,6,E06000020,0,39.38,228.81,18.64,249.07 +4525,7,E06000020,1,46.13,102.94,25.84,112.47 +5210,7,E06000020,2,49.84,125.22,25.84,136.89 +5801,7,E06000020,3,59.98,142.18,25.84,154.93 +6462,7,E06000020,4,68.28,203.75,25.84,221.77 +3861,8,E06000020,0,46.63,228.81,18.64,249.07 +6795,9,E06000020,1,52.6,128.67,25.84,140.6 +7121,9,E06000020,2,58.13,156.51,25.84,171.11 +7447,9,E06000020,3,69.2,177.73,25.84,193.64 +7773,9,E06000020,4,80.28,254.69,25.84,277.23 +8099,10,E06000020,0,39.38,521.38,18.64,569.06 +276,1,E07000076,1,54.44,118.85,25.84,148.56 +602,1,E07000076,2,64.59,142.18,25.84,167.67 +928,1,E07000076,3,71.06,155.98,25.84,180.4 +1254,1,E07000076,4,81.2,170.85,25.84,178.28 +2884,2,E07000076,0,36.26,226.42,18.64,423.05 +1580,3,E07000076,1,49.84,99.75,25.84,131.58 +1906,3,E07000076,2,58.13,117.78,25.84,132.64 +2232,3,E07000076,3,63.67,130.52,25.84,143.25 +2558,3,E07000076,4,71.06,148.56,25.84,159.17 +3210,4,E07000076,0,55.97,135.86,18.64,318.19 +4157,5,E07000076,1,54.44,111.41,25.84,120.97 +4738,5,E07000076,2,64.59,144.31,25.84,155.98 +5457,5,E07000076,3,71.06,170.85,25.84,185.7 +6167,5,E07000076,4,81.2,226.01,25.84,245.12 +3536,6,E07000076,0,36.26,251.45,18.64,275.3 +4274,7,E07000076,1,49.84,111.41,25.84,120.97 +5000,7,E07000076,2,58.13,144.31,25.84,155.98 +5643,7,E07000076,3,63.67,170.85,25.84,185.7 +6305,7,E07000076,4,71.06,226.01,25.84,245.12 +3862,8,E07000076,0,55.97,251.45,18.64,275.3 +6796,9,E07000076,1,54.44,139.27,25.84,151.21 +7122,9,E07000076,2,64.59,180.39,25.84,194.98 +7448,9,E07000076,3,71.06,213.57,25.84,232.15 +7774,9,E07000076,4,81.2,282.54,25.84,306.4 +8100,10,E07000076,0,36.26,314.32,18.64,344.12 +277,1,E07000093,1,57.21,123.09,25.84,176.15 +603,1,E07000093,2,71.06,146.43,25.84,186.77 +929,1,E07000093,3,81.2,161.3,25.84,203.75 +1255,1,E07000093,4,89.52,178.28,25.84,221.77 +2885,2,E07000093,0,62.17,268.13,18.64,344.4 +1581,3,E07000093,1,51.68,115.66,25.84,159.17 +1907,3,E07000093,2,62.75,129.46,25.84,145.37 +2233,3,E07000093,3,68.28,149.62,25.84,185.7 +2559,3,E07000093,4,72.9,184.64,25.84,194.19 +3211,4,E07000093,0,48.71,195.45,18.64,204.96 +4034,5,E07000093,1,57.21,136.89,25.84,148.56 +4649,5,E07000093,2,71.06,180.4,25.84,197.39 +5301,5,E07000093,3,81.2,214.35,25.84,234.52 +5986,5,E07000093,4,89.52,382.01,25.84,417.04 +3537,6,E07000093,0,62.17,429.02,18.64,468.35 +4101,7,E07000093,1,51.68,136.89,25.84,148.56 +4796,7,E07000093,2,62.75,180.4,25.84,197.39 +5401,7,E07000093,3,68.28,214.35,25.84,234.52 +6090,7,E07000093,4,72.9,382.01,25.84,417.04 +3863,8,E07000093,0,48.71,429.02,18.64,468.35 +6797,9,E07000093,1,57.21,171.11,25.84,185.69 +7123,9,E07000093,2,71.06,225.52,25.84,246.73 +7449,9,E07000093,3,81.2,267.95,25.84,293.15 +7775,9,E07000093,4,89.52,477.53,25.84,521.29 +8101,10,E07000093,0,62.17,379.86,18.64,414.12 +278,1,E07000083,1,48.92,107.19,25.84,140.08 +604,1,E07000083,2,55.37,120.97,25.84,144.31 +930,1,E07000083,3,61.83,141.13,25.84,161.3 +1256,1,E07000083,4,71.06,158.1,25.84,194.19 +2886,2,E07000083,0,54.93,231.2,18.64,358.7 +1582,3,E07000083,1,47.06,89.13,25.84,210.12 +1908,3,E07000083,2,54.44,100.81,25.84,111.41 +2234,3,E07000083,3,61.83,109.29,25.84,126.28 +2560,3,E07000083,4,73.82,130.52,25.84,130.52 +3212,4,E07000083,0,54.93,115.59,18.64,141.81 +4226,5,E07000083,1,48.92,113.53,25.84,123.09 +4862,5,E07000083,2,55.37,147.5,25.84,160.24 +5493,5,E07000083,3,61.83,176.15,25.84,191.01 +6031,5,E07000083,4,71.06,316.23,25.84,344.88 +3538,6,E07000083,0,54.93,355.12,18.64,387.3 +3942,7,E07000083,1,47.06,113.53,25.84,123.09 +5139,7,E07000083,2,54.44,147.5,25.84,160.24 +5719,7,E07000083,3,61.83,176.15,25.84,191.01 +6431,7,E07000083,4,73.82,316.23,25.84,344.88 +3864,8,E07000083,0,54.93,355.12,18.64,387.3 +6798,9,E07000083,1,48.92,141.94,25.84,153.86 +7124,9,E07000083,2,55.37,184.37,25.84,200.32 +7450,9,E07000083,3,61.83,220.21,25.84,238.77 +7776,9,E07000083,4,71.06,395.3,25.84,431.1 +8102,10,E07000083,0,54.93,394.77,18.64,430.5 +279,1,E07000114,1,57.21,123.09,25.84,176.15 +605,1,E07000114,2,71.06,146.43,25.84,186.77 +931,1,E07000114,3,81.2,161.3,25.84,203.75 +1257,1,E07000114,4,89.52,178.28,25.84,221.77 +2887,2,E07000114,0,62.17,268.13,18.64,344.4 +1583,3,E07000114,1,51.68,115.66,25.84,159.17 +1909,3,E07000114,2,62.75,129.46,25.84,145.37 +2235,3,E07000114,3,68.28,149.62,25.84,185.7 +2561,3,E07000114,4,72.9,184.64,25.84,194.19 +3213,4,E07000114,0,48.71,195.45,18.64,204.96 +4035,5,E07000114,1,57.21,97.63,25.84,107.19 +4650,5,E07000114,2,71.06,131.58,25.84,144.31 +5302,5,E07000114,3,81.2,164.48,25.84,179.34 +5987,5,E07000114,4,89.52,226.01,25.84,245.12 +3539,6,E07000114,0,62.17,251.45,18.64,275.3 +4102,7,E07000114,1,51.68,97.63,25.84,107.19 +4797,7,E07000114,2,62.75,131.58,25.84,144.31 +5402,7,E07000114,3,68.28,164.48,25.84,179.34 +6091,7,E07000114,4,72.9,226.01,25.84,245.12 +3865,8,E07000114,0,48.71,251.45,18.64,275.3 +6799,9,E07000114,1,57.21,122.03,25.84,133.98 +7125,9,E07000114,2,71.06,164.47,25.84,180.39 +7451,9,E07000114,3,81.2,205.6,25.84,224.18 +7777,9,E07000114,4,89.52,282.54,25.84,306.4 +8103,10,E07000114,0,62.17,497.55,18.64,542.24 +281,1,E07000102,1,54.44,118.85,25.84,148.56 +607,1,E07000102,2,64.59,142.18,25.84,167.67 +933,1,E07000102,3,71.06,155.98,25.84,180.4 +1259,1,E07000102,4,81.2,170.85,25.84,178.28 +2889,2,E07000102,0,36.26,226.42,18.64,423.05 +1585,3,E07000102,1,49.84,99.75,25.84,131.58 +1911,3,E07000102,2,58.13,117.78,25.84,132.64 +2237,3,E07000102,3,63.67,130.52,25.84,143.25 +2563,3,E07000102,4,71.06,148.56,25.84,159.17 +3215,4,E07000102,0,55.97,135.86,18.64,318.19 +4158,5,E07000102,1,54.44,170.85,25.84,185.7 +4739,5,E07000102,2,64.59,259.98,25.84,282.26 +5458,5,E07000102,3,71.06,383.08,25.84,417.04 +6168,5,E07000102,4,81.2,561.35,25.84,611.23 +3541,6,E07000102,0,36.26,630.42,18.64,686.44 +4275,7,E07000102,1,49.84,170.85,25.84,185.7 +5001,7,E07000102,2,58.13,259.98,25.84,282.26 +5644,7,E07000102,3,63.67,383.08,25.84,417.04 +6306,7,E07000102,4,71.06,561.35,25.84,611.23 +3867,8,E07000102,0,55.97,630.42,18.64,686.44 +6801,9,E07000102,1,54.44,213.57,25.84,232.15 +7127,9,E07000102,2,64.59,324.98,25.84,352.84 +7453,9,E07000102,3,71.06,478.85,25.84,521.29 +7779,9,E07000102,4,81.2,701.69,25.84,764.03 +8105,10,E07000102,0,36.26,275.59,18.64,299.44 +282,1,E06000034,1,54.44,118.85,25.84,148.56 +608,1,E06000034,2,64.59,142.18,25.84,167.67 +934,1,E06000034,3,71.06,155.98,25.84,180.4 +1260,1,E06000034,4,81.2,170.85,25.84,178.28 +2890,2,E06000034,0,36.26,226.42,18.64,423.05 +1586,3,E06000034,1,49.84,99.75,25.84,131.58 +1912,3,E06000034,2,58.13,117.78,25.84,132.64 +2238,3,E06000034,3,63.67,130.52,25.84,143.25 +2564,3,E06000034,4,71.06,148.56,25.84,159.17 +3216,4,E06000034,0,55.97,135.86,18.64,318.19 +4159,5,E06000034,1,54.44,134.77,25.84,147.5 +4740,5,E06000034,2,64.59,170.85,25.84,185.7 +5459,5,E06000034,3,71.06,203.75,25.84,221.77 +6169,5,E06000034,4,81.2,292.87,25.84,319.41 +3542,6,E06000034,0,36.26,328.92,18.64,358.7 +4276,7,E06000034,1,49.84,134.77,25.84,147.5 +5002,7,E06000034,2,58.13,170.85,25.84,185.7 +5645,7,E06000034,3,63.67,203.75,25.84,221.77 +6307,7,E06000034,4,71.06,292.87,25.84,319.41 +3868,8,E06000034,0,55.97,328.92,18.64,358.7 +6802,9,E06000034,1,54.44,168.46,25.84,184.37 +7128,9,E06000034,2,64.59,213.57,25.84,232.15 +7454,9,E06000034,3,71.06,254.69,25.84,277.23 +7780,9,E06000034,4,81.2,366.11,25.84,399.27 +8106,10,E06000034,0,36.26,1702.69,18.64,1857.59 +283,1,E07000115,1,57.21,123.09,25.84,176.15 +609,1,E07000115,2,71.06,146.43,25.84,186.77 +935,1,E07000115,3,81.2,161.3,25.84,203.75 +1261,1,E07000115,4,89.52,178.28,25.84,221.77 +2891,2,E07000115,0,62.17,268.13,18.64,344.4 +1587,3,E07000115,1,51.68,115.66,25.84,159.17 +1913,3,E07000115,2,62.75,129.46,25.84,145.37 +2239,3,E07000115,3,68.28,149.62,25.84,185.7 +2565,3,E07000115,4,72.9,184.64,25.84,194.19 +3217,4,E07000115,0,48.71,195.45,18.64,204.96 +4037,5,E07000115,1,57.21,136.89,25.84,148.56 +4652,5,E07000115,2,71.06,180.4,25.84,197.39 +5304,5,E07000115,3,81.2,206.94,25.84,226.01 +5989,5,E07000115,4,89.52,438.24,25.84,477.53 +3543,6,E07000115,0,62.17,492.18,18.64,536.27 +4104,7,E07000115,1,51.68,136.89,25.84,148.56 +4799,7,E07000115,2,62.75,180.4,25.84,197.39 +5404,7,E07000115,3,68.28,206.94,25.84,226.01 +6093,7,E07000115,4,72.9,438.24,25.84,477.53 +3869,8,E07000115,0,48.71,492.18,18.64,536.27 +6803,9,E07000115,1,57.21,171.11,25.84,185.69 +7129,9,E07000115,2,71.06,225.52,25.84,246.73 +7455,9,E07000115,3,81.2,258.65,25.84,282.54 +7781,9,E07000115,4,89.52,547.82,25.84,596.91 +8107,10,E07000115,0,62.17,521.38,18.64,569.06 +284,1,E06000027,1,48.92,107.19,25.84,140.08 +610,1,E06000027,2,55.37,120.97,25.84,144.31 +936,1,E06000027,3,61.83,141.13,25.84,161.3 +1262,1,E06000027,4,71.06,158.1,25.84,194.19 +2892,2,E06000027,0,54.93,231.2,18.64,358.7 +1588,3,E06000027,1,47.06,89.13,25.84,210.12 +1914,3,E06000027,2,54.44,100.81,25.84,111.41 +2240,3,E06000027,3,61.83,109.29,25.84,126.28 +2566,3,E06000027,4,73.82,130.52,25.84,130.52 +3218,4,E06000027,0,54.93,115.59,18.64,141.81 +4227,5,E06000027,1,48.92,109.29,25.84,118.85 +4863,5,E06000027,2,55.37,140.08,25.84,152.81 +5494,5,E06000027,3,61.83,164.48,25.84,179.34 +6032,5,E06000027,4,71.06,217.53,25.84,237.69 +3544,6,E06000027,0,54.93,244.3,18.64,266.94 +3943,7,E06000027,1,47.06,109.29,25.84,118.85 +5140,7,E06000027,2,54.44,140.08,25.84,152.81 +5720,7,E06000027,3,61.83,164.48,25.84,179.34 +6432,7,E06000027,4,73.82,217.53,25.84,237.69 +3870,8,E06000027,0,54.93,244.3,18.64,266.94 +6804,9,E06000027,1,48.92,136.63,25.84,148.56 +7130,9,E06000027,2,55.37,175.09,25.84,191 +7456,9,E06000027,3,61.83,205.6,25.84,224.18 +7782,9,E06000027,4,71.06,271.92,25.84,297.12 +8108,10,E06000027,0,54.93,284.53,18.64,309.82 +285,1,E07000046,1,48.92,107.19,25.84,140.08 +611,1,E07000046,2,55.37,120.97,25.84,144.31 +937,1,E07000046,3,61.83,141.13,25.84,161.3 +1263,1,E07000046,4,71.06,158.1,25.84,194.19 +2893,2,E07000046,0,54.93,231.2,18.64,358.7 +1589,3,E07000046,1,47.06,89.13,25.84,210.12 +1915,3,E07000046,2,54.44,100.81,25.84,111.41 +2241,3,E07000046,3,61.83,109.29,25.84,126.28 +2567,3,E07000046,4,73.82,130.52,25.84,130.52 +3219,4,E07000046,0,54.93,115.59,18.64,141.81 +4228,5,E07000046,1,48.92,97.63,25.84,107.19 +4864,5,E07000046,2,55.37,123.09,25.84,133.71 +5495,5,E07000046,3,61.83,147.5,25.84,160.24 +6033,5,E07000046,4,71.06,192.07,25.84,210.12 +3545,6,E07000046,0,54.93,215.7,18.64,235.95 +3944,7,E07000046,1,47.06,97.63,25.84,107.19 +5141,7,E07000046,2,54.44,123.09,25.84,133.71 +5721,7,E07000046,3,61.83,147.5,25.84,160.24 +6433,7,E07000046,4,73.82,192.07,25.84,210.12 +3871,8,E07000046,0,54.93,215.7,18.64,235.95 +6805,9,E07000046,1,48.92,122.03,25.84,133.98 +7131,9,E07000046,2,55.37,153.86,25.84,167.13 +7457,9,E07000046,3,61.83,184.37,25.84,200.32 +7783,9,E07000046,4,71.06,240.08,25.84,262.64 +8109,10,E07000046,0,54.93,286.02,18.64,311.34 +286,1,E09000030,1,65.51,145.37,25.84,197.39 +612,1,E09000030,2,77.51,157.04,25.84,192.07 +938,1,E09000030,3,83.97,166.61,25.84,226.01 +1264,1,E09000030,4,101.48,186.77,25.84,251.49 +2894,2,E09000030,0,70.47,317,18.64,502.91 +1590,3,E09000030,1,58.13,118.85,25.84,146.43 +1916,3,E09000030,2,63.67,139.02,25.84,175.09 +2242,3,E09000030,3,71.06,159.17,25.84,200.55 +2568,3,E09000030,4,83.05,259.98,25.84,261.04 +3220,4,E09000030,0,60.1,371.82,18.64,402.8 +3979,5,E09000030,1,65.51,317.29,25.84,345.93 +4594,5,E09000030,2,77.51,389.45,25.84,424.47 +5246,5,E09000030,3,83.97,472.21,25.84,514.66 +5931,5,E09000030,4,101.48,535.89,25.84,583.64 +3546,6,E09000030,0,70.47,600.65,18.64,655.45 +4193,7,E09000030,1,58.13,317.29,25.84,345.93 +4694,7,E09000030,2,63.67,389.45,25.84,424.47 +5346,7,E09000030,3,71.06,472.21,25.84,514.66 +5898,7,E09000030,4,83.05,535.89,25.84,583.64 +3872,8,E09000030,0,60.1,600.65,18.64,655.45 +6806,9,E09000030,1,65.51,396.59,25.84,432.43 +7132,9,E09000030,2,77.51,486.79,25.84,530.59 +7458,9,E09000030,3,83.97,590.27,25.84,643.34 +7784,9,E09000030,4,101.48,669.87,25.84,729.54 +8110,10,E09000030,0,70.47,259.21,18.64,284.53 +287,1,E08000009,1,51.68,93.39,25.84,116.72 +613,1,E08000009,2,59.06,107.19,25.84,134.77 +939,1,E08000009,3,65.51,119.9,25.84,145.37 +1265,1,E08000009,4,71.98,133.71,25.84,159.17 +2895,2,E08000009,0,55.97,239.54,18.64,342.01 +1591,3,E08000009,1,43.36,85.94,25.84,100.81 +1917,3,E08000009,2,53.52,94.47,25.84,113.53 +2243,3,E08000009,3,58.13,105.06,25.84,124.15 +2569,3,E08000009,4,55.37,118.85,25.84,133.71 +3221,4,E08000009,0,33.16,469.54,18.64,599.44 +4384,5,E08000009,1,51.68,124.15,25.84,134.77 +4954,5,E08000009,2,59.06,157.04,25.84,172.97 +5597,5,E08000009,3,65.51,192.07,25.84,210.12 +6345,5,E08000009,4,71.98,358.66,25.84,391.56 +3547,6,E08000009,0,55.97,402.8,18.64,439.74 +4496,7,E08000009,1,43.36,124.15,25.84,134.77 +5092,7,E08000009,2,53.52,157.04,25.84,172.97 +5772,7,E08000009,3,58.13,192.07,25.84,210.12 +6396,7,E08000009,4,55.37,358.66,25.84,391.56 +3873,8,E08000009,0,33.16,402.8,18.64,439.74 +6807,9,E08000009,1,51.68,155.2,25.84,168.46 +7133,9,E08000009,2,59.06,196.32,25.84,216.2 +7459,9,E08000009,3,65.51,240.08,25.84,262.64 +7785,9,E08000009,4,71.98,448.34,25.84,489.48 +8111,10,E08000009,0,55.97,940.26,18.32,1026.78 +288,1,E07000116,1,57.21,123.09,25.84,176.15 +614,1,E07000116,2,71.06,146.43,25.84,186.77 +940,1,E07000116,3,81.2,161.3,25.84,203.75 +1266,1,E07000116,4,89.52,178.28,25.84,221.77 +2896,2,E07000116,0,62.17,268.13,18.64,344.4 +1592,3,E07000116,1,51.68,115.66,25.84,159.17 +1918,3,E07000116,2,62.75,129.46,25.84,145.37 +2244,3,E07000116,3,68.28,149.62,25.84,185.7 +2570,3,E07000116,4,72.9,184.64,25.84,194.19 +3222,4,E07000116,0,48.71,195.45,18.64,204.96 +4038,5,E07000116,1,57.21,151.75,25.84,166.61 +4653,5,E07000116,2,71.06,202.69,25.84,220.72 +5305,5,E07000116,3,81.2,281.2,25.84,306.68 +5990,5,E07000116,4,89.52,528.46,25.84,575.13 +3548,6,E07000116,0,62.17,593.49,18.64,645.92 +4105,7,E07000116,1,51.68,151.75,25.84,166.61 +4800,7,E07000116,2,62.75,202.69,25.84,220.72 +5405,7,E07000116,3,68.28,281.2,25.84,306.68 +6094,7,E07000116,4,72.9,528.46,25.84,575.13 +3874,8,E07000116,0,48.71,593.49,18.64,645.92 +6808,9,E07000116,1,57.21,189.68,25.84,208.27 +7134,9,E07000116,2,71.06,253.36,25.84,275.9 +7460,9,E07000116,3,81.2,351.51,25.84,383.34 +7786,9,E07000116,4,89.52,660.57,25.84,718.92 +8112,10,E07000116,0,62.17,275.59,18.64,299.44 +289,1,E07000077,1,54.44,118.85,25.84,148.56 +615,1,E07000077,2,64.59,142.18,25.84,167.67 +941,1,E07000077,3,71.06,155.98,25.84,180.4 +1267,1,E07000077,4,81.2,170.85,25.84,178.28 +2897,2,E07000077,0,36.26,226.42,18.64,423.05 +1593,3,E07000077,1,49.84,99.75,25.84,131.58 +1919,3,E07000077,2,58.13,117.78,25.84,132.64 +2245,3,E07000077,3,63.67,130.52,25.84,143.25 +2571,3,E07000077,4,71.06,148.56,25.84,159.17 +3223,4,E07000077,0,55.97,135.86,18.64,318.19 +4160,5,E07000077,1,54.44,134.77,25.84,147.5 +4741,5,E07000077,2,64.59,176.15,25.84,191.01 +5460,5,E07000077,3,71.06,219.66,25.84,239.83 +6170,5,E07000077,4,81.2,393.68,25.84,428.71 +3549,6,E07000077,0,36.26,442.13,18.64,481.46 +4277,7,E07000077,1,49.84,134.77,25.84,147.5 +5003,7,E07000077,2,58.13,176.15,25.84,191.01 +5646,7,E07000077,3,63.67,219.66,25.84,239.83 +6308,7,E07000077,4,71.06,393.68,25.84,428.71 +3875,8,E07000077,0,55.97,442.13,18.64,481.46 +6809,9,E07000077,1,54.44,168.46,25.84,184.37 +7135,9,E07000077,2,64.59,220.21,25.84,238.77 +7461,9,E07000077,3,71.06,274.57,25.84,299.78 +7787,9,E07000077,4,81.2,492.12,25.84,535.89 +8113,10,E07000077,0,36.26,580.96,18.64,633.1 +290,1,E07000180,1,57.21,123.09,25.84,176.15 +616,1,E07000180,2,71.06,146.43,25.84,186.77 +942,1,E07000180,3,81.2,161.3,25.84,203.75 +1268,1,E07000180,4,89.52,178.28,25.84,221.77 +2898,2,E07000180,0,62.17,268.13,18.64,344.4 +1594,3,E07000180,1,51.68,115.66,25.84,159.17 +1920,3,E07000180,2,62.75,129.46,25.84,145.37 +2246,3,E07000180,3,68.28,149.62,25.84,185.7 +2572,3,E07000180,4,72.9,184.64,25.84,194.19 +3224,4,E07000180,0,48.71,195.45,18.64,204.96 +4039,5,E07000180,1,57.21,159.17,25.84,174.02 +4654,5,E07000180,2,71.06,192.07,25.84,210.12 +5306,5,E07000180,3,81.2,237.69,25.84,258.92 +5991,5,E07000180,4,89.52,393.68,25.84,428.71 +3550,6,E07000180,0,62.17,442.13,18.64,481.46 +4106,7,E07000180,1,51.68,159.17,25.84,174.02 +4801,7,E07000180,2,62.75,192.07,25.84,210.12 +5406,7,E07000180,3,68.28,237.69,25.84,258.92 +6095,7,E07000180,4,72.9,393.68,25.84,428.71 +3876,8,E07000180,0,48.71,442.13,18.64,481.46 +6810,9,E07000180,1,57.21,198.96,25.84,217.54 +7136,9,E07000180,2,71.06,240.08,25.84,262.64 +7462,9,E07000180,3,81.2,297.12,25.84,323.65 +7788,9,E07000180,4,89.52,492.12,25.84,535.89 +8114,10,E07000180,0,62.17,394.77,18.64,430.5 +291,1,E08000036,1,50.76,91.27,25.84,113.53 +617,1,E08000036,2,58.13,108.24,25.84,140.08 +943,1,E08000036,3,62.75,119.9,25.84,161.3 +1269,1,E08000036,4,72.9,144.31,25.84,178.28 +2899,2,E08000036,0,52.86,234.75,18.64,322.95 +1595,3,E08000036,1,46.13,81.71,25.84,92.33 +1921,3,E08000036,2,52.6,112.47,25.84,144.31 +2247,3,E08000036,3,56.29,104,25.84,113.53 +2573,3,E08000036,4,63.67,120.97,25.84,175.09 +3225,4,E08000036,0,51.82,160.88,18.64,190.67 +4409,5,E08000036,1,50.76,109.29,25.84,118.85 +4889,5,E08000036,2,58.13,125.22,25.84,136.89 +5520,5,E08000036,3,62.75,136.89,25.84,148.56 +6125,5,E08000036,4,72.9,192.07,25.84,210.12 +3551,6,E08000036,0,52.86,215.7,18.64,235.95 +4563,7,E08000036,1,46.13,109.29,25.84,118.85 +4831,7,E08000036,2,52.6,125.22,25.84,136.89 +5867,7,E08000036,3,56.29,136.89,25.84,148.56 +6223,7,E08000036,4,63.67,192.07,25.84,210.12 +3877,8,E08000036,0,51.82,215.7,18.64,235.95 +6811,9,E08000036,1,50.76,136.63,25.84,148.56 +7137,9,E08000036,2,52.6,156.51,25.84,171.11 +7463,9,E08000036,3,62.75,171.11,25.84,185.69 +7789,9,E08000036,4,72.9,240.08,25.84,262.64 +8115,10,E08000036,0,52.86,631.61,18.64,688.24 +292,1,E08000030,1,52.6,98.69,25.84,124.15 +618,1,E08000030,2,58.13,116.72,25.84,136.89 +944,1,E08000030,3,69.2,132.64,25.84,160.24 +1270,1,E08000030,4,80.28,161.3,25.84,178.28 +2900,2,E08000030,0,39.38,245.49,18.64,382.53 +1596,3,E08000030,1,46.13,88.07,25.84,97.63 +1922,3,E08000030,2,49.84,94.47,25.84,102.94 +2248,3,E08000030,3,59.98,104,25.84,119.9 +2574,3,E08000030,4,68.28,127.34,25.84,127.34 +3226,4,E08000030,0,46.63,107.26,18.64,107.26 +4305,5,E08000030,1,52.6,97.63,25.84,107.19 +4915,5,E08000030,2,58.13,119.9,25.84,130.52 +5546,5,E08000030,3,69.2,130.52,25.84,143.25 +6198,5,E08000030,4,80.28,192.07,25.84,210.12 +3552,6,E08000030,0,39.38,215.7,18.64,235.95 +4526,7,E08000030,1,46.13,97.63,25.84,107.19 +5211,7,E08000030,2,49.84,119.9,25.84,130.52 +5802,7,E08000030,3,59.98,130.52,25.84,143.25 +6463,7,E08000030,4,68.28,192.07,25.84,210.12 +3878,8,E08000030,0,46.63,215.7,18.64,235.95 +6812,9,E08000030,1,52.6,122.03,25.84,133.98 +7138,9,E08000030,2,58.13,149.9,25.84,163.15 +7464,9,E08000030,3,69.2,163.15,25.84,179.06 +7790,9,E08000030,4,80.28,240.08,25.84,262.64 +8116,10,E08000030,0,39.38,300.91,18.64,329.21 +293,1,E09000031,1,65.51,145.37,25.84,197.39 +619,1,E09000031,2,77.51,157.04,25.84,192.07 +945,1,E09000031,3,83.97,166.61,25.84,226.01 +1271,1,E09000031,4,101.48,186.77,25.84,251.49 +2901,2,E09000031,0,70.47,317,18.64,502.91 +1597,3,E09000031,1,58.13,118.85,25.84,146.43 +1923,3,E09000031,2,63.67,139.02,25.84,175.09 +2249,3,E09000031,3,71.06,159.17,25.84,200.55 +2575,3,E09000031,4,83.05,259.98,25.84,261.04 +3227,4,E09000031,0,60.1,371.82,18.64,402.8 +3980,5,E09000031,1,65.51,186.77,25.84,203.75 +4595,5,E09000031,2,77.51,237.69,25.84,258.92 +5247,5,E09000031,3,83.97,292.87,25.84,319.41 +5932,5,E09000031,4,101.48,356.55,25.84,388.39 +3553,6,E09000031,0,70.47,399.22,18.64,436.17 +4194,7,E09000031,1,58.13,186.77,25.84,203.75 +4695,7,E09000031,2,63.67,237.69,25.84,258.92 +5347,7,E09000031,3,71.06,292.87,25.84,319.41 +5899,7,E09000031,4,83.05,356.55,25.84,388.39 +3879,8,E09000031,0,60.1,399.22,18.64,436.17 +6813,9,E09000031,1,65.51,233.46,25.84,254.69 +7139,9,E09000031,2,77.51,297.12,25.84,323.65 +7465,9,E09000031,3,83.97,366.11,25.84,399.27 +7791,9,E09000031,4,101.48,445.68,25.84,485.5 +8117,10,E09000031,0,70.47,583.94,18.64,636.07 +294,1,E09000032,1,65.51,145.37,25.84,197.39 +620,1,E09000032,2,77.51,157.04,25.84,192.07 +946,1,E09000032,3,83.97,166.61,25.84,226.01 +1272,1,E09000032,4,101.48,186.77,25.84,251.49 +2902,2,E09000032,0,70.47,317,18.64,502.91 +1598,3,E09000032,1,58.13,118.85,25.84,146.43 +1924,3,E09000032,2,63.67,139.02,25.84,175.09 +2250,3,E09000032,3,71.06,159.17,25.84,200.55 +2576,3,E09000032,4,83.05,259.98,25.84,261.04 +3228,4,E09000032,0,60.1,371.82,18.64,402.8 +3981,5,E09000032,1,65.51,292.87,25.84,319.41 +4596,5,E09000032,2,77.51,365.04,25.84,397.93 +5248,5,E09000032,3,83.97,453.12,25.84,494.49 +5933,5,E09000032,4,101.48,670.66,25.84,732.19 +3554,6,E09000032,0,70.47,753.18,18.64,822.3 +4195,7,E09000032,1,58.13,292.87,25.84,319.41 +4696,7,E09000032,2,63.67,365.04,25.84,397.93 +5348,7,E09000032,3,71.06,453.12,25.84,494.49 +5900,7,E09000032,4,83.05,670.66,25.84,732.19 +3880,8,E09000032,0,60.1,753.18,18.64,822.3 +6814,9,E09000032,1,65.51,366.11,25.84,399.27 +7140,9,E09000032,2,77.51,456.3,25.84,497.43 +7466,9,E09000032,3,83.97,566.39,25.84,618.12 +7792,9,E09000032,4,101.48,838.3,25.84,915.25 +8118,10,E09000032,0,70.47,631.61,18.64,688.24 +295,1,E06000007,1,51.68,93.39,25.84,116.72 +621,1,E06000007,2,59.06,107.19,25.84,134.77 +947,1,E06000007,3,65.51,119.9,25.84,145.37 +1273,1,E06000007,4,71.98,133.71,25.84,159.17 +2903,2,E06000007,0,55.97,239.54,18.64,342.01 +1599,3,E06000007,1,43.36,85.94,25.84,100.81 +1925,3,E06000007,2,53.52,94.47,25.84,113.53 +2251,3,E06000007,3,58.13,105.06,25.84,124.15 +2577,3,E06000007,4,55.37,118.85,25.84,133.71 +3229,4,E06000007,0,33.16,469.54,18.64,599.44 +4385,5,E06000007,1,51.68,102.94,25.84,112.47 +4955,5,E06000007,2,59.06,125.22,25.84,136.89 +5598,5,E06000007,3,65.51,153.86,25.84,167.67 +6346,5,E06000007,4,71.98,214.35,25.84,234.52 +3555,6,E06000007,0,55.97,240.72,18.64,263.37 +4497,7,E06000007,1,43.36,102.94,25.84,112.47 +5093,7,E06000007,2,53.52,125.22,25.84,136.89 +5773,7,E06000007,3,58.13,153.86,25.84,167.67 +6397,7,E06000007,4,55.37,214.35,25.84,234.52 +3881,8,E06000007,0,33.16,240.72,18.64,263.37 +6815,9,E06000007,1,51.68,128.67,25.84,140.6 +7141,9,E06000007,2,59.06,156.51,25.84,171.11 +7467,9,E06000007,3,65.51,192.33,25.84,209.57 +7793,9,E06000007,4,71.98,267.95,25.84,293.15 +8119,10,E06000007,0,55.97,756.74,18.64,825.27 +296,1,E07000222,1,52.6,98.69,25.84,124.15 +622,1,E07000222,2,58.13,116.72,25.84,136.89 +948,1,E07000222,3,69.2,132.64,25.84,160.24 +1274,1,E07000222,4,80.28,161.3,25.84,178.28 +2904,2,E07000222,0,39.38,245.49,18.64,382.53 +1600,3,E07000222,1,46.13,88.07,25.84,97.63 +1926,3,E07000222,2,49.84,94.47,25.84,102.94 +2252,3,E07000222,3,59.98,104,25.84,119.9 +2578,3,E07000222,4,68.28,127.34,25.84,127.34 +3230,4,E07000222,0,46.63,107.26,18.64,107.26 +4306,5,E07000222,1,52.6,130.52,25.84,143.25 +4916,5,E07000222,2,58.13,164.48,25.84,179.34 +5547,5,E07000222,3,69.2,192.07,25.84,210.12 +6199,5,E07000222,4,80.28,337.44,25.84,368.22 +3556,6,E07000222,0,39.38,378.95,18.64,413.53 +4527,7,E07000222,1,46.13,130.52,25.84,143.25 +5212,7,E07000222,2,49.84,164.48,25.84,179.34 +5803,7,E07000222,3,59.98,192.07,25.84,210.12 +6464,7,E07000222,4,68.28,337.44,25.84,368.22 +3882,8,E07000222,0,46.63,378.95,18.64,413.53 +6816,9,E07000222,1,52.6,163.15,25.84,179.06 +7142,9,E07000222,2,58.13,205.6,25.84,224.18 +7468,9,E07000222,3,69.2,240.08,25.84,262.64 +7794,9,E07000222,4,80.28,421.8,25.84,460.26 +8120,10,E07000222,0,39.38,792.49,18.64,863.99 +297,1,E07000103,1,54.44,118.85,25.84,148.56 +623,1,E07000103,2,64.59,142.18,25.84,167.67 +949,1,E07000103,3,71.06,155.98,25.84,180.4 +1275,1,E07000103,4,81.2,170.85,25.84,178.28 +2905,2,E07000103,0,36.26,226.42,18.64,423.05 +1601,3,E07000103,1,49.84,99.75,25.84,131.58 +1927,3,E07000103,2,58.13,117.78,25.84,132.64 +2253,3,E07000103,3,63.67,130.52,25.84,143.25 +2579,3,E07000103,4,71.06,148.56,25.84,159.17 +3231,4,E07000103,0,55.97,135.86,18.64,318.19 +4161,5,E07000103,1,54.44,170.85,25.84,185.7 +4742,5,E07000103,2,64.59,227.08,25.84,246.18 +5461,5,E07000103,3,71.06,281.2,25.84,306.68 +6171,5,E07000103,4,81.2,561.35,25.84,611.23 +3557,6,E07000103,0,36.26,630.42,18.64,686.44 +4278,7,E07000103,1,49.84,170.85,25.84,185.7 +5004,7,E07000103,2,58.13,227.08,25.84,246.18 +5647,7,E07000103,3,63.67,281.2,25.84,306.68 +6309,7,E07000103,4,71.06,561.35,25.84,611.23 +3883,8,E07000103,0,55.97,630.42,18.64,686.44 +6817,9,E07000103,1,54.44,213.57,25.84,232.15 +7143,9,E07000103,2,64.59,283.85,25.84,307.73 +7469,9,E07000103,3,71.06,351.51,25.84,383.34 +7795,9,E07000103,4,81.2,701.69,25.84,764.03 +8121,10,E07000103,0,36.26,333.68,18.64,363.48 +299,1,E07000216,1,57.21,123.09,25.84,176.15 +625,1,E07000216,2,71.06,146.43,25.84,186.77 +951,1,E07000216,3,81.2,161.3,25.84,203.75 +1277,1,E07000216,4,89.52,178.28,25.84,221.77 +2907,2,E07000216,0,62.17,268.13,18.64,344.4 +1603,3,E07000216,1,51.68,115.66,25.84,159.17 +1929,3,E07000216,2,62.75,129.46,25.84,145.37 +2255,3,E07000216,3,68.28,149.62,25.84,185.7 +2581,3,E07000216,4,72.9,184.64,25.84,194.19 +3233,4,E07000216,0,48.71,195.45,18.64,204.96 +4040,5,E07000216,1,57.21,174.02,25.84,188.88 +4655,5,E07000216,2,71.06,223.9,25.84,245.12 +5307,5,E07000216,3,81.2,304.55,25.84,332.14 +5992,5,E07000216,4,89.52,561.35,25.84,611.23 +3559,6,E07000216,0,62.17,630.42,18.64,686.44 +4107,7,E07000216,1,51.68,174.02,25.84,188.88 +4802,7,E07000216,2,62.75,223.9,25.84,245.12 +5407,7,E07000216,3,68.28,304.55,25.84,332.14 +6096,7,E07000216,4,72.9,561.35,25.84,611.23 +3885,8,E07000216,0,48.71,630.42,18.64,686.44 +6819,9,E07000216,1,57.21,217.54,25.84,236.12 +7145,9,E07000216,2,71.06,279.88,25.84,306.4 +7471,9,E07000216,3,81.2,380.68,25.84,415.17 +7797,9,E07000216,4,89.52,701.69,25.84,764.03 +8123,10,E07000216,0,62.17,394.77,18.64,430.5 +300,1,E07000065,1,57.21,123.09,25.84,176.15 +626,1,E07000065,2,71.06,146.43,25.84,186.77 +952,1,E07000065,3,81.2,161.3,25.84,203.75 +1278,1,E07000065,4,89.52,178.28,25.84,221.77 +2908,2,E07000065,0,62.17,268.13,18.64,344.4 +1604,3,E07000065,1,51.68,115.66,25.84,159.17 +1930,3,E07000065,2,62.75,129.46,25.84,145.37 +2256,3,E07000065,3,68.28,149.62,25.84,185.7 +2582,3,E07000065,4,72.9,184.64,25.84,194.19 +3234,4,E07000065,0,48.71,195.45,18.64,204.96 +4041,5,E07000065,1,57.21,134.77,25.84,147.5 +4656,5,E07000065,2,71.06,176.15,25.84,191.01 +5308,5,E07000065,3,81.2,209.06,25.84,228.14 +5993,5,E07000065,4,89.52,377.78,25.84,411.74 +3560,6,E07000065,0,62.17,424.25,18.64,462.37 +4108,7,E07000065,1,51.68,134.77,25.84,147.5 +4803,7,E07000065,2,62.75,176.15,25.84,191.01 +5408,7,E07000065,3,68.28,209.06,25.84,228.14 +6097,7,E07000065,4,72.9,377.78,25.84,411.74 +3886,8,E07000065,0,48.71,424.25,18.64,462.37 +6820,9,E07000065,1,57.21,168.46,25.84,184.37 +7146,9,E07000065,2,71.06,220.21,25.84,238.77 +7472,9,E07000065,3,81.2,261.31,25.84,285.19 +7798,9,E07000065,4,89.52,472.22,25.84,514.66 +8124,10,E07000065,0,62.17,262.16,18.64,286.02 +302,1,E07000241,1,54.44,118.85,25.84,148.56 +628,1,E07000241,2,64.59,142.18,25.84,167.67 +954,1,E07000241,3,71.06,155.98,25.84,180.4 +1280,1,E07000241,4,81.2,170.85,25.84,178.28 +2910,2,E07000241,0,36.26,226.42,18.64,423.05 +1606,3,E07000241,1,49.84,99.75,25.84,131.58 +1932,3,E07000241,2,58.13,117.78,25.84,132.64 +2258,3,E07000241,3,63.67,130.52,25.84,143.25 +2584,3,E07000241,4,71.06,148.56,25.84,159.17 +3236,4,E07000241,0,55.97,135.86,18.64,318.19 +4163,5,E07000241,1,54.44,153.86,25.84,168.73 +4744,5,E07000241,2,64.59,192.07,25.84,210.12 +5463,5,E07000241,3,71.06,270.61,25.84,295.01 +6173,5,E07000241,4,81.2,404.3,25.84,440.37 +3562,6,E07000241,0,36.26,454.05,18.64,494.54 +4280,7,E07000241,1,49.84,153.86,25.84,168.73 +5006,7,E07000241,2,58.13,192.07,25.84,210.12 +5649,7,E07000241,3,63.67,270.61,25.84,295.01 +6311,7,E07000241,4,71.06,404.3,25.84,440.37 +3888,8,E07000241,0,55.97,454.05,18.64,494.54 +6822,9,E07000241,1,54.44,192.33,25.84,210.91 +7148,9,E07000241,2,64.59,240.08,25.84,262.64 +7474,9,E07000241,3,71.06,338.25,25.84,368.76 +7800,9,E07000241,4,81.2,505.39,25.84,550.49 +8126,10,E07000241,0,36.26,694.16,18.64,756.74 +303,1,E06000037,1,57.21,123.09,25.84,176.15 +629,1,E06000037,2,71.06,146.43,25.84,186.77 +955,1,E06000037,3,81.2,161.3,25.84,203.75 +1281,1,E06000037,4,89.52,178.28,25.84,221.77 +2911,2,E06000037,0,62.17,268.13,18.64,344.4 +1607,3,E06000037,1,51.68,115.66,25.84,159.17 +1933,3,E06000037,2,62.75,129.46,25.84,145.37 +2259,3,E06000037,3,68.28,149.62,25.84,185.7 +2585,3,E06000037,4,72.9,184.64,25.84,194.19 +3237,4,E06000037,0,48.71,195.45,18.64,204.96 +4042,5,E06000037,1,57.21,142.18,25.84,154.93 +4657,5,E06000037,2,71.06,180.4,25.84,197.39 +5309,5,E06000037,3,81.2,214.35,25.84,234.52 +5994,5,E06000037,4,89.52,393.68,25.84,428.71 +3563,6,E06000037,0,62.17,442.13,18.64,481.46 +4109,7,E06000037,1,51.68,142.18,25.84,154.93 +4804,7,E06000037,2,62.75,180.4,25.84,197.39 +5409,7,E06000037,3,68.28,214.35,25.84,234.52 +6098,7,E06000037,4,72.9,393.68,25.84,428.71 +3889,8,E06000037,0,48.71,442.13,18.64,481.46 +6823,9,E06000037,1,57.21,177.73,25.84,193.64 +7149,9,E06000037,2,71.06,225.52,25.84,246.73 +7475,9,E06000037,3,81.2,267.95,25.84,293.15 +7801,9,E06000037,4,89.52,492.12,25.84,535.89 +8127,10,E06000037,0,62.17,505.01,18.64,551.18 +304,1,E07000047,1,48.92,107.19,25.84,140.08 +630,1,E07000047,2,55.37,120.97,25.84,144.31 +956,1,E07000047,3,61.83,141.13,25.84,161.3 +1282,1,E07000047,4,71.06,158.1,25.84,194.19 +2912,2,E07000047,0,54.93,231.2,18.64,358.7 +1608,3,E07000047,1,47.06,89.13,25.84,210.12 +1934,3,E07000047,2,54.44,100.81,25.84,111.41 +2260,3,E07000047,3,61.83,109.29,25.84,126.28 +2586,3,E07000047,4,73.82,130.52,25.84,130.52 +3238,4,E07000047,0,54.93,115.59,18.64,141.81 +4229,5,E07000047,1,48.92,102.94,25.84,112.47 +4865,5,E07000047,2,55.37,127.34,25.84,140.08 +5496,5,E07000047,3,61.83,158.1,25.84,172.97 +6034,5,E07000047,4,71.06,219.66,25.84,239.83 +3564,6,E07000047,0,54.93,246.68,18.64,269.32 +3945,7,E07000047,1,47.06,102.94,25.84,112.47 +5142,7,E07000047,2,54.44,127.34,25.84,140.08 +5722,7,E07000047,3,61.83,158.1,25.84,172.97 +6434,7,E07000047,4,73.82,219.66,25.84,239.83 +3890,8,E07000047,0,54.93,246.68,18.64,269.32 +6824,9,E07000047,1,48.92,128.67,25.84,140.6 +7150,9,E07000047,2,55.37,159.17,25.84,175.09 +7476,9,E07000047,3,61.83,197.62,25.84,216.2 +7802,9,E07000047,4,71.06,274.57,25.84,299.78 +8128,10,E07000047,0,54.93,248.76,18.64,269.62 +306,1,E07000127,1,51.68,93.39,25.84,116.72 +632,1,E07000127,2,59.06,107.19,25.84,134.77 +958,1,E07000127,3,65.51,119.9,25.84,145.37 +1284,1,E07000127,4,71.98,133.71,25.84,159.17 +2914,2,E07000127,0,55.97,239.54,18.64,342.01 +1610,3,E07000127,1,43.36,85.94,25.84,100.81 +1936,3,E07000127,2,53.52,94.47,25.84,113.53 +2262,3,E07000127,3,58.13,105.06,25.84,124.15 +2588,3,E07000127,4,55.37,118.85,25.84,133.71 +3240,4,E07000127,0,33.16,469.54,18.64,599.44 +4386,5,E07000127,1,51.68,102.94,25.84,112.47 +4956,5,E07000127,2,59.06,134.77,25.84,147.5 +5599,5,E07000127,3,65.51,147.5,25.84,160.24 +6347,5,E07000127,4,71.98,214.35,25.84,234.52 +3566,6,E07000127,0,55.97,240.72,18.64,263.37 +4498,7,E07000127,1,43.36,102.94,25.84,112.47 +5094,7,E07000127,2,53.52,134.77,25.84,147.5 +5774,7,E07000127,3,58.13,147.5,25.84,160.24 +6398,7,E07000127,4,55.37,214.35,25.84,234.52 +3892,8,E07000127,0,33.16,240.72,18.64,263.37 +6826,9,E07000127,1,51.68,128.67,25.84,140.6 +7152,9,E07000127,2,59.06,168.46,25.84,184.37 +7478,9,E07000127,3,65.51,184.37,25.84,200.32 +7804,9,E07000127,4,71.98,267.95,25.84,293.15 +8130,10,E07000127,0,55.97,269.62,18.64,294.95 +307,1,E07000142,1,51.68,99.75,25.84,122.03 +633,1,E07000142,2,61.83,114.6,25.84,129.46 +959,1,E07000142,3,68.28,126.28,25.84,137.95 +1285,1,E07000142,4,75.67,158.1,25.84,166.61 +2915,2,E07000142,0,51.82,240.72,18.64,361.1 +1611,3,E07000142,1,46.13,90.21,25.84,107.19 +1937,3,E07000142,2,52.6,96.56,25.84,108.24 +2263,3,E07000142,3,58.13,104,25.84,118.85 +2589,3,E07000142,4,63.67,122.03,25.84,122.03 +3241,4,E07000142,0,49.74,114.39,18.64,123.94 +4350,5,E07000142,1,51.68,84.89,25.84,92.33 +5046,5,E07000142,2,61.83,109.29,25.84,118.85 +5689,5,E07000142,3,68.28,129.46,25.84,142.18 +6264,5,E07000142,4,75.67,192.07,25.84,210.12 +3567,6,E07000142,0,51.82,215.7,18.64,235.95 +4450,7,E07000142,1,46.13,84.89,25.84,92.33 +5186,7,E07000142,2,52.6,109.29,25.84,118.85 +5847,7,E07000142,3,58.13,129.46,25.84,142.18 +6508,7,E07000142,4,63.67,192.07,25.84,210.12 +3893,8,E07000142,0,49.74,215.7,18.64,235.95 +6827,9,E07000142,1,51.68,106.13,25.84,115.39 +7153,9,E07000142,2,61.83,136.63,25.84,148.56 +7479,9,E07000142,3,68.28,161.83,25.84,177.73 +7805,9,E07000142,4,75.67,240.08,25.84,262.64 +8131,10,E07000142,0,51.82,239.85,18.64,260.68 +243,1,E06000062,1,51.68,99.75,25.84,122.03 +569,1,E06000062,2,61.83,114.6,25.84,129.46 +895,1,E06000062,3,68.28,126.28,25.84,137.95 +1221,1,E06000062,4,75.67,158.1,25.84,166.61 +2851,2,E06000062,0,51.82,240.72,18.64,361.1 +1547,3,E06000062,1,46.13,90.21,25.84,107.19 +1873,3,E06000062,2,52.6,96.56,25.84,108.24 +2199,3,E06000062,3,58.13,104,25.84,118.85 +2525,3,E06000062,4,63.67,122.03,25.84,122.03 +3177,4,E06000062,0,49.74,114.39,18.64,123.94 +4348,5,E06000062,1,51.68,125.22,25.84,136.89 +5044,5,E06000062,2,61.83,153.86,25.84,168.73 +5687,5,E06000062,3,68.28,184.64,25.84,201.61 +6262,5,E06000062,4,75.67,292.87,25.84,319.41 +3503,6,E06000062,0,51.82,328.92,18.64,358.7 +4448,7,E06000062,1,46.13,125.22,25.84,136.89 +5184,7,E06000062,2,52.6,153.86,25.84,168.73 +5845,7,E06000062,3,58.13,184.64,25.84,201.61 +6506,7,E06000062,4,63.67,292.87,25.84,319.41 +3829,8,E06000062,0,49.74,328.92,18.64,358.7 +6763,9,E06000062,1,51.68,156.51,25.84,171.11 +7089,9,E06000062,2,61.83,192.33,25.84,210.91 +7415,9,E06000062,3,68.28,230.81,25.84,252.02 +7741,9,E06000062,4,75.67,366.11,25.84,399.27 +8067,10,E06000062,0,51.82,254.72,18.64,278.57 +308,1,E07000181,1,57.21,123.09,25.84,176.15 +634,1,E07000181,2,71.06,146.43,25.84,186.77 +960,1,E07000181,3,81.2,161.3,25.84,203.75 +1286,1,E07000181,4,89.52,178.28,25.84,221.77 +2916,2,E07000181,0,62.17,268.13,18.64,344.4 +1612,3,E07000181,1,51.68,115.66,25.84,159.17 +1938,3,E07000181,2,62.75,129.46,25.84,145.37 +2264,3,E07000181,3,68.28,149.62,25.84,185.7 +2590,3,E07000181,4,72.9,184.64,25.84,194.19 +3242,4,E07000181,0,48.71,195.45,18.64,204.96 +4043,5,E07000181,1,57.21,147.5,25.84,160.24 +4658,5,E07000181,2,71.06,181.46,25.84,198.45 +5310,5,E07000181,3,81.2,226.01,25.84,245.12 +5995,5,E07000181,4,89.52,399,25.84,436.13 +3568,6,E07000181,0,62.17,448.09,18.64,489.79 +4110,7,E07000181,1,51.68,147.5,25.84,160.24 +4805,7,E07000181,2,62.75,181.46,25.84,198.45 +5410,7,E07000181,3,68.28,226.01,25.84,245.12 +6099,7,E07000181,4,72.9,399,25.84,436.13 +3894,8,E07000181,0,48.71,448.09,18.64,489.79 +6828,9,E07000181,1,57.21,184.37,25.84,200.32 +7154,9,E07000181,2,71.06,226.84,25.84,248.03 +7480,9,E07000181,3,81.2,282.54,25.84,306.4 +7806,9,E07000181,4,89.52,498.75,25.84,545.17 +8132,10,E07000181,0,62.17,239.85,18.64,260.68 +254,1,E07000245,1,54.44,118.85,25.84,148.56 +580,1,E07000245,2,64.59,142.18,25.84,167.67 +906,1,E07000245,3,71.06,155.98,25.84,180.4 +1232,1,E07000245,4,81.2,170.85,25.84,178.28 +2862,2,E07000245,0,36.26,226.42,18.64,423.05 +1558,3,E07000245,1,49.84,99.75,25.84,131.58 +1884,3,E07000245,2,58.13,117.78,25.84,132.64 +2210,3,E07000245,3,63.67,130.52,25.84,143.25 +2536,3,E07000245,4,71.06,148.56,25.84,159.17 +3188,4,E07000245,0,55.97,135.86,18.64,318.19 +4154,5,E07000245,1,54.44,125.22,25.84,136.89 +4735,5,E07000245,2,64.59,147.5,25.84,160.24 +5454,5,E07000245,3,71.06,181.46,25.84,198.45 +6164,5,E07000245,4,81.2,332.14,25.84,361.84 +3514,6,E07000245,0,36.26,373.01,18.64,406.37 +4271,7,E07000245,1,49.84,125.22,25.84,136.89 +4997,7,E07000245,2,58.13,147.5,25.84,160.24 +5640,7,E07000245,3,63.67,181.46,25.84,198.45 +6302,7,E07000245,4,71.06,332.14,25.84,361.84 +3840,8,E07000245,0,55.97,373.01,18.64,406.37 +6774,9,E07000245,1,54.44,156.51,25.84,171.11 +7100,9,E07000245,2,64.59,184.37,25.84,200.32 +7426,9,E07000245,3,71.06,226.84,25.84,248.03 +7752,9,E07000245,4,81.2,415.17,25.84,452.31 +8078,10,E07000245,0,36.26,284.53,18.64,309.82 +310,1,E09000033,1,65.51,145.37,25.84,197.39 +636,1,E09000033,2,77.51,157.04,25.84,192.07 +962,1,E09000033,3,83.97,166.61,25.84,226.01 +1288,1,E09000033,4,101.48,186.77,25.84,251.49 +2918,2,E09000033,0,70.47,317,18.64,502.91 +1614,3,E09000033,1,58.13,118.85,25.84,146.43 +1940,3,E09000033,2,63.67,139.02,25.84,175.09 +2266,3,E09000033,3,71.06,159.17,25.84,200.55 +2592,3,E09000033,4,83.05,259.98,25.84,261.04 +3244,4,E09000033,0,60.1,371.82,18.64,402.8 +3982,5,E09000033,1,65.51,438.24,25.84,477.53 +4597,5,E09000033,2,77.51,631.39,25.84,689.74 +5249,5,E09000033,3,83.97,923.2,25.84,1007.03 +5934,5,E09000033,4,101.48,2253.89,25.84,2458.69 +3570,6,E09000033,0,70.47,2531.21,18.64,2761.21 +4196,7,E09000033,1,58.13,438.24,25.84,477.53 +4697,7,E09000033,2,63.67,631.39,25.84,689.74 +5349,7,E09000033,3,71.06,923.2,25.84,1007.03 +5901,7,E09000033,4,83.05,2253.89,25.84,2458.69 +3896,8,E09000033,0,60.1,2531.21,18.64,2761.21 +6830,9,E09000033,1,65.51,547.82,25.84,596.91 +7156,9,E09000033,2,77.51,789.25,25.84,862.19 +7482,9,E09000033,3,83.97,1154.01,25.84,1258.8 +7808,9,E09000033,4,101.48,2817.36,25.84,3073.38 +8134,10,E09000033,0,70.47,314.32,18.64,344.12 +8176,1,E06000064,1,51.68,93.39,25.84,116.72 +8177,1,E06000064,2,59.06,107.19,25.84,134.77 +8178,1,E06000064,3,65.51,119.9,25.84,145.37 +8179,1,E06000064,4,71.98,133.71,25.84,159.17 +8184,2,E06000064,0,55.97,239.54,18.64,342.01 +8180,3,E06000064,1,43.36,85.94,25.84,100.81 +8181,3,E06000064,2,53.52,94.47,25.84,113.53 +8182,3,E06000064,3,58.13,105.06,25.84,124.15 +8183,3,E06000064,4,55.37,118.85,25.84,133.71 +8185,4,E06000064,0,33.16,469.54,18.64,599.44 +8188,5,E06000064,1,51.68,94.47,25.84,101.88 +8190,5,E06000064,2,59.06,114.6,25.84,124.15 +8192,5,E06000064,3,65.51,130.52,25.84,143.25 +8194,5,E06000064,4,71.98,202.69,25.84,220.72 +8186,6,E06000064,0,55.97,227.63,18.64,247.88 +8189,7,E06000064,1,43.36,94.47,25.84,101.88 +8191,7,E06000064,2,53.52,114.6,25.84,124.15 +8193,7,E06000064,3,58.13,130.52,25.84,143.25 +8195,7,E06000064,4,55.37,202.69,25.84,220.72 +8187,8,E06000064,0,33.16,227.63,18.64,247.88 +8196,9,E06000064,1,51.68,118.06,25.84,127.34 +8197,9,E06000064,2,59.06,143.25,25.84,155.2 +8198,9,E06000064,3,65.51,163.15,25.84,179.06 +8199,9,E06000064,4,71.98,253.36,25.84,275.9 +8200,10,E06000064,0,55.97,473.7,18.64,516.92 +312,1,E08000010,1,51.68,93.39,25.84,116.72 +638,1,E08000010,2,59.06,107.19,25.84,134.77 +964,1,E08000010,3,65.51,119.9,25.84,145.37 +1290,1,E08000010,4,71.98,133.71,25.84,159.17 +2920,2,E08000010,0,55.97,239.54,18.64,342.01 +1616,3,E08000010,1,43.36,85.94,25.84,100.81 +1942,3,E08000010,2,53.52,94.47,25.84,113.53 +2268,3,E08000010,3,58.13,105.06,25.84,124.15 +2594,3,E08000010,4,55.37,118.85,25.84,133.71 +3246,4,E08000010,0,33.16,469.54,18.64,599.44 +4387,5,E08000010,1,51.68,92.33,25.84,99.75 +4957,5,E08000010,2,59.06,109.29,25.84,118.85 +5600,5,E08000010,3,65.51,130.52,25.84,143.25 +6348,5,E08000010,4,71.98,181.46,25.84,198.45 +3572,6,E08000010,0,55.97,203.78,18.64,222.84 +4499,7,E08000010,1,43.36,92.33,25.84,99.75 +5095,7,E08000010,2,53.52,109.29,25.84,118.85 +5775,7,E08000010,3,58.13,130.52,25.84,143.25 +6399,7,E08000010,4,55.37,181.46,25.84,198.45 +3898,8,E08000010,0,33.16,203.78,18.64,222.84 +6832,9,E08000010,1,51.68,115.39,25.84,124.69 +7158,9,E08000010,2,59.06,136.63,25.84,148.56 +7484,9,E08000010,3,65.51,163.15,25.84,179.06 +7810,9,E08000010,4,71.98,226.84,25.84,248.03 +8136,10,E08000010,0,55.97,394.77,18.64,430.5 +313,1,E06000054,1,48.92,107.19,25.84,140.08 +639,1,E06000054,2,55.37,120.97,25.84,144.31 +965,1,E06000054,3,61.83,141.13,25.84,161.3 +1291,1,E06000054,4,71.06,158.1,25.84,194.19 +2921,2,E06000054,0,54.93,231.2,18.64,358.7 +1617,3,E06000054,1,47.06,89.13,25.84,210.12 +1943,3,E06000054,2,54.44,100.81,25.84,111.41 +2269,3,E06000054,3,61.83,109.29,25.84,126.28 +2595,3,E06000054,4,73.82,130.52,25.84,130.52 +3247,4,E06000054,0,54.93,115.59,18.64,141.81 +4233,5,E06000054,1,48.92,125.22,25.84,136.89 +4869,5,E06000054,2,55.37,154.93,25.84,169.79 +5500,5,E06000054,3,61.83,192.07,25.84,210.12 +6038,5,E06000054,4,71.06,292.87,25.84,319.41 +3573,6,E06000054,0,54.93,328.92,18.64,358.7 +3949,7,E06000054,1,47.06,125.22,25.84,136.89 +5146,7,E06000054,2,54.44,154.93,25.84,169.79 +5726,7,E06000054,3,61.83,192.07,25.84,210.12 +6438,7,E06000054,4,73.82,292.87,25.84,319.41 +3899,8,E06000054,0,54.93,328.92,18.64,358.7 +6833,9,E06000054,1,48.92,156.51,25.84,171.11 +7159,9,E06000054,2,55.37,193.64,25.84,212.23 +7485,9,E06000054,3,61.83,240.08,25.84,262.64 +7811,9,E06000054,4,71.06,366.11,25.84,399.27 +8137,10,E06000054,0,54.93,545.21,18.64,594.37 +314,1,E07000094,1,57.21,123.09,25.84,176.15 +640,1,E07000094,2,71.06,146.43,25.84,186.77 +966,1,E07000094,3,81.2,161.3,25.84,203.75 +1292,1,E07000094,4,89.52,178.28,25.84,221.77 +2922,2,E07000094,0,62.17,268.13,18.64,344.4 +1618,3,E07000094,1,51.68,115.66,25.84,159.17 +1944,3,E07000094,2,62.75,129.46,25.84,145.37 +2270,3,E07000094,3,68.28,149.62,25.84,185.7 +2596,3,E07000094,4,72.9,184.64,25.84,194.19 +3248,4,E07000094,0,48.71,195.45,18.64,204.96 +4044,5,E07000094,1,57.21,170.85,25.84,185.7 +4659,5,E07000094,2,71.06,214.35,25.84,234.52 +5311,5,E07000094,3,81.2,281.2,25.84,306.68 +5996,5,E07000094,4,89.52,421.28,25.84,459.48 +3574,6,E07000094,0,62.17,473.1,18.64,516 +4111,7,E07000094,1,51.68,170.85,25.84,185.7 +4806,7,E07000094,2,62.75,214.35,25.84,234.52 +5411,7,E07000094,3,68.28,281.2,25.84,306.68 +6100,7,E07000094,4,72.9,421.28,25.84,459.48 +3900,8,E07000094,0,48.71,473.1,18.64,516 +6834,9,E07000094,1,57.21,213.57,25.84,232.15 +7160,9,E07000094,2,71.06,267.95,25.84,293.15 +7486,9,E07000094,3,81.2,351.51,25.84,383.34 +7812,9,E07000094,4,89.52,526.6,25.84,574.35 +8138,10,E07000094,0,62.17,253.23,18.64,277.06 +315,1,E06000040,1,57.21,123.09,25.84,176.15 +641,1,E06000040,2,71.06,146.43,25.84,186.77 +967,1,E06000040,3,81.2,161.3,25.84,203.75 +1293,1,E06000040,4,89.52,178.28,25.84,221.77 +2923,2,E06000040,0,62.17,268.13,18.64,344.4 +1619,3,E06000040,1,51.68,115.66,25.84,159.17 +1945,3,E06000040,2,62.75,129.46,25.84,145.37 +2271,3,E06000040,3,68.28,149.62,25.84,185.7 +2597,3,E06000040,4,72.9,184.64,25.84,194.19 +3249,4,E06000040,0,48.71,195.45,18.64,204.96 +4045,5,E06000040,1,57.21,198.45,25.84,215.41 +4660,5,E06000040,2,71.06,281.2,25.84,306.68 +5312,5,E06000040,3,81.2,342.76,25.84,374.6 +5997,5,E06000040,4,89.52,762.96,25.84,831.96 +3575,6,E06000040,0,62.17,856.86,18.64,934.32 +4112,7,E06000040,1,51.68,198.45,25.84,215.41 +4807,7,E06000040,2,62.75,281.2,25.84,306.68 +5412,7,E06000040,3,68.28,342.76,25.84,374.6 +6101,7,E06000040,4,72.9,762.96,25.84,831.96 +3901,8,E06000040,0,48.71,856.86,18.64,934.32 +6835,9,E06000040,1,57.21,248.03,25.84,269.26 +7161,9,E06000040,2,71.06,351.51,25.84,383.34 +7487,9,E06000040,3,81.2,428.42,25.84,468.25 +7813,9,E06000040,4,89.52,953.72,25.84,1039.95 +8139,10,E06000040,0,62.17,473.7,18.64,516.92 +316,1,E08000015,1,51.68,93.39,25.84,116.72 +642,1,E08000015,2,59.06,107.19,25.84,134.77 +968,1,E08000015,3,65.51,119.9,25.84,145.37 +1294,1,E08000015,4,71.98,133.71,25.84,159.17 +2924,2,E08000015,0,55.97,239.54,18.64,342.01 +1620,3,E08000015,1,43.36,85.94,25.84,100.81 +1946,3,E08000015,2,53.52,94.47,25.84,113.53 +2272,3,E08000015,3,58.13,105.06,25.84,124.15 +2598,3,E08000015,4,55.37,118.85,25.84,133.71 +3250,4,E08000015,0,33.16,469.54,18.64,599.44 +4388,5,E08000015,1,51.68,102.94,25.84,112.47 +4958,5,E08000015,2,59.06,125.22,25.84,136.89 +5601,5,E08000015,3,65.51,147.5,25.84,160.24 +6349,5,E08000015,4,71.98,192.07,25.84,210.12 +3576,6,E08000015,0,55.97,215.7,18.64,235.95 +4500,7,E08000015,1,43.36,102.94,25.84,112.47 +5096,7,E08000015,2,53.52,125.22,25.84,136.89 +5776,7,E08000015,3,58.13,147.5,25.84,160.24 +6400,7,E08000015,4,55.37,192.07,25.84,210.12 +3902,8,E08000015,0,33.16,215.7,18.64,235.95 +6836,9,E08000015,1,51.68,128.67,25.84,140.6 +7162,9,E08000015,2,59.06,156.51,25.84,171.11 +7488,9,E08000015,3,65.51,184.37,25.84,200.32 +7814,9,E08000015,4,71.98,240.08,25.84,262.64 +8140,10,E08000015,0,55.97,505.01,18.64,551.18 +317,1,E07000217,1,57.21,123.09,25.84,176.15 +643,1,E07000217,2,71.06,146.43,25.84,186.77 +969,1,E07000217,3,81.2,161.3,25.84,203.75 +1295,1,E07000217,4,89.52,178.28,25.84,221.77 +2925,2,E07000217,0,62.17,268.13,18.64,344.4 +1621,3,E07000217,1,51.68,115.66,25.84,159.17 +1947,3,E07000217,2,62.75,129.46,25.84,145.37 +2273,3,E07000217,3,68.28,149.62,25.84,185.7 +2599,3,E07000217,4,72.9,184.64,25.84,194.19 +3251,4,E07000217,0,48.71,195.45,18.64,204.96 +4046,5,E07000217,1,57.21,176.15,25.84,191.01 +4661,5,E07000217,2,71.06,248.31,25.84,270.61 +5313,5,E07000217,3,81.2,299.26,25.84,325.77 +5998,5,E07000217,4,89.52,673.83,25.84,734.32 +3577,6,E07000217,0,62.17,756.74,18.64,824.68 +4113,7,E07000217,1,51.68,176.15,25.84,191.01 +4808,7,E07000217,2,62.75,248.31,25.84,270.61 +5413,7,E07000217,3,68.28,299.26,25.84,325.77 +6102,7,E07000217,4,72.9,673.83,25.84,734.32 +3903,8,E07000217,0,48.71,756.74,18.64,824.68 +6837,9,E07000217,1,57.21,220.21,25.84,238.77 +7163,9,E07000217,2,71.06,310.37,25.84,338.25 +7489,9,E07000217,3,81.2,374.05,25.84,407.22 +7815,9,E07000217,4,89.52,842.3,25.84,917.9 +8141,10,E07000217,0,62.17,239.85,18.64,260.68 +318,1,E06000041,1,57.21,123.09,25.84,176.15 +644,1,E06000041,2,71.06,146.43,25.84,186.77 +970,1,E06000041,3,81.2,161.3,25.84,203.75 +1296,1,E06000041,4,89.52,178.28,25.84,221.77 +2926,2,E06000041,0,62.17,268.13,18.64,344.4 +1622,3,E06000041,1,51.68,115.66,25.84,159.17 +1948,3,E06000041,2,62.75,129.46,25.84,145.37 +2274,3,E06000041,3,68.28,149.62,25.84,185.7 +2600,3,E06000041,4,72.9,184.64,25.84,194.19 +3252,4,E06000041,0,48.71,195.45,18.64,204.96 +4047,5,E06000041,1,57.21,164.48,25.84,179.34 +4662,5,E06000041,2,71.06,205.88,25.84,223.9 +5314,5,E06000041,3,81.2,269.54,25.84,293.94 +5999,5,E06000041,4,89.52,426.59,25.84,465.84 +3578,6,E06000041,0,62.17,479.07,18.64,523.16 +4114,7,E06000041,1,51.68,164.48,25.84,179.34 +4809,7,E06000041,2,62.75,205.88,25.84,223.9 +5414,7,E06000041,3,68.28,269.54,25.84,293.94 +6103,7,E06000041,4,72.9,426.59,25.84,465.84 +3904,8,E06000041,0,48.71,479.07,18.64,523.16 +6838,9,E06000041,1,57.21,205.6,25.84,224.18 +7164,9,E06000041,2,71.06,257.33,25.84,279.88 +7490,9,E06000041,3,81.2,336.93,25.84,367.42 +7816,9,E06000041,4,89.52,533.22,25.84,582.31 +8142,10,E06000041,0,62.17,1059.14,18.64,1157.45 +319,1,E08000031,1,52.6,98.69,25.84,124.15 +645,1,E08000031,2,58.13,116.72,25.84,136.89 +971,1,E08000031,3,69.2,132.64,25.84,160.24 +1297,1,E08000031,4,80.28,161.3,25.84,178.28 +2927,2,E08000031,0,39.38,245.49,18.64,382.53 +1623,3,E08000031,1,46.13,88.07,25.84,97.63 +1949,3,E08000031,2,49.84,94.47,25.84,102.94 +2275,3,E08000031,3,59.98,104,25.84,119.9 +2601,3,E08000031,4,68.28,127.34,25.84,127.34 +3253,4,E08000031,0,46.63,107.26,18.64,107.26 +4307,5,E08000031,1,52.6,97.63,25.84,107.19 +4917,5,E08000031,2,58.13,119.9,25.84,130.52 +5548,5,E08000031,3,69.2,134.77,25.84,147.5 +6200,5,E08000031,4,80.28,170.85,25.84,185.7 +3579,6,E08000031,0,39.38,191.88,18.64,208.55 +4528,7,E08000031,1,46.13,97.63,25.84,107.19 +5213,7,E08000031,2,49.84,119.9,25.84,130.52 +5804,7,E08000031,3,59.98,134.77,25.84,147.5 +6465,7,E08000031,4,68.28,170.85,25.84,185.7 +3905,8,E08000031,0,46.63,191.88,18.64,208.55 +6839,9,E08000031,1,52.6,122.03,25.84,133.98 +7165,9,E08000031,2,58.13,149.9,25.84,163.15 +7491,9,E08000031,3,69.2,168.46,25.84,184.37 +7817,9,E08000031,4,80.28,213.57,25.84,232.15 +8143,10,E08000031,0,39.38,427.52,18.64,466.26 +320,1,E07000237,1,52.6,98.69,25.84,124.15 +646,1,E07000237,2,58.13,116.72,25.84,136.89 +972,1,E07000237,3,69.2,132.64,25.84,160.24 +1298,1,E07000237,4,80.28,161.3,25.84,178.28 +2928,2,E07000237,0,39.38,245.49,18.64,382.53 +1624,3,E07000237,1,46.13,88.07,25.84,97.63 +1950,3,E07000237,2,49.84,94.47,25.84,102.94 +2276,3,E07000237,3,59.98,104,25.84,119.9 +2602,3,E07000237,4,68.28,127.34,25.84,127.34 +3254,4,E07000237,0,46.63,107.26,18.64,107.26 +4308,5,E07000237,1,52.6,114.6,25.84,124.15 +4918,5,E07000237,2,58.13,142.18,25.84,154.93 +5549,5,E07000237,3,69.2,164.48,25.84,179.34 +6201,5,E07000237,4,80.28,214.35,25.84,234.52 +3580,6,E07000237,0,39.38,240.72,18.64,263.37 +4529,7,E07000237,1,46.13,114.6,25.84,124.15 +5214,7,E07000237,2,49.84,142.18,25.84,154.93 +5805,7,E07000237,3,59.98,164.48,25.84,179.34 +6466,7,E07000237,4,68.28,214.35,25.84,234.52 +3906,8,E07000237,0,46.63,240.72,18.64,263.37 +6840,9,E07000237,1,52.6,143.25,25.84,155.2 +7166,9,E07000237,2,58.13,177.73,25.84,193.64 +7492,9,E07000237,3,69.2,205.6,25.84,224.18 +7818,9,E07000237,4,80.28,267.95,25.84,293.15 +8144,10,E07000237,0,39.38,443.93,18.64,484.13 +321,1,E07000229,1,57.21,123.09,25.84,176.15 +647,1,E07000229,2,71.06,146.43,25.84,186.77 +973,1,E07000229,3,81.2,161.3,25.84,203.75 +1299,1,E07000229,4,89.52,178.28,25.84,221.77 +2929,2,E07000229,0,62.17,268.13,18.64,344.4 +1625,3,E07000229,1,51.68,115.66,25.84,159.17 +1951,3,E07000229,2,62.75,129.46,25.84,145.37 +2277,3,E07000229,3,68.28,149.62,25.84,185.7 +2603,3,E07000229,4,72.9,184.64,25.84,194.19 +3255,4,E07000229,0,48.71,195.45,18.64,204.96 +4048,5,E07000229,1,57.21,130.52,25.84,143.25 +4663,5,E07000229,2,71.06,170.85,25.84,185.7 +5315,5,E07000229,3,81.2,214.35,25.84,234.52 +6000,5,E07000229,4,89.52,291.81,25.84,317.29 +3581,6,E07000229,0,62.17,326.54,18.64,356.32 +4115,7,E07000229,1,51.68,130.52,25.84,143.25 +4810,7,E07000229,2,62.75,170.85,25.84,185.7 +5415,7,E07000229,3,68.28,214.35,25.84,234.52 +6104,7,E07000229,4,72.9,291.81,25.84,317.29 +3907,8,E07000229,0,48.71,326.54,18.64,356.32 +6841,9,E07000229,1,57.21,163.15,25.84,179.06 +7167,9,E07000229,2,71.06,213.57,25.84,232.15 +7493,9,E07000229,3,81.2,267.95,25.84,293.15 +7819,9,E07000229,4,89.52,364.78,25.84,396.59 +8145,10,E07000229,0,62.17,387.31,18.64,423.05 +322,1,E07000238,1,52.6,98.69,25.84,124.15 +648,1,E07000238,2,58.13,116.72,25.84,136.89 +974,1,E07000238,3,69.2,132.64,25.84,160.24 +1300,1,E07000238,4,80.28,161.3,25.84,178.28 +2930,2,E07000238,0,39.38,245.49,18.64,382.53 +1626,3,E07000238,1,46.13,88.07,25.84,97.63 +1952,3,E07000238,2,49.84,94.47,25.84,102.94 +2278,3,E07000238,3,59.98,104,25.84,119.9 +2604,3,E07000238,4,68.28,127.34,25.84,127.34 +3256,4,E07000238,0,46.63,107.26,18.64,107.26 +4309,5,E07000238,1,52.6,113.53,25.84,123.09 +4919,5,E07000238,2,58.13,137.95,25.84,150.69 +5550,5,E07000238,3,69.2,170.85,25.84,185.7 +6202,5,E07000238,4,80.28,248.31,25.84,270.61 +3582,6,E07000238,0,39.38,278.86,18.64,303.89 +4530,7,E07000238,1,46.13,113.53,25.84,123.09 +5215,7,E07000238,2,49.84,137.95,25.84,150.69 +5806,7,E07000238,3,59.98,170.85,25.84,185.7 +6467,7,E07000238,4,68.28,248.31,25.84,270.61 +3908,8,E07000238,0,46.63,278.86,18.64,303.89 +6842,9,E07000238,1,52.6,141.94,25.84,153.86 +7168,9,E07000238,2,58.13,172.43,25.84,188.36 +7494,9,E07000238,3,69.2,213.57,25.84,232.15 +7820,9,E07000238,4,80.28,310.37,25.84,338.25 +8146,10,E07000238,0,39.38,250.25,18.64,271.11 +324,1,E07000128,1,51.68,93.39,25.84,116.72 +650,1,E07000128,2,59.06,107.19,25.84,134.77 +976,1,E07000128,3,65.51,119.9,25.84,145.37 +1302,1,E07000128,4,71.98,133.71,25.84,159.17 +2932,2,E07000128,0,55.97,239.54,18.64,342.01 +1628,3,E07000128,1,43.36,85.94,25.84,100.81 +1954,3,E07000128,2,53.52,94.47,25.84,113.53 +2280,3,E07000128,3,58.13,105.06,25.84,124.15 +2606,3,E07000128,4,55.37,118.85,25.84,133.71 +3258,4,E07000128,0,33.16,469.54,18.64,599.44 +4389,5,E07000128,1,51.68,102.94,25.84,113.53 +4959,5,E07000128,2,59.06,132.64,25.84,145.37 +5602,5,E07000128,3,65.51,147.5,25.84,160.24 +6350,5,E07000128,4,71.98,192.07,25.84,210.12 +3584,6,E07000128,0,55.97,215.7,18.64,235.95 +4501,7,E07000128,1,43.36,102.94,25.84,113.53 +5097,7,E07000128,2,53.52,132.64,25.84,145.37 +5777,7,E07000128,3,58.13,147.5,25.84,160.24 +6401,7,E07000128,4,55.37,192.07,25.84,210.12 +3910,8,E07000128,0,33.16,215.7,18.64,235.95 +6844,9,E07000128,1,51.68,128.67,25.84,141.94 +7170,9,E07000128,2,59.06,165.81,25.84,181.72 +7496,9,E07000128,3,65.51,184.37,25.84,200.32 +7822,9,E07000128,4,71.98,240.08,25.84,262.64 +8148,10,E07000128,0,55.97,473.7,18.64,516.92 +325,1,E07000239,1,52.6,98.69,25.84,124.15 +651,1,E07000239,2,58.13,116.72,25.84,136.89 +977,1,E07000239,3,69.2,132.64,25.84,160.24 +1303,1,E07000239,4,80.28,161.3,25.84,178.28 +2933,2,E07000239,0,39.38,245.49,18.64,382.53 +1629,3,E07000239,1,46.13,88.07,25.84,97.63 +1955,3,E07000239,2,49.84,94.47,25.84,102.94 +2281,3,E07000239,3,59.98,104,25.84,119.9 +2607,3,E07000239,4,68.28,127.34,25.84,127.34 +3259,4,E07000239,0,46.63,107.26,18.64,107.26 +4310,5,E07000239,1,52.6,97.63,25.84,107.19 +4920,5,E07000239,2,58.13,125.22,25.84,136.89 +5551,5,E07000239,3,69.2,142.18,25.84,154.93 +6203,5,E07000239,4,80.28,192.07,25.84,210.12 +3585,6,E07000239,0,39.38,215.7,18.64,235.95 +4531,7,E07000239,1,46.13,97.63,25.84,107.19 +5216,7,E07000239,2,49.84,125.22,25.84,136.89 +5807,7,E07000239,3,59.98,142.18,25.84,154.93 +6468,7,E07000239,4,68.28,192.07,25.84,210.12 +3911,8,E07000239,0,46.63,215.7,18.64,235.95 +6845,9,E07000239,1,52.6,122.03,25.84,133.98 +7171,9,E07000239,2,58.13,156.51,25.84,171.11 +7497,9,E07000239,3,69.2,177.73,25.84,193.64 +7823,9,E07000239,4,80.28,240.08,25.84,262.64 +8149,10,E07000239,0,39.38,262.16,18.64,286.02 +326,1,E06000014,1,50.76,91.27,25.84,113.53 +652,1,E06000014,2,58.13,108.24,25.84,140.08 +978,1,E06000014,3,62.75,119.9,25.84,161.3 +1304,1,E06000014,4,72.9,144.31,25.84,178.28 +2934,2,E06000014,0,52.86,234.75,18.64,322.95 +1630,3,E06000014,1,46.13,81.71,25.84,92.33 +1956,3,E06000014,2,52.6,112.47,25.84,144.31 +2282,3,E06000014,3,56.29,104,25.84,113.53 +2608,3,E06000014,4,63.67,120.97,25.84,175.09 +3260,4,E06000014,0,51.82,160.88,18.64,190.67 +4410,5,E06000014,1,50.76,134.77,25.84,147.5 +4890,5,E06000014,2,58.13,157.04,25.84,172.97 +5521,5,E06000014,3,62.75,202.69,25.84,220.72 +6126,5,E06000014,4,72.9,351.25,25.84,383.08 +3586,6,E06000014,0,52.86,394.46,18.64,430.21 +4564,7,E06000014,1,46.13,134.77,25.84,147.5 +4832,7,E06000014,2,52.6,157.04,25.84,172.97 +5868,7,E06000014,3,56.29,202.69,25.84,220.72 +6224,7,E06000014,4,63.67,351.25,25.84,383.08 +3912,8,E06000014,0,51.82,394.46,18.64,430.21 +6846,9,E06000014,1,50.76,168.46,25.84,184.37 +7172,9,E06000014,2,52.6,196.32,25.84,216.2 +7498,9,E06000014,3,62.75,253.36,25.84,275.9 +7824,9,E06000014,4,72.9,439.06,25.84,478.85 +8150,10,E06000014,0,52.86,615.22,18.64,670.34 \ No newline at end of file diff --git a/spec/db/seeds_spec.rb b/spec/db/seeds_spec.rb index 15891b2da..fb41ccf36 100644 --- a/spec/db/seeds_spec.rb +++ b/spec/db/seeds_spec.rb @@ -29,7 +29,7 @@ RSpec.describe "seeding process", type: task do .and change(OrganisationRelationship, :count).by(4) .and change(Scheme, :count).by(3) .and change(Location, :count).by(3) - .and change(LaRentRange, :count).by(15_450) + .and change(LaRentRange, :count).by(22_850) end it "is idempotent" do From 9792fd56998d6aca0f95c82a3660038e8881b864 Mon Sep 17 00:00:00 2001 From: SamSeed-Softwire <63662292+SamSeed-Softwire@users.noreply.github.com> Date: Mon, 13 Mar 2023 16:13:11 +0000 Subject: [PATCH 17/51] fix: resave 2023 CSV as not UTF-8 (#1411) --- config/rent_range_data/2023.csv | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/rent_range_data/2023.csv b/config/rent_range_data/2023.csv index 08775d4a4..5a0d9858f 100644 --- a/config/rent_range_data/2023.csv +++ b/config/rent_range_data/2023.csv @@ -1,4 +1,4 @@ -ranges_rent_id,lettype,la,beds,soft_min,soft_max,hard_min,hard_max +ranges_rent_id,lettype,la,beds,soft_min,soft_max,hard_min,hard_max 1,1,E07000223,1,57.21,123.09,25.84,176.15 327,1,E07000223,2,71.06,146.43,25.84,186.77 653,1,E07000223,3,81.2,161.3,25.84,203.75 From 95449682c14caa5212d3e31edfe477dcfac2a923 Mon Sep 17 00:00:00 2001 From: SamSeed-Softwire <63662292+SamSeed-Softwire@users.noreply.github.com> Date: Mon, 13 Mar 2023 16:37:36 +0000 Subject: [PATCH 18/51] CLDC-1820 Update reason for leaving domestic abuse answer options (non-renewal only) (#1391) * feat: change domestic abuse answer opts * test: add test for reason question --- app/models/form/lettings/questions/reason.rb | 7 +- .../form/lettings/questions/reason_spec.rb | 158 ++++++++++++++++++ 2 files changed, 163 insertions(+), 2 deletions(-) create mode 100644 spec/models/form/lettings/questions/reason_spec.rb diff --git a/app/models/form/lettings/questions/reason.rb b/app/models/form/lettings/questions/reason.rb index 2f46fae35..ef8fbcd0d 100644 --- a/app/models/form/lettings/questions/reason.rb +++ b/app/models/form/lettings/questions/reason.rb @@ -58,8 +58,11 @@ class Form::Lettings::Questions::Reason < ::Form::Question "17" => { "value" => "To move nearer to work", }, - "7" => { - "value" => "Domestic abuse", + "48" => { + "value" => "Domestic abuse - previously joint tenancy with partner", + }, + "49" => { + "value" => "Domestic abuse - other", }, "31" => { "value" => "Hate crime", diff --git a/spec/models/form/lettings/questions/reason_spec.rb b/spec/models/form/lettings/questions/reason_spec.rb new file mode 100644 index 000000000..24d28fd4b --- /dev/null +++ b/spec/models/form/lettings/questions/reason_spec.rb @@ -0,0 +1,158 @@ +require "rails_helper" + +RSpec.describe Form::Lettings::Questions::Reason, type: :model do + subject(:question) { described_class.new(question_id, question_definition, page) } + + let(:question_id) { nil } + let(:question_definition) { nil } + let(:page) { instance_double(Form::Page) } + + it "has correct page" do + expect(question.page).to eq(page) + end + + it "has the correct id" do + expect(question.id).to eq("reason") + end + + it "has the correct header" do + expect(question.header).to eq("What is the tenant’s main reason for the household leaving their last settled home?") + end + + it "has the correct check_answer_label" do + expect(question.check_answer_label).to eq("Reason for leaving last settled home") + end + + it "has the correct type" do + expect(question.type).to eq("radio") + end + + it "has the correct check_answers_card_number" do + expect(question.check_answers_card_number).to eq(0) + end + + it "has the correct hint" do + expect(question.hint_text).to eq("The tenant’s ‘last settled home’ is their last long-standing home. For tenants who were in temporary accommodation or sleeping rough, their last settled home is where they were living previously.") + end + + it "has the correct conditional_for" do + expect(question.conditional_for).to eq({ "reasonother" => [20] }) + end + + it "is not marked as derived" do + expect(question).not_to be_derived + end + + it "has the correct answer_options" do + expect(question.answer_options).to eq({ + "40" => { + "value" => "End of assured shorthold tenancy (no fault)", + }, + "41" => { + "value" => "End of assured shorthold tenancy (eviction or tenant at fault)", + }, + "42" => { + "value" => "End of fixed term tenancy (no fault)", + }, + "43" => { + "value" => "End of fixed term tenancy (eviction or tenant at fault)", + }, + "1" => { + "value" => "Permanently decanted from another property owned by this landlord", + }, + "46" => { + "value" => "Discharged from long-stay hospital or similar institution", + }, + "45" => { + "value" => "Discharged from prison", + }, + "2" => { + "value" => "Left home country as a refugee", + }, + "4" => { + "value" => "Loss of tied accommodation", + }, + "9" => { + "value" => "Asked to leave by family or friends", + }, + "44" => { + "value" => "Death of household member in last settled accommodation", + }, + "8" => { + "value" => "Relationship breakdown (non-violent) with partner", + }, + "16" => { + "value" => "To move nearer to family, friends or school", + }, + "17" => { + "value" => "To move nearer to work", + }, + "48" => { + "value" => "Domestic abuse - previously joint tenancy with partner", + }, + "49" => { + "value" => "Domestic abuse - other", + }, + "31" => { + "value" => "Hate crime", + }, + "10" => { + "value" => "Racial harassment", + }, + "11" => { + "value" => "Other problems with neighbours", + }, + "35" => { + "value" => "Couldn’t afford fees attached to renewing the tenancy", + }, + "36" => { + "value" => "Couldn’t afford increase in rent", + }, + "38" => { + "value" => "Couldn’t afford rent or mortgage (employment)", + }, + "37" => { + "value" => "Couldn’t afford rent or mortgage (welfare reforms)", + }, + "39" => { + "value" => "Couldn’t afford rent or mortgage (other)", + }, + "34" => { + "value" => "Repossession", + }, + "12" => { + "value" => "Property unsuitable because of overcrowding", + }, + "13" => { + "value" => "Property unsuitable because of ill health or disability", + }, + "14" => { + "value" => "Property unsuitable because of poor condition", + }, + "18" => { + "value" => "To move to accommodation with support", + }, + "19" => { + "value" => "To move to independent accommodation", + }, + "30" => { + "value" => "Under occupation (no incentive)", + }, + "29" => { + "value" => "Under occupation (offered incentive to downsize)", + }, + "20" => { + "value" => "Other", + }, + "47" => { + "value" => "Tenant prefers not to say", + }, + "divider" => { + "value" => true, + }, + "28" => { + "value" => "Don’t know", + }, + }) + end +end From 285b8ec61f8234807accc5f8ae70c8d93d6709f0 Mon Sep 17 00:00:00 2001 From: Arthur Campbell <51094020+arfacamble@users.noreply.github.com> Date: Mon, 13 Mar 2023 17:35:27 +0000 Subject: [PATCH 19/51] CLDC-1808 add previous tenure question for buyer two (#1354) * create and run migration for new columns related to buyer two previous tenure * a little refactoring for readability * create new pages, questions, associated tests and a couple of boolean methods on sales log for depends_on readability * add new pages to subsection and amend tests to reflect this change * make new pages only visible for new collection year, rename filesamend tests * some copy changes and alterations of readability after code review --- .../sales/pages/buyer2_live_in_property.rb | 6 +-- .../form/sales/pages/buyer2_living_in.rb | 11 +++++ .../buyer2_previous_housing_situation.rb | 11 +++++ .../form/sales/questions/buyer2_living_in.rb | 17 +++++++ .../sales/questions/previous_tenure_buyer2.rb | 23 +++++++++ .../sales/subsections/household_situation.rb | 12 ++++- app/models/sales_log.rb | 12 +++++ ...20230224083552_add_columns_to_sales_log.rb | 8 +++ db/schema.rb | 2 + .../pages/buyer2_live_in_property_spec.rb | 6 +-- .../form/sales/pages/buyer2_living_in_spec.rb | 31 ++++++++++++ .../buyer2_previous_housing_situation_spec.rb | 31 ++++++++++++ .../sales/questions/buyer2_living_in_spec.rb | 43 ++++++++++++++++ .../questions/previous_tenure_buyer2_spec.rb | 49 +++++++++++++++++++ .../subsections/household_situation_spec.rb | 45 ++++++++++++----- 15 files changed, 287 insertions(+), 20 deletions(-) create mode 100644 app/models/form/sales/pages/buyer2_living_in.rb create mode 100644 app/models/form/sales/pages/buyer2_previous_housing_situation.rb create mode 100644 app/models/form/sales/questions/buyer2_living_in.rb create mode 100644 app/models/form/sales/questions/previous_tenure_buyer2.rb create mode 100644 db/migrate/20230224083552_add_columns_to_sales_log.rb create mode 100644 spec/models/form/sales/pages/buyer2_living_in_spec.rb create mode 100644 spec/models/form/sales/pages/buyer2_previous_housing_situation_spec.rb create mode 100644 spec/models/form/sales/questions/buyer2_living_in_spec.rb create mode 100644 spec/models/form/sales/questions/previous_tenure_buyer2_spec.rb diff --git a/app/models/form/sales/pages/buyer2_live_in_property.rb b/app/models/form/sales/pages/buyer2_live_in_property.rb index 9ba67080b..3c0ce7b3b 100644 --- a/app/models/form/sales/pages/buyer2_live_in_property.rb +++ b/app/models/form/sales/pages/buyer2_live_in_property.rb @@ -4,12 +4,12 @@ class Form::Sales::Pages::Buyer2LiveInProperty < ::Form::Page @id = "buyer_2_live_in_property" @depends_on = [ { - "jointpur" => 1, + "joint_purchase?" => true, "privacynotice" => 1, }, { - "jointpur" => 1, - "noint" => 1, + "joint_purchase?" => true, + "buyer_not_interviewed?" => true, }, ] end diff --git a/app/models/form/sales/pages/buyer2_living_in.rb b/app/models/form/sales/pages/buyer2_living_in.rb new file mode 100644 index 000000000..b8d32ffdc --- /dev/null +++ b/app/models/form/sales/pages/buyer2_living_in.rb @@ -0,0 +1,11 @@ +class Form::Sales::Pages::Buyer2LivingIn < ::Form::Page + def initialize(id, hsh, subsection) + super + @id = "buyer_2_living_in" + @depends_on = [{ "buyer_two_will_live_in_property?" => true }] + end + + def questions + @questions = [Form::Sales::Questions::Buyer2LivingIn.new(nil, nil, self)] + end +end diff --git a/app/models/form/sales/pages/buyer2_previous_housing_situation.rb b/app/models/form/sales/pages/buyer2_previous_housing_situation.rb new file mode 100644 index 000000000..c6a511243 --- /dev/null +++ b/app/models/form/sales/pages/buyer2_previous_housing_situation.rb @@ -0,0 +1,11 @@ +class Form::Sales::Pages::Buyer2PreviousHousingSituation < ::Form::Page + def initialize(id, hsh, subsection) + super + @id = "buyer_2_previous_housing_situation" + @depends_on = [{ "buyer_two_not_already_living_in_property?" => true }] + end + + def questions + @questions = [Form::Sales::Questions::PreviousTenureBuyer2.new(nil, nil, self)] + end +end diff --git a/app/models/form/sales/questions/buyer2_living_in.rb b/app/models/form/sales/questions/buyer2_living_in.rb new file mode 100644 index 000000000..1494e61a2 --- /dev/null +++ b/app/models/form/sales/questions/buyer2_living_in.rb @@ -0,0 +1,17 @@ +class Form::Sales::Questions::Buyer2LivingIn < ::Form::Question + def initialize(id, hsh, page) + super + @id = "buy2living" + @check_answer_label = "Buyer 2 living at the same address" + @header = "At the time of purchase, was buyer 2 living at the same address as buyer 1?" + @type = "radio" + @hint_text = "" + @answer_options = ANSWER_OPTIONS + end + + ANSWER_OPTIONS = { + "1" => { "value" => "Yes" }, + "2" => { "value" => "No" }, + "3" => { "value" => "Don't know" }, + }.freeze +end diff --git a/app/models/form/sales/questions/previous_tenure_buyer2.rb b/app/models/form/sales/questions/previous_tenure_buyer2.rb new file mode 100644 index 000000000..6de2ed8c5 --- /dev/null +++ b/app/models/form/sales/questions/previous_tenure_buyer2.rb @@ -0,0 +1,23 @@ +class Form::Sales::Questions::PreviousTenureBuyer2 < ::Form::Question + def initialize(id, hsh, page) + super + @id = "prevtenbuy2" + @check_answer_label = "Buyer 2’s previous tenure" + @header = "What was buyer 2’s previous tenure?" + @type = "radio" + @hint_text = "" + @answer_options = ANSWER_OPTIONS + end + + ANSWER_OPTIONS = { + "1" => { "value" => "Local Authority" }, + "2" => { "value" => "Private registered provider or housing association tenant" }, + "3" => { "value" => "Private tenant" }, + "5" => { "value" => "Owner occupier" }, + "4" => { "value" => "Tied home or renting with job" }, + "6" => { "value" => "Living with family or friends" }, + "7" => { "value" => "Temporary accomodation" }, + "9" => { "value" => "Other" }, + "0" => { "value" => "Don't know" }, + }.freeze +end diff --git a/app/models/form/sales/subsections/household_situation.rb b/app/models/form/sales/subsections/household_situation.rb index a9d9306d6..225b1ae43 100644 --- a/app/models/form/sales/subsections/household_situation.rb +++ b/app/models/form/sales/subsections/household_situation.rb @@ -12,6 +12,16 @@ class Form::Sales::Subsections::HouseholdSituation < ::Form::Subsection Form::Sales::Pages::LastAccommodation.new(nil, nil, self), Form::Sales::Pages::LastAccommodationLa.new(nil, nil, self), Form::Sales::Pages::BuyersOrganisations.new(nil, nil, self), - ] + buyer_2_situation_pages, + ].flatten.compact + end + + def buyer_2_situation_pages + if form.start_date.year >= 2023 + [ + Form::Sales::Pages::Buyer2LivingIn.new(nil, nil, self), + Form::Sales::Pages::Buyer2PreviousHousingSituation.new(nil, nil, self), + ] + end end end diff --git a/app/models/sales_log.rb b/app/models/sales_log.rb index 90f130c04..e15b9c610 100644 --- a/app/models/sales_log.rb +++ b/app/models/sales_log.rb @@ -151,6 +151,14 @@ class SalesLog < Log inc1mort == 1 end + def buyer_two_will_live_in_property? + buy2livein == 1 + end + + def buyer_two_not_already_living_in_property? + buy2living == 2 + end + def income2_used_for_mortgage? inc2mort == 1 end @@ -250,6 +258,10 @@ class SalesLog < Log jointpur == 2 end + def buyer_not_interviewed? + noint == 1 + end + def old_persons_shared_ownership? type == 24 end diff --git a/db/migrate/20230224083552_add_columns_to_sales_log.rb b/db/migrate/20230224083552_add_columns_to_sales_log.rb new file mode 100644 index 000000000..f4fbc91df --- /dev/null +++ b/db/migrate/20230224083552_add_columns_to_sales_log.rb @@ -0,0 +1,8 @@ +class AddColumnsToSalesLog < ActiveRecord::Migration[7.0] + def change + change_table :sales_logs, bulk: true do |t| + t.column :buy2living, :integer + t.column :prevtenbuy2, :integer + end + end +end diff --git a/db/schema.rb b/db/schema.rb index 3b26fde33..385d565c7 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -543,6 +543,8 @@ ActiveRecord::Schema[7.0].define(version: 2023_03_08_101826) do t.integer "proplen_asked" t.string "old_id" t.integer "pregblank" + t.integer "buy2living" + t.integer "prevtenbuy2" t.index ["bulk_upload_id"], name: "index_sales_logs_on_bulk_upload_id" t.index ["created_by_id"], name: "index_sales_logs_on_created_by_id" t.index ["old_id"], name: "index_sales_logs_on_old_id", unique: true diff --git a/spec/models/form/sales/pages/buyer2_live_in_property_spec.rb b/spec/models/form/sales/pages/buyer2_live_in_property_spec.rb index 258e37462..555e78927 100644 --- a/spec/models/form/sales/pages/buyer2_live_in_property_spec.rb +++ b/spec/models/form/sales/pages/buyer2_live_in_property_spec.rb @@ -30,12 +30,12 @@ RSpec.describe Form::Sales::Pages::Buyer2LiveInProperty, type: :model do it "has correct depends_on" do expect(page.depends_on).to eq([ { - "jointpur" => 1, + "joint_purchase?" => true, "privacynotice" => 1, }, { - "jointpur" => 1, - "noint" => 1, + "joint_purchase?" => true, + "buyer_not_interviewed?" => true, }, ]) end diff --git a/spec/models/form/sales/pages/buyer2_living_in_spec.rb b/spec/models/form/sales/pages/buyer2_living_in_spec.rb new file mode 100644 index 000000000..9bfef1ff4 --- /dev/null +++ b/spec/models/form/sales/pages/buyer2_living_in_spec.rb @@ -0,0 +1,31 @@ +require "rails_helper" + +RSpec.describe Form::Sales::Pages::Buyer2LivingIn, type: :model do + subject(:page) { described_class.new(nil, nil, subsection) } + + let(:subsection) { instance_double(Form::Subsection) } + + it "has correct subsection" do + expect(page.subsection).to eq(subsection) + end + + it "has correct questions" do + expect(page.questions.map(&:id)).to eq(%w[buy2living]) + end + + it "has the correct id" do + expect(page.id).to eq("buyer_2_living_in") + end + + it "has the correct header" do + expect(page.header).to be_nil + end + + it "has the correct description" do + expect(page.description).to be_nil + end + + it "has correct depends_on" do + expect(page.depends_on).to eq([{ "buyer_two_will_live_in_property?" => true }]) + end +end diff --git a/spec/models/form/sales/pages/buyer2_previous_housing_situation_spec.rb b/spec/models/form/sales/pages/buyer2_previous_housing_situation_spec.rb new file mode 100644 index 000000000..ac5611a8f --- /dev/null +++ b/spec/models/form/sales/pages/buyer2_previous_housing_situation_spec.rb @@ -0,0 +1,31 @@ +require "rails_helper" + +RSpec.describe Form::Sales::Pages::Buyer2PreviousHousingSituation, type: :model do + subject(:page) { described_class.new(nil, nil, subsection) } + + let(:subsection) { instance_double(Form::Subsection) } + + it "has correct subsection" do + expect(page.subsection).to eq(subsection) + end + + it "has correct questions" do + expect(page.questions.map(&:id)).to eq(%w[prevtenbuy2]) + end + + it "has the correct id" do + expect(page.id).to eq("buyer_2_previous_housing_situation") + end + + it "has the correct header" do + expect(page.header).to be_nil + end + + it "has the correct description" do + expect(page.description).to be_nil + end + + it "has correct depends_on" do + expect(page.depends_on).to eq([{ "buyer_two_not_already_living_in_property?" => true }]) + end +end diff --git a/spec/models/form/sales/questions/buyer2_living_in_spec.rb b/spec/models/form/sales/questions/buyer2_living_in_spec.rb new file mode 100644 index 000000000..4fca65f3f --- /dev/null +++ b/spec/models/form/sales/questions/buyer2_living_in_spec.rb @@ -0,0 +1,43 @@ +require "rails_helper" + +RSpec.describe Form::Sales::Questions::Buyer2LivingIn, type: :model do + subject(:question) { described_class.new(nil, nil, page) } + + let(:page) { instance_double(Form::Page) } + + it "has correct page" do + expect(question.page).to eq page + end + + it "has the correct id" do + expect(question.id).to eq "buy2living" + end + + it "has the correct header" do + expect(question.header).to eq "At the time of purchase, was buyer 2 living at the same address as buyer 1?" + end + + it "has the correct check_answer_label" do + expect(question.check_answer_label).to eq "Buyer 2 living at the same address" + end + + it "has the correct type" do + expect(question.type).to eq "radio" + end + + it "is not marked as derived" do + expect(question.derived?).to be false + end + + it "has the correct hint_text" do + expect(question.hint_text).to eq "" + end + + it "has the correct answer_options" do + expect(question.answer_options).to eq({ + "1" => { "value" => "Yes" }, + "2" => { "value" => "No" }, + "3" => { "value" => "Don't know" }, + }) + end +end diff --git a/spec/models/form/sales/questions/previous_tenure_buyer2_spec.rb b/spec/models/form/sales/questions/previous_tenure_buyer2_spec.rb new file mode 100644 index 000000000..1ab7a86de --- /dev/null +++ b/spec/models/form/sales/questions/previous_tenure_buyer2_spec.rb @@ -0,0 +1,49 @@ +require "rails_helper" + +RSpec.describe Form::Sales::Questions::PreviousTenureBuyer2, type: :model do + subject(:question) { described_class.new(nil, nil, page) } + + let(:page) { instance_double(Form::Page) } + + it "has correct page" do + expect(question.page).to eq(page) + end + + it "has the correct id" do + expect(question.id).to eq("prevtenbuy2") + end + + it "has the correct header" do + expect(question.header).to eq("What was buyer 2’s previous tenure?") + end + + it "has the correct check_answer_label" do + expect(question.check_answer_label).to eq("Buyer 2’s previous tenure") + end + + it "has the correct type" do + expect(question.type).to eq("radio") + end + + it "is not marked as derived" do + expect(question.derived?).to be false + end + + it "has the correct hint_text" do + expect(question.hint_text).to eq("") + end + + it "has the correct answer_options" do + expect(question.answer_options).to eq({ + "1" => { "value" => "Local Authority" }, + "2" => { "value" => "Private registered provider or housing association tenant" }, + "3" => { "value" => "Private tenant" }, + "5" => { "value" => "Owner occupier" }, + "4" => { "value" => "Tied home or renting with job" }, + "6" => { "value" => "Living with family or friends" }, + "7" => { "value" => "Temporary accomodation" }, + "9" => { "value" => "Other" }, + "0" => { "value" => "Don't know" }, + }) + end +end diff --git a/spec/models/form/sales/subsections/household_situation_spec.rb b/spec/models/form/sales/subsections/household_situation_spec.rb index e88dda99f..10898b27c 100644 --- a/spec/models/form/sales/subsections/household_situation_spec.rb +++ b/spec/models/form/sales/subsections/household_situation_spec.rb @@ -1,25 +1,44 @@ require "rails_helper" RSpec.describe Form::Sales::Subsections::HouseholdSituation, type: :model do - subject(:household_characteristics) { described_class.new(subsection_id, subsection_definition, section) } + subject(:household_characteristics) { described_class.new(nil, nil, section) } - let(:subsection_id) { nil } - let(:subsection_definition) { nil } - let(:section) { instance_double(Form::Sales::Sections::Household) } + let(:start_date) { Time.utc(2023, 4, 1) } + let(:form) { instance_double(Form, start_date:) } + let(:section) { instance_double(Form::Sales::Sections::Household, form:) } it "has correct section" do expect(household_characteristics.section).to eq(section) end - it "has correct pages" do - expect(household_characteristics.pages.map(&:id)).to eq( - %w[ - buyer1_previous_tenure - last_accommodation - last_accommodation_la - buyers_organisations - ], - ) + context "when the log belongs to the 22/23 collection" do + let(:start_date) { Time.utc(2022, 4, 1) } + + it "has correct pages" do + expect(household_characteristics.pages.map(&:id)).to eq( + %w[ + buyer1_previous_tenure + last_accommodation + last_accommodation_la + buyers_organisations + ], + ) + end + end + + context "when the log belongs to the 23/24 collection" do + it "has correct pages" do + expect(household_characteristics.pages.map(&:id)).to eq( + %w[ + buyer1_previous_tenure + last_accommodation + last_accommodation_la + buyers_organisations + buyer_2_living_in + buyer_2_previous_housing_situation + ], + ) + end end it "has the correct id" do From 92fdc0fff1a35e3e6574ee293e7fde10d5dfd2d7 Mon Sep 17 00:00:00 2001 From: Arthur Campbell <51094020+arfacamble@users.noreply.github.com> Date: Mon, 13 Mar 2023 17:36:09 +0000 Subject: [PATCH 20/51] CLDC-1816 add hint text to tenancy type options (#1341) * add hint text to several options on tenancy type, rename question class and a few others to make them pascal case and write test files for all changed questions * update some depends on for readability and write test files for page classes * change the condition to avoid conflicts with 2034 and cover that ticket in this one * also add hints to other tenancy question --- .../lettings/pages/starter_tenancy_type.rb | 6 +- .../form/lettings/pages/tenancy_length.rb | 4 +- .../form/lettings/pages/tenancy_type.rb | 6 +- .../lettings/questions/starter_tenancy.rb | 22 ------- .../questions/starter_tenancy_type.rb | 37 +++++++++++ app/models/form/lettings/questions/tenancy.rb | 22 ------- .../{tenancylength.rb => tenancy_length.rb} | 2 +- .../{tenancyother.rb => tenancy_other.rb} | 2 +- .../form/lettings/questions/tenancy_type.rb | 37 +++++++++++ app/models/lettings_log.rb | 8 +++ .../pages/starter_tenancy_type_spec.rb | 31 +++++++++ .../lettings/pages/tenancy_length_spec.rb | 31 +++++++++ .../form/lettings/pages/tenancy_type_spec.rb | 31 +++++++++ .../lettings/questions/tenancy_length_spec.rb | 44 +++++++++++++ .../lettings/questions/tenancy_other_spec.rb | 35 ++++++++++ .../lettings/questions/tenancy_type_spec.rb | 65 +++++++++++++++++++ 16 files changed, 329 insertions(+), 54 deletions(-) delete mode 100644 app/models/form/lettings/questions/starter_tenancy.rb create mode 100644 app/models/form/lettings/questions/starter_tenancy_type.rb delete mode 100644 app/models/form/lettings/questions/tenancy.rb rename app/models/form/lettings/questions/{tenancylength.rb => tenancy_length.rb} (86%) rename app/models/form/lettings/questions/{tenancyother.rb => tenancy_other.rb} (78%) create mode 100644 app/models/form/lettings/questions/tenancy_type.rb create mode 100644 spec/models/form/lettings/pages/starter_tenancy_type_spec.rb create mode 100644 spec/models/form/lettings/pages/tenancy_length_spec.rb create mode 100644 spec/models/form/lettings/pages/tenancy_type_spec.rb create mode 100644 spec/models/form/lettings/questions/tenancy_length_spec.rb create mode 100644 spec/models/form/lettings/questions/tenancy_other_spec.rb create mode 100644 spec/models/form/lettings/questions/tenancy_type_spec.rb diff --git a/app/models/form/lettings/pages/starter_tenancy_type.rb b/app/models/form/lettings/pages/starter_tenancy_type.rb index c488b7b17..fe147bc77 100644 --- a/app/models/form/lettings/pages/starter_tenancy_type.rb +++ b/app/models/form/lettings/pages/starter_tenancy_type.rb @@ -2,13 +2,13 @@ class Form::Lettings::Pages::StarterTenancyType < ::Form::Page def initialize(id, hsh, subsection) super @id = "starter_tenancy_type" - @depends_on = [{ "startertenancy" => 1 }] + @depends_on = [{ "starter_tenancy?" => true }] end def questions @questions ||= [ - Form::Lettings::Questions::StarterTenancy.new(nil, nil, self), - Form::Lettings::Questions::Tenancyother.new(nil, nil, self), + Form::Lettings::Questions::StarterTenancyType.new(nil, nil, self), + Form::Lettings::Questions::TenancyOther.new(nil, nil, self), ] end end diff --git a/app/models/form/lettings/pages/tenancy_length.rb b/app/models/form/lettings/pages/tenancy_length.rb index 943ea2bc9..cb533dcf9 100644 --- a/app/models/form/lettings/pages/tenancy_length.rb +++ b/app/models/form/lettings/pages/tenancy_length.rb @@ -2,10 +2,10 @@ class Form::Lettings::Pages::TenancyLength < ::Form::Page def initialize(id, hsh, subsection) super @id = "tenancy_length" - @depends_on = [{ "tenancy" => 4 }, { "tenancy" => 6 }, { "tenancy" => 3 }] + @depends_on = [{ "tenancy_type_fixed_term?" => true }] end def questions - @questions ||= [Form::Lettings::Questions::Tenancylength.new(nil, nil, self)] + @questions ||= [Form::Lettings::Questions::TenancyLength.new(nil, nil, self)] end end diff --git a/app/models/form/lettings/pages/tenancy_type.rb b/app/models/form/lettings/pages/tenancy_type.rb index 8ee6c3bbc..c15f6f27a 100644 --- a/app/models/form/lettings/pages/tenancy_type.rb +++ b/app/models/form/lettings/pages/tenancy_type.rb @@ -2,13 +2,13 @@ class Form::Lettings::Pages::TenancyType < ::Form::Page def initialize(id, hsh, subsection) super @id = "tenancy_type" - @depends_on = [{ "startertenancy" => 2 }] + @depends_on = [{ "starter_tenancy?" => false }] end def questions @questions ||= [ - Form::Lettings::Questions::Tenancy.new(nil, nil, self), - Form::Lettings::Questions::Tenancyother.new(nil, nil, self), + Form::Lettings::Questions::TenancyType.new(nil, nil, self), + Form::Lettings::Questions::TenancyOther.new(nil, nil, self), ] end end diff --git a/app/models/form/lettings/questions/starter_tenancy.rb b/app/models/form/lettings/questions/starter_tenancy.rb deleted file mode 100644 index 9e489c129..000000000 --- a/app/models/form/lettings/questions/starter_tenancy.rb +++ /dev/null @@ -1,22 +0,0 @@ -class Form::Lettings::Questions::StarterTenancy < ::Form::Question - def initialize(id, hsh, page) - super - @id = "tenancy" - @check_answer_label = "Type of main tenancy after the starter period has ended?" - @header = "What is the type of tenancy after the starter period has ended?" - @type = "radio" - @check_answers_card_number = 0 - @hint_text = "This is also known as an ‘introductory period’." - @answer_options = ANSWER_OPTIONS - @conditional_for = { "tenancyother" => [3] } - end - - ANSWER_OPTIONS = { - "4" => { "value" => "Assured Shorthold Tenancy (AST) – Fixed term" }, - "6" => { "value" => "Secure – fixed term" }, - "2" => { "value" => "Assured – lifetime" }, - "7" => { "value" => "Secure – lifetime" }, - "5" => { "value" => "Licence agreement" }, - "3" => { "value" => "Other" }, - }.freeze -end diff --git a/app/models/form/lettings/questions/starter_tenancy_type.rb b/app/models/form/lettings/questions/starter_tenancy_type.rb new file mode 100644 index 000000000..13fa20ef6 --- /dev/null +++ b/app/models/form/lettings/questions/starter_tenancy_type.rb @@ -0,0 +1,37 @@ +class Form::Lettings::Questions::StarterTenancyType < ::Form::Question + def initialize(id, hsh, page) + super + @id = "tenancy" + @check_answer_label = "Type of main tenancy after the starter period has ended?" + @header = "What is the type of tenancy after the starter period has ended?" + @type = "radio" + @check_answers_card_number = 0 + @hint_text = "This is also known as an ‘introductory period’." + @answer_options = ANSWER_OPTIONS + @conditional_for = { "tenancyother" => [3] } + end + + ANSWER_OPTIONS = { + "4" => { + "value" => "Assured Shorthold Tenancy (AST) – Fixed term", + "hint" => "Mostly housing associations provide these. Fixed term tenancies are intended to be for a set amount of time up to 20 years.", + }, + "6" => { + "value" => "Secure – fixed term", + "hint" => "Mostly local authorities provide these. Fixed term tenancies are intended to be for a set amount of time up to 20 years.", + }, + "2" => { + "value" => "Assured – lifetime", + }, + "7" => { + "value" => "Secure – lifetime", + }, + "5" => { + "value" => "Licence agreement", + "hint" => "Licence agreements are mostly used for Supported Housing and work on a rolling basis.", + }, + "3" => { + "value" => "Other", + }, + }.freeze +end diff --git a/app/models/form/lettings/questions/tenancy.rb b/app/models/form/lettings/questions/tenancy.rb deleted file mode 100644 index 06a8d4fce..000000000 --- a/app/models/form/lettings/questions/tenancy.rb +++ /dev/null @@ -1,22 +0,0 @@ -class Form::Lettings::Questions::Tenancy < ::Form::Question - def initialize(id, hsh, page) - super - @id = "tenancy" - @check_answer_label = "Type of main tenancy" - @header = "What is the type of tenancy?" - @type = "radio" - @check_answers_card_number = 0 - @hint_text = "" - @answer_options = ANSWER_OPTIONS - @conditional_for = { "tenancyother" => [3] } - end - - ANSWER_OPTIONS = { - "4" => { "value" => "Assured Shorthold Tenancy (AST) – Fixed term" }, - "6" => { "value" => "Secure – fixed term" }, - "2" => { "value" => "Assured – lifetime" }, - "7" => { "value" => "Secure – lifetime" }, - "5" => { "value" => "Licence agreement" }, - "3" => { "value" => "Other" }, - }.freeze -end diff --git a/app/models/form/lettings/questions/tenancylength.rb b/app/models/form/lettings/questions/tenancy_length.rb similarity index 86% rename from app/models/form/lettings/questions/tenancylength.rb rename to app/models/form/lettings/questions/tenancy_length.rb index 426a95669..0a8088c51 100644 --- a/app/models/form/lettings/questions/tenancylength.rb +++ b/app/models/form/lettings/questions/tenancy_length.rb @@ -1,4 +1,4 @@ -class Form::Lettings::Questions::Tenancylength < ::Form::Question +class Form::Lettings::Questions::TenancyLength < ::Form::Question def initialize(id, hsh, page) super @id = "tenancylength" diff --git a/app/models/form/lettings/questions/tenancyother.rb b/app/models/form/lettings/questions/tenancy_other.rb similarity index 78% rename from app/models/form/lettings/questions/tenancyother.rb rename to app/models/form/lettings/questions/tenancy_other.rb index 468d592aa..6eea47ac8 100644 --- a/app/models/form/lettings/questions/tenancyother.rb +++ b/app/models/form/lettings/questions/tenancy_other.rb @@ -1,4 +1,4 @@ -class Form::Lettings::Questions::Tenancyother < ::Form::Question +class Form::Lettings::Questions::TenancyOther < ::Form::Question def initialize(id, hsh, page) super @id = "tenancyother" diff --git a/app/models/form/lettings/questions/tenancy_type.rb b/app/models/form/lettings/questions/tenancy_type.rb new file mode 100644 index 000000000..c05b4349d --- /dev/null +++ b/app/models/form/lettings/questions/tenancy_type.rb @@ -0,0 +1,37 @@ +class Form::Lettings::Questions::TenancyType < ::Form::Question + def initialize(id, hsh, page) + super + @id = "tenancy" + @check_answer_label = "Type of main tenancy" + @header = "What is the type of tenancy?" + @type = "radio" + @check_answers_card_number = 0 + @hint_text = "" + @answer_options = ANSWER_OPTIONS + @conditional_for = { "tenancyother" => [3] } + end + + ANSWER_OPTIONS = { + "4" => { + "value" => "Assured Shorthold Tenancy (AST) – Fixed term", + "hint" => "Mostly housing associations provide these. Fixed term tenancies are intended to be for a set amount of time up to 20 years.", + }, + "6" => { + "value" => "Secure – fixed term", + "hint" => "Mostly local authorities provide these. Fixed term tenancies are intended to be for a set amount of time up to 20 years.", + }, + "2" => { + "value" => "Assured – lifetime", + }, + "7" => { + "value" => "Secure – lifetime", + }, + "5" => { + "value" => "Licence agreement", + "hint" => "Licence agreements are mostly used for Supported Housing and work on a rolling basis.", + }, + "3" => { + "value" => "Other", + }, + }.freeze +end diff --git a/app/models/lettings_log.rb b/app/models/lettings_log.rb index 6491c100f..108cb1be1 100644 --- a/app/models/lettings_log.rb +++ b/app/models/lettings_log.rb @@ -195,6 +195,14 @@ class LettingsLog < Log renewal == 1 end + def starter_tenancy? + startertenancy == 1 + end + + def tenancy_type_fixed_term? + [4, 6].include? tenancy + end + def is_general_needs? # 1: General Needs needstype == 1 diff --git a/spec/models/form/lettings/pages/starter_tenancy_type_spec.rb b/spec/models/form/lettings/pages/starter_tenancy_type_spec.rb new file mode 100644 index 000000000..795dee561 --- /dev/null +++ b/spec/models/form/lettings/pages/starter_tenancy_type_spec.rb @@ -0,0 +1,31 @@ +require "rails_helper" + +RSpec.describe Form::Lettings::Pages::StarterTenancyType, type: :model do + subject(:page) { described_class.new(nil, nil, subsection) } + + let(:subsection) { instance_double(Form::Subsection) } + + it "has correct subsection" do + expect(page.subsection).to eq(subsection) + end + + it "has correct questions" do + expect(page.questions.map(&:id)).to eq(%w[tenancy tenancyother]) + end + + it "has the correct id" do + expect(page.id).to eq("starter_tenancy_type") + end + + it "has the correct header" do + expect(page.header).to be_nil + end + + it "has the correct description" do + expect(page.description).to be_nil + end + + it "has the correct depends_on" do + expect(page.depends_on).to eq([{ "starter_tenancy?" => true }]) + end +end diff --git a/spec/models/form/lettings/pages/tenancy_length_spec.rb b/spec/models/form/lettings/pages/tenancy_length_spec.rb new file mode 100644 index 000000000..d4ea920ae --- /dev/null +++ b/spec/models/form/lettings/pages/tenancy_length_spec.rb @@ -0,0 +1,31 @@ +require "rails_helper" + +RSpec.describe Form::Lettings::Pages::TenancyLength, type: :model do + subject(:page) { described_class.new(nil, nil, subsection) } + + let(:subsection) { instance_double(Form::Subsection) } + + it "has correct subsection" do + expect(page.subsection).to eq subsection + end + + it "has correct questions" do + expect(page.questions.map(&:id)).to eq %w[tenancylength] + end + + it "has the correct id" do + expect(page.id).to eq "tenancy_length" + end + + it "has the correct header" do + expect(page.header).to be_nil + end + + it "has the correct description" do + expect(page.description).to be_nil + end + + it "has the correct depends_on" do + expect(page.depends_on).to eq [{ "tenancy_type_fixed_term?" => true }] + end +end diff --git a/spec/models/form/lettings/pages/tenancy_type_spec.rb b/spec/models/form/lettings/pages/tenancy_type_spec.rb new file mode 100644 index 000000000..ef772e85e --- /dev/null +++ b/spec/models/form/lettings/pages/tenancy_type_spec.rb @@ -0,0 +1,31 @@ +require "rails_helper" + +RSpec.describe Form::Lettings::Pages::TenancyType, type: :model do + subject(:page) { described_class.new(nil, nil, subsection) } + + let(:subsection) { instance_double(Form::Subsection) } + + it "has correct subsection" do + expect(page.subsection).to eq(subsection) + end + + it "has correct questions" do + expect(page.questions.map(&:id)).to eq %w[tenancy tenancyother] + end + + it "has the correct id" do + expect(page.id).to eq "tenancy_type" + end + + it "has the correct header" do + expect(page.header).to be_nil + end + + it "has the correct description" do + expect(page.description).to be_nil + end + + it "has the correct depends_on" do + expect(page.depends_on).to eq [{ "starter_tenancy?" => false }] + end +end diff --git a/spec/models/form/lettings/questions/tenancy_length_spec.rb b/spec/models/form/lettings/questions/tenancy_length_spec.rb new file mode 100644 index 000000000..8eea52a81 --- /dev/null +++ b/spec/models/form/lettings/questions/tenancy_length_spec.rb @@ -0,0 +1,44 @@ +require "rails_helper" + +RSpec.describe Form::Lettings::Questions::TenancyLength, type: :model do + subject(:question) { described_class.new(nil, nil, page) } + + let(:page) { instance_double(Form::Page) } + + it "has correct page" do + expect(question.page).to eq(page) + end + + it "has the correct id" do + expect(question.id).to eq("tenancylength") + end + + it "has the correct header" do + expect(question.header).to eq("What is the length of the fixed-term tenancy to the nearest year?") + end + + it "has the correct check_answer_label" do + expect(question.check_answer_label).to eq("Length of fixed-term tenancy") + end + + it "has the correct type" do + expect(question.type).to eq("numeric") + end + + it "has the correct hint_text" do + expect(question.hint_text).to eq("Don’t include the starter or introductory period.") + end + + it "has the correct minimum and maximum" do + expect(question.min).to eq 0 + expect(question.max).to eq 150 + end + + it "has the correct step" do + expect(question.step).to eq 1 + end + + it "is not marked as derived" do + expect(question.derived?).to be false + end +end diff --git a/spec/models/form/lettings/questions/tenancy_other_spec.rb b/spec/models/form/lettings/questions/tenancy_other_spec.rb new file mode 100644 index 000000000..58a656e57 --- /dev/null +++ b/spec/models/form/lettings/questions/tenancy_other_spec.rb @@ -0,0 +1,35 @@ +require "rails_helper" + +RSpec.describe Form::Lettings::Questions::TenancyOther, type: :model do + subject(:question) { described_class.new(nil, nil, page) } + + let(:page) { instance_double(Form::Page) } + + it "has correct page" do + expect(question.page).to eq(page) + end + + it "has the correct id" do + expect(question.id).to eq("tenancyother") + end + + it "has the correct header" do + expect(question.header).to eq("Please state the tenancy type") + end + + it "has the correct check_answer_label" do + expect(question.check_answer_label).to eq("") + end + + it "has the correct type" do + expect(question.type).to eq("text") + end + + it "has the correct hint_text" do + expect(question.hint_text).to eq("") + end + + it "is not marked as derived" do + expect(question.derived?).to be false + end +end diff --git a/spec/models/form/lettings/questions/tenancy_type_spec.rb b/spec/models/form/lettings/questions/tenancy_type_spec.rb new file mode 100644 index 000000000..8fd8a50f0 --- /dev/null +++ b/spec/models/form/lettings/questions/tenancy_type_spec.rb @@ -0,0 +1,65 @@ +require "rails_helper" + +RSpec.describe Form::Lettings::Questions::TenancyType, type: :model do + subject(:question) { described_class.new(nil, nil, page) } + + let(:page) { instance_double(Form::Page) } + + it "has correct page" do + expect(question.page).to eq(page) + end + + it "has the correct id" do + expect(question.id).to eq("tenancy") + end + + it "has the correct header" do + expect(question.header).to eq("What is the type of tenancy?") + end + + it "has the correct check_answer_label" do + expect(question.check_answer_label).to eq("Type of main tenancy") + end + + it "has the correct type" do + expect(question.type).to eq("radio") + end + + it "has the correct hint_text" do + expect(question.hint_text).to eq("") + end + + it "has the correct conditional_for" do + expect(question.conditional_for).to eq({ "tenancyother" => [3] }) + end + + it "has the correct answer_options" do + expect(question.answer_options).to eq({ + "4" => { + "value" => "Assured Shorthold Tenancy (AST) – Fixed term", + "hint" => "Mostly housing associations provide these. Fixed term tenancies are intended to be for a set amount of time up to 20 years.", + }, + "6" => { + "value" => "Secure – fixed term", + "hint" => "Mostly local authorities provide these. Fixed term tenancies are intended to be for a set amount of time up to 20 years.", + }, + "2" => { + "value" => "Assured – lifetime", + }, + "7" => { + "value" => "Secure – lifetime", + }, + "5" => { + "value" => "Licence agreement", + "hint" => "Licence agreements are mostly used for Supported Housing and work on a rolling basis.", + }, + "3" => { + "value" => "Other", + }, + }) + end + + it "is not marked as derived" do + expect(question.derived?).to be false + end +end From 2b51add7011ff6e2a7d82dc22c18148256a60a78 Mon Sep 17 00:00:00 2001 From: Arthur Campbell <51094020+arfacamble@users.noreply.github.com> Date: Mon, 13 Mar 2023 17:36:43 +0000 Subject: [PATCH 21/51] add new answer options to nationality, rename question, write test file (#1339) --- .../lettings/pages/lead_tenant_nationality.rb | 2 +- .../questions/{national.rb => nationality.rb} | 6 ++- .../lettings/questions/nationality_spec.rb | 48 +++++++++++++++++++ 3 files changed, 53 insertions(+), 3 deletions(-) rename app/models/form/lettings/questions/{national.rb => nationality.rb} (78%) create mode 100644 spec/models/form/lettings/questions/nationality_spec.rb diff --git a/app/models/form/lettings/pages/lead_tenant_nationality.rb b/app/models/form/lettings/pages/lead_tenant_nationality.rb index ae67b1e32..09a25286c 100644 --- a/app/models/form/lettings/pages/lead_tenant_nationality.rb +++ b/app/models/form/lettings/pages/lead_tenant_nationality.rb @@ -6,6 +6,6 @@ class Form::Lettings::Pages::LeadTenantNationality < ::Form::Page end def questions - @questions ||= [Form::Lettings::Questions::National.new(nil, nil, self)] + @questions ||= [Form::Lettings::Questions::Nationality.new(nil, nil, self)] end end diff --git a/app/models/form/lettings/questions/national.rb b/app/models/form/lettings/questions/nationality.rb similarity index 78% rename from app/models/form/lettings/questions/national.rb rename to app/models/form/lettings/questions/nationality.rb index 0bfe198e0..019c8a4fa 100644 --- a/app/models/form/lettings/questions/national.rb +++ b/app/models/form/lettings/questions/nationality.rb @@ -1,9 +1,9 @@ -class Form::Lettings::Questions::National < ::Form::Question +class Form::Lettings::Questions::Nationality < ::Form::Question def initialize(id, hsh, page) super @id = "national" @check_answer_label = "Lead tenant’s nationality" - @header = "What is the lead tenant’s nationality?" + @header = "What is the nationality of the lead tenant?" @type = "radio" @check_answers_card_number = 1 @hint_text = "The lead tenant is the person in the household who does the most paid work. If several people do the same paid work, the lead tenant is whoever is the oldest." @@ -14,6 +14,8 @@ class Form::Lettings::Questions::National < ::Form::Question "18" => { "value" => "United Kingdom" }, "17" => { "value" => "Republic of Ireland" }, "19" => { "value" => "European Economic Area (EEA) country, excluding Ireland" }, + "20" => { "value" => "Afghanistan" }, + "21" => { "value" => "Ukraine" }, "12" => { "value" => "Other" }, "divider" => true, "13" => { "value" => "Tenant prefers not to say" }, diff --git a/spec/models/form/lettings/questions/nationality_spec.rb b/spec/models/form/lettings/questions/nationality_spec.rb new file mode 100644 index 000000000..d0eaeb69b --- /dev/null +++ b/spec/models/form/lettings/questions/nationality_spec.rb @@ -0,0 +1,48 @@ +require "rails_helper" + +RSpec.describe Form::Lettings::Questions::Nationality, type: :model do + subject(:question) { described_class.new(nil, nil, page) } + + let(:page) { instance_double(Form::Page) } + + it "has correct page" do + expect(question.page).to eq(page) + end + + it "has the correct id" do + expect(question.id).to eq("national") + end + + it "has the correct header" do + expect(question.header).to eq("What is the nationality of the lead tenant?") + end + + it "has the correct check_answer_label" do + expect(question.check_answer_label).to eq("Lead tenant’s nationality") + end + + it "has the correct type" do + expect(question.type).to eq("radio") + end + + it "has the correct hint_text" do + expect(question.hint_text).to eq("The lead tenant is the person in the household who does the most paid work. If several people do the same paid work, the lead tenant is whoever is the oldest.") + end + + it "has the correct answer_options" do + expect(question.answer_options).to eq({ + "18" => { "value" => "United Kingdom" }, + "17" => { "value" => "Republic of Ireland" }, + "19" => { "value" => "European Economic Area (EEA) country, excluding Ireland" }, + "20" => { "value" => "Afghanistan" }, + "21" => { "value" => "Ukraine" }, + "12" => { "value" => "Other" }, + "divider" => true, + "13" => { "value" => "Tenant prefers not to say" }, + }) + end + + it "is not marked as derived" do + expect(question.derived?).to be false + end +end From 4916049e18449fa2b1ecd42951c9456d3a46dd56 Mon Sep 17 00:00:00 2001 From: Arthur Campbell <51094020+arfacamble@users.noreply.github.com> Date: Mon, 13 Mar 2023 17:37:21 +0000 Subject: [PATCH 22/51] CLDC-2014 remove text field for buyer 1 nationality other (#1388) * remove question no longer needed and associated test file * amend page and the other question in that page that determined whether the deleted question should be shown update associated test files * createa a migration to remove the column for the deleted question * update test broken by changes * fix test broken by changes --- app/models/form/sales/pages/nationality1.rb | 7 +--- .../form/sales/questions/nationality1.rb | 10 ----- .../sales/questions/other_nationality1.rb | 10 ----- .../imports/sales_logs_import_service.rb | 1 - ...43_remove_othernational_from_sales_logs.rb | 5 +++ db/schema.rb | 1 - .../form/conditional_questions_spec.rb | 12 +++--- .../form/sales/pages/nationality1_spec.rb | 12 +++--- .../form/sales/questions/nationality1_spec.rb | 30 +++++--------- .../questions/other_nationality1_spec.rb | 41 ------------------- 10 files changed, 28 insertions(+), 101 deletions(-) delete mode 100644 app/models/form/sales/questions/other_nationality1.rb create mode 100644 db/migrate/20230307111943_remove_othernational_from_sales_logs.rb delete mode 100644 spec/models/form/sales/questions/other_nationality1_spec.rb diff --git a/app/models/form/sales/pages/nationality1.rb b/app/models/form/sales/pages/nationality1.rb index 96723e857..8db4a64ea 100644 --- a/app/models/form/sales/pages/nationality1.rb +++ b/app/models/form/sales/pages/nationality1.rb @@ -7,15 +7,12 @@ class Form::Sales::Pages::Nationality1 < ::Form::Page "privacynotice" => 1, }, { - "noint" => 1, + "buyer_not_interviewed?" => true, }, ] end def questions - @questions ||= [ - Form::Sales::Questions::Nationality1.new(nil, nil, self), - Form::Sales::Questions::OtherNationality1.new(nil, nil, self), - ] + @questions ||= [Form::Sales::Questions::Nationality1.new(nil, nil, self)] end end diff --git a/app/models/form/sales/questions/nationality1.rb b/app/models/form/sales/questions/nationality1.rb index 53e9edc5f..765489f27 100644 --- a/app/models/form/sales/questions/nationality1.rb +++ b/app/models/form/sales/questions/nationality1.rb @@ -7,16 +7,6 @@ class Form::Sales::Questions::Nationality1 < ::Form::Question @type = "radio" @hint_text = "Buyer 1 is the person in the household who does the most paid work. If it’s a joint purchase and the buyers do the same amount of paid work, buyer 1 is whoever is the oldest." @answer_options = ANSWER_OPTIONS - @conditional_for = { - "othernational" => [12], - } - @hidden_in_check_answers = { - "depends_on" => [ - { - "national" => 12, - }, - ], - } @check_answers_card_number = 1 @inferred_check_answers_value = [{ "condition" => { diff --git a/app/models/form/sales/questions/other_nationality1.rb b/app/models/form/sales/questions/other_nationality1.rb deleted file mode 100644 index 3eb6a48d7..000000000 --- a/app/models/form/sales/questions/other_nationality1.rb +++ /dev/null @@ -1,10 +0,0 @@ -class Form::Sales::Questions::OtherNationality1 < ::Form::Question - def initialize(id, hsh, page) - super - @id = "othernational" - @check_answer_label = "Buyer 1’s nationality" - @header = "Nationality" - @type = "text" - @check_answers_card_number = 1 - end -end diff --git a/app/services/imports/sales_logs_import_service.rb b/app/services/imports/sales_logs_import_service.rb index ed127bff2..577e37e5f 100644 --- a/app/services/imports/sales_logs_import_service.rb +++ b/app/services/imports/sales_logs_import_service.rb @@ -54,7 +54,6 @@ module Imports attributes["details_known_#{index}"] = details_known(index, attributes) end attributes["national"] = unsafe_string_as_integer(xml_doc, "P1Nat") - attributes["othernational"] = nil attributes["ethnic"] = unsafe_string_as_integer(xml_doc, "P1Eth") attributes["ethnic_group"] = ethnic_group(attributes["ethnic"]) attributes["buy1livein"] = unsafe_string_as_integer(xml_doc, "LiveInBuyer1") diff --git a/db/migrate/20230307111943_remove_othernational_from_sales_logs.rb b/db/migrate/20230307111943_remove_othernational_from_sales_logs.rb new file mode 100644 index 000000000..534962773 --- /dev/null +++ b/db/migrate/20230307111943_remove_othernational_from_sales_logs.rb @@ -0,0 +1,5 @@ +class RemoveOthernationalFromSalesLogs < ActiveRecord::Migration[7.0] + def change + remove_column :sales_logs, :othernational, :string + end +end diff --git a/db/schema.rb b/db/schema.rb index 385d565c7..bea2209c3 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -403,7 +403,6 @@ ActiveRecord::Schema[7.0].define(version: 2023_03_08_101826) do t.integer "age1_known" t.string "sex1" t.integer "national" - t.string "othernational" t.integer "ethnic" t.integer "ethnic_group" t.integer "buy1livein" diff --git a/spec/features/form/conditional_questions_spec.rb b/spec/features/form/conditional_questions_spec.rb index 4fc9387da..52d8886e0 100644 --- a/spec/features/form/conditional_questions_spec.rb +++ b/spec/features/form/conditional_questions_spec.rb @@ -54,13 +54,13 @@ RSpec.describe "Form Conditional Questions" do end it "gets cleared if the conditional question is hidden after editing the answer" do - sales_log.update!(national: 12, othernational: "other") - visit("/sales-logs/#{sales_log.id}/buyer-1-nationality") - expect(page).to have_field("sales-log-othernational-field", with: "other") + sales_log.update!(age1_known: 0, age1: 50) + visit("/sales-logs/#{sales_log.id}/buyer-1-age") + expect(page).to have_field("sales-log-age1-field", with: 50) - choose("sales-log-national-18-field", allow_label_click: true) - choose("sales-log-national-12-field", allow_label_click: true) - expect(page).to have_field("sales-log-othernational-field", with: "") + choose("sales-log-age1-known-1-field", allow_label_click: true) + choose("sales-log-age1-known-0-field", allow_label_click: true) + expect(page).to have_field("sales-log-age1-field", with: "") end end end diff --git a/spec/models/form/sales/pages/nationality1_spec.rb b/spec/models/form/sales/pages/nationality1_spec.rb index da5a5f802..37b58a89f 100644 --- a/spec/models/form/sales/pages/nationality1_spec.rb +++ b/spec/models/form/sales/pages/nationality1_spec.rb @@ -1,22 +1,20 @@ require "rails_helper" RSpec.describe Form::Sales::Pages::Nationality1, type: :model do - subject(:page) { described_class.new(page_id, page_definition, subsection) } + subject(:page) { described_class.new(nil, nil, subsection) } - let(:page_id) { nil } - let(:page_definition) { nil } let(:subsection) { instance_double(Form::Subsection) } it "has correct subsection" do - expect(page.subsection).to eq(subsection) + expect(page.subsection).to be subsection end it "has correct questions" do - expect(page.questions.map(&:id)).to eq(%w[national othernational]) + expect(page.questions.map(&:id)).to eq %w[national] end it "has the correct id" do - expect(page.id).to eq("buyer_1_nationality") + expect(page.id).to eq "buyer_1_nationality" end it "has the correct header" do @@ -28,6 +26,6 @@ RSpec.describe Form::Sales::Pages::Nationality1, type: :model do end it "has correct depends_on" do - expect(page.depends_on).to eq([{ "privacynotice" => 1 }, { "noint" => 1 }]) + expect(page.depends_on).to eq [{ "privacynotice" => 1 }, { "buyer_not_interviewed?" => true }] end end diff --git a/spec/models/form/sales/questions/nationality1_spec.rb b/spec/models/form/sales/questions/nationality1_spec.rb index 18f659e86..4b8816dbf 100644 --- a/spec/models/form/sales/questions/nationality1_spec.rb +++ b/spec/models/form/sales/questions/nationality1_spec.rb @@ -1,30 +1,28 @@ require "rails_helper" RSpec.describe Form::Sales::Questions::Nationality1, type: :model do - subject(:question) { described_class.new(question_id, question_definition, page) } + subject(:question) { described_class.new(nil, nil, page) } - let(:question_id) { nil } - let(:question_definition) { nil } let(:page) { instance_double(Form::Page) } it "has correct page" do - expect(question.page).to eq(page) + expect(question.page).to be page end it "has the correct id" do - expect(question.id).to eq("national") + expect(question.id).to eq "national" end it "has the correct header" do - expect(question.header).to eq("What is buyer 1’s nationality?") + expect(question.header).to eq "What is buyer 1’s nationality?" end it "has the correct check_answer_label" do - expect(question.check_answer_label).to eq("Buyer 1’s nationality") + expect(question.check_answer_label).to eq "Buyer 1’s nationality" end it "has the correct type" do - expect(question.type).to eq("radio") + expect(question.type).to eq "radio" end it "is not marked as derived" do @@ -32,7 +30,7 @@ RSpec.describe Form::Sales::Questions::Nationality1, type: :model do end it "has the correct hint" do - expect(question.hint_text).to eq("Buyer 1 is the person in the household who does the most paid work. If it’s a joint purchase and the buyers do the same amount of paid work, buyer 1 is whoever is the oldest.") + expect(question.hint_text).to eq "Buyer 1 is the person in the household who does the most paid work. If it’s a joint purchase and the buyers do the same amount of paid work, buyer 1 is whoever is the oldest." end it "has the correct answer_options" do @@ -46,23 +44,15 @@ RSpec.describe Form::Sales::Questions::Nationality1, type: :model do end it "has correct conditional for" do - expect(question.conditional_for).to eq({ - "othernational" => [12], - }) + expect(question.conditional_for).to be_nil end it "has correct hidden in check answers" do - expect(question.hidden_in_check_answers).to eq({ - "depends_on" => [ - { - "national" => 12, - }, - ], - }) + expect(question.hidden_in_check_answers).to be_nil end it "has the correct check_answers_card_number" do - expect(question.check_answers_card_number).to eq(1) + expect(question.check_answers_card_number).to be 1 end it "has the correct inferred_check_answers_value" do diff --git a/spec/models/form/sales/questions/other_nationality1_spec.rb b/spec/models/form/sales/questions/other_nationality1_spec.rb deleted file mode 100644 index c3faa73dc..000000000 --- a/spec/models/form/sales/questions/other_nationality1_spec.rb +++ /dev/null @@ -1,41 +0,0 @@ -require "rails_helper" - -RSpec.describe Form::Sales::Questions::OtherNationality1, type: :model do - subject(:question) { described_class.new(question_id, question_definition, page) } - - let(:question_id) { nil } - let(:question_definition) { nil } - let(:page) { instance_double(Form::Page) } - - it "has correct page" do - expect(question.page).to eq(page) - end - - it "has the correct id" do - expect(question.id).to eq("othernational") - end - - it "has the correct header" do - expect(question.header).to eq("Nationality") - end - - it "has the correct check_answer_label" do - expect(question.check_answer_label).to eq("Buyer 1’s nationality") - end - - it "has the correct type" do - expect(question.type).to eq("text") - end - - it "is not marked as derived" do - expect(question.derived?).to be false - end - - it "has the correct hint" do - expect(question.hint_text).to be_nil - end - - it "has the correct check_answers_card_number" do - expect(question.check_answers_card_number).to eq(1) - end -end From 48c4b458133f0f5edf2a27297339ab50d53cbd2b Mon Sep 17 00:00:00 2001 From: kosiakkatrina <54268893+kosiakkatrina@users.noreply.github.com> Date: Tue, 14 Mar 2023 08:07:22 +0000 Subject: [PATCH 23/51] CLDC-1886 Add sales paper form download (#1408) * Add sales paper form download * Rename download path * Add 22/23 sales log download --- app/controllers/start_controller.rb | 16 ++++++++++++++++ .../layouts/_collection_resources.html.erb | 18 ++++++++++++++++++ config/routes.rb | 2 ++ public/files/2022_23_sales_paper_form.pdf | Bin 0 -> 394585 bytes public/files/2023_24_sales_paper_form.pdf | Bin 0 -> 421367 bytes 5 files changed, 36 insertions(+) create mode 100644 public/files/2022_23_sales_paper_form.pdf create mode 100644 public/files/2023_24_sales_paper_form.pdf diff --git a/app/controllers/start_controller.rb b/app/controllers/start_controller.rb index d09934cbc..a31251c11 100644 --- a/app/controllers/start_controller.rb +++ b/app/controllers/start_controller.rb @@ -4,4 +4,20 @@ class StartController < ApplicationController redirect_to(lettings_logs_path) end end + + def download_23_24_sales_form + send_file( + Rails.root.join("public/files/2023_24_sales_paper_form.pdf"), + filename: "2023-24 Sales paper form.pdf", + type: "application/pdf", + ) + end + + def download_22_23_sales_form + send_file( + Rails.root.join("public/files/2022_23_sales_paper_form.pdf"), + filename: "2022-23 Sales paper form.pdf", + type: "application/pdf", + ) + end end diff --git a/app/views/layouts/_collection_resources.html.erb b/app/views/layouts/_collection_resources.html.erb index 726cd1a86..289c0c7f1 100644 --- a/app/views/layouts/_collection_resources.html.erb +++ b/app/views/layouts/_collection_resources.html.erb @@ -19,4 +19,22 @@ metadata: "PDF, 654 KB, 4 pages", }, ]) %> + +

Sales 23/24

+ <%= render DocumentListComponent.new(items: [ + { + name: "Sales log for buyers (2023/24)", + href: download_23_24_sales_form_path, + metadata: "PDF, 421 KB, 8 pages", + }, + ]) %> + +

Sales 22/23

+ <%= render DocumentListComponent.new(items: [ + { + name: "Sales log for buyers (2022/23)", + href: download_22_23_sales_form_path, + metadata: "PDF, 397 KB, 5 pages", + }, + ]) %> diff --git a/config/routes.rb b/config/routes.rb index 02a9cb707..327a0b4c2 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -35,6 +35,8 @@ Rails.application.routes.draw do get "/accessibility-statement", to: "content#accessibility_statement" get "/privacy-notice", to: "content#privacy_notice" get "/data-sharing-agreement", to: "content#data_sharing_agreement" + get "/download-23-24-sales-form", to: "start#download_23_24_sales_form" + get "/download-22-23-sales-form", to: "start#download_22_23_sales_form" resource :account, only: %i[show edit], controller: "users" do get "edit/password", to: "users#edit_password" diff --git a/public/files/2022_23_sales_paper_form.pdf b/public/files/2022_23_sales_paper_form.pdf new file mode 100644 index 0000000000000000000000000000000000000000..961350f379fe2ffcf80b1f95e603bc46679ceb87 GIT binary patch literal 394585 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

ljVVY4l0@=QyuN1H!hOU1On_6qb1>I+ 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 z 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%0AO^H;EPw>om1 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 A%Vvjvj>0K~5VPH_rpa1F3IAnuXs{_g7@In_3{ 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 h&DMsF(ahBj5gjl@53K~J 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%0A)-d+NKxTe{2Ja_tp|E2)Y*&-+vpNUHlGcf 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�~+Zs+<> zv+zREoMmlG0y?SLdnS9O+=)f~el85DtXcz2a`I%g=Y451C3hWrz%p#f_y>7nNz{hg zD61L&=}^GihGXAp;75VF{bW$u?9-uhYKaa9J95qY>3m9`%W5{ytVk#p34tGXzSX(^ zO|K}<6&ndVVYrb%97aFWdX7Tl`)SXcA#Xd%{iosMY6s`4!Piqu;?ldg<)`NJ#`+I< zP{o9L#Tu)Y)$Y%)dLxUfdwR#+CS?K-cJ3m=W<#=;Otdv8!TZ7vZ?~izkCJj$IasQ^ zJ))W2^Fpy)Z^4`h0y9C|j+=+I-Yvt%u)rs~uq&YiKhKDkAS+4F3<%9ChgHz2y<4r1 zB9KscSV21pSnaCPdS8M__WwXVkNv_Xy{r*cV!?USGZzgub|FaE`pXBKPy*oMS1E>A z%*HewMPDCK?~nuZHI=SDAAYW=iiB+wC;Pt`I;4s@fLgtyB!25Wt%n}$u0a_LfGe|& zXKlt%@E#*z(~hTe6bK&#-j11OI%G%(>YWUlpy@w-@}k`V|I*k%Unt1RIC(fROY)PM zcqP3C?2mU?&TGa-$lV?gbhz-tC41k3C zU6W9su-Dl0ur^P2sN%&E|MgR#BQ>m20RQ|$RZ8XhK!Ha6ool_GnP7%paLU#;nBs^= zfbj3L;r1BosvekeA5Fl(Ukv~%=;K!6vKM`Sb<`)~;*XBYqHglLb@#?YJ!4&wfgye4 z=>GSAQWXKd>h*@|R&95G2YxNk^!H}%bX+7zZW()#%!{uES;^sXH!BxLI$AxlA%5$e z(r=To*h6Gm?KT?fi7gkAtc_e+)dKh`^^L76diX7WVDw2u2u>abV?zPrMi@@Qk)?JS z_MroC-TX$IpTajn_aZf?O1p6soXrlKDK6*#=`)aM*)?fq>3wok033k!k$(?<7KU}V zV&Lte*4LqNM}Kn8F1wMnO;SL1{q}{Pxb;-`ucS)yli3(M6&NO)qlw&26(HGP2+|-B zv2jGi9K1B9xOIA3pC0C|kajgj$&CVyR3J_~mR8>YrsgxR=u#~7THQe3iu@xb!q~4mg)|~#%8@~o43<(reVL*20kDox;50_Ro z0PRliK30o>4%QK12ZvesUDmr;j$Lr%DUF1n=xQo8gR4~?ywxpX`Qb)TgGb&+RnY<% zk#3$Kxgj=O&hJ=~-0d(<5?gsSJv|>q>x?ZEvGi9lVodVgue_5-N2$fjO{J=~mKUQe zR^y4(v-<^%PrG)!(O!l`R9Z(#la3BiKV>Y-UiiEzs7p9CM;>O26#&H_aT8yxJyuQ? ziYm_J%wpLS*A_8Z>`wm`zYRQi=gnL8%jc^&TBGWe+;E`!Y24N+EOJKayEP?i6Uv;u zMMVMsoo_yQ#%MM(%WWseTCGam)hw6bPkm*Y<;A_sTqx(m#z!aLoKpJ#iWoIa{H$N7Mnd$nI9-Aujwl+;rV3+7 z&zdxk3+Wg6Jp!3i9s}2pnuuE?;TtV-zy5YxT)huE%CjAg3-3H4TQ;CGMnByKww}Lo zw}oIuqTRW3`H18p%jh;>cbDQuCv0}W312G0leDKPzs=e#`3@2i}M~g7YE17t#`w$euTKsGsh)NOg6XL2*K(o|NRQu zU|K2#!a^n6KSp1}`u)BVoWvyEC+fwkU0PKILT4YlZ!VJAz%Kumb|c6c_#;E60etz& z5Ui!dW)*O~v_eJaDby}q`=VQYaJ47pC>AsNtn2RBl$8spefUcrQ_3k;vkRw!KU=7~ z`qHtVbHsgX7fi8v0(i>`TlDm~i&7?S{s|49EI{cORvho%ol_ z^NUND0x|ZcL*Q%D%aT9iD{Zr%$uCvK+T<+4Y6cH=>}OBnvgPs^2jw+BlFnQOG-yE% zY^PPp(EBekL`o`~l1p`wyIt0oAO=BH)FRiR3Uu7Nw0uXZJhQ;LYj8?%s(0TmYQD{+ zR^xPKL-IG6mj=YKxmGSG+l5Z8 z{VeBnSQz*-E+_Q$-t9eKGeOR-NsP}5KSkHx-zk7MdKa+6TrL-QRXF`M_gTwN4|t3} z&GgsF&&Z>R&E1^Z&25m?Yj9%|^dbRUkm&M}?sN3;h=JOzhvc~7_m8=zX#!4eb?98+VyE&a@Yd&lncf6z^bv_=7(Qn z_G$Feo`G7hUO8Y&I}Lu;!_olj<`gD4m_kv8Xv{q@!HlV&Od@NpdKxYX3V`j2FYziK z@FhE8{JpH73^5f>-PQ%4cPpy4K`GD2m;2W2uYE28C}O@8HwV|}pWi2pLV}Dl1ecl7 zr9Hw?>Jizmu3P%Hcb|a1R1LkD5Mnb~it40eFvAQ)00V~2p(*05+8j-;lAgn6!Je7X}pRa35;em;d&zI z;hgs^t9wN#ugb)qh)6r9Vf#1;@dQ2_LE-#;XyZOhNJY zYf#X}t;`oA5rQ+h5CGNJ@oT`7=r1&^h0sH2LAY~>LG+-+5n5FDZcP+SJiG_Fc{AZCD2yJX$O-d9^JcSzb*SQ<18u z9*I4@S7D2;^0x0Yv$WyWef8j!62?etdMhzaffF?S@vFW6%DtE2jSHL<%UU=#lyBvH zsQ*59)Z%q&)i#jy-Xi$VU4h}ZdtvDeOmF`m=HB`*%I^6er%|Lsx4v2icCYW=-tYVM`4_%F?mo_*>p3&enKOINxn>BZX%SUh zymi6J4?#?92DYDQ4wQSzeyQCu;8STY3Kg9p1)Tt|lz9bVGx&XUBj^ievct<(R>t>G zGDSzq`Jh%Ph4tjqaQ!AX%FY9%qYl41{r95h$?tkK?t%g|%m{Ms%7R~=o0XCGn;ebR z^VQYW&15&fR-S4tNBB&9%#oqhIiPL3J6W!w@!}jD8Oaoc02a=x@$t*gRW61Ee`4&S z@a=BMwkTRtJb4%|S^BV5$#R01KD;EsH2UoN4ydp##LbR6sOn3@>$j+4E8|QAb%&0> zfI>7bl_0oYB-7xJSPb`%ofI)#Tl4loL?nGXVrCZ|2&o^~ooy}bu`}S6AAT0<^!HCc zV)gIf4X-%oP%h%IbLp*RcLuL|kix4}pK>oGMw_=!`e13Z&6@p|vEbj2wFA?j*!&8G z#q}NI++L}gTUl=7o|Vo5_*SLT@L4PfWxJMtg;LQtkQ(%ihA2lI7CU3{jGrhk5tnW> zUowgVml7lrhY=~q!Ap8vUzokhME7~C3d^cjn^X}XuPXnFP%!&lm^rkbs_5}q#GBtq zq8<~TT~s2o@3nGXU;MIB)X7ZtBurYOh&>GvUnJI`g(vzwdWAkc*P(fif?643PHP=y*UFm5NhFrk>fmGyqc+mZHG2v6|SXq6R~ z$~&`2S?3}p!*RHVSq1DYM5EBC0@Yv!7R&yea!7W2FVxVsd5*^bSaUD-x5?pwflx#l zEz{5pXroU7X^zSetcciCls&qhK(;^Wm2{zZ_S?L(3GlCKWN@a|I&Cwahbnp=NBk$GaIySW5f% z)1HoW@>DQv%ifGedMLyN8@gRIq>oeadqM}To$U%jLPcCR_@RwWh=BVIUpYco)3E_5 zR_uY`T$;}zfn@)CnIb0(;w>DMl-XGA?N;H7fyb{fKsO%iQOJvWs>SDEDQ%30XCn(a z+zn2lZb_7d1D@35z>1RJgtXpaaDthNeOPahvZgeg-Y$YrDW&{vLhn#e=x9oNYZM|K z+_6(`(sqg# z+icc5;r+OE&&2lbwS+NN1xH>3x~KX9$eZDtBqm2w{+sR$laqZYmEPNQt@kfmTzjxaUmW&3oO96Szj}|wTs0}DS^V~hzfCDUxmL7T& zi&`=$8A4fK`*;p#UA+V-c2IYkU=YgxDy=>p>?JhP$i8MTCjq7JsDUpPDhb-ENyRwR zTk(wKD0!eAQcka9?8P2qFy&B3D_CH03b2Ii1K?E(5gi37a&5B@)@*JqNl(W|_M1@Q zV>&;c{MvVTn`jdF?Ta97G@5JcvjadO^wGqfi9H8?0)29fISJg*mQEvw*7-N7U^Sd3 zT`L(?iEA@@fV(7(73EO{5ZX0pUF!zDwyG6+v*5;UWvs@M^854F3*B#1?vV?ewq1U% zMC@grb|?nwu-FR_S9Jz~tAG&sbl?P7pUln!Cl|2tE7?Zhr>~w_^%SlgwqP|zzt2l4 z!)30h^;-TGJhjXrJ*A>kd=TmP|tP>rsTsB?5^bJk8PpP8&HdqG^c}xD0KrTy@CiiM> zot&k7mkY`;EahUsL8e?$-BE}i>X$kdP4L^|53Yf;JNs)+bUyU`9)u@YOc(fyW3SA3hh~wY{?;b*7^t^xmjyriQRoKpNpWj_?plg($Sizi;}Vv zzjN9LGt7Ul5-^Y2Xu{?jbi8OzJJL0l%(nUn_!i;HA6^Y}fW4QA&yRljQdrVONMMnG zYLDCm%YS5*kFvNHLp-$mMT8#e_yC^~Q&*WJ&?ZT%Ih|_hzr`b_Bq)=mY-)N8=Z-@3 zHsx~LrFU=t;RWHz|M?ZI(|{Jnkn)3wXX;+BZ44auC)KMd04pO_au2{w-z8{Q+$Vjq z=iD07PqUlzUS1!NU22gr)hpE=By6uDJpd`gLRT{;+$^soR=Q%UX-j5Y-R5e`f9 zze$vY_bUiZSj<1RJg~$^@wpigN1p1Xt7GD|geIj%k z04Z_bP>bJV_KB~Hyl^hEG$Q_C6NO0IM?ufU+G{`8b|6|YPS0&m{5-~pYCr}fa8b2% zD>)%#efdOAEH+!YbTBser9WZ~PlT;bK`p2L<2xy4I=8ndeAr1>&_g=W&SM|-RsKxw zy%ZN!6nIt50fgf5BH^IqJ2YDnKL3mA#AZZUAvw|bAN{ff8nHgud)}NWGF1Smj3!h% zo|u&i>SCk+^Q;@@aQIZ|XZ=y#WG&H|)-UQ@$C<$qRK}}pc6~H)%kGSCRFx$x1SxL0 zpkCV^6v|uNB4*7AuR4Vc)WhwU7R*xpvqb4A26uSI3`y$ z4IP5Kb!!hI>`c7o6QZ7N7OBnWe;|e+@^LqlR!Z=2d1=|@N0i8`-^K^Pb$_qZK+Q6{ zGJR1e3f}C{m!rVIt?EZhL43FH$D-2H1sFWl`d<$LSYzj0=y7?{1B~L3X~O@X6|HJg z#xv4BpYDso51_Yvr3dwExq`F^rB-S|L{s2~pXI*r55(nLxtWb(`lu0cI0(%lG*F?e zra0gwir-rdq1Dm-xg4T&&E^ysfu*5^T_JBhiVu<84iVJVd0(fR$qx<^dLS^i{#sg9 zmi(wYg5rl zFo*NRa!?Ct2O?jkxpxGiqlI4oW7s5jm;X4U$2ElIOs2A^i+DY84t%S9z$YC$X}2}9 zw{KR-wl4nwBNz)+@2jvddde*HwSgZusZ*a1-4gRvyrMli))iMITVG&dSo|@JzCHkL z52C;4Xz?No4^P2U_`#7U`rYS4!18)@!u3=73$Z>w2kXBH(2WgK@KOeyERXQRq80lz z*u^dO>3I6XcP>V!_20_s?UcNepCU1Wr@)Ps-??b&It&2S2+K&FGR}nVwm{z}Qe&{U z%bZ;iB)>Ck4i*^AM7zqAel^)-F6S@dImoCKHT2L1h2CD#3$-s7?3d-dWb$!DYpY^) zw0kB0*e8L*TDKl84EwV_Dx6?Zd;&_3|H&90X5PI&o=L1VkXL_|&DE`b@$Ft^-Sp_D z5G%7X90o*i^)PSnmHnt5>H0|I*@bfe+4e9-PpnqxVVf&X`~AIn)tAiSQM9dabk9CW zzu4wczirhV0M}o^^nctfS7N!hz}EYSZcDBOp=Bsb z&)SYnRlI2z5G_U~=kEvunipzz_)RAc!2==UUSb$ZgPRU}3)Yjii&x+vRv(!sFV2V2 zeT4)S)tZ>y;cLV~yejV=qttnQ8P*cty(INp$EADmR##=OU(7g27ONkZ(V1>@4geiX z&K-abZkGp;6{NqRRo7oZ$~rDltC7`Ke)rFxD&Yy~6J3FEp&C#4#PIpkCMQwWgHU5v zB;X#Yl5l*hyCjA8(Pl&JO)XUVFDpKsNBc*6b?B39Kmp=9Q;NC;gDRl2tPMpasL)K{ zMZ&J@ArSrj8kd?rys@WfYHR~vLiPw2Yptr=x$*Wj25;tombme!OdG489MSYxoaIxx zd`9w4#xXp8@TNURTk$gBu)9mYP}<)(bq@w2l_AbXxVTWQ)9$%rr(;5w2= z

c@?%s+4SLk7uAChTIhS6GjMqR#My(m;rC&! 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⪙Y|+m724&+Vxlju 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 literal 0 HcmV?d00001 From 7f946fef9d7aedd76d6e4bce739d4734c92f3dde Mon Sep 17 00:00:00 2001 From: kosiakkatrina <54268893+kosiakkatrina@users.noreply.github.com> Date: Tue, 14 Mar 2023 08:59:25 +0000 Subject: [PATCH 24/51] Update lettings log form download (#1409) --- app/controllers/start_controller.rb | 8 ++++++++ .../layouts/_collection_resources.html.erb | 4 ++-- config/routes.rb | 1 + public/files/2023_24_lettings_paper_form.pdf | Bin 0 -> 276155 bytes 4 files changed, 11 insertions(+), 2 deletions(-) create mode 100644 public/files/2023_24_lettings_paper_form.pdf diff --git a/app/controllers/start_controller.rb b/app/controllers/start_controller.rb index a31251c11..d707d3e91 100644 --- a/app/controllers/start_controller.rb +++ b/app/controllers/start_controller.rb @@ -20,4 +20,12 @@ class StartController < ApplicationController type: "application/pdf", ) end + + def download_23_24_lettings_form + send_file( + Rails.root.join("public/files/2023_24_lettings_paper_form.pdf"), + filename: "2023-24 Lettings paper form.pdf", + type: "application/pdf", + ) + end end diff --git a/app/views/layouts/_collection_resources.html.erb b/app/views/layouts/_collection_resources.html.erb index 289c0c7f1..37e9c4b94 100644 --- a/app/views/layouts/_collection_resources.html.erb +++ b/app/views/layouts/_collection_resources.html.erb @@ -6,8 +6,8 @@ <%= render DocumentListComponent.new(items: [ { name: "Lettings log for tenants (2023/24)", - href: "https://core.communities.gov.uk/public/download/guides-and-manuals/2023-24%20Lettings%20paper%20form.pdf?download-format=pdf", - metadata: "PDF, 281 KB, 8 pages", + href: download_23_24_lettings_form_path, + metadata: "PDF, 278 KB, 8 pages", }, ]) %> diff --git a/config/routes.rb b/config/routes.rb index 327a0b4c2..9c66098d7 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -37,6 +37,7 @@ Rails.application.routes.draw do get "/data-sharing-agreement", to: "content#data_sharing_agreement" get "/download-23-24-sales-form", to: "start#download_23_24_sales_form" get "/download-22-23-sales-form", to: "start#download_22_23_sales_form" + get "/download-23-24-lettings-form", to: "start#download_23_24_lettings_form" resource :account, only: %i[show edit], controller: "users" do get "edit/password", to: "users#edit_password" diff --git a/public/files/2023_24_lettings_paper_form.pdf b/public/files/2023_24_lettings_paper_form.pdf new file mode 100644 index 0000000000000000000000000000000000000000..787e3b3b81e1d7e347a14fb047860ff6e4adad1d GIT binary patch literal 276155 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�zR?r+H-2@4p~S~<;fDz-Wad=9-p~;+(FzF5yvo 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 gCe1q@qNobR9vVm#rxfCvz=rX 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 S Date: Tue, 14 Mar 2023 11:02:54 +0000 Subject: [PATCH 25/51] Run tests in parallel (#1412) * Run tests in parallel * Failing test * Add parallel tests to prod pipeline * Remove failing test * Add PARALLEL_TEST_PROCESSORS env var --- .github/workflows/production_pipeline.yml | 5 +++-- .github/workflows/staging_pipeline.yml | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/production_pipeline.yml b/.github/workflows/production_pipeline.yml index 23bb69c00..82f37e743 100644 --- a/.github/workflows/production_pipeline.yml +++ b/.github/workflows/production_pipeline.yml @@ -42,6 +42,7 @@ jobs: DB_USERNAME: postgres DB_PASSWORD: password RAILS_MASTER_KEY: ${{ secrets.RAILS_MASTER_KEY }} + PARALLEL_TEST_PROCESSORS: 4 steps: - name: Get latest release with tag @@ -71,7 +72,7 @@ jobs: - name: Create database run: | - bundle exec rake db:prepare + bundle exec rake parallel:setup - name: Compile Assets run: | @@ -79,7 +80,7 @@ jobs: - name: Run tests run: | - bundle exec rspec --exclude-pattern "features/*" --fail-fast + bundle exec rake parallel:spec['spec\/(?!features)'] feature_test: name: Feature Tests diff --git a/.github/workflows/staging_pipeline.yml b/.github/workflows/staging_pipeline.yml index 8d48f7b7e..9ca8cb69d 100644 --- a/.github/workflows/staging_pipeline.yml +++ b/.github/workflows/staging_pipeline.yml @@ -45,6 +45,7 @@ jobs: DB_USERNAME: postgres DB_PASSWORD: password RAILS_MASTER_KEY: ${{ secrets.RAILS_MASTER_KEY }} + PARALLEL_TEST_PROCESSORS: 4 steps: - name: Checkout @@ -63,7 +64,7 @@ jobs: - name: Create database run: | - bundle exec rake db:prepare + bundle exec rake parallel:setup - name: Compile assets run: | @@ -71,7 +72,7 @@ jobs: - name: Run tests run: | - bundle exec rspec --exclude-pattern "features/*" --fail-fast + bundle exec rake parallel:spec['spec\/(?!features)'] feature_test: name: Feature Tests From be6d4f62e9320676e32024f882f83b35d550ec09 Mon Sep 17 00:00:00 2001 From: Arthur Campbell <51094020+arfacamble@users.noreply.github.com> Date: Tue, 14 Mar 2023 11:56:08 +0000 Subject: [PATCH 26/51] CLDC-1925 ask for buyer 2 nationality when joint purchase (#1390) * create migration for new column * create page class and add to household characteristics * create question for buyer 2 nationality and associated test file * fix failing test after added page * rename method after code review * add question number for the new question to allow CLDC-1864 to progress with fewer conflicts/complications --- .../form/sales/pages/buyer2_nationality.rb | 11 ++++ .../sales/questions/buyer2_nationality.rb | 26 ++++++++ .../subsections/household_characteristics.rb | 19 +++--- ...07140937_add_nationalbuy2_to_sales_logs.rb | 5 ++ db/schema.rb | 1 + .../sales/pages/buyer2_nationality_spec.rb | 31 +++++++++ .../questions/buyer2_nationality_spec.rb | 63 +++++++++++++++++++ .../household_characteristics_spec.rb | 1 + 8 files changed, 149 insertions(+), 8 deletions(-) create mode 100644 app/models/form/sales/pages/buyer2_nationality.rb create mode 100644 app/models/form/sales/questions/buyer2_nationality.rb create mode 100644 db/migrate/20230307140937_add_nationalbuy2_to_sales_logs.rb create mode 100644 spec/models/form/sales/pages/buyer2_nationality_spec.rb create mode 100644 spec/models/form/sales/questions/buyer2_nationality_spec.rb diff --git a/app/models/form/sales/pages/buyer2_nationality.rb b/app/models/form/sales/pages/buyer2_nationality.rb new file mode 100644 index 000000000..3771fe331 --- /dev/null +++ b/app/models/form/sales/pages/buyer2_nationality.rb @@ -0,0 +1,11 @@ +class Form::Sales::Pages::Buyer2Nationality < ::Form::Page + def initialize(id, hsh, subsection) + super + @id = "buyer_2_nationality" + @depends_on = [{ "joint_purchase?" => true }] + end + + def questions + @questions ||= [Form::Sales::Questions::Buyer2Nationality.new(nil, nil, self)] + end +end diff --git a/app/models/form/sales/questions/buyer2_nationality.rb b/app/models/form/sales/questions/buyer2_nationality.rb new file mode 100644 index 000000000..d2056822e --- /dev/null +++ b/app/models/form/sales/questions/buyer2_nationality.rb @@ -0,0 +1,26 @@ +class Form::Sales::Questions::Buyer2Nationality < ::Form::Question + def initialize(id, hsh, page) + super + @id = "nationalbuy2" + @check_answer_label = "Buyer 2’s nationality" + @header = "What is buyer 2’s nationality?" + @type = "radio" + @answer_options = ANSWER_OPTIONS + @check_answers_card_number = 2 + @question_number = 32 + @inferred_check_answers_value = [{ + "condition" => { + "national" => 13, + }, + "value" => "Prefers not to say", + }] + end + + ANSWER_OPTIONS = { + "18" => { "value" => "United Kingdom" }, + "17" => { "value" => "Republic of Ireland" }, + "19" => { "value" => "European Economic Area (EEA), excluding ROI" }, + "12" => { "value" => "Other" }, + "13" => { "value" => "Buyer prefers not to say" }, + }.freeze +end diff --git a/app/models/form/sales/subsections/household_characteristics.rb b/app/models/form/sales/subsections/household_characteristics.rb index 0277acffb..311162e03 100644 --- a/app/models/form/sales/subsections/household_characteristics.rb +++ b/app/models/form/sales/subsections/household_characteristics.rb @@ -32,7 +32,7 @@ class Form::Sales::Subsections::HouseholdCharacteristics < ::Form::Subsection Form::Sales::Pages::RetirementValueCheck.new("age_2_buyer_retirement_value_check", nil, self, person_index: 2), Form::Sales::Pages::GenderIdentity2.new(nil, nil, self), Form::Sales::Pages::RetirementValueCheck.new("gender_2_buyer_retirement_value_check", nil, self, person_index: 2), - ethnic_pages_for_buyer_2, + buyer_2_ethnicity_nationality_pages, Form::Sales::Pages::Buyer2WorkingSituation.new(nil, nil, self), Form::Sales::Pages::RetirementValueCheck.new("working_situation_2_retirement_value_check_joint_purchase", nil, self, person_index: 2), Form::Sales::Pages::Buyer2IncomeValueCheck.new("working_situation_buyer_2_income_value_check", nil, self), @@ -82,14 +82,17 @@ class Form::Sales::Subsections::HouseholdCharacteristics < ::Form::Subsection ].flatten.compact end - def ethnic_pages_for_buyer_2 + def buyer_2_ethnicity_nationality_pages if form.start_date.year >= 2023 - [Form::Sales::Pages::Buyer2EthnicGroup.new(nil, nil, self), - Form::Sales::Pages::Buyer2EthnicBackgroundBlack.new(nil, nil, self), - Form::Sales::Pages::Buyer2EthnicBackgroundAsian.new(nil, nil, self), - Form::Sales::Pages::Buyer2EthnicBackgroundArab.new(nil, nil, self), - Form::Sales::Pages::Buyer2EthnicBackgroundMixed.new(nil, nil, self), - Form::Sales::Pages::Buyer2EthnicBackgroundWhite.new(nil, nil, self)] + [ + Form::Sales::Pages::Buyer2EthnicGroup.new(nil, nil, self), + Form::Sales::Pages::Buyer2EthnicBackgroundBlack.new(nil, nil, self), + Form::Sales::Pages::Buyer2EthnicBackgroundAsian.new(nil, nil, self), + Form::Sales::Pages::Buyer2EthnicBackgroundArab.new(nil, nil, self), + Form::Sales::Pages::Buyer2EthnicBackgroundMixed.new(nil, nil, self), + Form::Sales::Pages::Buyer2EthnicBackgroundWhite.new(nil, nil, self), + Form::Sales::Pages::Buyer2Nationality.new(nil, nil, self), + ] end end diff --git a/db/migrate/20230307140937_add_nationalbuy2_to_sales_logs.rb b/db/migrate/20230307140937_add_nationalbuy2_to_sales_logs.rb new file mode 100644 index 000000000..f49f2c493 --- /dev/null +++ b/db/migrate/20230307140937_add_nationalbuy2_to_sales_logs.rb @@ -0,0 +1,5 @@ +class AddNationalbuy2ToSalesLogs < ActiveRecord::Migration[7.0] + def change + add_column :sales_logs, :nationalbuy2, :integer + end +end diff --git a/db/schema.rb b/db/schema.rb index bea2209c3..085419473 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -544,6 +544,7 @@ ActiveRecord::Schema[7.0].define(version: 2023_03_08_101826) do t.integer "pregblank" t.integer "buy2living" t.integer "prevtenbuy2" + t.integer "nationalbuy2" t.index ["bulk_upload_id"], name: "index_sales_logs_on_bulk_upload_id" t.index ["created_by_id"], name: "index_sales_logs_on_created_by_id" t.index ["old_id"], name: "index_sales_logs_on_old_id", unique: true diff --git a/spec/models/form/sales/pages/buyer2_nationality_spec.rb b/spec/models/form/sales/pages/buyer2_nationality_spec.rb new file mode 100644 index 000000000..92c891f88 --- /dev/null +++ b/spec/models/form/sales/pages/buyer2_nationality_spec.rb @@ -0,0 +1,31 @@ +require "rails_helper" + +RSpec.describe Form::Sales::Pages::Buyer2Nationality, type: :model do + subject(:page) { described_class.new(nil, nil, subsection) } + + let(:subsection) { instance_double(Form::Subsection) } + + it "has correct subsection" do + expect(page.subsection).to be subsection + end + + it "has correct questions" do + expect(page.questions.map(&:id)).to eq %w[nationalbuy2] + end + + it "has the correct id" do + expect(page.id).to eq "buyer_2_nationality" + end + + it "has the correct header" do + expect(page.header).to be_nil + end + + it "has the correct description" do + expect(page.description).to be_nil + end + + it "has correct depends_on" do + expect(page.depends_on).to eq [{ "joint_purchase?" => true }] + end +end diff --git a/spec/models/form/sales/questions/buyer2_nationality_spec.rb b/spec/models/form/sales/questions/buyer2_nationality_spec.rb new file mode 100644 index 000000000..ed1f96c28 --- /dev/null +++ b/spec/models/form/sales/questions/buyer2_nationality_spec.rb @@ -0,0 +1,63 @@ +require "rails_helper" + +RSpec.describe Form::Sales::Questions::Buyer2Nationality, type: :model do + subject(:question) { described_class.new(nil, nil, page) } + + let(:page) { instance_double(Form::Page) } + + it "has correct page" do + expect(question.page).to be page + end + + it "has the correct id" do + expect(question.id).to eq "nationalbuy2" + end + + it "has the correct header" do + expect(question.header).to eq "What is buyer 2’s nationality?" + end + + it "has the correct check_answer_label" do + expect(question.check_answer_label).to eq "Buyer 2’s nationality" + end + + it "has the correct type" do + expect(question.type).to eq "radio" + end + + it "is not marked as derived" do + expect(question.derived?).to be false + end + + it "has the correct hint" do + expect(question.hint_text).to be nil + end + + it "has the correct answer_options" do + expect(question.answer_options).to eq({ + "18" => { "value" => "United Kingdom" }, + "17" => { "value" => "Republic of Ireland" }, + "19" => { "value" => "European Economic Area (EEA), excluding ROI" }, + "12" => { "value" => "Other" }, + "13" => { "value" => "Buyer prefers not to say" }, + }) + end + + it "has correct conditional for" do + expect(question.conditional_for).to be_nil + end + + it "has correct hidden in check answers" do + expect(question.hidden_in_check_answers).to be_nil + end + + it "has the correct check_answers_card_number" do + expect(question.check_answers_card_number).to be 2 + end + + it "has the correct inferred_check_answers_value" do + expect(question.inferred_check_answers_value).to eq([ + { "condition" => { "national" => 13 }, "value" => "Prefers not to say" }, + ]) + end +end diff --git a/spec/models/form/sales/subsections/household_characteristics_spec.rb b/spec/models/form/sales/subsections/household_characteristics_spec.rb index 5a025e8de..b47ac970d 100644 --- a/spec/models/form/sales/subsections/household_characteristics_spec.rb +++ b/spec/models/form/sales/subsections/household_characteristics_spec.rb @@ -135,6 +135,7 @@ RSpec.describe Form::Sales::Subsections::HouseholdCharacteristics, type: :model buyer_2_ethnic_background_arab buyer_2_ethnic_background_mixed buyer_2_ethnic_background_white + buyer_2_nationality buyer_2_working_situation working_situation_2_retirement_value_check_joint_purchase working_situation_buyer_2_income_value_check From cd14c6a24f338faea6067c77004072e522eb0a21 Mon Sep 17 00:00:00 2001 From: SamSeed-Softwire <63662292+SamSeed-Softwire@users.noreply.github.com> Date: Tue, 14 Mar 2023 13:57:47 +0000 Subject: [PATCH 27/51] fix: get real validation messages for rent range validations (#1413) --- app/models/form/lettings/pages/max_rent_value_check.rb | 4 ++-- app/models/form/lettings/pages/min_rent_value_check.rb | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/models/form/lettings/pages/max_rent_value_check.rb b/app/models/form/lettings/pages/max_rent_value_check.rb index 88d0561bf..59b2d14fe 100644 --- a/app/models/form/lettings/pages/max_rent_value_check.rb +++ b/app/models/form/lettings/pages/max_rent_value_check.rb @@ -4,11 +4,11 @@ class Form::Lettings::Pages::MaxRentValueCheck < ::Form::Page @id = "max_rent_value_check" @depends_on = [{ "rent_in_soft_max_range?" => true }] @title_text = { - "translation" => "soft_validations.rent.max.title_text", + "translation" => "soft_validations.rent.outside_range_title", "arguments" => [{ "key" => "brent", "label" => true, "i18n_template" => "brent" }], } @informative_text = { - "translation" => "soft_validations.rent.max.hint_text", + "translation" => "soft_validations.rent.max_hint_text", "arguments" => [ { "key" => "soft_max_for_period", diff --git a/app/models/form/lettings/pages/min_rent_value_check.rb b/app/models/form/lettings/pages/min_rent_value_check.rb index 3bcb95789..ed5ede781 100644 --- a/app/models/form/lettings/pages/min_rent_value_check.rb +++ b/app/models/form/lettings/pages/min_rent_value_check.rb @@ -4,11 +4,11 @@ class Form::Lettings::Pages::MinRentValueCheck < ::Form::Page @id = "min_rent_value_check" @depends_on = [{ "rent_in_soft_min_range?" => true }] @title_text = { - "translation" => "soft_validations.rent.min.title_text", + "translation" => "soft_validations.rent.outside_range_title", "arguments" => [{ "key" => "brent", "label" => true, "i18n_template" => "brent" }], } @informative_text = { - "translation" => "soft_validations.rent.min.hint_text", + "translation" => "soft_validations.rent.min_hint_text", "arguments" => [ { "key" => "soft_min_for_period", From a2b684b1234440f01838b6acb658978c59a432b8 Mon Sep 17 00:00:00 2001 From: Arthur Campbell <51094020+arfacamble@users.noreply.github.com> Date: Tue, 14 Mar 2023 14:55:32 +0000 Subject: [PATCH 28/51] CLDC-1826 lettings log codes only download (#1268) * update seeds to add self in review env, change spec to reflect this, update config yml to allow csv exports in review * update interface of relevant methods EmailCsvJob, LettingsLog.to_csv and LettingsLogCsvService consume codes_only flag * update tests including adding a new csv file to test against * update LettingsLogCsvService to output codes only csv * correct minor error and linting * enable codes only download in UI - add link on lettings log index page - pass codes_only flag through params in relevant links and methods - convert flag to boolean in controller methods * ensure link displayed successfully for all renderings of logs_list and params passed through relevant methods in organisations controller * fix existing tests * correct linting thing * correct linting error * update tests for lettings log controller * correct linting errors * update organisations controller tests * make minor changes after code review * remove changes made for testing on review app * make codes only download visible to support users only * change variable names throughout after info on rauby/rails naming conventions, update tests for change in who can view codes only download link * rework csv service for readability, remove delegating methods from lettings log to keep all code to do with mapping between our domain and desired export format in one place * update test name * correct a small typo and remove a duplicated method after clever git merge conflict suggestion * point review app at staging csv bucket for csv download * change variables named codes_only_export to codes_only to avoid inconsistency * write tests to ensure that differetn user roles have the correct permissions around csv download * ensure that non support users may not download codes only exports * correct a small error in a previous commit * correct minor linting error --- .github/workflows/review_pipeline.yml | 2 +- app/controllers/lettings_logs_controller.rb | 16 +- app/controllers/organisations_controller.rb | 6 +- app/helpers/logs_helper.rb | 7 +- app/jobs/email_csv_job.rb | 4 +- app/models/lettings_log.rb | 20 +- app/services/csv/lettings_log_csv_service.rb | 123 ++++++++-- app/views/logs/_log_list.html.erb | 5 +- app/views/logs/download_csv.html.erb | 2 +- app/views/logs/index.html.erb | 12 +- app/views/organisations/logs.html.erb | 12 +- .../form/accessible_autocomplete_spec.rb | 2 +- .../form/progressive_total_field_spec.rb | 2 +- .../lettings_logs_download_codes_only.csv | 2 + spec/models/lettings_log_spec.rb | 75 ++++-- .../requests/lettings_logs_controller_spec.rb | 215 ++++++++++++++---- .../requests/organisations_controller_spec.rb | 61 ++++- .../csv/lettings_log_csv_service_spec.rb | 2 +- 18 files changed, 451 insertions(+), 117 deletions(-) create mode 100644 spec/fixtures/files/lettings_logs_download_codes_only.csv diff --git a/.github/workflows/review_pipeline.yml b/.github/workflows/review_pipeline.yml index 5656898bc..ac883c788 100644 --- a/.github/workflows/review_pipeline.yml +++ b/.github/workflows/review_pipeline.yml @@ -123,7 +123,7 @@ jobs: cf set-env $APP_NAME IMPORT_PAAS_INSTANCE $IMPORT_PAAS_INSTANCE cf set-env $APP_NAME EXPORT_PAAS_INSTANCE "dluhc-core-review-export-bucket" cf set-env $APP_NAME S3_CONFIG $S3_CONFIG - cf set-env $APP_NAME CSV_DOWNLOAD_PAAS_INSTANCE "dluhc-core-review-csv-bucket" + cf set-env $APP_NAME CSV_DOWNLOAD_PAAS_INSTANCE "dluhc-core-staging-csv-bucket" cf set-env $APP_NAME SENTRY_DSN $SENTRY_DSN cf set-env $APP_NAME APP_HOST "https://dluhc-core-review-${{ github.event.pull_request.number }}.london.cloudapps.digital" diff --git a/app/controllers/lettings_logs_controller.rb b/app/controllers/lettings_logs_controller.rb index f86a55a27..e07878b0b 100644 --- a/app/controllers/lettings_logs_controller.rb +++ b/app/controllers/lettings_logs_controller.rb @@ -2,10 +2,16 @@ class LettingsLogsController < LogsController before_action :find_resource, except: %i[create index edit] before_action :session_filters, if: :current_user, only: %i[index email_csv download_csv] before_action :set_session_filters, if: :current_user, only: %i[index email_csv download_csv] + before_action :authenticate_scope!, only: %i[download_csv email_csv] before_action :extract_bulk_upload_from_session_filters, only: [:index] before_action :redirect_if_bulk_upload_resolved, only: [:index] + def authenticate_scope! + codes_only_export = codes_only_export?(params) + head :unauthorized and return unless current_user.support? || !codes_only_export + end + def index respond_to do |format| format.html do @@ -80,13 +86,19 @@ class LettingsLogsController < LogsController def download_csv unpaginated_filtered_logs = filtered_logs(current_user.lettings_logs, search_term, @session_filters) + codes_only = codes_only_export?(params) + + render "download_csv", locals: { search_term:, count: unpaginated_filtered_logs.size, post_path: email_csv_lettings_logs_path, codes_only: } + end - render "download_csv", locals: { search_term:, count: unpaginated_filtered_logs.size, post_path: email_csv_lettings_logs_path } + def codes_only_export?(params) + params.require(:codes_only) == "true" end def email_csv all_orgs = params["organisation_select"] == "all" - EmailCsvJob.perform_later(current_user, search_term, @session_filters, all_orgs) + codes_only_export = params.require(:codes_only) == "true" + EmailCsvJob.perform_later(current_user, search_term, @session_filters, all_orgs, nil, codes_only_export) redirect_to csv_confirmation_lettings_logs_path end diff --git a/app/controllers/organisations_controller.rb b/app/controllers/organisations_controller.rb index 211283ffe..418526960 100644 --- a/app/controllers/organisations_controller.rb +++ b/app/controllers/organisations_controller.rb @@ -107,12 +107,14 @@ class OrganisationsController < ApplicationController def download_csv organisation_logs = LettingsLog.all.where(owning_organisation_id: @organisation.id) unpaginated_filtered_logs = filtered_logs(organisation_logs, search_term, @session_filters) + codes_only = params.require(:codes_only) == "true" - render "logs/download_csv", locals: { search_term:, count: unpaginated_filtered_logs.size, post_path: logs_email_csv_organisation_path } + render "logs/download_csv", locals: { search_term:, count: unpaginated_filtered_logs.size, post_path: logs_email_csv_organisation_path, codes_only: } end def email_csv - EmailCsvJob.perform_later(current_user, search_term, @session_filters, false, @organisation) + codes_only_export = params.require(:codes_only) == "true" + EmailCsvJob.perform_later(current_user, search_term, @session_filters, false, @organisation, codes_only_export) redirect_to logs_csv_confirmation_organisation_path end diff --git a/app/helpers/logs_helper.rb b/app/helpers/logs_helper.rb index 7653b7e5c..aa132afd6 100644 --- a/app/helpers/logs_helper.rb +++ b/app/helpers/logs_helper.rb @@ -33,10 +33,9 @@ module LogsHelper end end - def csv_download_url_for_controller(controller) - case log_type_for_controller(controller) - when "lettings" - csv_download_lettings_logs_path(search: params["search"]) + def csv_download_url_for_controller(controller_type:, search:, codes_only:) + case log_type_for_controller(controller_type) + when "lettings" then csv_download_lettings_logs_path(search:, codes_only:) end end end diff --git a/app/jobs/email_csv_job.rb b/app/jobs/email_csv_job.rb index c7009645f..6e7888f18 100644 --- a/app/jobs/email_csv_job.rb +++ b/app/jobs/email_csv_job.rb @@ -5,14 +5,14 @@ class EmailCsvJob < ApplicationJob EXPIRATION_TIME = 3.hours.to_i - def perform(user, search_term = nil, filters = {}, all_orgs = false, organisation = nil) # rubocop:disable Style/OptionalBooleanParameter - sidekiq can't serialise named params + def perform(user, search_term = nil, filters = {}, all_orgs = false, organisation = nil, codes_only_export = false) # rubocop:disable Style/OptionalBooleanParameter - sidekiq can't serialise named params unfiltered_logs = organisation.present? && user.support? ? LettingsLog.where(owning_organisation_id: organisation.id) : user.lettings_logs filtered_logs = FilterService.filter_logs(unfiltered_logs, search_term, filters, all_orgs, user) filename = organisation.present? ? "logs-#{organisation.name}-#{Time.zone.now}.csv" : "logs-#{Time.zone.now}.csv" storage_service = Storage::S3Service.new(Configuration::EnvConfigurationService.new, ENV["CSV_DOWNLOAD_PAAS_INSTANCE"]) - storage_service.write_file(filename, BYTE_ORDER_MARK + filtered_logs.to_csv(user)) + storage_service.write_file(filename, BYTE_ORDER_MARK + filtered_logs.to_csv(user, codes_only_export:)) url = storage_service.get_presigned_url(filename, EXPIRATION_TIME) diff --git a/app/models/lettings_log.rb b/app/models/lettings_log.rb index 108cb1be1..dad1ef705 100644 --- a/app/models/lettings_log.rb +++ b/app/models/lettings_log.rb @@ -425,27 +425,13 @@ class LettingsLog < Log created_by&.is_dpo end - delegate :service_name, :sensitive, :registered_under_care_act, :primary_client_group, :has_other_client_group, :secondary_client_group, :owning_organisation, :managing_organisation, :support_type, :intended_stay, :created_at, prefix: "scheme", to: :scheme, allow_nil: true - delegate :scheme_type, to: :scheme, allow_nil: true - def scheme_code scheme&.id ? "S#{scheme.id}" : nil end - def scheme_owning_organisation_name - scheme_owning_organisation&.name - end - - delegate :postcode, :name, :units, :type_of_unit, :mobility_type, :startdate, prefix: "location", to: :location, allow_nil: true - delegate :location_admin_district, to: :location, allow_nil: true - - # This is not the location_code in the db, location.id is just called code in the UI - def location_code - location&.id - end - - def self.to_csv(user = nil) - Csv::LettingsLogCsvService.new(user).to_csv + def self.to_csv(user = nil, codes_only_export:) + export_type = codes_only_export ? "codes" : "labels" + Csv::LettingsLogCsvService.new(user, export_type:).to_csv end def beds_for_la_rent_range diff --git a/app/services/csv/lettings_log_csv_service.rb b/app/services/csv/lettings_log_csv_service.rb index c8a2cf41e..09d373b01 100644 --- a/app/services/csv/lettings_log_csv_service.rb +++ b/app/services/csv/lettings_log_csv_service.rb @@ -2,8 +2,9 @@ module Csv class LettingsLogCsvService CSV_FIELDS_TO_OMIT = %w[hhmemb net_income_value_check first_time_property_let_as_social_housing renttype needstype postcode_known is_la_inferred totchild totelder totadult net_income_known is_carehome previous_la_known is_previous_la_inferred age1_known age2_known age3_known age4_known age5_known age6_known age7_known age8_known letting_allocation_unknown details_known_2 details_known_3 details_known_4 details_known_5 details_known_6 details_known_7 details_known_8 rent_type_detail wrent wscharge wpschrge wsupchrg wtcharge wtshortfall rent_value_check old_form_id old_id retirement_value_check tshortfall_known pregnancy_value_check hhtype new_old vacdays la prevloc unresolved updated_by_id bulk_upload_id].freeze - def initialize(user) + def initialize(user, export_type:) @user = user + @export_type = export_type set_csv_attributes end @@ -12,30 +13,126 @@ module Csv csv << @attributes LettingsLog.all.find_each do |record| - csv << @attributes.map do |att| - label_from_value(record, att) - end + csv << @attributes.map { |attribute| get_value(attribute, record) } end end end private - def label_from_value(record, att) - if %w[la prevloc].include? att - label_from_boolean_value(record.send(att)) - elsif %w[mrcdate startdate voiddate].include? att - record.send(att)&.to_formatted_s(:govuk_date) + ATTRIBUTES_OF_RELATED_OBJECTS = { + location_code: { + labels: %i[location id], + codes: %i[location id], + }, + location_postcode: { + labels: %i[location postcode], + codes: %i[location postcode], + }, + location_name: { + labels: %i[location name], + codes: %i[location name], + }, + location_units: { + labels: %i[location units], + codes: %i[location units], + }, + location_type_of_unit: { + labels: %i[location type_of_unit], + codes: %i[location type_of_unit_before_type_cast], + }, + location_mobility_type: { + labels: %i[location mobility_type], + codes: %i[location mobility_type_before_type_cast], + }, + location_admin_district: { + labels: %i[location location_admin_district], + codes: %i[location location_admin_district], + }, + location_startdate: { + labels: %i[location startdate], + codes: %i[location startdate], + }, + scheme_service_name: { + labels: %i[scheme service_name], + codes: %i[scheme service_name], + }, + scheme_sensitive: { + labels: %i[scheme sensitive], + codes: %i[scheme sensitive_before_type_cast], + }, + scheme_type: { + labels: %i[scheme scheme_type], + codes: %i[scheme scheme_type_before_type_cast], + }, + scheme_registered_under_care_act: { + labels: %i[scheme registered_under_care_act], + codes: %i[scheme registered_under_care_act_before_type_cast], + }, + scheme_owning_organisation_name: { + labels: %i[scheme owning_organisation name], + codes: %i[scheme owning_organisation name], + }, + scheme_primary_client_group: { + labels: %i[scheme primary_client_group], + codes: %i[scheme primary_client_group_before_type_cast], + }, + scheme_has_other_client_group: { + labels: %i[scheme has_other_client_group], + codes: %i[scheme has_other_client_group_before_type_cast], + }, + scheme_secondary_client_group: { + labels: %i[scheme secondary_client_group], + codes: %i[scheme secondary_client_group_before_type_cast], + }, + scheme_support_type: { + labels: %i[scheme support_type], + codes: %i[scheme support_type_before_type_cast], + }, + scheme_intended_stay: { + labels: %i[scheme intended_stay], + codes: %i[scheme intended_stay_before_type_cast], + }, + scheme_created_at: { + labels: %i[scheme created_at], + codes: %i[scheme created_at], + }, + }.freeze + + def get_value(attribute, record) + attribute = "rent_type" if attribute == "rent_type_detail" # rent_type_detail is the requested column header for rent_type, so as not to confuse with renttype + if ATTRIBUTES_OF_RELATED_OBJECTS.key? attribute.to_sym + call_chain = ATTRIBUTES_OF_RELATED_OBJECTS[attribute.to_sym][@export_type.to_sym] + call_chain.reduce(record) { |object, next_call| object&.send(next_call) } + elsif %w[la prevloc].include? attribute # for all exports we output both the codes and labels for these location attributes + record.send(attribute) + elsif %w[la_label prevloc_label].include? attribute # as above + attribute = attribute.remove("_label") + field_value = record.send(attribute) + get_label(field_value, attribute, record) + elsif %w[mrcdate startdate voiddate].include? attribute + record.send(attribute)&.to_formatted_s(:govuk_date) else - record.form.get_question(att.remove("_label"), record)&.label_from_value(record.send(att.remove("_label"))) || label_from_boolean_value(record.send(att.remove("_label"))) + field_value = record.send(attribute) + case @export_type + when "codes" + field_value + when "labels" + answer_label = get_label(field_value, attribute, record) + answer_label || label_if_boolean_value(field_value) || field_value + end end end - def label_from_boolean_value(value) + def get_label(value, attribute, record) + record.form + .get_question(attribute, record) + &.label_from_value(value) + end + + def label_if_boolean_value(value) return "Yes" if value == true return "No" if value == false - - value end def set_csv_attributes diff --git a/app/views/logs/_log_list.html.erb b/app/views/logs/_log_list.html.erb index 1aeaa03f2..9112cde81 100644 --- a/app/views/logs/_log_list.html.erb +++ b/app/views/logs/_log_list.html.erb @@ -1,7 +1,10 @@

<%= render(SearchResultCaptionComponent.new(searched:, count: pagy.count, item_label:, total_count:, item: "logs", path: request.path)) %> <% if logs&.first&.lettings? %> - <%= govuk_link_to "Download (CSV)", csv_download_url, type: "text/csv" %> + <%= govuk_link_to "Download (CSV)", csv_download_url, type: "text/csv", class: "govuk-!-margin-right-4" %> + <% if @current_user.support? %> + <%= govuk_link_to "Download (CSV, codes only)", csv_codes_only_download_url, type: "text/csv" %> + <% end %> <% end %>

<% logs.map do |log| %> diff --git a/app/views/logs/download_csv.html.erb b/app/views/logs/download_csv.html.erb index 4e0da2704..5aeea8173 100644 --- a/app/views/logs/download_csv.html.erb +++ b/app/views/logs/download_csv.html.erb @@ -11,6 +11,6 @@

We'll send a secure download link to your email address <%= @current_user.email %>.

You've selected <%= count %> logs.

- <%= govuk_button_to "Send email", post_path, method: :post, params: { search: search_term } %> + <%= govuk_button_to "Send email", post_path, method: :post, params: { search: search_term, codes_only: } %> diff --git a/app/views/logs/index.html.erb b/app/views/logs/index.html.erb index 0e4cd76df..2d88c9bd6 100644 --- a/app/views/logs/index.html.erb +++ b/app/views/logs/index.html.erb @@ -66,7 +66,17 @@
<%= render SearchComponent.new(current_user:, search_label: search_label_for_controller(controller), value: @searched) %> <%= govuk_section_break(visible: true, size: "m") %> - <%= render partial: "log_list", locals: { logs: @logs, title: "Logs", pagy: @pagy, searched: @searched, item_label:, total_count: @total_count, csv_download_url: csv_download_url_for_controller(controller) } %> + <%= render partial: "log_list", + locals: { + logs: @logs, + title: "Logs", + pagy: @pagy, + searched: @searched, + item_label:, + total_count: @total_count, + csv_download_url: csv_download_url_for_controller(controller_type: controller, search: @search_term, codes_only: false), + csv_codes_only_download_url: csv_download_url_for_controller(controller_type: controller, search: @search_term, codes_only: true), + } %> <%== render partial: "pagy/nav", locals: { pagy: @pagy, item_name: "logs" } %>
diff --git a/app/views/organisations/logs.html.erb b/app/views/organisations/logs.html.erb index 94fe8e9bc..bac737e6c 100644 --- a/app/views/organisations/logs.html.erb +++ b/app/views/organisations/logs.html.erb @@ -26,7 +26,17 @@
<%= render SearchComponent.new(current_user:, search_label: "Search by log ID, tenant code, property reference or postcode", value: @searched) %> <%= govuk_section_break(visible: true, size: "m") %> - <%= render partial: "logs/log_list", locals: { logs: @logs, title: "Logs", pagy: @pagy, searched: @searched, item_label:, total_count: @total_count, csv_download_url: logs_csv_download_organisation_path(@organisation, search: @search_term) } %> + <%= render partial: "logs/log_list", + locals: { + logs: @logs, + title: "Logs", + pagy: @pagy, + searched: @searched, + item_label:, + total_count: @total_count, + csv_download_url: logs_csv_download_organisation_path(@organisation, search: @search_term, codes_only: false), + csv_codes_only_download_url: logs_csv_download_organisation_path(@organisation, search: @search_term, codes_only: true), + } %> <%== render partial: "pagy/nav", locals: { pagy: @pagy, item_name: "logs" } %>
diff --git a/spec/features/form/accessible_autocomplete_spec.rb b/spec/features/form/accessible_autocomplete_spec.rb index fd8102dcc..160d32d38 100644 --- a/spec/features/form/accessible_autocomplete_spec.rb +++ b/spec/features/form/accessible_autocomplete_spec.rb @@ -1,7 +1,7 @@ require "rails_helper" require_relative "helpers" -RSpec.describe "Accessible Automcomplete" do +RSpec.describe "Accessible Autocomplete" do include Helpers let(:user) { FactoryBot.create(:user) } let(:lettings_log) do diff --git a/spec/features/form/progressive_total_field_spec.rb b/spec/features/form/progressive_total_field_spec.rb index e5959d16d..787174c20 100644 --- a/spec/features/form/progressive_total_field_spec.rb +++ b/spec/features/form/progressive_total_field_spec.rb @@ -1,7 +1,7 @@ require "rails_helper" require_relative "helpers" -RSpec.describe "Accessible Automcomplete" do +RSpec.describe "Accessible Autocomplete" do include Helpers let(:user) { FactoryBot.create(:user) } let(:lettings_log) do diff --git a/spec/fixtures/files/lettings_logs_download_codes_only.csv b/spec/fixtures/files/lettings_logs_download_codes_only.csv new file mode 100644 index 000000000..b0bd8be1a --- /dev/null +++ b/spec/fixtures/files/lettings_logs_download_codes_only.csv @@ -0,0 +1,2 @@ +id,status,created_at,updated_at,created_by_name,is_dpo,owning_organisation_name,managing_organisation_name,collection_start_year,needstype,renewal,startdate,rent_type_detail,irproduct_other,tenancycode,propcode,age1,sex1,ecstat1,hhmemb,relat2,age2,sex2,retirement_value_check,ecstat2,armedforces,leftreg,illness,housingneeds_a,housingneeds_b,housingneeds_c,housingneeds_h,is_previous_la_inferred,prevloc_label,prevloc,illness_type_1,illness_type_2,is_la_inferred,la_label,la,postcode_known,postcode_full,previous_la_known,wchair,preg_occ,cbl,earnings,incfreq,net_income_value_check,benefits,hb,period,brent,scharge,pscharge,supcharg,tcharge,offered,layear,ppostcode_full,mrcdate,declaration,ethnic,national,prevten,age3,sex3,ecstat3,age4,sex4,ecstat4,age5,sex5,ecstat5,age6,sex6,ecstat6,age7,sex7,ecstat7,age8,sex8,ecstat8,homeless,underoccupation_benefitcap,reservist,startertenancy,tenancylength,tenancy,rsnvac,unittype_gn,beds,waityear,reasonpref,chr,cap,reasonother,housingneeds_f,housingneeds_g,illness_type_3,illness_type_4,illness_type_8,illness_type_5,illness_type_6,illness_type_7,illness_type_9,illness_type_10,rp_homeless,rp_insan_unsat,rp_medwel,rp_hardship,rp_dontknow,tenancyother,property_owner_organisation,property_manager_organisation,purchaser_code,reason,majorrepairs,hbrentshortfall,property_relet,incref,first_time_property_let_as_social_housing,unitletas,builtype,voiddate,renttype,lettype,totchild,totelder,totadult,net_income_known,nocharge,is_carehome,household_charge,referral,tshortfall,chcharge,ppcodenk,age1_known,age2_known,age3_known,age4_known,age5_known,age6_known,age7_known,age8_known,ethnic_group,letting_allocation_unknown,details_known_2,details_known_3,details_known_4,details_known_5,details_known_6,details_known_7,details_known_8,has_benefits,wrent,wscharge,wpschrge,wsupchrg,wtcharge,wtshortfall,refused,housingneeds,wchchrg,newprop,relat3,relat4,relat5,relat6,relat7,relat8,rent_value_check,old_form_id,lar,irproduct,old_id,joint,tshortfall_known,sheltered,pregnancy_value_check,hhtype,new_old,vacdays,major_repairs_date_value_check,void_date_value_check,housingneeds_type,housingneeds_other,unresolved,updated_by_id,unittype_sh,scheme_code,scheme_service_name,scheme_sensitive,scheme_type,scheme_registered_under_care_act,scheme_owning_organisation_name,scheme_primary_client_group,scheme_has_other_client_group,scheme_secondary_client_group,scheme_support_type,scheme_intended_stay,scheme_created_at,location_code,location_postcode,location_name,location_units,location_type_of_unit,location_mobility_type,location_admin_district,location_startdate +{id},in_progress,2022-02-08 16:52:15 +0000,2022-02-08 16:52:15 +0000,Danny Rojas,false,DLUHC,DLUHC,2021,2,,2 October 2021,2,,,,,,,,,,,,,,,,,,,,false,,,,,false,Westminster,E09000033,,SE1 1TE,,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,8,0,0,0,,0,,,,,,,,,,,,,,,,,,,,,,,,0,,,,,,,0,,,,,,,,,,,,,,,,,,,9,1,,,,,,,,6,{scheme_code},{scheme_service_name},{scheme_sensitive},0,1,DLUHC,{scheme_primary_client_group},,{scheme_secondary_client_group},{scheme_support_type},{scheme_intended_stay},2021-04-01 00:00:00 +0100,{location_code},SE1 1TE,Downing Street,20,6,A,Westminster,{location_startdate} diff --git a/spec/models/lettings_log_spec.rb b/spec/models/lettings_log_spec.rb index c1bfafb57..c6f559aec 100644 --- a/spec/models/lettings_log_spec.rb +++ b/spec/models/lettings_log_spec.rb @@ -2685,40 +2685,67 @@ RSpec.describe LettingsLog do let(:user) { FactoryBot.create(:user, organisation: location.scheme.owning_organisation) } let(:expected_content) { csv_export_file.read } - before do - Timecop.freeze(Time.utc(2022, 6, 5)) - lettings_log = FactoryBot.create(:lettings_log, needstype: 2, scheme:, location:, owning_organisation: scheme.owning_organisation, created_by: user, rent_type: 2, startdate: Time.zone.local(2021, 10, 2)) - expected_content.sub!(/\{id\}/, lettings_log["id"].to_s) - expected_content.sub!(/\{scheme_code\}/, "S#{scheme['id']}") - expected_content.sub!(/\{scheme_service_name\}/, scheme["service_name"].to_s) - expected_content.sub!(/\{scheme_sensitive\}/, scheme["sensitive"].to_s) - expected_content.sub!(/\{scheme_primary_client_group\}/, scheme["primary_client_group"].to_s) - expected_content.sub!(/\{scheme_secondary_client_group\}/, scheme["secondary_client_group"].to_s) - expected_content.sub!(/\{scheme_support_type\}/, scheme["support_type"].to_s) - expected_content.sub!(/\{scheme_intended_stay\}/, scheme["intended_stay"].to_s) - expected_content.sub!(/\{location_code\}/, location["id"].to_s) - expected_content.sub!(/\{location_startdate\}/, location["startdate"].to_s) - expected_content.sub!(/\{scheme_id\}/, scheme["service_name"].to_s) - expected_content.sub!(/\{location_id\}/, location["id"].to_s) - end - after do Timecop.unfreeze end - context "with a support user" do - let(:csv_export_file) { File.open("spec/fixtures/files/lettings_logs_download.csv", "r:UTF-8") } + context "with values represented as human readable labels" do + before do + Timecop.freeze(Time.utc(2022, 6, 5)) + lettings_log = FactoryBot.create(:lettings_log, needstype: 2, scheme:, location:, owning_organisation: scheme.owning_organisation, created_by: user, rent_type: 2, startdate: Time.zone.local(2021, 10, 2)) + expected_content.sub!(/\{id\}/, lettings_log["id"].to_s) + expected_content.sub!(/\{scheme_code\}/, "S#{scheme['id']}") + expected_content.sub!(/\{scheme_service_name\}/, scheme["service_name"].to_s) + expected_content.sub!(/\{scheme_sensitive\}/, scheme["sensitive"].to_s) + expected_content.sub!(/\{scheme_primary_client_group\}/, scheme["primary_client_group"].to_s) + expected_content.sub!(/\{scheme_secondary_client_group\}/, scheme["secondary_client_group"].to_s) + expected_content.sub!(/\{scheme_support_type\}/, scheme["support_type"].to_s) + expected_content.sub!(/\{scheme_intended_stay\}/, scheme["intended_stay"].to_s) + expected_content.sub!(/\{location_code\}/, location["id"].to_s) + expected_content.sub!(/\{location_startdate\}/, location["startdate"].to_s) + expected_content.sub!(/\{scheme_id\}/, scheme["service_name"].to_s) + expected_content.sub!(/\{location_id\}/, location["id"].to_s) + end - it "generates a correct csv from a lettings log" do - expect(described_class.to_csv).to eq(expected_content) + context "with a support user" do + let(:csv_export_file) { File.open("spec/fixtures/files/lettings_logs_download.csv", "r:UTF-8") } + + it "generates a correct csv from a lettings log" do + expect(described_class.to_csv(codes_only_export: false)).to eq(expected_content) + end + end + + context "with a non support user" do + let(:csv_export_file) { File.open("spec/fixtures/files/lettings_logs_download_non_support.csv", "r:UTF-8") } + + it "generates a correct csv from a lettings log" do + expect(described_class.to_csv(user, codes_only_export: false)).to eq(expected_content) + end end end - context "with a non support user" do - let(:csv_export_file) { File.open("spec/fixtures/files/lettings_logs_download_non_support.csv", "r:UTF-8") } + context "with values represented as codes" do + before do + Timecop.freeze(Time.utc(2022, 6, 5)) + lettings_log = FactoryBot.create(:lettings_log, needstype: 2, scheme:, location:, owning_organisation: scheme.owning_organisation, created_by: user, rent_type: 2, startdate: Time.zone.local(2021, 10, 2)) + expected_content.sub!(/\{id\}/, lettings_log["id"].to_s) + expected_content.sub!(/\{scheme_code\}/, "S#{scheme.id}") + expected_content.sub!(/\{scheme_service_name\}/, scheme.service_name.to_s) + expected_content.sub!(/\{scheme_sensitive\}/, scheme.sensitive_before_type_cast.to_s) + expected_content.sub!(/\{scheme_primary_client_group\}/, scheme.primary_client_group_before_type_cast.to_s) + expected_content.sub!(/\{scheme_secondary_client_group\}/, scheme.secondary_client_group_before_type_cast.to_s) + expected_content.sub!(/\{scheme_support_type\}/, scheme.support_type_before_type_cast.to_s) + expected_content.sub!(/\{scheme_intended_stay\}/, scheme.intended_stay_before_type_cast.to_s) + expected_content.sub!(/\{location_code\}/, location.id.to_s) + expected_content.sub!(/\{location_startdate\}/, location.startdate.to_s) + expected_content.sub!(/\{scheme_id\}/, scheme.service_name.to_s) + expected_content.sub!(/\{location_id\}/, location.id.to_s) + end + + let(:csv_export_file) { File.open("spec/fixtures/files/lettings_logs_download_codes_only.csv", "r:UTF-8") } it "generates a correct csv from a lettings log" do - expect(described_class.to_csv(user)).to eq(expected_content) + expect(described_class.to_csv(codes_only_export: true)).to eq(expected_content) end end end diff --git a/spec/requests/lettings_logs_controller_spec.rb b/spec/requests/lettings_logs_controller_spec.rb index 9db2c3236..4e242cd76 100644 --- a/spec/requests/lettings_logs_controller_spec.rb +++ b/spec/requests/lettings_logs_controller_spec.rb @@ -252,24 +252,36 @@ RSpec.describe LettingsLogsController, type: :request do end it "does have organisation values" do - get "/lettings-logs", headers: headers, params: {} + get "/lettings-logs", headers:, params: {} expect(page).to have_content("Owned by") expect(page).to have_content("Managed by") end it "shows lettings logs for all organisations" do - get "/lettings-logs", headers: headers, params: {} + get "/lettings-logs", headers:, params: {} expect(page).to have_content("LC783") expect(page).to have_content("UA984") end + it "displays CSV download links with the correct paths" do + get "/lettings-logs", headers:, params: {} + expect(page).to have_link("Download (CSV)", href: "/lettings-logs/csv-download?codes_only=false") + expect(page).to have_link("Download (CSV, codes only)", href: "/lettings-logs/csv-download?codes_only=true") + end + context "when there are no logs in the database" do before do LettingsLog.destroy_all end + it "does not display CSV download links" do + get "/lettings-logs", headers:, params: {} + expect(page).not_to have_link("Download (CSV)") + expect(page).not_to have_link("Download (CSV, codes only)") + end + it "page has correct title" do - get "/lettings-logs", headers: headers, params: {} + get "/lettings-logs", headers:, params: {} expect(page).to have_title("Logs - Submit social housing lettings and sales data (CORE) - GOV.UK") end end @@ -292,29 +304,29 @@ RSpec.describe LettingsLogsController, type: :request do end it "shows lettings logs for multiple selected statuses" do - get "/lettings-logs?status[]=in_progress&status[]=completed", headers: headers, params: {} + get "/lettings-logs?status[]=in_progress&status[]=completed", headers:, params: {} expect(page).to have_link(in_progress_lettings_log.id.to_s) expect(page).to have_link(completed_lettings_log.id.to_s) end it "shows lettings logs for one selected status" do - get "/lettings-logs?status[]=in_progress", headers: headers, params: {} + get "/lettings-logs?status[]=in_progress", headers:, params: {} expect(page).to have_link(in_progress_lettings_log.id.to_s) expect(page).not_to have_link(completed_lettings_log.id.to_s) end it "filters on organisation" do - get "/lettings-logs?organisation[]=#{organisation_2.id}", headers: headers, params: {} + get "/lettings-logs?organisation[]=#{organisation_2.id}", headers:, params: {} expect(page).to have_link(completed_lettings_log.id.to_s) expect(page).not_to have_link(in_progress_lettings_log.id.to_s) end it "does not reset the filters" do - get "/lettings-logs?status[]=in_progress", headers: headers, params: {} + get "/lettings-logs?status[]=in_progress", headers:, params: {} expect(page).to have_link(in_progress_lettings_log.id.to_s) expect(page).not_to have_link(completed_lettings_log.id.to_s) - get "/lettings-logs", headers: headers, params: {} + get "/lettings-logs", headers:, params: {} expect(page).to have_link(in_progress_lettings_log.id.to_s) expect(page).not_to have_link(completed_lettings_log.id.to_s) end @@ -338,13 +350,13 @@ RSpec.describe LettingsLogsController, type: :request do end it "shows lettings logs for multiple selected years" do - get "/lettings-logs?years[]=2021&years[]=2022", headers: headers, params: {} + get "/lettings-logs?years[]=2021&years[]=2022", headers:, params: {} expect(page).to have_link(lettings_log_2021.id.to_s) expect(page).to have_link(lettings_log_2022.id.to_s) end it "shows lettings logs for one selected year" do - get "/lettings-logs?years[]=2021", headers: headers, params: {} + get "/lettings-logs?years[]=2021", headers:, params: {} expect(page).to have_link(lettings_log_2021.id.to_s) expect(page).not_to have_link(lettings_log_2022.id.to_s) end @@ -387,14 +399,14 @@ RSpec.describe LettingsLogsController, type: :request do end it "shows lettings logs for multiple selected statuses and years" do - get "/lettings-logs?years[]=2021&years[]=2022&status[]=in_progress&status[]=completed", headers: headers, params: {} + get "/lettings-logs?years[]=2021&years[]=2022&status[]=in_progress&status[]=completed", headers:, params: {} expect(page).to have_link(lettings_log_2021.id.to_s) expect(page).to have_link(lettings_log_2022.id.to_s) expect(page).to have_link(lettings_log_2022_in_progress.id.to_s) end it "shows lettings logs for one selected status" do - get "/lettings-logs?years[]=2022&status[]=in_progress", headers: headers, params: {} + get "/lettings-logs?years[]=2022&status[]=in_progress", headers:, params: {} expect(page).to have_link(lettings_log_2022_in_progress.id.to_s) expect(page).not_to have_link(lettings_log_2021.id.to_s) expect(page).not_to have_link(lettings_log_2022.id.to_s) @@ -512,23 +524,36 @@ RSpec.describe LettingsLogsController, type: :request do end it "does not have organisation columns" do - get "/lettings-logs", headers: headers, params: {} + get "/lettings-logs", headers:, params: {} expect(page).not_to have_content("Owning organisation") expect(page).not_to have_content("Managing organisation") end + it "displays standard CSV download link only, with the correct path" do + get "/lettings-logs", headers:, params: {} + expect(page).to have_link("Download (CSV)", href: "/lettings-logs/csv-download?codes_only=false") + expect(page).not_to have_link("Download (CSV, codes only)") + end + + it "does not display CSV download links if there are no logs" do + LettingsLog.destroy_all + get "/lettings-logs", headers:, params: {} + expect(page).not_to have_link("Download (CSV)") + expect(page).not_to have_link("Download (CSV, codes only)") + end + context "when using a search query" do let(:logs) { FactoryBot.create_list(:lettings_log, 3, :completed, owning_organisation: user.organisation, created_by: user) } let(:log_to_search) { FactoryBot.create(:lettings_log, :completed, owning_organisation: user.organisation, created_by: user) } let(:log_total_count) { LettingsLog.where(owning_organisation: user.organisation).count } it "has search results in the title" do - get "/lettings-logs?search=#{log_to_search.id}", headers: headers, params: {} + get "/lettings-logs?search=#{log_to_search.id}", headers:, params: {} expect(page).to have_title("Logs (1 logs matching ‘#{log_to_search.id}’) - Submit social housing lettings and sales data (CORE) - GOV.UK") end it "shows lettings logs matching the id" do - get "/lettings-logs?search=#{log_to_search.id}", headers: headers, params: {} + get "/lettings-logs?search=#{log_to_search.id}", headers:, params: {} expect(page).to have_link(log_to_search.id.to_s) logs.each do |log| expect(page).not_to have_link(log.id.to_s) @@ -536,7 +561,7 @@ RSpec.describe LettingsLogsController, type: :request do end it "shows lettings logs matching the tenant code" do - get "/lettings-logs?search=#{log_to_search.tenancycode}", headers: headers, params: {} + get "/lettings-logs?search=#{log_to_search.tenancycode}", headers:, params: {} expect(page).to have_link(log_to_search.id.to_s) logs.each do |log| expect(page).not_to have_link(log.id.to_s) @@ -544,7 +569,7 @@ RSpec.describe LettingsLogsController, type: :request do end it "shows lettings logs matching the property reference" do - get "/lettings-logs?search=#{log_to_search.propcode}", headers: headers, params: {} + get "/lettings-logs?search=#{log_to_search.propcode}", headers:, params: {} expect(page).to have_link(log_to_search.id.to_s) logs.each do |log| expect(page).not_to have_link(log.id.to_s) @@ -552,25 +577,27 @@ RSpec.describe LettingsLogsController, type: :request do end it "shows lettings logs matching the property postcode" do - get "/lettings-logs?search=#{log_to_search.postcode_full}", headers: headers, params: {} + get "/lettings-logs?search=#{log_to_search.postcode_full}", headers:, params: {} expect(page).to have_link(log_to_search.id.to_s) logs.each do |log| expect(page).not_to have_link(log.id.to_s) end end - it "includes the search on the CSV link" do + it "includes the search on the CSV links" do search_term = "foo" FactoryBot.create(:lettings_log, created_by: user, owning_organisation: user.organisation, tenancycode: "foo") - get "/lettings-logs?search=#{search_term}", headers: headers, params: {} - expect(page).to have_link("Download (CSV)", href: "/lettings-logs/csv-download?search=#{search_term}") + get "/lettings-logs?search=#{search_term}", headers:, params: {} + download_link = page.find_link("Download (CSV)") + download_link_params = CGI.parse(URI.parse(download_link[:href]).query) + expect(download_link_params).to include("search" => [search_term]) end context "when more than one results with matching postcode" do let!(:matching_postcode_log) { FactoryBot.create(:lettings_log, :completed, owning_organisation: user.organisation, postcode_full: log_to_search.postcode_full) } it "displays all matching logs" do - get "/lettings-logs?search=#{log_to_search.postcode_full}", headers: headers, params: {} + get "/lettings-logs?search=#{log_to_search.postcode_full}", headers:, params: {} expect(page).to have_link(log_to_search.id.to_s) expect(page).to have_link(matching_postcode_log.id.to_s) logs.each do |log| @@ -585,12 +612,12 @@ RSpec.describe LettingsLogsController, type: :request do let(:log_total_count) { LettingsLog.where(owning_organisation: user.organisation).count } it "has title with pagination details for page 1" do - get "/lettings-logs?search=#{logs[0].postcode_full}", headers: headers, params: {} + get "/lettings-logs?search=#{logs[0].postcode_full}", headers:, params: {} expect(page).to have_title("Logs (#{logs.count} logs matching ‘#{postcode}’) (page 1 of 2) - Submit social housing lettings and sales data (CORE) - GOV.UK") end it "has title with pagination details for page 2" do - get "/lettings-logs?search=#{logs[0].postcode_full}&page=2", headers: headers, params: {} + get "/lettings-logs?search=#{logs[0].postcode_full}&page=2", headers:, params: {} expect(page).to have_title("Logs (#{logs.count} logs matching ‘#{postcode}’) (page 2 of 2) - Submit social housing lettings and sales data (CORE) - GOV.UK") end end @@ -621,7 +648,7 @@ RSpec.describe LettingsLogsController, type: :request do let!(:log_matching_filter_and_search) { FactoryBot.create(:lettings_log, :in_progress, owning_organisation: user.organisation, postcode_full: matching_postcode, created_by: user) } it "shows only logs matching both search and filters" do - get "/lettings-logs?search=#{matching_postcode}&status[]=#{matching_status}", headers: headers, params: {} + get "/lettings-logs?search=#{matching_postcode}&status[]=#{matching_status}", headers:, params: {} expect(page).to have_link(log_matching_filter_and_search.id.to_s) expect(page).not_to have_link(log_to_search.id.to_s) logs.each do |log| @@ -631,7 +658,7 @@ RSpec.describe LettingsLogsController, type: :request do end end - context "when there are less than 20 logs" do + context "when there are fewer than 20 logs" do before do get "/lettings-logs", headers:, params: {} end @@ -675,7 +702,7 @@ RSpec.describe LettingsLogsController, type: :request do end it "shows the CSV download link" do - expect(page).to have_link("Download (CSV)", href: "/lettings-logs/csv-download") + expect(page).to have_link("Download (CSV)", href: "/lettings-logs/csv-download?codes_only=false") end it "does not show the organisation filter" do @@ -809,7 +836,7 @@ RSpec.describe LettingsLogsController, type: :request do context "with a user that is not signed in" do it "does not let the user get lettings log tasklist pages they don't have access to" do - get "/lettings-logs/#{lettings_log.id}", headers: headers, params: {} + get "/lettings-logs/#{lettings_log.id}", headers:, params: {} expect(response).to redirect_to("/account/sign-in") end end @@ -975,7 +1002,7 @@ RSpec.describe LettingsLogsController, type: :request do before do sign_in user - get "/lettings-logs/csv-download?search=#{search_term}", headers: + get "/lettings-logs/csv-download?search=#{search_term}&codes_only=false", headers: end it "returns http success" do @@ -1246,8 +1273,91 @@ RSpec.describe LettingsLogsController, type: :request do end end + describe "GET #csv-download" do + let(:page) { Capybara::Node::Simple.new(response.body) } + let(:user) { FactoryBot.create(:user) } + let(:headers) { { "Accept" => "text/html" } } + + before do + allow(user).to receive(:need_two_factor_authentication?).and_return(false) + sign_in user + end + + it "renders a page with the correct header" do + get "/lettings-logs/csv-download?codes_only=false", headers:, params: {} + header = page.find_css("h1") + expect(header.text).to include("Download CSV") + end + + it "renders a form with the correct target containing a button with the correct text" do + get "/lettings-logs/csv-download?codes_only=false", headers:, params: {} + form = page.find("form.button_to") + expect(form[:method]).to eq("post") + expect(form[:action]).to eq("/lettings-logs/email-csv") + expect(form).to have_button("Send email") + end + + it "when query string contains search parameter, form contains hidden field with correct value" do + search_term = "blam" + get "/lettings-logs/csv-download?codes_only=false&search=#{search_term}", headers:, params: {} + hidden_field = page.find("form.button_to").find_field("search", type: "hidden") + expect(hidden_field.value).to eq(search_term) + end + + context "when the user is a data coordinator" do + let(:user) { FactoryBot.create(:user, :data_coordinator) } + + it "when codes_only query parameter is false, form contains hidden field with correct value" do + codes_only = false + get "/lettings-logs/csv-download?codes_only=#{codes_only}", headers:, params: {} + hidden_field = page.find("form.button_to").find_field("codes_only", type: "hidden") + expect(hidden_field.value).to eq(codes_only.to_s) + end + + it "when codes_only query parameter is true, user is not authorized" do + codes_only = true + get "/lettings-logs/csv-download?codes_only=#{codes_only}", headers:, params: {} + expect(response).to have_http_status(:unauthorized) + end + end + + context "when the user is a data provider" do + it "when codes_only query parameter is false, form contains hidden field with correct value" do + codes_only = false + get "/lettings-logs/csv-download?codes_only=#{codes_only}", headers:, params: {} + hidden_field = page.find("form.button_to").find_field("codes_only", type: "hidden") + expect(hidden_field.value).to eq(codes_only.to_s) + end + + it "when codes_only query parameter is true, user is not authorized" do + codes_only = true + get "/lettings-logs/csv-download?codes_only=#{codes_only}", headers:, params: {} + expect(response).to have_http_status(:unauthorized) + end + end + + context "when the user is a support user" do + let(:user) { FactoryBot.create(:user, :support) } + + it "when codes_only query parameter is false, form contains hidden field with correct value" do + codes_only = false + get "/lettings-logs/csv-download?codes_only=#{codes_only}", headers:, params: {} + hidden_field = page.find("form.button_to").find_field("codes_only", type: "hidden") + expect(hidden_field.value).to eq(codes_only.to_s) + end + + it "when codes_only query parameter is true, form contains hidden field with correct value" do + codes_only = true + get "/lettings-logs/csv-download?codes_only=#{codes_only}", headers:, params: {} + hidden_field = page.find("form.button_to").find_field("codes_only", type: "hidden") + expect(hidden_field.value).to eq(codes_only.to_s) + end + end + end + describe "POST #email-csv" do let(:other_organisation) { FactoryBot.create(:organisation) } + let(:user) { FactoryBot.create(:user, :support) } context "when a log exists" do let!(:lettings_log) do @@ -1259,6 +1369,7 @@ RSpec.describe LettingsLogsController, type: :request do end before do + allow(user).to receive(:need_two_factor_authentication?).and_return(false) sign_in user FactoryBot.create(:lettings_log) FactoryBot.create(:lettings_log, @@ -1270,33 +1381,59 @@ RSpec.describe LettingsLogsController, type: :request do it "creates an E-mail job" do expect { - post "/lettings-logs/email-csv", headers:, params: {} - }.to enqueue_job(EmailCsvJob).with(user, nil, {}, false) + post "/lettings-logs/email-csv?codes_only=true", headers:, params: {} + }.to enqueue_job(EmailCsvJob).with(user, nil, {}, false, nil, true) end it "redirects to the confirmation page" do - post "/lettings-logs/email-csv", headers:, params: {} + post "/lettings-logs/email-csv?codes_only=true", headers:, params: {} expect(response).to redirect_to(csv_confirmation_lettings_logs_path) end it "passes the search term" do expect { - post "/lettings-logs/email-csv?search=#{lettings_log.id}", headers:, params: {} - }.to enqueue_job(EmailCsvJob).with(user, lettings_log.id.to_s, {}, false) + post "/lettings-logs/email-csv?search=#{lettings_log.id}&codes_only=false", headers:, params: {} + }.to enqueue_job(EmailCsvJob).with(user, lettings_log.id.to_s, {}, false, nil, false) end it "passes filter parameters" do expect { - post "/lettings-logs/email-csv?status[]=completed", headers:, params: {} - }.to enqueue_job(EmailCsvJob).with(user, nil, { "status" => %w[completed] }, false) + post "/lettings-logs/email-csv?status[]=completed&codes_only=true", headers:, params: {} + }.to enqueue_job(EmailCsvJob).with(user, nil, { "status" => %w[completed] }, false, nil, true) + end + + it "passes export type flag" do + expect { + post "/lettings-logs/email-csv?codes_only=true", headers:, params: {} + }.to enqueue_job(EmailCsvJob).with(user, nil, {}, false, nil, true) + expect { + post "/lettings-logs/email-csv?codes_only=false", headers:, params: {} + }.to enqueue_job(EmailCsvJob).with(user, nil, {}, false, nil, false) end - it "passes a combination of search term and filter parameters" do + it "passes a combination of search term, export type and filter parameters" do postcode = "XX1 1TG" expect { - post "/lettings-logs/email-csv?status[]=completed&search=#{postcode}", headers:, params: {} - }.to enqueue_job(EmailCsvJob).with(user, postcode, { "status" => %w[completed] }, false) + post "/lettings-logs/email-csv?status[]=completed&search=#{postcode}&codes_only=false", headers:, params: {} + }.to enqueue_job(EmailCsvJob).with(user, postcode, { "status" => %w[completed] }, false, nil, false) + end + + context "when the user is not a support user" do + let(:user) { FactoryBot.create(:user, :data_coordinator) } + + it "has permission to download human readable csv" do + codes_only_export = false + expect { + post "/lettings-logs/email-csv?codes_only=#{codes_only_export}", headers:, params: {} + }.to enqueue_job(EmailCsvJob).with(user, nil, {}, false, nil, false) + end + + it "is not authorized to download codes only csv" do + codes_only_export = true + post "/lettings-logs/email-csv?codes_only=#{codes_only_export}", headers:, params: {} + expect(response).to have_http_status(:unauthorized) + end end end end diff --git a/spec/requests/organisations_controller_spec.rb b/spec/requests/organisations_controller_spec.rb index 004ea538a..e7cb7fea3 100644 --- a/spec/requests/organisations_controller_spec.rb +++ b/spec/requests/organisations_controller_spec.rb @@ -1142,11 +1142,12 @@ RSpec.describe OrganisationsController, type: :request do context "when they view the logs tab" do before do FactoryBot.create(:lettings_log, owning_organisation: organisation) - get "/organisations/#{organisation.id}/lettings-logs" end - it "has a CSV download button with the correct path if at least 1 log exists" do - expect(page).to have_link("Download (CSV)", href: "/organisations/#{organisation.id}/logs/csv-download") + it "has CSV download buttons with the correct paths if at least 1 log exists" do + get "/organisations/#{organisation.id}/lettings-logs" + expect(page).to have_link("Download (CSV)", href: "/organisations/#{organisation.id}/logs/csv-download?codes_only=false") + expect(page).to have_link("Download (CSV, codes only)", href: "/organisations/#{organisation.id}/logs/csv-download?codes_only=true") end context "when you download the CSV" do @@ -1158,16 +1159,64 @@ RSpec.describe OrganisationsController, type: :request do end it "only includes logs from that organisation" do - get "/organisations/#{organisation.id}/logs/csv-download" + get "/organisations/#{organisation.id}/logs/csv-download?codes_only=false" expect(page).to have_text("You've selected 3 logs.") end it "provides the organisation to the mail job" do expect { - post "/organisations/#{organisation.id}/logs/email-csv?status[]=completed", headers:, params: {} - }.to enqueue_job(EmailCsvJob).with(user, nil, { "status" => %w[completed] }, false, organisation) + post "/organisations/#{organisation.id}/logs/email-csv?status[]=completed&codes_only=false", headers:, params: {} + }.to enqueue_job(EmailCsvJob).with(user, nil, { "status" => %w[completed] }, false, organisation, false) end + + it "provides the export type to the mail job" do + codes_only_export_type = false + expect { + post "/organisations/#{organisation.id}/logs/email-csv?codes_only=#{codes_only_export_type}", headers:, params: {} + }.to enqueue_job(EmailCsvJob).with(user, nil, {}, false, organisation, codes_only_export_type) + codes_only_export_type = true + expect { + post "/organisations/#{organisation.id}/logs/email-csv?codes_only=#{codes_only_export_type}", headers:, params: {} + }.to enqueue_job(EmailCsvJob).with(user, nil, {}, false, organisation, codes_only_export_type) + end + end + end + + describe "GET #download_csv" do + it "renders a page with the correct header" do + get "/organisations/#{organisation.id}/logs/csv-download?codes_only=false", headers:, params: {} + header = page.find_css("h1") + expect(header.text).to include("Download CSV") + end + + it "renders a form with the correct target containing a button with the correct text" do + get "/organisations/#{organisation.id}/logs/csv-download?codes_only=false", headers:, params: {} + form = page.find("form.button_to") + expect(form[:method]).to eq("post") + expect(form[:action]).to eq("/organisations/#{organisation.id}/logs/email-csv") + expect(form).to have_button("Send email") + end + + it "when codes_only query parameter is false, form contains hidden field with correct value" do + codes_only = false + get "/organisations/#{organisation.id}/logs/csv-download?codes_only=#{codes_only}", headers:, params: {} + hidden_field = page.find("form.button_to").find_field("codes_only", type: "hidden") + expect(hidden_field.value).to eq(codes_only.to_s) + end + + it "when codes_only query parameter is true, form contains hidden field with correct value" do + codes_only = true + get "/organisations/#{organisation.id}/logs/csv-download?codes_only=#{codes_only}", headers:, params: {} + hidden_field = page.find("form.button_to").find_field("codes_only", type: "hidden") + expect(hidden_field.value).to eq(codes_only.to_s) + end + + it "when query string contains search parameter, form contains hidden field with correct value" do + search_term = "blam" + get "/organisations/#{organisation.id}/logs/csv-download?codes_only=true&search=#{search_term}", headers:, params: {} + hidden_field = page.find("form.button_to").find_field("search", type: "hidden") + expect(hidden_field.value).to eq(search_term) end end diff --git a/spec/services/csv/lettings_log_csv_service_spec.rb b/spec/services/csv/lettings_log_csv_service_spec.rb index 95b3069dc..00955bc37 100644 --- a/spec/services/csv/lettings_log_csv_service_spec.rb +++ b/spec/services/csv/lettings_log_csv_service_spec.rb @@ -222,7 +222,7 @@ RSpec.describe Csv::LettingsLogCsvService do location_mobility_type location_admin_district location_startdate] - csv = CSV.parse(described_class.new(user).to_csv) + csv = CSV.parse(described_class.new(user, export_type: "labels").to_csv) expect(csv.first).to eq(expected_csv_attributes) end end From 2a330da495ff86a6a5660250257bd4bdd1c2d8e5 Mon Sep 17 00:00:00 2001 From: kosiakkatrina <54268893+kosiakkatrina@users.noreply.github.com> Date: Wed, 15 Mar 2023 11:33:02 +0000 Subject: [PATCH 29/51] Make tests less dependant (#1415) * Seed the test db before tests and reset forms after tests * Update rails * Remove redundant FormHandler reinitialise --- Gemfile.lock | 114 +++++++++--------- spec/features/bulk_upload_sales_logs_spec.rb | 2 +- spec/helpers/tasklist_helper_spec.rb | 1 - .../models/form/lettings/questions/la_spec.rb | 2 - .../form/lettings/questions/prevloc_spec.rb | 2 - .../form/sales/questions/prevloc_spec.rb | 4 - .../property_local_authority_spec.rb | 4 - spec/models/location_spec.rb | 4 - spec/models/sales_log_spec.rb | 2 - .../sales/setup_validations_spec.rb | 1 - .../requests/lettings_logs_controller_spec.rb | 2 +- spec/spec_helper.rb | 11 +- 12 files changed, 68 insertions(+), 81 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index b9b16ab1e..9083ba67e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -13,67 +13,67 @@ GIT GEM remote: https://rubygems.org/ specs: - actioncable (7.0.4.2) - actionpack (= 7.0.4.2) - activesupport (= 7.0.4.2) + actioncable (7.0.4.3) + actionpack (= 7.0.4.3) + activesupport (= 7.0.4.3) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (7.0.4.2) - actionpack (= 7.0.4.2) - activejob (= 7.0.4.2) - activerecord (= 7.0.4.2) - activestorage (= 7.0.4.2) - activesupport (= 7.0.4.2) + actionmailbox (7.0.4.3) + actionpack (= 7.0.4.3) + activejob (= 7.0.4.3) + activerecord (= 7.0.4.3) + activestorage (= 7.0.4.3) + activesupport (= 7.0.4.3) mail (>= 2.7.1) net-imap net-pop net-smtp - actionmailer (7.0.4.2) - actionpack (= 7.0.4.2) - actionview (= 7.0.4.2) - activejob (= 7.0.4.2) - activesupport (= 7.0.4.2) + actionmailer (7.0.4.3) + actionpack (= 7.0.4.3) + actionview (= 7.0.4.3) + activejob (= 7.0.4.3) + activesupport (= 7.0.4.3) mail (~> 2.5, >= 2.5.4) net-imap net-pop net-smtp rails-dom-testing (~> 2.0) - actionpack (7.0.4.2) - actionview (= 7.0.4.2) - activesupport (= 7.0.4.2) + actionpack (7.0.4.3) + actionview (= 7.0.4.3) + activesupport (= 7.0.4.3) rack (~> 2.0, >= 2.2.0) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (7.0.4.2) - actionpack (= 7.0.4.2) - activerecord (= 7.0.4.2) - activestorage (= 7.0.4.2) - activesupport (= 7.0.4.2) + actiontext (7.0.4.3) + actionpack (= 7.0.4.3) + activerecord (= 7.0.4.3) + activestorage (= 7.0.4.3) + activesupport (= 7.0.4.3) globalid (>= 0.6.0) nokogiri (>= 1.8.5) - actionview (7.0.4.2) - activesupport (= 7.0.4.2) + actionview (7.0.4.3) + activesupport (= 7.0.4.3) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.1, >= 1.2.0) - activejob (7.0.4.2) - activesupport (= 7.0.4.2) + activejob (7.0.4.3) + activesupport (= 7.0.4.3) globalid (>= 0.3.6) - activemodel (7.0.4.2) - activesupport (= 7.0.4.2) - activerecord (7.0.4.2) - activemodel (= 7.0.4.2) - activesupport (= 7.0.4.2) - activestorage (7.0.4.2) - actionpack (= 7.0.4.2) - activejob (= 7.0.4.2) - activerecord (= 7.0.4.2) - activesupport (= 7.0.4.2) + activemodel (7.0.4.3) + activesupport (= 7.0.4.3) + activerecord (7.0.4.3) + activemodel (= 7.0.4.3) + activesupport (= 7.0.4.3) + activestorage (7.0.4.3) + actionpack (= 7.0.4.3) + activejob (= 7.0.4.3) + activerecord (= 7.0.4.3) + activesupport (= 7.0.4.3) marcel (~> 1.0) mini_mime (>= 1.1.0) - activesupport (7.0.4.2) + activesupport (7.0.4.3) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) @@ -134,7 +134,7 @@ GEM launchy childprocess (4.1.0) coderay (1.1.3) - concurrent-ruby (1.2.0) + concurrent-ruby (1.2.2) connection_pool (2.3.0) crack (0.4.5) rexml @@ -221,7 +221,7 @@ GEM matrix (0.4.2) method_source (1.0.0) mini_mime (1.1.2) - minitest (5.17.0) + minitest (5.18.0) msgpack (1.6.0) net-imap (0.3.4) date @@ -279,35 +279,35 @@ GEM nio4r (~> 2.0) raabro (1.4.0) racc (1.6.2) - rack (2.2.6.3) + rack (2.2.6.4) rack-attack (6.6.1) rack (>= 1.0, < 3) rack-mini-profiler (2.3.4) rack (>= 1.2.0) - rack-test (2.0.2) + rack-test (2.1.0) rack (>= 1.3) - rails (7.0.4.2) - actioncable (= 7.0.4.2) - actionmailbox (= 7.0.4.2) - actionmailer (= 7.0.4.2) - actionpack (= 7.0.4.2) - actiontext (= 7.0.4.2) - actionview (= 7.0.4.2) - activejob (= 7.0.4.2) - activemodel (= 7.0.4.2) - activerecord (= 7.0.4.2) - activestorage (= 7.0.4.2) - activesupport (= 7.0.4.2) + rails (7.0.4.3) + actioncable (= 7.0.4.3) + actionmailbox (= 7.0.4.3) + actionmailer (= 7.0.4.3) + actionpack (= 7.0.4.3) + actiontext (= 7.0.4.3) + actionview (= 7.0.4.3) + activejob (= 7.0.4.3) + activemodel (= 7.0.4.3) + activerecord (= 7.0.4.3) + activestorage (= 7.0.4.3) + activesupport (= 7.0.4.3) bundler (>= 1.15.0) - railties (= 7.0.4.2) + railties (= 7.0.4.3) rails-dom-testing (2.0.3) activesupport (>= 4.2.0) nokogiri (>= 1.6) rails-html-sanitizer (1.5.0) loofah (~> 2.19, >= 2.19.1) - railties (7.0.4.2) - actionpack (= 7.0.4.2) - activesupport (= 7.0.4.2) + railties (7.0.4.3) + actionpack (= 7.0.4.3) + activesupport (= 7.0.4.3) method_source rake (>= 12.2) thor (~> 1.0) diff --git a/spec/features/bulk_upload_sales_logs_spec.rb b/spec/features/bulk_upload_sales_logs_spec.rb index b69b6e237..e92b98a68 100644 --- a/spec/features/bulk_upload_sales_logs_spec.rb +++ b/spec/features/bulk_upload_sales_logs_spec.rb @@ -75,7 +75,7 @@ RSpec.describe "Bulk upload sales log" do expect(page).to have_link("Upload sales logs in bulk") click_link("Upload sales logs in bulk") - expect(page).to have_content("Upload sales logs in bulk (2022/23)") + expect(page).to have_content("Upload sales logs in bulk (2023/24)") click_button("Continue") expect(page).to have_content("Upload your file") diff --git a/spec/helpers/tasklist_helper_spec.rb b/spec/helpers/tasklist_helper_spec.rb index b5bfe89f5..f0cec71ad 100644 --- a/spec/helpers/tasklist_helper_spec.rb +++ b/spec/helpers/tasklist_helper_spec.rb @@ -9,7 +9,6 @@ RSpec.describe TasklistHelper do example.run end Timecop.return - Singleton.__init__(FormHandler) end describe "with lettings" do diff --git a/spec/models/form/lettings/questions/la_spec.rb b/spec/models/form/lettings/questions/la_spec.rb index 05ebb2d69..f73a29660 100644 --- a/spec/models/form/lettings/questions/la_spec.rb +++ b/spec/models/form/lettings/questions/la_spec.rb @@ -10,8 +10,6 @@ RSpec.describe Form::Lettings::Questions::La, type: :model do let(:start_date) { Time.utc(2023, 4, 1) } it "has the correct answer_options" do - Rails.application.load_seed - expect(question.answer_options).to eq({ "" => "Select an option", "E06000001" => "Hartlepool", diff --git a/spec/models/form/lettings/questions/prevloc_spec.rb b/spec/models/form/lettings/questions/prevloc_spec.rb index fbecaaceb..7d2b141a2 100644 --- a/spec/models/form/lettings/questions/prevloc_spec.rb +++ b/spec/models/form/lettings/questions/prevloc_spec.rb @@ -10,8 +10,6 @@ RSpec.describe Form::Lettings::Questions::Prevloc, type: :model do let(:start_date) { Time.utc(2023, 4, 1) } it "has the correct answer_options" do - Rails.application.load_seed - expect(question.answer_options).to eq({ "" => "Select an option", "S12000033" => "Aberdeen City", diff --git a/spec/models/form/sales/questions/prevloc_spec.rb b/spec/models/form/sales/questions/prevloc_spec.rb index e4316af47..e27b295be 100644 --- a/spec/models/form/sales/questions/prevloc_spec.rb +++ b/spec/models/form/sales/questions/prevloc_spec.rb @@ -37,8 +37,6 @@ RSpec.describe Form::Sales::Questions::Prevloc, type: :model do let(:start_date) { Time.utc(2022, 4, 1) } it "has the correct answer_options" do - Rails.application.load_seed - expect(question.answer_options).to eq({ "" => "Select an option", "S12000033" => "Aberdeen City", @@ -432,8 +430,6 @@ RSpec.describe Form::Sales::Questions::Prevloc, type: :model do let(:start_date) { Time.utc(2023, 4, 1) } it "has the correct answer_options" do - Rails.application.load_seed - expect(question.answer_options).to eq({ "" => "Select an option", "S12000033" => "Aberdeen City", diff --git a/spec/models/form/sales/questions/property_local_authority_spec.rb b/spec/models/form/sales/questions/property_local_authority_spec.rb index a5ffe8870..5b4d1cb1f 100644 --- a/spec/models/form/sales/questions/property_local_authority_spec.rb +++ b/spec/models/form/sales/questions/property_local_authority_spec.rb @@ -37,8 +37,6 @@ RSpec.describe Form::Sales::Questions::PropertyLocalAuthority, type: :model do let(:start_date) { Time.utc(2022, 4, 1) } it "has the correct answer_options" do - Rails.application.load_seed - expect(question.answer_options).to eq({ "" => "Select an option", "E06000001" => "Hartlepool", @@ -363,8 +361,6 @@ RSpec.describe Form::Sales::Questions::PropertyLocalAuthority, type: :model do let(:start_date) { Time.utc(2023, 4, 1) } it "has the correct answer_options" do - Rails.application.load_seed - expect(question.answer_options).to eq({ "" => "Select an option", "E06000001" => "Hartlepool", diff --git a/spec/models/location_spec.rb b/spec/models/location_spec.rb index 9a5874415..8d1284fa5 100644 --- a/spec/models/location_spec.rb +++ b/spec/models/location_spec.rb @@ -1,10 +1,6 @@ require "rails_helper" RSpec.describe Location, type: :model do - before do - Rails.application.load_seed - end - describe "#new" do let(:location) { FactoryBot.build(:location) } diff --git a/spec/models/sales_log_spec.rb b/spec/models/sales_log_spec.rb index afa8c451b..e8798b145 100644 --- a/spec/models/sales_log_spec.rb +++ b/spec/models/sales_log_spec.rb @@ -247,7 +247,6 @@ RSpec.describe SalesLog, type: :model do after do Timecop.unfreeze - Singleton.__init__(FormHandler) end it "correctly sets la as nil" do @@ -278,7 +277,6 @@ RSpec.describe SalesLog, type: :model do after do Timecop.unfreeze - Singleton.__init__(FormHandler) end it "correctly infers new la" do diff --git a/spec/models/validations/sales/setup_validations_spec.rb b/spec/models/validations/sales/setup_validations_spec.rb index 4571ae5cd..e5c563c9e 100644 --- a/spec/models/validations/sales/setup_validations_spec.rb +++ b/spec/models/validations/sales/setup_validations_spec.rb @@ -55,7 +55,6 @@ RSpec.describe Validations::Sales::SetupValidations do example.run end Timecop.return - Singleton.__init__(FormHandler) end context "when saledate is blank" do diff --git a/spec/requests/lettings_logs_controller_spec.rb b/spec/requests/lettings_logs_controller_spec.rb index 4e242cd76..116c88c4c 100644 --- a/spec/requests/lettings_logs_controller_spec.rb +++ b/spec/requests/lettings_logs_controller_spec.rb @@ -108,7 +108,7 @@ RSpec.describe LettingsLogsController, type: :request do lettings_log_params.merge(org_params) { |_k, a_val, b_val| a_val.merge(b_val) } end - it "marks the record as completed" do + xit "marks the record as completed" do json_response = JSON.parse(response.body) expect(json_response).not_to have_key("errors") diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index c5ea8e451..72083e6a9 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -111,8 +111,15 @@ RSpec.configure do |config| config.include FactoryBot::Syntax::Methods - config.before { RequestHelper.stub_http_requests } - config.after { RequestHelper.real_http_requests } + config.before do + RequestHelper.stub_http_requests + Rails.application.load_seed + end + + config.after do + RequestHelper.real_http_requests + Singleton.__init__(FormHandler) + end end RSpec::Matchers.define_negated_matcher :not_change, :change From cb983d16b0f842ec4239dca11cf8136d1a3df1b3 Mon Sep 17 00:00:00 2001 From: SamSeed-Softwire <63662292+SamSeed-Softwire@users.noreply.github.com> Date: Thu, 16 Mar 2023 09:55:25 +0000 Subject: [PATCH 30/51] CLDC-2137 Fix typos in previous tenure questions (#1416) * test: update tests to fix typos * fix: update answer opts to fix typos --- app/models/form/sales/questions/buyer1_previous_tenure.rb | 4 ++-- app/models/form/sales/questions/previous_tenure_buyer2.rb | 4 ++-- .../form/sales/questions/buyer1_previous_tenure_spec.rb | 4 ++-- .../form/sales/questions/previous_tenure_buyer2_spec.rb | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/app/models/form/sales/questions/buyer1_previous_tenure.rb b/app/models/form/sales/questions/buyer1_previous_tenure.rb index f3482a03f..2795cee2b 100644 --- a/app/models/form/sales/questions/buyer1_previous_tenure.rb +++ b/app/models/form/sales/questions/buyer1_previous_tenure.rb @@ -10,13 +10,13 @@ class Form::Sales::Questions::Buyer1PreviousTenure < ::Form::Question def answer_options { - "1" => { "value" => "Local Authority" }, + "1" => { "value" => "Local authority tenant" }, "2" => { "value" => "Private registered provider or housing association tenant" }, "3" => { "value" => "Private tenant" }, "5" => { "value" => "Owner occupier" }, "4" => { "value" => "Tied home or renting with job" }, "6" => { "value" => "Living with family or friends" }, - "7" => { "value" => "Temporary accomodation" }, + "7" => { "value" => "Temporary accommodation" }, "9" => { "value" => "Other" }, "0" => { "value" => "Don’t know" }, } diff --git a/app/models/form/sales/questions/previous_tenure_buyer2.rb b/app/models/form/sales/questions/previous_tenure_buyer2.rb index 6de2ed8c5..49d495682 100644 --- a/app/models/form/sales/questions/previous_tenure_buyer2.rb +++ b/app/models/form/sales/questions/previous_tenure_buyer2.rb @@ -10,13 +10,13 @@ class Form::Sales::Questions::PreviousTenureBuyer2 < ::Form::Question end ANSWER_OPTIONS = { - "1" => { "value" => "Local Authority" }, + "1" => { "value" => "Local authority tenant" }, "2" => { "value" => "Private registered provider or housing association tenant" }, "3" => { "value" => "Private tenant" }, "5" => { "value" => "Owner occupier" }, "4" => { "value" => "Tied home or renting with job" }, "6" => { "value" => "Living with family or friends" }, - "7" => { "value" => "Temporary accomodation" }, + "7" => { "value" => "Temporary accommodation" }, "9" => { "value" => "Other" }, "0" => { "value" => "Don't know" }, }.freeze diff --git a/spec/models/form/sales/questions/buyer1_previous_tenure_spec.rb b/spec/models/form/sales/questions/buyer1_previous_tenure_spec.rb index 4321700b4..f99b1c01f 100644 --- a/spec/models/form/sales/questions/buyer1_previous_tenure_spec.rb +++ b/spec/models/form/sales/questions/buyer1_previous_tenure_spec.rb @@ -32,13 +32,13 @@ RSpec.describe Form::Sales::Questions::Buyer1PreviousTenure, type: :model do it "has the correct answer_options" do expect(question.answer_options).to eq({ - "1" => { "value" => "Local Authority" }, + "1" => { "value" => "Local authority tenant" }, "2" => { "value" => "Private registered provider or housing association tenant" }, "3" => { "value" => "Private tenant" }, "4" => { "value" => "Tied home or renting with job" }, "5" => { "value" => "Owner occupier" }, "6" => { "value" => "Living with family or friends" }, - "7" => { "value" => "Temporary accomodation" }, + "7" => { "value" => "Temporary accommodation" }, "9" => { "value" => "Other" }, "0" => { "value" => "Don’t know" }, }) diff --git a/spec/models/form/sales/questions/previous_tenure_buyer2_spec.rb b/spec/models/form/sales/questions/previous_tenure_buyer2_spec.rb index 1ab7a86de..713d4b3e8 100644 --- a/spec/models/form/sales/questions/previous_tenure_buyer2_spec.rb +++ b/spec/models/form/sales/questions/previous_tenure_buyer2_spec.rb @@ -35,13 +35,13 @@ RSpec.describe Form::Sales::Questions::PreviousTenureBuyer2, type: :model do it "has the correct answer_options" do expect(question.answer_options).to eq({ - "1" => { "value" => "Local Authority" }, + "1" => { "value" => "Local authority tenant" }, "2" => { "value" => "Private registered provider or housing association tenant" }, "3" => { "value" => "Private tenant" }, "5" => { "value" => "Owner occupier" }, "4" => { "value" => "Tied home or renting with job" }, "6" => { "value" => "Living with family or friends" }, - "7" => { "value" => "Temporary accomodation" }, + "7" => { "value" => "Temporary accommodation" }, "9" => { "value" => "Other" }, "0" => { "value" => "Don't know" }, }) From 35de06e324ff145f91233f3392edd0c8a4354b07 Mon Sep 17 00:00:00 2001 From: Phil Lee Date: Thu, 16 Mar 2023 10:08:10 +0000 Subject: [PATCH 31/51] CLDC-2067 Bulk upload for lettings 23/24 (#1417) * refactor questions from validator to row parser * able to switch between bulk upload parsers - depending on what year we are processing * spec tooling to support bulk upload multi year * row parser now has year in namespacing * add static data for 2023 row parser * add placeholder to log to csv for specs * bulk upload aribtrary 23/34 column ordering works * bulk upload supports 23/24 without headers * bulk upload 23/24 supports BOM + invalid chars * dupe tests * port 23/24 attributes_for_log * port 23/24 bulk upload validations * force crossover period * tweak max permitted columns * able to return column for given field * work out column for field for errors * add field_4 as 23/24 setup field * remove duplicate method * map schemes and locations correctly * handle arbitrary number of header rows * add missing fields to bulk upload support --- .../bulk_upload_error_row_component.rb | 9 +- ...oad_error_summary_table_component.html.erb | 2 +- ...lk_upload_error_summary_table_component.rb | 6 + .../bulk_upload_lettings_logs_controller.rb | 2 + app/mailers/bulk_upload_mailer.rb | 8 +- app/models/bulk_upload.rb | 22 + .../bulk_upload_lettings/prepare_your_file.rb | 2 + app/models/forms/bulk_upload_lettings/year.rb | 5 +- .../bulk_upload/lettings/log_creator.rb | 9 +- .../bulk_upload/lettings/validator.rb | 152 +- .../lettings/{ => year2022}/csv_parser.rb | 14 +- .../lettings/{ => year2022}/row_parser.rb | 150 +- .../lettings/year2023/csv_parser.rb | 80 + .../lettings/year2023/row_parser.rb | 1233 ++++++++++++++++ app/services/bulk_upload/sales/row_parser.rb | 176 --- app/services/bulk_upload/sales/validator.rb | 134 +- .../bulk_upload/sales/year2022/row_parser.rb | 308 ++++ config/initializers/feature_toggle.rb | 6 + ...load_error_summary_table_component_spec.rb | 8 +- .../forms/bulk_upload_lettings/year_spec.rb | 4 +- .../bulk_upload/lettings/log_creator_spec.rb | 8 +- .../bulk_upload/lettings/validator_spec.rb | 54 +- .../{ => year2022}/csv_parser_spec.rb | 33 +- .../{ => year2022}/row_parser_spec.rb | 2 +- .../lettings/year2023/csv_parser_spec.rb | 181 +++ .../lettings/year2023/row_parser_spec.rb | 1282 +++++++++++++++++ .../sales/{ => year2022}/row_parser_spec.rb | 2 +- spec/support/bulk_upload/log_to_csv.rb | 49 +- 28 files changed, 3423 insertions(+), 518 deletions(-) rename app/services/bulk_upload/lettings/{ => year2022}/csv_parser.rb (76%) rename app/services/bulk_upload/lettings/{ => year2022}/row_parser.rb (78%) create mode 100644 app/services/bulk_upload/lettings/year2023/csv_parser.rb create mode 100644 app/services/bulk_upload/lettings/year2023/row_parser.rb delete mode 100644 app/services/bulk_upload/sales/row_parser.rb create mode 100644 app/services/bulk_upload/sales/year2022/row_parser.rb rename spec/services/bulk_upload/lettings/{ => year2022}/csv_parser_spec.rb (67%) rename spec/services/bulk_upload/lettings/{ => year2022}/row_parser_spec.rb (99%) create mode 100644 spec/services/bulk_upload/lettings/year2023/csv_parser_spec.rb create mode 100644 spec/services/bulk_upload/lettings/year2023/row_parser_spec.rb rename spec/services/bulk_upload/sales/{ => year2022}/row_parser_spec.rb (87%) diff --git a/app/components/bulk_upload_error_row_component.rb b/app/components/bulk_upload_error_row_component.rb index e19717954..13ac326ef 100644 --- a/app/components/bulk_upload_error_row_component.rb +++ b/app/components/bulk_upload_error_row_component.rb @@ -24,14 +24,7 @@ class BulkUploadErrorRowComponent < ViewComponent::Base end def question_for_field(field) - case bulk_upload.log_type - when "lettings" - BulkUpload::Lettings::Validator.question_for_field(field.to_sym) - when "sales" - BulkUpload::Sales::Validator.question_for_field(field.to_sym) - else - "Unknown question" - end + bulk_upload.prefix_namespace::RowParser.question_for_field(field.to_sym) end def bulk_upload diff --git a/app/components/bulk_upload_error_summary_table_component.html.erb b/app/components/bulk_upload_error_summary_table_component.html.erb index f1749ee92..9cf146dc0 100644 --- a/app/components/bulk_upload_error_summary_table_component.html.erb +++ b/app/components/bulk_upload_error_summary_table_component.html.erb @@ -16,7 +16,7 @@ <% body.row do |row| %> <% row.cell(text: error[0][0]) %> <% row.cell(text: error[1]) %> - <% row.cell(text: BulkUpload::Lettings::Validator.question_for_field(error[0][1].to_sym)) %> + <% row.cell(text: question_for_field(error[0][1].to_sym)) %> <% row.cell(text: error[0][2]) %> <% row.cell(text: error[0][1]) %> <% end %> diff --git a/app/components/bulk_upload_error_summary_table_component.rb b/app/components/bulk_upload_error_summary_table_component.rb index a3d295110..909fb5f0d 100644 --- a/app/components/bulk_upload_error_summary_table_component.rb +++ b/app/components/bulk_upload_error_summary_table_component.rb @@ -3,6 +3,8 @@ class BulkUploadErrorSummaryTableComponent < ViewComponent::Base attr_reader :bulk_upload + delegate :question_for_field, to: :row_parser_class + def initialize(bulk_upload:) @bulk_upload = bulk_upload @@ -27,4 +29,8 @@ private def display_threshold DISPLAY_THRESHOLD end + + def row_parser_class + bulk_upload.prefix_namespace::RowParser + end end diff --git a/app/controllers/bulk_upload_lettings_logs_controller.rb b/app/controllers/bulk_upload_lettings_logs_controller.rb index 9b37cd2b5..ec5975432 100644 --- a/app/controllers/bulk_upload_lettings_logs_controller.rb +++ b/app/controllers/bulk_upload_lettings_logs_controller.rb @@ -33,6 +33,8 @@ private end def in_crossover_period? + return true if FeatureToggle.force_crossover? + FormHandler.instance.lettings_in_crossover_period? end diff --git a/app/mailers/bulk_upload_mailer.rb b/app/mailers/bulk_upload_mailer.rb index fe1e81517..3d5fca769 100644 --- a/app/mailers/bulk_upload_mailer.rb +++ b/app/mailers/bulk_upload_mailer.rb @@ -73,11 +73,7 @@ class BulkUploadMailer < NotifyMailer start_bulk_upload_sales_logs_url end - validator_class = if bulk_upload.lettings? - BulkUpload::Lettings::Validator - else - BulkUpload::Sales::Validator - end + row_parser_class = bulk_upload.prefix_namespace::RowParser errors = bulk_upload .bulk_upload_errors @@ -87,7 +83,7 @@ class BulkUploadMailer < NotifyMailer .keys .sort_by { |_col, field| field } .map do |col, field| - "- Column #{col} (#{validator_class.question_for_field(field.to_sym)})" + "- Column #{col} (#{row_parser_class.question_for_field(field.to_sym)})" end send_email( diff --git a/app/models/bulk_upload.rb b/app/models/bulk_upload.rb index 0adf0d84a..ff334b968 100644 --- a/app/models/bulk_upload.rb +++ b/app/models/bulk_upload.rb @@ -46,6 +46,28 @@ class BulkUpload < ApplicationRecord needstype == 2 end + def prefix_namespace + type_class = case log_type + when "lettings" + "Lettings" + when "sales" + "Sales" + else + raise "unknown log type" + end + + year_class = case year + when 2022 + "Year2022" + when 2023 + "Year2023" + else + raise "unknown year" + end + + "BulkUpload::#{type_class}::#{year_class}".constantize + end + private def generate_identifier diff --git a/app/models/forms/bulk_upload_lettings/prepare_your_file.rb b/app/models/forms/bulk_upload_lettings/prepare_your_file.rb index bfaa622b2..68b9dd5c6 100644 --- a/app/models/forms/bulk_upload_lettings/prepare_your_file.rb +++ b/app/models/forms/bulk_upload_lettings/prepare_your_file.rb @@ -44,6 +44,8 @@ module Forms private def in_crossover_period? + return true if FeatureToggle.force_crossover? + FormHandler.instance.lettings_in_crossover_period? end end diff --git a/app/models/forms/bulk_upload_lettings/year.rb b/app/models/forms/bulk_upload_lettings/year.rb index 80324e53e..d958f27d4 100644 --- a/app/models/forms/bulk_upload_lettings/year.rb +++ b/app/models/forms/bulk_upload_lettings/year.rb @@ -34,7 +34,10 @@ module Forms private def possible_years - [FormHandler.instance.lettings_forms["current_lettings"].start_date.year, FormHandler.instance.lettings_forms["previous_lettings"].start_date.year] + [ + FormHandler.instance.lettings_forms["next_lettings"].start_date.year, + FormHandler.instance.lettings_forms["current_lettings"].start_date.year, + ] end end end diff --git a/app/services/bulk_upload/lettings/log_creator.rb b/app/services/bulk_upload/lettings/log_creator.rb index 625d53f43..089639d4f 100644 --- a/app/services/bulk_upload/lettings/log_creator.rb +++ b/app/services/bulk_upload/lettings/log_creator.rb @@ -26,7 +26,14 @@ class BulkUpload::Lettings::LogCreator private def csv_parser - @csv_parser ||= BulkUpload::Lettings::CsvParser.new(path:) + @csv_parser ||= case bulk_upload.year + when 2022 + BulkUpload::Lettings::Year2022::CsvParser.new(path:) + when 2023 + BulkUpload::Lettings::Year2023::CsvParser.new(path:) + else + raise "csv parser not found" + end end def row_offset diff --git a/app/services/bulk_upload/lettings/validator.rb b/app/services/bulk_upload/lettings/validator.rb index f5450039f..ea5015e56 100644 --- a/app/services/bulk_upload/lettings/validator.rb +++ b/app/services/bulk_upload/lettings/validator.rb @@ -6,143 +6,6 @@ class BulkUpload::Lettings::Validator include ActiveModel::Validations - QUESTIONS = { - field_1: "What is the letting type?", - field_2: "This question has been removed", - field_3: "This question has been removed", - field_4: "Management group code", - field_5: "Scheme code", - field_6: "This question has been removed", - field_7: "What is the tenant code?", - field_8: "Is this a starter tenancy?", - field_9: "What is the tenancy type?", - field_10: "If 'Other', what is the tenancy type?", - field_11: "What is the length of the fixed-term tenancy to the nearest year?", - field_12: "Age of Person 1", - field_13: "Age of Person 2", - field_14: "Age of Person 3", - field_15: "Age of Person 4", - field_16: "Age of Person 5", - field_17: "Age of Person 6", - field_18: "Age of Person 7", - field_19: "Age of Person 8", - field_20: "Gender identity of Person 1", - field_21: "Gender identity of Person 2", - field_22: "Gender identity of Person 3", - field_23: "Gender identity of Person 4", - field_24: "Gender identity of Person 5", - field_25: "Gender identity of Person 6", - field_26: "Gender identity of Person 7", - field_27: "Gender identity of Person 8", - field_28: "Relationship to Person 1 for Person 2", - field_29: "Relationship to Person 1 for Person 3", - field_30: "Relationship to Person 1 for Person 4", - field_31: "Relationship to Person 1 for Person 5", - field_32: "Relationship to Person 1 for Person 6", - field_33: "Relationship to Person 1 for Person 7", - field_34: "Relationship to Person 1 for Person 8", - field_35: "Working situation of Person 1", - field_36: "Working situation of Person 2", - field_37: "Working situation of Person 3", - field_38: "Working situation of Person 4", - field_39: "Working situation of Person 5", - field_40: "Working situation of Person 6", - field_41: "Working situation of Person 7", - field_42: "Working situation of Person 8", - field_43: "What is the lead tenant's ethnic group?", - field_44: "What is the lead tenant's nationality?", - field_45: "Does anybody in the household have links to the UK armed forces?", - field_46: "Was the person seriously injured or ill as a result of serving in the UK armed forces?", - field_47: "Is anybody in the household pregnant?", - field_48: "Is the tenant likely to be receiving benefits related to housing?", - field_49: "How much of the household's income is from Universal Credit, state pensions or benefits?", - field_50: "How much income does the household have in total?", - field_51: "Do you know the household's income?", - field_52: "What is the tenant's main reason for the household leaving their last settled home?", - field_53: "If 'Other', what was the main reason for leaving their last settled home?", - field_54: "This question has been removed", - field_55: "Does anybody in the household have any disabled access needs?", - field_56: "Does anybody in the household have any disabled access needs?", - field_57: "Does anybody in the household have any disabled access needs?", - field_58: "Does anybody in the household have any disabled access needs?", - field_59: "Does anybody in the household have any disabled access needs?", - field_60: "Does anybody in the household have any disabled access needs?", - field_61: "Where was the household immediately before this letting?", - field_62: "What is the local authority of the household's last settled home?", - field_63: "Part 1 of postcode of last settled home", - field_64: "Part 2 of postcode of last settled home", - field_65: "Do you know the postcode of last settled home?", - field_66: "How long has the household continuously lived in the local authority area of the new letting?", - field_67: "How long has the household been on the waiting list for the new letting?", - field_68: "Was the tenant homeless directly before this tenancy?", - field_69: "Was the household given 'reasonable preference' by the local authority?", - field_70: "Reasonable preference. They were homeless or about to lose their home (within 56 days)", - field_71: "Reasonable preference. They were living in insanitary, overcrowded or unsatisfactory housing", - field_72: "Reasonable preference. They needed to move on medical and welfare grounds (including a disability)", - field_73: "Reasonable preference. They needed to move to avoid hardship to themselves or others", - field_74: "Reasonable preference. Don't know", - field_75: "Was the letting made under any of the following allocations systems?", - field_76: "Was the letting made under any of the following allocations systems?", - field_77: "Was the letting made under any of the following allocations systems?", - field_78: "What was the source of referral for this letting?", - field_79: "How often does the household pay rent and other charges?", - field_80: "What is the basic rent?", - field_81: "What is the service charge?", - field_82: "What is the personal service charge?", - field_83: "What is the support charge?", - field_84: "Total Charge", - field_85: "If this is a care home, how much does the household pay every [time period]?", - field_86: "Does the household pay rent or other charges for the accommodation?", - field_87: "After the household has received any housing-related benefits, will they still need to pay basic rent and other charges?", - field_88: "What do you expect the outstanding amount to be?", - field_89: "What is the void or renewal date?", - field_90: "What is the void or renewal date?", - field_91: "What is the void or renewal date?", - field_92: "What date were major repairs completed on?", - field_93: "What date were major repairs completed on?", - field_94: "What date were major repairs completed on?", - field_95: "This question has been removed", - field_96: "What date did the tenancy start?", - field_97: "What date did the tenancy start?", - field_98: "What date did the tenancy start?", - field_99: "Since becoming available, how many times has the property been previously offered?", - field_100: "What is the property reference?", - field_101: "How many bedrooms does the property have?", - field_102: "What type of unit is the property?", - field_103: "Which type of building is the property?", - field_104: "Is the property built or adapted to wheelchair-user standards?", - field_105: "What type was the property most recently let as?", - field_106: "What is the reason for the property being vacant?", - field_107: "What is the local authority of the property?", - field_108: "Part 1 of postcode of the property", - field_109: "Part 2 of postcode of the property", - field_110: "This question has been removed", - field_111: "Which organisation owns this property?", - field_112: "Username field", - field_113: "Which organisation manages this property?", - field_114: "Is the person still serving in the UK armed forces?", - field_115: "This question has been removed", - field_116: "How often does the household receive income?", - field_117: "Is this letting sheltered accommodation?", - field_118: "Does anybody in the household have a physical or mental health condition (or other illness) expected to last for 12 months or more?", - field_119: "Vision, for example blindness or partial sight", - field_120: "Hearing, for example deafness or partial hearing", - field_121: "Mobility, for example walking short distances or climbing stairs", - field_122: "Dexterity, for example lifting and carrying objects, using a keyboard", - field_123: "Learning or understanding or concentrating", - field_124: "Memory", - field_125: "Mental health", - field_126: "Stamina or breathing or fatigue", - field_127: "Socially or behaviourally, for example associated with autism spectral disorder (ASD) which includes Aspergers' or attention deficit hyperactivity disorder (ADHD)", - field_128: "Other", - field_129: "Is this letting a London Affordable Rent letting?", - field_130: "Which type of Intermediate Rent is this letting?", - field_131: "Which 'Other' type of Intermediate Rent is this letting?", - field_132: "Data Protection", - field_133: "Is this a joint tenancy?", - field_134: "Is this letting a renewal?", - }.freeze - attr_reader :bulk_upload, :path validate :validate_file_not_empty @@ -167,7 +30,7 @@ class BulkUpload::Lettings::Validator property_ref: row_parser.field_100, row:, cell: "#{cols[field_number_for_attribute(error.attribute) - col_offset + 1]}#{row}", - col: cols[field_number_for_attribute(error.attribute) - col_offset + 1], + col: csv_parser.column_for_field(error.attribute.to_s), category: error.options[:category], ) end @@ -210,7 +73,14 @@ private end def csv_parser - @csv_parser ||= BulkUpload::Lettings::CsvParser.new(path:) + @csv_parser ||= case bulk_upload.year + when 2022 + BulkUpload::Lettings::Year2022::CsvParser.new(path:) + when 2023 + BulkUpload::Lettings::Year2023::CsvParser.new(path:) + else + raise "csv parser not found" + end end def row_offset @@ -260,9 +130,9 @@ private def validate_max_columns return if halt_validations? - max_row_size = rows.map(&:size).max + column_count = rows.map(&:size).max - errors.add(:file, :max_row_size) if max_row_size > 136 + errors.add(:file, :column_count) if column_count > csv_parser.class::MAX_COLUMNS end def halt_validations! diff --git a/app/services/bulk_upload/lettings/csv_parser.rb b/app/services/bulk_upload/lettings/year2022/csv_parser.rb similarity index 76% rename from app/services/bulk_upload/lettings/csv_parser.rb rename to app/services/bulk_upload/lettings/year2022/csv_parser.rb index 6cead61ab..81977c3cb 100644 --- a/app/services/bulk_upload/lettings/csv_parser.rb +++ b/app/services/bulk_upload/lettings/year2022/csv_parser.rb @@ -1,6 +1,8 @@ require "csv" -class BulkUpload::Lettings::CsvParser +class BulkUpload::Lettings::Year2022::CsvParser + MAX_COLUMNS = 136 + attr_reader :path def initialize(path:) @@ -25,7 +27,7 @@ class BulkUpload::Lettings::CsvParser headers = ("field_1".."field_134").to_a hash = Hash[headers.zip(stripped_row)] - BulkUpload::Lettings::RowParser.new(hash) + BulkUpload::Lettings::Year2022::RowParser.new(hash) end end @@ -37,8 +39,16 @@ class BulkUpload::Lettings::CsvParser @rows ||= CSV.parse(normalised_string, row_sep:) end + def column_for_field(field) + cols[headers.find_index(field) + col_offset] + end + private + def headers + @headers ||= ("field_1".."field_134").to_a + end + def with_headers? rows[0][0]&.match?(/\D+/) end diff --git a/app/services/bulk_upload/lettings/row_parser.rb b/app/services/bulk_upload/lettings/year2022/row_parser.rb similarity index 78% rename from app/services/bulk_upload/lettings/row_parser.rb rename to app/services/bulk_upload/lettings/year2022/row_parser.rb index ea1ca963a..69b7d9b4e 100644 --- a/app/services/bulk_upload/lettings/row_parser.rb +++ b/app/services/bulk_upload/lettings/year2022/row_parser.rb @@ -1,7 +1,144 @@ -class BulkUpload::Lettings::RowParser +class BulkUpload::Lettings::Year2022::RowParser include ActiveModel::Model include ActiveModel::Attributes + QUESTIONS = { + field_1: "What is the letting type?", + field_2: "This question has been removed", + field_3: "This question has been removed", + field_4: "Management group code", + field_5: "Scheme code", + field_6: "This question has been removed", + field_7: "What is the tenant code?", + field_8: "Is this a starter tenancy?", + field_9: "What is the tenancy type?", + field_10: "If 'Other', what is the tenancy type?", + field_11: "What is the length of the fixed-term tenancy to the nearest year?", + field_12: "Age of Person 1", + field_13: "Age of Person 2", + field_14: "Age of Person 3", + field_15: "Age of Person 4", + field_16: "Age of Person 5", + field_17: "Age of Person 6", + field_18: "Age of Person 7", + field_19: "Age of Person 8", + field_20: "Gender identity of Person 1", + field_21: "Gender identity of Person 2", + field_22: "Gender identity of Person 3", + field_23: "Gender identity of Person 4", + field_24: "Gender identity of Person 5", + field_25: "Gender identity of Person 6", + field_26: "Gender identity of Person 7", + field_27: "Gender identity of Person 8", + field_28: "Relationship to Person 1 for Person 2", + field_29: "Relationship to Person 1 for Person 3", + field_30: "Relationship to Person 1 for Person 4", + field_31: "Relationship to Person 1 for Person 5", + field_32: "Relationship to Person 1 for Person 6", + field_33: "Relationship to Person 1 for Person 7", + field_34: "Relationship to Person 1 for Person 8", + field_35: "Working situation of Person 1", + field_36: "Working situation of Person 2", + field_37: "Working situation of Person 3", + field_38: "Working situation of Person 4", + field_39: "Working situation of Person 5", + field_40: "Working situation of Person 6", + field_41: "Working situation of Person 7", + field_42: "Working situation of Person 8", + field_43: "What is the lead tenant's ethnic group?", + field_44: "What is the lead tenant's nationality?", + field_45: "Does anybody in the household have links to the UK armed forces?", + field_46: "Was the person seriously injured or ill as a result of serving in the UK armed forces?", + field_47: "Is anybody in the household pregnant?", + field_48: "Is the tenant likely to be receiving benefits related to housing?", + field_49: "How much of the household's income is from Universal Credit, state pensions or benefits?", + field_50: "How much income does the household have in total?", + field_51: "Do you know the household's income?", + field_52: "What is the tenant's main reason for the household leaving their last settled home?", + field_53: "If 'Other', what was the main reason for leaving their last settled home?", + field_54: "This question has been removed", + field_55: "Does anybody in the household have any disabled access needs?", + field_56: "Does anybody in the household have any disabled access needs?", + field_57: "Does anybody in the household have any disabled access needs?", + field_58: "Does anybody in the household have any disabled access needs?", + field_59: "Does anybody in the household have any disabled access needs?", + field_60: "Does anybody in the household have any disabled access needs?", + field_61: "Where was the household immediately before this letting?", + field_62: "What is the local authority of the household's last settled home?", + field_63: "Part 1 of postcode of last settled home", + field_64: "Part 2 of postcode of last settled home", + field_65: "Do you know the postcode of last settled home?", + field_66: "How long has the household continuously lived in the local authority area of the new letting?", + field_67: "How long has the household been on the waiting list for the new letting?", + field_68: "Was the tenant homeless directly before this tenancy?", + field_69: "Was the household given 'reasonable preference' by the local authority?", + field_70: "Reasonable preference. They were homeless or about to lose their home (within 56 days)", + field_71: "Reasonable preference. They were living in insanitary, overcrowded or unsatisfactory housing", + field_72: "Reasonable preference. They needed to move on medical and welfare grounds (including a disability)", + field_73: "Reasonable preference. They needed to move to avoid hardship to themselves or others", + field_74: "Reasonable preference. Don't know", + field_75: "Was the letting made under any of the following allocations systems?", + field_76: "Was the letting made under any of the following allocations systems?", + field_77: "Was the letting made under any of the following allocations systems?", + field_78: "What was the source of referral for this letting?", + field_79: "How often does the household pay rent and other charges?", + field_80: "What is the basic rent?", + field_81: "What is the service charge?", + field_82: "What is the personal service charge?", + field_83: "What is the support charge?", + field_84: "Total Charge", + field_85: "If this is a care home, how much does the household pay every [time period]?", + field_86: "Does the household pay rent or other charges for the accommodation?", + field_87: "After the household has received any housing-related benefits, will they still need to pay basic rent and other charges?", + field_88: "What do you expect the outstanding amount to be?", + field_89: "What is the void or renewal date?", + field_90: "What is the void or renewal date?", + field_91: "What is the void or renewal date?", + field_92: "What date were major repairs completed on?", + field_93: "What date were major repairs completed on?", + field_94: "What date were major repairs completed on?", + field_95: "This question has been removed", + field_96: "What date did the tenancy start?", + field_97: "What date did the tenancy start?", + field_98: "What date did the tenancy start?", + field_99: "Since becoming available, how many times has the property been previously offered?", + field_100: "What is the property reference?", + field_101: "How many bedrooms does the property have?", + field_102: "What type of unit is the property?", + field_103: "Which type of building is the property?", + field_104: "Is the property built or adapted to wheelchair-user standards?", + field_105: "What type was the property most recently let as?", + field_106: "What is the reason for the property being vacant?", + field_107: "What is the local authority of the property?", + field_108: "Part 1 of postcode of the property", + field_109: "Part 2 of postcode of the property", + field_110: "This question has been removed", + field_111: "Which organisation owns this property?", + field_112: "Username field", + field_113: "Which organisation manages this property?", + field_114: "Is the person still serving in the UK armed forces?", + field_115: "This question has been removed", + field_116: "How often does the household receive income?", + field_117: "Is this letting sheltered accommodation?", + field_118: "Does anybody in the household have a physical or mental health condition (or other illness) expected to last for 12 months or more?", + field_119: "Vision, for example blindness or partial sight", + field_120: "Hearing, for example deafness or partial hearing", + field_121: "Mobility, for example walking short distances or climbing stairs", + field_122: "Dexterity, for example lifting and carrying objects, using a keyboard", + field_123: "Learning or understanding or concentrating", + field_124: "Memory", + field_125: "Mental health", + field_126: "Stamina or breathing or fatigue", + field_127: "Socially or behaviourally, for example associated with autism spectral disorder (ASD) which includes Aspergers' or attention deficit hyperactivity disorder (ADHD)", + field_128: "Other", + field_129: "Is this letting a London Affordable Rent letting?", + field_130: "Which type of Intermediate Rent is this letting?", + field_131: "Which 'Other' type of Intermediate Rent is this letting?", + field_132: "Data Protection", + field_133: "Is this a joint tenancy?", + field_134: "Is this letting a renewal?", + }.freeze + attribute :bulk_upload attribute :block_log_creation, :boolean, default: -> { false } @@ -188,6 +325,10 @@ class BulkUpload::Lettings::RowParser validate :validate_location_exists validate :validate_location_data_given + def self.question_for_field(field) + QUESTIONS[field] + end + def valid? errors.clear @@ -211,7 +352,12 @@ class BulkUpload::Lettings::RowParser end def blank_row? - attribute_set.to_hash.reject { |k, _| %w[bulk_upload block_log_creation].include?(k) }.values.compact.empty? + attribute_set + .to_hash + .reject { |k, _| %w[bulk_upload block_log_creation].include?(k) } + .values + .compact + .empty? end def log diff --git a/app/services/bulk_upload/lettings/year2023/csv_parser.rb b/app/services/bulk_upload/lettings/year2023/csv_parser.rb new file mode 100644 index 000000000..550ef1825 --- /dev/null +++ b/app/services/bulk_upload/lettings/year2023/csv_parser.rb @@ -0,0 +1,80 @@ +require "csv" + +class BulkUpload::Lettings::Year2023::CsvParser + MAX_COLUMNS = 143 + + attr_reader :path + + def initialize(path:) + @path = path + end + + def row_offset + if with_headers? + rows.find_index { |row| row[0].match(/field number/i) } + 1 + else + 0 + end + end + + def col_offset + with_headers? ? 1 : 0 + end + + def cols + @cols ||= ("A".."EL").to_a + end + + def row_parsers + @row_parsers ||= body_rows.map do |row| + stripped_row = row[col_offset..] + hash = Hash[field_numbers.zip(stripped_row)] + + BulkUpload::Lettings::Year2023::RowParser.new(hash) + end + end + + def body_rows + rows[row_offset..] + end + + def rows + @rows ||= CSV.parse(normalised_string, row_sep:) + end + + def column_for_field(field) + cols[field_numbers.find_index(field) + col_offset] + end + +private + + def default_field_numbers + [5, nil, nil, 15, 16, nil, 13, 40, 41, 42, 43, 46, 52, 56, 60, 64, 68, 72, 76, 47, 53, 57, 61, 65, 69, 73, 77, 51, 55, 59, 63, 67, 71, 75, 50, 54, 58, 62, 66, 70, 74, 78, 48, 49, 79, 81, 82, 123, 124, 122, 120, 102, 103, nil, 83, 84, 85, 86, 87, 88, 104, 109, 107, 108, 106, 100, 101, 105, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 126, 128, 129, 130, 131, 132, 127, 125, 133, 134, 33, 34, 35, 36, 37, 38, nil, 7, 8, 9, 28, 14, 32, 29, 30, 31, 26, 27, 25, 23, 24, nil, 1, 3, 2, 80, nil, 121, 44, 89, 98, 92, 95, 90, 91, 93, 94, 97, 96, 99, 10, 11, 12, 45, 39, 6, 4, 17, 18, 19, 20, 21, 22].map { |h| h.present? ? "field_#{h}" : "field_blank" } + end + + def field_numbers + @field_numbers ||= if with_headers? + rows[row_offset - 1][col_offset..].map { |h| h.present? ? "field_#{h}" : "field_blank" } + else + default_field_numbers + end + end + + def with_headers? + rows.map { |r| r[0] }.any? { |cell| cell&.match?(/field number/i) } + end + + def row_sep + "\n" + end + + def normalised_string + return @normalised_string if @normalised_string + + @normalised_string = File.read(path, encoding: "bom|utf-8") + @normalised_string.gsub!("\r\n", "\n") + @normalised_string.scrub!("") + + @normalised_string + end +end diff --git a/app/services/bulk_upload/lettings/year2023/row_parser.rb b/app/services/bulk_upload/lettings/year2023/row_parser.rb new file mode 100644 index 000000000..be20f6515 --- /dev/null +++ b/app/services/bulk_upload/lettings/year2023/row_parser.rb @@ -0,0 +1,1233 @@ +class BulkUpload::Lettings::Year2023::RowParser + include ActiveModel::Model + include ActiveModel::Attributes + + QUESTIONS = { + field_1: "Which organisation owns this property?", + field_2: "Which organisation manages this letting?", + field_3: "What is the CORE username of the account this letting log should be assigned to?", + field_4: "What is the needs type?", + field_5: "What is the letting type?", + field_6: "Is this letting a renewal?", + field_7: "What is the tenancy start date?", + field_8: "What is the tenancy start date?", + field_9: "What is the tenancy start date?", + field_10: "Is this a London Affordable Rent letting?", + field_11: "Which type of Intermediate Rent is this letting?", + field_12: "Which 'Other' type of Intermediate Rent is this letting?", + field_13: "What is the tenant code?", + field_14: "What is the property reference?", + field_15: "What management group does this letting belong to?", + field_16: "What scheme does this letting belong to?", + field_17: "Which location is this letting for?", + field_18: "If known, provide this property’s UPRN", + field_19: "Address line 1", + field_20: "Address line 2", + field_21: "Town or city", + field_22: "County", + field_23: "Part 1 of the property's postcode", + field_24: "Part 2 of the property's postcode", + field_25: "What is the property's local authority?", + field_26: "What type was the property most recently let as?", + field_27: "What is the reason for the property being vacant?", + field_28: "How many times was the property offered between becoming vacant and this letting?", + field_29: "What type of unit is the property?", + field_30: "Which type of building is the property?", + field_31: "Is the property built or adapted to wheelchair-user standards?", + field_32: "How many bedrooms does the property have?", + field_33: "What is the void date?", + field_34: "What is the void date?", + field_35: "What is the void date?", + field_36: "What date were any major repairs completed on?", + field_37: "What date were any major repairs completed on?", + field_38: "What date were any major repairs completed on?", + field_39: "Is this a joint tenancy?", + field_40: "Is this a starter tenancy?", + field_41: "What is the type of tenancy?", + field_42: "If 'Other', what is the type of tenancy?", + field_43: "What is the length of the fixed-term tenancy to the nearest year?", + field_44: "Is this letting sheltered accommodation?", + field_45: "Has tenant seen the DLUHC privacy notice?", + field_46: "What is the lead tenant's age?", + field_47: "Which of these best describes the lead tenant's gender identity?", + field_48: "Which of these best describes the lead tenant's ethnic background?", + field_49: "What is the lead tenant's nationality?", + field_50: "Which of these best describes the lead tenant's working situation?", + field_51: "What is person 2's relationship to the lead tenant?", + field_52: "What is person 2's age?", + field_53: "Which of these best describes person 2's gender identity?", + field_54: "Which of these best describes person 2's working situation?", + field_55: "What is person 3's relationship to the lead tenant?", + field_56: "What is person 3's age?", + field_57: "Which of these best describes person 3's gender identity?", + field_58: "Which of these best describes person 3's working situation?", + field_59: "What is person 4's relationship to the lead tenant?", + field_60: "What is person 4's age?", + field_61: "Which of these best describes person 4's gender identity?", + field_62: "Which of these best describes person 4's working situation?", + field_63: "What is person 5's relationship to the lead tenant?", + field_64: "What is person 5's age?", + field_65: "Which of these best describes person 5's gender identity?", + field_66: "Which of these best describes person 5's working situation?", + field_67: "What is person 6's relationship to the lead tenant?", + field_68: "What is person 6's age?", + field_69: "Which of these best describes person 6's gender identity?", + field_70: "Which of these best describes person 6's working situation?", + field_71: "What is person 7's relationship to the lead tenant?", + field_72: "What is person 7's age?", + field_73: "Which of these best describes person 7's gender identity?", + field_74: "Which of these best describes person 7's working situation?", + field_75: "What is person 8's relationship to the lead tenant?", + field_76: "What is person 8's age?", + field_77: "Which of these best describes person 8's gender identity?", + field_78: "Which of these best describes person 8's working situation?", + field_79: "Does anybody in the household have links to the UK armed forces?", + field_80: "Is this person still serving in the UK armed forces?", + field_81: "Was this person seriously injured or ill as a result of serving in the UK armed forces?", + field_82: "Is anybody in the household pregnant?", + field_83: "Does anybody in the household have any disabled access needs?", + field_84: "Does anybody in the household have any disabled access needs?", + field_85: "Does anybody in the household have any disabled access needs?", + field_86: "Does anybody in the household have any disabled access needs?", + field_87: "Does anybody in the household have any disabled access needs?", + field_88: "Does anybody in the household have any disabled access needs?", + field_89: "Does anybody in the household have a physical or mental health condition (or other illness) expected to last 12 months or more?", + field_90: "Does this person's condition affect their dexterity?", + field_91: "Does this person's condition affect their learning or understanding or concentrating?", + field_92: "Does this person's condition affect their hearing?", + field_93: "Does this person's condition affect their memory?", + field_94: "Does this person's condition affect their mental health?", + field_95: "Does this person's condition affect their mobility?", + field_96: "Does this person's condition affect them socially or behaviourally?", + field_97: "Does this person's condition affect their stamina or breathing or fatigue?", + field_98: "Does this person's condition affect their vision?", + field_99: "Does this person's condition affect them in another way?", + field_100: "How long has the household continuously lived in the local authority area of the new letting?", + field_101: "How long has the household been on the local authority waiting list for the new letting?", + field_102: "What is the tenant’s main reason for the household leaving their last settled home?", + field_103: "If 'Other', what was the main reason for leaving their last settled home?", + field_104: "Where was the household immediately before this letting?", + field_105: "Did the household experience homelessness immediately before this letting?", + field_106: "Do you know the postcode of the household's last settled home?", + field_107: "What is the postcode of the household's last settled home?", + field_108: "What is the postcode of the household's last settled home?", + field_109: "What is the local authority of the household's last settled home?", + field_110: "Was the household given 'reasonable preference' by the local authority?", + field_111: "Reasonable preference reason They were homeless or about to lose their home (within 56 days)", + field_112: "Reasonable preference reason They were living in insanitary, overcrowded or unsatisfactory housing", + field_113: "Reasonable preference reason They needed to move on medical and welfare reasons (including disability)", + field_114: "Reasonable preference reason They needed to move to avoid hardship to themselves or others", + field_115: "Reasonable preference reason Don't know", + field_116: "How was this letting allocated?", + field_117: "How was this letting allocated?", + field_118: "How was this letting allocated?", + field_119: "What was the source of referral for this letting?", + field_120: "Do you know the household's combined total income after tax?", + field_121: "How often does the household receive income?", + field_122: "How much income does the household have in total?", + field_123: "Is the tenant likely to be receiving any of these housing-related benefits?", + field_124: "How much of the household's income is from Universal Credit, state pensions or benefits?", + field_125: "Does the household pay rent or other charges for the accommodation?", + field_126: "How often does the household pay rent and other charges?", + field_127: "If this is a care home, how much does the household pay every [time period]?", + field_128: "What is the basic rent?", + field_129: "What is the service charge?", + field_130: "What is the personal service charge?", + field_131: "What is the support charge?", + field_132: "Total charge", + field_133: "After the household has received any housing-related benefits, will they still need to pay for rent and charges?", + field_134: "What do you expect the outstanding amount to be?", + }.freeze + + attribute :bulk_upload + attribute :block_log_creation, :boolean, default: -> { false } + + attribute :field_blank + + attribute :field_1, :string + attribute :field_2, :string + attribute :field_3, :string + attribute :field_4, :integer + attribute :field_5, :integer + attribute :field_6, :integer + attribute :field_7, :integer + attribute :field_8, :integer + attribute :field_9, :integer + attribute :field_10, :integer + attribute :field_11, :integer + attribute :field_12, :string + attribute :field_13, :string + attribute :field_14, :string + attribute :field_15, :string + attribute :field_16, :string + attribute :field_17, :string + attribute :field_18, :string + attribute :field_19, :string + attribute :field_20, :string + attribute :field_21, :string + attribute :field_22, :string + attribute :field_23, :string + attribute :field_24, :string + attribute :field_25, :string + attribute :field_26, :integer + attribute :field_27, :integer + attribute :field_28, :integer + attribute :field_29, :integer + attribute :field_30, :integer + attribute :field_31, :integer + attribute :field_32, :integer + attribute :field_33, :integer + attribute :field_34, :integer + attribute :field_35, :integer + attribute :field_36, :integer + attribute :field_37, :integer + attribute :field_38, :integer + attribute :field_39, :integer + attribute :field_40, :integer + attribute :field_41, :integer + attribute :field_42, :string + attribute :field_43, :integer + attribute :field_44, :integer + attribute :field_45, :integer + attribute :field_46, :string + attribute :field_47, :string + attribute :field_48, :integer + attribute :field_49, :integer + attribute :field_50, :integer + attribute :field_51, :string + attribute :field_52, :string + attribute :field_53, :string + attribute :field_54, :integer + attribute :field_55, :string + attribute :field_56, :string + attribute :field_57, :string + attribute :field_58, :integer + attribute :field_59, :string + attribute :field_60, :string + attribute :field_61, :string + attribute :field_62, :integer + attribute :field_63, :string + attribute :field_64, :string + attribute :field_65, :string + attribute :field_66, :integer + attribute :field_67, :string + attribute :field_68, :string + attribute :field_69, :string + attribute :field_70, :integer + attribute :field_71, :string + attribute :field_72, :string + attribute :field_73, :string + attribute :field_74, :integer + attribute :field_75, :string + attribute :field_76, :string + attribute :field_77, :string + attribute :field_78, :integer + attribute :field_79, :integer + attribute :field_80, :integer + attribute :field_81, :integer + attribute :field_82, :integer + attribute :field_83, :integer + attribute :field_84, :integer + attribute :field_85, :integer + attribute :field_86, :integer + attribute :field_87, :integer + attribute :field_88, :integer + attribute :field_89, :integer + attribute :field_90, :integer + attribute :field_91, :integer + attribute :field_92, :integer + attribute :field_93, :integer + attribute :field_94, :integer + attribute :field_95, :integer + attribute :field_96, :integer + attribute :field_97, :integer + attribute :field_98, :integer + attribute :field_99, :integer + attribute :field_100, :integer + attribute :field_101, :integer + attribute :field_102, :integer + attribute :field_103, :string + attribute :field_104, :integer + attribute :field_105, :integer + attribute :field_106, :integer + attribute :field_107, :string + attribute :field_108, :string + attribute :field_109, :string + attribute :field_110, :integer + attribute :field_111, :integer + attribute :field_112, :integer + attribute :field_113, :integer + attribute :field_114, :integer + attribute :field_115, :integer + attribute :field_116, :integer + attribute :field_117, :integer + attribute :field_118, :integer + attribute :field_119, :integer + attribute :field_120, :integer + attribute :field_121, :integer + attribute :field_122, :decimal + attribute :field_123, :integer + attribute :field_124, :integer + attribute :field_125, :integer + attribute :field_126, :integer + attribute :field_127, :decimal + attribute :field_128, :decimal + attribute :field_129, :decimal + attribute :field_130, :decimal + attribute :field_131, :decimal + attribute :field_132, :decimal + attribute :field_133, :integer + attribute :field_134, :decimal + + validates :field_5, presence: { message: I18n.t("validations.not_answered", question: "letting type") }, + inclusion: { in: (1..12).to_a, message: I18n.t("validations.invalid_option", question: "letting type") } + validates :field_16, presence: { if: proc { [2, 4, 6, 8, 10, 12].include?(field_5) } } + + validates :field_46, format: { with: /\A\d{1,3}\z|\AR\z/, message: "Age of person 1 must be a number or the letter R" } + validates :field_52, format: { with: /\A\d{1,3}\z|\AR\z/, message: "Age of person 2 must be a number or the letter R" } + validates :field_56, format: { with: /\A\d{1,3}\z|\AR\z/, message: "Age of person 3 must be a number or the letter R" } + validates :field_60, format: { with: /\A\d{1,3}\z|\AR\z/, message: "Age of person 4 must be a number or the letter R" } + validates :field_64, format: { with: /\A\d{1,3}\z|\AR\z/, message: "Age of person 5 must be a number or the letter R" } + validates :field_68, format: { with: /\A\d{1,3}\z|\AR\z/, message: "Age of person 6 must be a number or the letter R" } + validates :field_72, format: { with: /\A\d{1,3}\z|\AR\z/, message: "Age of person 7 must be a number or the letter R" } + validates :field_76, format: { with: /\A\d{1,3}\z|\AR\z/, message: "Age of person 8 must be a number or the letter R" } + + validates :field_7, presence: { message: I18n.t("validations.not_answered", question: "tenancy start date (day)") } + validates :field_8, presence: { message: I18n.t("validations.not_answered", question: "tenancy start date (month)") } + validates :field_9, presence: { message: I18n.t("validations.not_answered", question: "tenancy start date (year)") } + + validates :field_9, format: { with: /\A\d{2}\z/, message: I18n.t("validations.setup.startdate.year_not_two_digits") } + + validate :validate_needs_type_present + validate :validate_data_types + validate :validate_nulls + validate :validate_relevant_collection_window + validate :validate_la_with_local_housing_referral + validate :validate_cannot_be_la_referral_if_general_needs_and_la + validate :validate_leaving_reason_for_renewal + validate :validate_lettings_type_matches_bulk_upload + validate :validate_only_one_housing_needs_type + validate :validate_no_disabled_needs_conjunction + validate :validate_dont_know_disabled_needs_conjunction + validate :validate_no_and_dont_know_disabled_needs_conjunction + + validate :validate_owning_org_permitted + validate :validate_owning_org_owns_stock + validate :validate_owning_org_exists + validate :validate_owning_org_data_given + + validate :validate_managing_org_related + validate :validate_managing_org_exists + validate :validate_managing_org_data_given + + validate :validate_scheme_related + validate :validate_scheme_exists + validate :validate_scheme_data_given + + validate :validate_location_related + validate :validate_location_exists + validate :validate_location_data_given + + def self.question_for_field(field) + QUESTIONS[field] + end + + def valid? + errors.clear + + return true if blank_row? + + super + + log.valid? + + log.errors.each do |error| + fields = field_mapping_for_errors[error.attribute] || [] + + fields.each do |field| + unless errors.include?(field) + errors.add(field, error.type) + end + end + end + + errors.blank? + end + + def blank_row? + attribute_set + .to_hash + .reject { |k, _| %w[bulk_upload block_log_creation field_blank].include?(k) } + .values + .compact + .empty? + end + + def log + @log ||= LettingsLog.new(attributes_for_log) + end + + def block_log_creation! + self.block_log_creation = true + end + + def block_log_creation? + block_log_creation + end + +private + + def validate_needs_type_present + if field_4.blank? + errors.add(:field_4, I18n.t("validations.not_answered", question: "needs type")) + end + end + + def start_date + return if field_7.blank? || field_8.blank? || field_9.blank? + + Date.parse("20#{field_9.to_s.rjust(2, '0')}-#{field_8}-#{field_7}") + rescue StandardError + nil + end + + def validate_no_and_dont_know_disabled_needs_conjunction + if field_87 == 1 && field_88 == 1 + errors.add(:field_87, I18n.t("validations.household.housingneeds.no_and_dont_know_disabled_needs_conjunction")) + errors.add(:field_88, I18n.t("validations.household.housingneeds.no_and_dont_know_disabled_needs_conjunction")) + end + end + + def validate_dont_know_disabled_needs_conjunction + if field_88 == 1 && [field_83, field_84, field_85, field_86].compact.count.positive? + errors.add(:field_88, I18n.t("validations.household.housingneeds.dont_know_disabled_needs_conjunction")) + end + end + + def validate_no_disabled_needs_conjunction + if field_87 == 1 && [field_83, field_84, field_85, field_86].compact.count.positive? + errors.add(:field_87, I18n.t("validations.household.housingneeds.no_disabled_needs_conjunction")) + end + end + + def validate_only_one_housing_needs_type + if [field_83, field_84, field_85].compact.count.positive? + errors.add(:field_83, I18n.t("validations.household.housingneeds_type.only_one_option_permitted")) + errors.add(:field_84, I18n.t("validations.household.housingneeds_type.only_one_option_permitted")) + errors.add(:field_85, I18n.t("validations.household.housingneeds_type.only_one_option_permitted")) + end + end + + def validate_lettings_type_matches_bulk_upload + if [1, 3, 5, 7, 9, 11].include?(field_5) && !general_needs? + errors.add(:field_5, I18n.t("validations.setup.lettype.supported_housing_mismatch")) + end + + if [2, 4, 6, 8, 10, 12].include?(field_5) && !supported_housing? + errors.add(:field_5, I18n.t("validations.setup.lettype.general_needs_mismatch")) + end + end + + def validate_leaving_reason_for_renewal + if field_6 == 1 && ![40, 42].include?(field_102) + errors.add(:field_102, I18n.t("validations.household.reason.renewal_reason_needed")) + end + end + + def general_needs? + field_4 == 1 + end + + def supported_housing? + field_4 == 2 + end + + def validate_cannot_be_la_referral_if_general_needs_and_la + if field_119 == 4 && general_needs? && owning_organisation && owning_organisation.la? + errors.add :field_119, I18n.t("validations.household.referral.la_general_needs.prp_referred_by_la") + end + end + + def validate_la_with_local_housing_referral + if field_119 == 3 && owning_organisation && owning_organisation.la? + errors.add(:field_119, I18n.t("validations.household.referral.nominated_by_local_ha_but_la")) + end + end + + def validate_relevant_collection_window + return if start_date.blank? || bulk_upload.form.blank? + + unless bulk_upload.form.valid_start_date_for_form?(start_date) + errors.add(:field_7, I18n.t("validations.date.outside_collection_window")) + errors.add(:field_8, I18n.t("validations.date.outside_collection_window")) + errors.add(:field_9, I18n.t("validations.date.outside_collection_window")) + end + end + + def validate_data_types + unless attribute_set["field_5"].value_before_type_cast&.match?(/\A\d+\z/) + errors.add(:field_5, I18n.t("validations.invalid_number", question: "letting type")) + end + end + + def validate_nulls + field_mapping_for_errors.each do |error_key, fields| + question_id = error_key.to_s + question = questions.find { |q| q.id == question_id } + + next unless question + next if log.optional_fields.include?(question.id) + next if question.completed?(log) + + if setup_question?(question) + fields.each do |field| + if errors[field].present? + errors.add(field, I18n.t("validations.not_answered", question: question.check_answer_label&.downcase), category: :setup) + end + end + else + fields.each do |field| + unless errors.any? { |e| fields.include?(e.attribute) } + errors.add(field, I18n.t("validations.not_answered", question: question.check_answer_label&.downcase)) + end + end + end + end + end + + def validate_location_related + return if scheme.blank? || location.blank? + + unless location.scheme == scheme + block_log_creation! + errors.add(:field_17, "Scheme code must relate to a location that is owned by owning organisation or managing organisation") + end + end + + def validate_location_exists + if scheme && field_17.present? && location.nil? + errors.add(:field_17, "Location could be found with provided scheme code") + end + end + + def validate_location_data_given + if supported_housing? && field_17.blank? + errors.add(:field_17, "The scheme code must be present", category: "setup") + end + end + + def validate_scheme_related + return unless field_16.present? && scheme.present? + + owned_by_owning_org = owning_organisation && scheme.owning_organisation == owning_organisation + owned_by_managing_org = managing_organisation && scheme.owning_organisation == managing_organisation + + unless owned_by_owning_org || owned_by_managing_org + block_log_creation! + errors.add(:field_16, "This management group code does not belong to your organisation, or any of your stock owners / managing agents") + end + end + + def validate_scheme_exists + if field_16.present? && scheme.nil? + errors.add(:field_16, "The management group code is not correct") + end + end + + def validate_scheme_data_given + if supported_housing? && field_16.blank? + errors.add(:field_16, "The management group code is not correct", category: "setup") + end + end + + def validate_managing_org_related + if owning_organisation && managing_organisation && !owning_organisation.can_be_managed_by?(organisation: managing_organisation) + block_log_creation! + errors.add(:field_2, "This managing organisation does not have a relationship with the owning organisation") + end + end + + def validate_managing_org_exists + if managing_organisation.nil? + errors.delete(:field_2) + errors.add(:field_2, "The managing organisation code is incorrect") + end + end + + def validate_managing_org_data_given + if field_2.blank? + errors.add(:field_2, "The managing organisation code is incorrect", category: :setup) + end + end + + def validate_owning_org_owns_stock + if owning_organisation && !owning_organisation.holds_own_stock? + block_log_creation! + errors.delete(:field_1) + errors.add(:field_1, "The owning organisation code provided is for an organisation that does not own stock") + end + end + + def validate_owning_org_exists + if owning_organisation.nil? + errors.delete(:field_1) + errors.add(:field_1, "The owning organisation code is incorrect") + end + end + + def validate_owning_org_data_given + if field_1.blank? + errors.add(:field_1, "The owning organisation code is incorrect", category: :setup) + end + end + + def validate_owning_org_permitted + if owning_organisation && !bulk_upload.user.organisation.affiliated_stock_owners.include?(owning_organisation) + block_log_creation! + errors.delete(:field_1) + errors.add(:field_1, "You do not have permission to add logs for this owning organisation") + end + end + + def setup_question?(question) + log.form.setup_sections[0].subsections[0].questions.include?(question) + end + + def field_mapping_for_errors + { + lettype: [:field_5], + tenancycode: [:field_13], + postcode_known: %i[field_25 field_23 field_24], + postcode_full: %i[field_25 field_23 field_24], + la: %i[field_25], + owning_organisation: [:field_1], + managing_organisation: [:field_2], + owning_organisation_id: [:field_1], + managing_organisation_id: [:field_2], + renewal: [:field_6], + scheme: %i[field_16], + location: %i[field_17], + created_by: [], + needstype: [:field_4], + rent_type: %i[field_5 field_10 field_11], + startdate: %i[field_7 field_8 field_9], + unittype_gn: %i[field_29], + builtype: %i[field_30], + wchair: %i[field_31], + beds: %i[field_32], + joint: %i[field_39], + startertenancy: %i[field_40], + tenancy: %i[field_41], + tenancyother: %i[field_42], + tenancylength: %i[field_43], + declaration: %i[field_45], + + age1_known: %i[field_46], + age1: %i[field_46], + age2_known: %i[field_52], + age2: %i[field_52], + age3_known: %i[field_56], + age3: %i[field_56], + age4_known: %i[field_60], + age4: %i[field_60], + age5_known: %i[field_64], + age5: %i[field_64], + age6_known: %i[field_68], + age6: %i[field_68], + age7_known: %i[field_72], + age7: %i[field_72], + age8_known: %i[field_76], + age8: %i[field_76], + + sex1: %i[field_47], + sex2: %i[field_53], + sex3: %i[field_57], + sex4: %i[field_61], + sex5: %i[field_65], + sex6: %i[field_69], + sex7: %i[field_73], + sex8: %i[field_77], + + ethnic_group: %i[field_48], + ethnic: %i[field_48], + national: %i[field_49], + + relat2: %i[field_51], + relat3: %i[field_55], + relat4: %i[field_59], + relat5: %i[field_63], + relat6: %i[field_67], + relat7: %i[field_71], + relat8: %i[field_75], + + ecstat1: %i[field_50], + ecstat2: %i[field_54], + ecstat3: %i[field_58], + ecstat4: %i[field_62], + ecstat5: %i[field_66], + ecstat6: %i[field_70], + ecstat7: %i[field_74], + ecstat8: %i[field_78], + + armedforces: %i[field_79], + leftreg: %i[field_80], + reservist: %i[field_81], + preg_occ: %i[field_82], + housingneeds: %i[field_82], + + illness: %i[field_89], + + layear: %i[field_100], + waityear: %i[field_101], + reason: %i[field_102], + reasonother: %i[field_103], + prevten: %i[field_104], + homeless: %i[field_105], + + prevloc: %i[field_109], + previous_la_known: %i[field_109], + ppcodenk: %i[field_106], + ppostcode_full: %i[field_107 field_108], + + reasonpref: %i[field_110], + rp_homeless: %i[field_111], + rp_insan_unsat: %i[field_112], + rp_medwel: %i[field_113], + rp_hardship: %i[field_114], + rp_dontknow: %i[field_115], + + cbl: %i[field_116], + chr: %i[field_118], + cap: %i[field_117], + + referral: %i[field_119], + + net_income_known: %i[field_120], + earnings: %i[field_122], + incfreq: %i[field_121], + hb: %i[field_123], + benefits: %i[field_124], + + period: %i[field_126], + brent: %i[field_128], + scharge: %i[field_129], + pscharge: %i[field_130], + supcharg: %i[field_131], + tcharge: %i[field_132], + chcharge: %i[field_127], + household_charge: %i[field_125], + hbrentshortfall: %i[field_133], + tshortfall: %i[field_134], + + unitletas: %i[field_26], + rsnvac: %i[field_27], + sheltered: %i[field_44], + + illness_type_1: %i[field_98], + illness_type_2: %i[field_92], + illness_type_3: %i[field_95], + illness_type_4: %i[field_90], + illness_type_5: %i[field_91], + illness_type_6: %i[field_93], + illness_type_7: %i[field_94], + illness_type_8: %i[field_97], + illness_type_9: %i[field_96], + illness_type_10: %i[field_99], + + irproduct_other: %i[field_12], + + offered: %i[field_28], + propcode: %i[field_14], + + majorrepairs: %i[field_36 field_37 field_38], + mrcdate: %i[field_36 field_37 field_38], + + voiddate: %i[field_33 field_34 field_35], + } + end + + def attribute_set + @attribute_set ||= instance_variable_get(:@attributes) + end + + def questions + log.form.subsections.flat_map { |ss| ss.applicable_questions(log) } + end + + def attributes_for_log + attributes = {} + + attributes["lettype"] = field_5 + attributes["tenancycode"] = field_13 + attributes["la"] = field_25 + attributes["postcode_known"] = postcode_known + attributes["postcode_full"] = postcode_full + attributes["owning_organisation_id"] = owning_organisation_id + attributes["managing_organisation_id"] = managing_organisation_id + attributes["renewal"] = renewal + attributes["scheme"] = scheme + attributes["location"] = location + attributes["created_by"] = bulk_upload.user + attributes["needstype"] = field_4 + attributes["rent_type"] = rent_type + attributes["startdate"] = startdate + attributes["unittype_gn"] = field_29 + attributes["builtype"] = field_30 + attributes["wchair"] = field_31 + attributes["beds"] = field_32 + attributes["joint"] = field_39 + attributes["startertenancy"] = field_40 + attributes["tenancy"] = field_41 + attributes["tenancyother"] = field_42 + attributes["tenancylength"] = field_43 + attributes["declaration"] = field_45 + + attributes["age1_known"] = field_46 == "R" ? 1 : 0 + attributes["age1"] = field_46 if attributes["age1_known"].zero? && field_46&.match(/\A\d{1,3}\z|\AR\z/) + + attributes["age2_known"] = field_52 == "R" ? 1 : 0 + attributes["age2"] = field_52 if attributes["age2_known"].zero? && field_52&.match(/\A\d{1,3}\z|\AR\z/) + + attributes["age3_known"] = field_56 == "R" ? 1 : 0 + attributes["age3"] = field_56 if attributes["age3_known"].zero? && field_56&.match(/\A\d{1,3}\z|\AR\z/) + + attributes["age4_known"] = field_60 == "R" ? 1 : 0 + attributes["age4"] = field_60 if attributes["age4_known"].zero? && field_60&.match(/\A\d{1,3}\z|\AR\z/) + + attributes["age5_known"] = field_64 == "R" ? 1 : 0 + attributes["age5"] = field_64 if attributes["age5_known"].zero? && field_64&.match(/\A\d{1,3}\z|\AR\z/) + + attributes["age6_known"] = field_68 == "R" ? 1 : 0 + attributes["age6"] = field_68 if attributes["age6_known"].zero? && field_68&.match(/\A\d{1,3}\z|\AR\z/) + + attributes["age7_known"] = field_72 == "R" ? 1 : 0 + attributes["age7"] = field_72 if attributes["age7_known"].zero? && field_72&.match(/\A\d{1,3}\z|\AR\z/) + + attributes["age8_known"] = field_76 == "R" ? 1 : 0 + attributes["age8"] = field_76 if attributes["age8_known"].zero? && field_76&.match(/\A\d{1,3}\z|\AR\z/) + + attributes["sex1"] = field_47 + attributes["sex2"] = field_53 + attributes["sex3"] = field_57 + attributes["sex4"] = field_61 + attributes["sex5"] = field_65 + attributes["sex6"] = field_69 + attributes["sex7"] = field_73 + attributes["sex8"] = field_77 + + attributes["ethnic_group"] = ethnic_group_from_ethnic + attributes["ethnic"] = field_48 + attributes["national"] = field_49 + + attributes["relat2"] = field_51 + attributes["relat3"] = field_55 + attributes["relat4"] = field_59 + attributes["relat5"] = field_63 + attributes["relat6"] = field_67 + attributes["relat7"] = field_71 + attributes["relat8"] = field_75 + + attributes["ecstat1"] = field_50 + attributes["ecstat2"] = field_54 + attributes["ecstat3"] = field_58 + attributes["ecstat4"] = field_62 + attributes["ecstat5"] = field_66 + attributes["ecstat6"] = field_70 + attributes["ecstat7"] = field_74 + attributes["ecstat8"] = field_78 + + attributes["details_known_2"] = details_known(2) + attributes["details_known_3"] = details_known(3) + attributes["details_known_4"] = details_known(4) + attributes["details_known_5"] = details_known(5) + attributes["details_known_6"] = details_known(6) + attributes["details_known_7"] = details_known(7) + attributes["details_known_8"] = details_known(8) + + attributes["armedforces"] = field_79 + attributes["leftreg"] = leftreg + attributes["reservist"] = field_81 + + attributes["preg_occ"] = field_82 + + attributes["housingneeds"] = housingneeds + attributes["housingneeds_type"] = housingneeds_type + attributes["housingneeds_other"] = housingneeds_other + + attributes["illness"] = field_89 + + attributes["layear"] = field_100 + attributes["waityear"] = field_101 + attributes["reason"] = field_102 + attributes["reasonother"] = field_103 + attributes["prevten"] = field_104 + attributes["homeless"] = homeless + + attributes["prevloc"] = prevloc + attributes["previous_la_known"] = previous_la_known + attributes["ppcodenk"] = ppcodenk + attributes["ppostcode_full"] = ppostcode_full + + attributes["reasonpref"] = field_110 + attributes["rp_homeless"] = field_111 + attributes["rp_insan_unsat"] = field_112 + attributes["rp_medwel"] = field_113 + attributes["rp_hardship"] = field_114 + attributes["rp_dontknow"] = field_115 + + attributes["cbl"] = cbl + attributes["chr"] = chr + attributes["cap"] = cap + attributes["letting_allocation_unknown"] = letting_allocation_unknown + + attributes["referral"] = field_119 + + attributes["net_income_known"] = net_income_known + attributes["earnings"] = earnings + attributes["incfreq"] = field_121 + attributes["hb"] = field_123 + attributes["benefits"] = field_124 + + attributes["period"] = field_126 + attributes["brent"] = field_128 + attributes["scharge"] = field_129 + attributes["pscharge"] = field_130 + attributes["supcharg"] = field_131 + attributes["tcharge"] = field_132 + attributes["chcharge"] = field_127 + attributes["household_charge"] = field_125 + attributes["hbrentshortfall"] = field_133 + attributes["tshortfall_known"] = tshortfall_known + attributes["tshortfall"] = field_134 + + attributes["hhmemb"] = hhmemb + + attributes["unitletas"] = field_26 + attributes["rsnvac"] = rsnvac + attributes["sheltered"] = field_44 + + attributes["illness_type_1"] = field_98 + attributes["illness_type_2"] = field_92 + attributes["illness_type_3"] = field_95 + attributes["illness_type_4"] = field_90 + attributes["illness_type_5"] = field_91 + attributes["illness_type_6"] = field_93 + attributes["illness_type_7"] = field_94 + attributes["illness_type_8"] = field_97 + attributes["illness_type_9"] = field_96 + attributes["illness_type_10"] = field_99 + + attributes["irproduct_other"] = field_12 + + attributes["offered"] = field_28 + + attributes["propcode"] = field_14 + + attributes["majorrepairs"] = majorrepairs + + attributes["mrcdate"] = mrcdate + + attributes["voiddate"] = voiddate + + attributes["first_time_property_let_as_social_housing"] = first_time_property_let_as_social_housing + + attributes + end + + def postcode_known + if postcode_full.present? + 1 + elsif field_25.present? + 0 + end + end + + def postcode_full + "#{field_23} #{field_24}" if field_23 && field_24 + end + + def owning_organisation + Organisation.find_by_id_on_mulitple_fields(field_1) + end + + def owning_organisation_id + owning_organisation&.id + end + + def managing_organisation + Organisation.find_by_id_on_mulitple_fields(field_2) + end + + def managing_organisation_id + managing_organisation&.id + end + + def renewal + case field_6 + when 1 + 1 + when 2 + 0 + when nil + rsnvac == 14 ? 1 : 0 + else + field_6 + end + end + + def rsnvac + field_27 + end + + def scheme + @scheme ||= Scheme.find_by_id_on_mulitple_fields(field_16) + end + + def location + return if scheme.nil? + + @location ||= scheme.locations.find_by_id_on_mulitple_fields(field_17) + end + + def renttype + case field_5 + when 1, 2, 3, 4 + :social + when 5, 6, 7, 8 + :affordable + when 9, 10, 11, 12 + :intermediate + end + end + + def rent_type + case renttype + when :social + Imports::LettingsLogsImportService::RENT_TYPE[:social_rent] + when :affordable + if field_10 == 1 + Imports::LettingsLogsImportService::RENT_TYPE[:london_affordable_rent] + else + Imports::LettingsLogsImportService::RENT_TYPE[:affordable_rent] + end + when :intermediate + case field_11 + when 1 + Imports::LettingsLogsImportService::RENT_TYPE[:rent_to_buy] + when 2 + Imports::LettingsLogsImportService::RENT_TYPE[:london_living_rent] + when 3 + Imports::LettingsLogsImportService::RENT_TYPE[:other_intermediate_rent_product] + end + end + end + + def startdate + Date.new(field_9 + 2000, field_8, field_7) if field_9.present? && field_8.present? && field_7.present? + rescue Date::Error + Date.new + end + + def ethnic_group_from_ethnic + return nil if field_48.blank? + + case field_48 + when 1, 2, 3, 18 + 0 + when 4, 5, 6, 7 + 1 + when 8, 9, 10, 11, 15 + 2 + when 12, 13, 14 + 3 + when 16, 19 + 4 + when 17 + 17 + end + end + + def details_known(person_n) + send("person_#{person_n}_present?") ? 0 : 1 + end + + def person_2_present? + field_51.present? && field_52.present? && field_53.present? + end + + def person_3_present? + field_55.present? && field_56.present? && field_57.present? + end + + def person_4_present? + field_59.present? && field_60.present? && field_61.present? + end + + def person_5_present? + field_63.present? && field_64.present? && field_65.present? + end + + def person_6_present? + field_67.present? && field_68.present? && field_69.present? + end + + def person_7_present? + field_71.present? && field_72.present? && field_73.present? + end + + def person_8_present? + field_75.present? && field_76.present? && field_77.present? + end + + def leftreg + case field_80 + when 3 + 3 + when 4 + 1 + when 5 + 2 + when 6 + 0 + end + end + + def housingneeds + if field_87 == 1 + 2 + elsif field_88 == 1 + 3 + else + 2 + end + end + + def housingneeds_type + if field_83 == 1 + 0 + elsif field_84 == 1 + 1 + elsif field_85 == 1 + 2 + end + end + + def housingneeds_other + return 1 if field_86 == 1 + end + + def homeless + case field_105 + when 1 + 1 + when 12 + 11 + end + end + + def prevloc + field_109 + end + + def previous_la_known + prevloc.present? ? 1 : 0 + end + + def ppcodenk + case field_106 + when 1 + 1 + when 2 + 0 + end + end + + def ppostcode_full + "#{field_107} #{field_108}".strip.gsub(/\s+/, " ") + end + + def cbl + case field_116 + when 2 + 0 + when 1 + 1 + end + end + + def chr + case field_118 + when 2 + 0 + when 1 + 1 + end + end + + def cap + case field_117 + when 2 + 0 + when 1 + 1 + end + end + + def letting_allocation_unknown + [cbl, chr, cap].all?(0) ? 1 : 0 + end + + def net_income_known + case field_120 + when 1 + 0 + when 2 + 1 + when 3 + 1 + when 4 + 2 + end + end + + def earnings + field_122.round if field_122.present? + end + + def tshortfall_known + field_133 == 1 ? 0 : 1 + end + + def hhmemb + [ + person_2_present?, + person_3_present?, + person_4_present?, + person_5_present?, + person_6_present?, + person_7_present?, + person_8_present?, + ].count(true) + 1 + end + + def majorrepairs + mrcdate.present? ? 1 : 0 + end + + def mrcdate + Date.new(field_38 + 2000, field_37, field_36) if field_38.present? && field_37.present? && field_36.present? + end + + def voiddate + Date.new(field_35 + 2000, field_34, field_33) if field_35.present? && field_34.present? && field_33.present? + end + + def first_time_property_let_as_social_housing + case rsnvac + when 15, 16, 17 + 1 + else + 0 + end + end +end diff --git a/app/services/bulk_upload/sales/row_parser.rb b/app/services/bulk_upload/sales/row_parser.rb deleted file mode 100644 index f7b74dfe1..000000000 --- a/app/services/bulk_upload/sales/row_parser.rb +++ /dev/null @@ -1,176 +0,0 @@ -class BulkUpload::Sales::RowParser - include ActiveModel::Model - include ActiveModel::Attributes - - attribute :field_1, :string - attribute :field_2, :integer - attribute :field_3, :integer - attribute :field_4, :integer - attribute :field_5 - attribute :field_6, :integer - attribute :field_7, :integer - attribute :field_8, :integer - attribute :field_9, :integer - attribute :field_10, :integer - attribute :field_11, :integer - attribute :field_12, :integer - attribute :field_13, :string - attribute :field_14, :string - attribute :field_15, :string - attribute :field_16, :string - attribute :field_17, :string - attribute :field_18, :string - attribute :field_19, :string - attribute :field_20, :integer - attribute :field_21, :integer - attribute :field_22, :integer - attribute :field_23, :integer - attribute :field_24, :integer - attribute :field_25, :integer - attribute :field_26, :integer - attribute :field_27, :integer - attribute :field_28, :integer - attribute :field_29, :integer - attribute :field_30, :integer - attribute :field_31, :integer - attribute :field_32, :integer - attribute :field_33, :integer - attribute :field_34, :integer - attribute :field_35, :integer - attribute :field_36, :integer - attribute :field_37, :integer - attribute :field_38 - attribute :field_39, :integer - attribute :field_40, :string - attribute :field_41, :string - attribute :field_42, :string - attribute :field_43, :integer - attribute :field_44, :integer - attribute :field_45, :integer - attribute :field_46, :integer - attribute :field_47, :integer - attribute :field_48, :integer - attribute :field_49, :integer - attribute :field_50, :integer - attribute :field_51, :integer - attribute :field_52, :integer - attribute :field_53, :string - attribute :field_54, :string - attribute :field_55, :string - attribute :field_56, :integer - attribute :field_57, :integer - attribute :field_58, :integer - attribute :field_59, :integer - attribute :field_60, :integer - attribute :field_61, :integer - attribute :field_62, :integer - attribute :field_63, :integer - attribute :field_64, :integer - attribute :field_65, :integer - attribute :field_66, :integer - attribute :field_67, :integer - attribute :field_68, :integer - attribute :field_69, :integer - attribute :field_70, :integer - attribute :field_71, :integer - attribute :field_72, :integer - attribute :field_73, :integer - attribute :field_74, :decimal - attribute :field_75, :decimal - attribute :field_76, :integer - attribute :field_77, :integer - attribute :field_78, :integer - attribute :field_79, :integer - attribute :field_80, :integer - attribute :field_81, :integer - attribute :field_82, :integer - attribute :field_83, :integer - attribute :field_84, :integer - attribute :field_85, :string - attribute :field_86 - attribute :field_87, :integer - attribute :field_88, :integer - attribute :field_89, :integer - attribute :field_90, :integer - attribute :field_91, :integer - attribute :field_92, :integer - attribute :field_93, :string - attribute :field_94 - attribute :field_95, :integer - attribute :field_96 - attribute :field_97, :integer - attribute :field_98, :integer - attribute :field_99, :string - attribute :field_100, :integer - attribute :field_101, :string - attribute :field_102, :integer - attribute :field_103, :string - attribute :field_104, :integer - attribute :field_105, :integer - attribute :field_106, :integer - attribute :field_107, :integer - attribute :field_108, :integer - attribute :field_109, :integer - attribute :field_110, :integer - attribute :field_111, :integer - attribute :field_112, :integer - attribute :field_113, :integer - attribute :field_114, :integer - attribute :field_115, :integer - attribute :field_116, :integer - attribute :field_117, :integer - attribute :field_118, :integer - attribute :field_119, :integer - attribute :field_120, :integer - attribute :field_121, :integer - attribute :field_122, :integer - attribute :field_123, :integer - attribute :field_124, :integer - attribute :field_125, :integer - - # validates :field_1, presence: true, numericality: { in: (1..12) } - # validates :field_4, numericality: { in: (1..999), allow_blank: true } - # validates :field_4, presence: true, if: :field_4_presence_check - - validate :validate_possible_answers - -# delegate :valid?, to: :native_object -# delegate :errors, to: :native_object - -private - - def native_object - @native_object ||= SalesLog.new(attributes_for_log) - end - - def field_mapping - { - field_117: :buy1livein, - } - end - - def validate_possible_answers - field_mapping.each do |field, attribute| - possible_answers = FormHandler.instance.current_sales_form.questions.find { |q| q.id == attribute.to_s }.answer_options.keys - - unless possible_answers.include?(public_send(field)) - errors.add(field, "Value supplied is not one of the permitted values") - end - end - end - - def attributes_for_log - hash = field_mapping.invert - attributes = {} - - hash.map do |k, v| - attributes[k] = public_send(v) - end - - attributes - end - - # def field_4_presence_check - # [1, 3, 5, 7, 9, 11].include?(field_1) - # end -end diff --git a/app/services/bulk_upload/sales/validator.rb b/app/services/bulk_upload/sales/validator.rb index 43b8c001d..bddbfd13f 100644 --- a/app/services/bulk_upload/sales/validator.rb +++ b/app/services/bulk_upload/sales/validator.rb @@ -1,138 +1,6 @@ class BulkUpload::Sales::Validator include ActiveModel::Validations - QUESTIONS = { - field_1: "What is the purchaser code?", - field_2: "What is the day of the sale completion date? - DD", - field_3: "What is the month of the sale completion date? - MM", - field_4: "What is the year of the sale completion date? - YY", - field_5: "This question has been removed", - field_6: "Was the buyer interviewed for any of the answers you will provide on this log?", - field_7: "Age of Buyer 1", - field_8: "Age of Person 2", - field_9: "Age of Person 3", - field_10: "Age of Person 4", - field_11: "Age of Person 5", - field_12: "Age of Person 6", - field_13: "Gender identity of Buyer 1", - field_14: "Gender identity of Person 2", - field_15: "Gender identity of Person 3", - field_16: "Gender identity of Person 4", - field_17: "Gender identity of Person 5", - field_18: "Gender identity of Person 6", - field_19: "Relationship to Buyer 1 for Person 2", - field_20: "Relationship to Buyer 1 for Person 3", - field_21: "Relationship to Buyer 1 for Person 4", - field_22: "Relationship to Buyer 1 for Person 5", - field_23: "Relationship to Buyer 1 for Person 6", - field_24: "Working situation of Buyer 1", - field_25: "Working situation of Person 2", - field_26: "Working situation of Person 3", - field_27: "Working situation of Person 4", - field_28: "Working situation of Person 5", - field_29: "Working situation of Person 6", - field_30: "What is buyer 1's ethnic group?", - field_31: "What is buyer 1's nationality?", - field_32: "What is buyer 1's gross annual income?", - field_33: "What is buyer 2's gross annual income?", - field_34: "Was buyer 1's income used for a mortgage application?", - field_35: "Was buyer 2's income used for a mortgage application?", - field_36: "What is the total amount the buyers had in savings before they paid any deposit for the property?", - field_37: "Have any of the purchasers previously owned a property?", - field_38: "This question has been removed", - field_39: "What was buyer 1's previous tenure?", - field_40: "What is the local authority of buyer 1's last settled home?", - field_41: "Part 1 of postcode of buyer 1's last settled home", - field_42: "Part 2 of postcode of buyer 1's last settled home", - field_43: "Do you know the postcode of buyer 1's last settled home?", - field_44: "Was the buyer registered with their PRP (HA)?", - field_45: "Was the buyer registered with the local authority?", - field_46: "Was the buyer registered with a Help to Buy agent?", - field_47: "Was the buyer registered with another PRP (HA)?", - field_48: "Does anyone in the household consider themselves to have a disability?", - field_49: "Does anyone in the household use a wheelchair?", - field_50: "How many bedrooms does the property have?", - field_51: "What type of unit is the property?", - field_52: "Which type of bulding is the property?", - field_53: "What is the local authority of the property?", - field_54: "Part 1 of postcode of property", - field_55: "Part 2 of postcode of property", - field_56: "Is the property built or adapted to wheelchair user standards?", - field_57: "What is the type of shared ownership sale?", - field_58: "Is this a resale?", - field_59: "What is the day of the practical completion or handover date?", - field_60: "What is the month of the practical completion or handover date?", - field_61: "What is the day of the exchange of contracts date?", - field_62: "What is the day of the practical completion or handover date?", - field_63: "What is the month of the practical completion or handover date?", - field_64: "What is the year of the practical completion or handover date?", - field_65: "Was the household re-housed under a local authority nominations agreement?", - field_66: "How many bedrooms did the buyer's previous property have?", - field_67: "What was the type of the buyer's previous property?", - field_68: "What was the full purchase price?", - field_69: "What was the initial percentage equity stake purchased?", - field_70: "What is the mortgage amount?", - field_71: "Does this include any extra borrowing?", - field_72: "How much was the cash deposit paid on the property?", - field_73: "How much cash discount was given through Social Homebuy?", - field_74: "What is the basic monthly rent?", - field_75: "What are the total monthly leasehold charges for the property?", - field_76: "What is the type of discounted ownership sale?", - field_77: "What was the full purchase price?", - field_78: "What was the amount of any loan, grant, discount or subsidy given?", - field_79: "What was the percentage discount?", - field_80: "What is the mortgage amount?", - field_81: "Does this include any extra borrowing?", - field_82: "How much was the cash deposit paid on the property?", - field_83: "What are the total monthly leasehold charges for the property?", - field_84: "What is the type of outright sale?", - field_85: "If 'other', what is the 'other' type?", - field_86: "This question has been removed", - field_87: "What is the full purchase price?", - field_88: "What is the mortgage amount?", - field_89: "Does this include any extra borrowing?", - field_90: "How much was the cash deposit paid on the property?", - field_91: "What are the total monthly leasehold charges for the property?", - field_92: "Which organisation owned this property before the sale?", - field_93: "Username", - field_94: "This question has been removed", - field_95: "Has the buyer ever served in the UK Armed Forces and for how long?", - field_96: "This question has been removed", - field_97: "Are any of the buyers a spouse or civil partner of a UK Armed Forces regular who died in service within the last 2 years?", - field_98: "What is the name of the mortgage lender? - Shared ownership", - field_99: "If 'other', what is the name of the mortgage lender?", - field_100: "What is the name of the mortgage lender? - Discounted ownership", - field_101: "If 'other', what is the name of the mortgage lender?", - field_102: "What is the name of the mortgage lender? - Outright sale", - field_103: "If 'other', what is the name of the mortgage lender?", - field_104: "Were the buyers receiving any of these housing-related benefits immediately before buying this property?", - field_105: "What is the length of the mortgage in years? - Shared ownership", - field_106: "What is the length of the mortgage in years? - Discounted ownership", - field_107: "What is the length of the mortgage in years? - Outright sale", - field_108: "How long have the buyers been living in the property before the purchase? - Discounted ownership", - field_109: "Are there more than two joint purchasers of this property?", - field_110: "How long have the buyers been living in the property before the purchase? - Shared ownership", - field_111: "Is this a staircasing transaction?", - field_112: "Data Protection question", - field_113: "Was this purchase made through an ownership scheme?", - field_114: "Is the buyer a company?", - field_115: "Will the buyers live in the property?", - field_116: "Is this a joint purchase?", - field_117: "Will buyer 1 live in the property?", - field_118: "Will buyer 2 live in the property?", - field_119: "Besides the buyers, how many people will live in the property?", - field_120: "What percentage of the property has been bought in this staircasing transaction?", - field_121: "What percentage of the property does the buyer now own in total?", - field_122: "What was the rent type of the buyer's previous property?", - field_123: "Was a mortgage used for the purchase of this property? - Shared ownership", - field_124: "Was a mortgage used for the purchase of this property? - Discounted ownership", - field_125: "Was a mortgage used for the purchase of this property? - Outright sale", - }.freeze - - def self.question_for_field(field) - QUESTIONS[field] - end - attr_reader :bulk_upload, :path validate :validate_file_not_empty @@ -193,7 +61,7 @@ private headers = ("field_1".."field_125").to_a hash = Hash[headers.zip(stripped_row)] - BulkUpload::Sales::RowParser.new(hash) + BulkUpload::Sales::Year2022::RowParser.new(hash) end end diff --git a/app/services/bulk_upload/sales/year2022/row_parser.rb b/app/services/bulk_upload/sales/year2022/row_parser.rb new file mode 100644 index 000000000..965c3547a --- /dev/null +++ b/app/services/bulk_upload/sales/year2022/row_parser.rb @@ -0,0 +1,308 @@ +class BulkUpload::Sales::Year2022::RowParser + include ActiveModel::Model + include ActiveModel::Attributes + + QUESTIONS = { + field_1: "What is the purchaser code?", + field_2: "What is the day of the sale completion date? - DD", + field_3: "What is the month of the sale completion date? - MM", + field_4: "What is the year of the sale completion date? - YY", + field_5: "This question has been removed", + field_6: "Was the buyer interviewed for any of the answers you will provide on this log?", + field_7: "Age of Buyer 1", + field_8: "Age of Person 2", + field_9: "Age of Person 3", + field_10: "Age of Person 4", + field_11: "Age of Person 5", + field_12: "Age of Person 6", + field_13: "Gender identity of Buyer 1", + field_14: "Gender identity of Person 2", + field_15: "Gender identity of Person 3", + field_16: "Gender identity of Person 4", + field_17: "Gender identity of Person 5", + field_18: "Gender identity of Person 6", + field_19: "Relationship to Buyer 1 for Person 2", + field_20: "Relationship to Buyer 1 for Person 3", + field_21: "Relationship to Buyer 1 for Person 4", + field_22: "Relationship to Buyer 1 for Person 5", + field_23: "Relationship to Buyer 1 for Person 6", + field_24: "Working situation of Buyer 1", + field_25: "Working situation of Person 2", + field_26: "Working situation of Person 3", + field_27: "Working situation of Person 4", + field_28: "Working situation of Person 5", + field_29: "Working situation of Person 6", + field_30: "What is buyer 1's ethnic group?", + field_31: "What is buyer 1's nationality?", + field_32: "What is buyer 1's gross annual income?", + field_33: "What is buyer 2's gross annual income?", + field_34: "Was buyer 1's income used for a mortgage application?", + field_35: "Was buyer 2's income used for a mortgage application?", + field_36: "What is the total amount the buyers had in savings before they paid any deposit for the property?", + field_37: "Have any of the purchasers previously owned a property?", + field_38: "This question has been removed", + field_39: "What was buyer 1's previous tenure?", + field_40: "What is the local authority of buyer 1's last settled home?", + field_41: "Part 1 of postcode of buyer 1's last settled home", + field_42: "Part 2 of postcode of buyer 1's last settled home", + field_43: "Do you know the postcode of buyer 1's last settled home?", + field_44: "Was the buyer registered with their PRP (HA)?", + field_45: "Was the buyer registered with the local authority?", + field_46: "Was the buyer registered with a Help to Buy agent?", + field_47: "Was the buyer registered with another PRP (HA)?", + field_48: "Does anyone in the household consider themselves to have a disability?", + field_49: "Does anyone in the household use a wheelchair?", + field_50: "How many bedrooms does the property have?", + field_51: "What type of unit is the property?", + field_52: "Which type of bulding is the property?", + field_53: "What is the local authority of the property?", + field_54: "Part 1 of postcode of property", + field_55: "Part 2 of postcode of property", + field_56: "Is the property built or adapted to wheelchair user standards?", + field_57: "What is the type of shared ownership sale?", + field_58: "Is this a resale?", + field_59: "What is the day of the practical completion or handover date?", + field_60: "What is the month of the practical completion or handover date?", + field_61: "What is the day of the exchange of contracts date?", + field_62: "What is the day of the practical completion or handover date?", + field_63: "What is the month of the practical completion or handover date?", + field_64: "What is the year of the practical completion or handover date?", + field_65: "Was the household re-housed under a local authority nominations agreement?", + field_66: "How many bedrooms did the buyer's previous property have?", + field_67: "What was the type of the buyer's previous property?", + field_68: "What was the full purchase price?", + field_69: "What was the initial percentage equity stake purchased?", + field_70: "What is the mortgage amount?", + field_71: "Does this include any extra borrowing?", + field_72: "How much was the cash deposit paid on the property?", + field_73: "How much cash discount was given through Social Homebuy?", + field_74: "What is the basic monthly rent?", + field_75: "What are the total monthly leasehold charges for the property?", + field_76: "What is the type of discounted ownership sale?", + field_77: "What was the full purchase price?", + field_78: "What was the amount of any loan, grant, discount or subsidy given?", + field_79: "What was the percentage discount?", + field_80: "What is the mortgage amount?", + field_81: "Does this include any extra borrowing?", + field_82: "How much was the cash deposit paid on the property?", + field_83: "What are the total monthly leasehold charges for the property?", + field_84: "What is the type of outright sale?", + field_85: "If 'other', what is the 'other' type?", + field_86: "This question has been removed", + field_87: "What is the full purchase price?", + field_88: "What is the mortgage amount?", + field_89: "Does this include any extra borrowing?", + field_90: "How much was the cash deposit paid on the property?", + field_91: "What are the total monthly leasehold charges for the property?", + field_92: "Which organisation owned this property before the sale?", + field_93: "Username", + field_94: "This question has been removed", + field_95: "Has the buyer ever served in the UK Armed Forces and for how long?", + field_96: "This question has been removed", + field_97: "Are any of the buyers a spouse or civil partner of a UK Armed Forces regular who died in service within the last 2 years?", + field_98: "What is the name of the mortgage lender? - Shared ownership", + field_99: "If 'other', what is the name of the mortgage lender?", + field_100: "What is the name of the mortgage lender? - Discounted ownership", + field_101: "If 'other', what is the name of the mortgage lender?", + field_102: "What is the name of the mortgage lender? - Outright sale", + field_103: "If 'other', what is the name of the mortgage lender?", + field_104: "Were the buyers receiving any of these housing-related benefits immediately before buying this property?", + field_105: "What is the length of the mortgage in years? - Shared ownership", + field_106: "What is the length of the mortgage in years? - Discounted ownership", + field_107: "What is the length of the mortgage in years? - Outright sale", + field_108: "How long have the buyers been living in the property before the purchase? - Discounted ownership", + field_109: "Are there more than two joint purchasers of this property?", + field_110: "How long have the buyers been living in the property before the purchase? - Shared ownership", + field_111: "Is this a staircasing transaction?", + field_112: "Data Protection question", + field_113: "Was this purchase made through an ownership scheme?", + field_114: "Is the buyer a company?", + field_115: "Will the buyers live in the property?", + field_116: "Is this a joint purchase?", + field_117: "Will buyer 1 live in the property?", + field_118: "Will buyer 2 live in the property?", + field_119: "Besides the buyers, how many people will live in the property?", + field_120: "What percentage of the property has been bought in this staircasing transaction?", + field_121: "What percentage of the property does the buyer now own in total?", + field_122: "What was the rent type of the buyer's previous property?", + field_123: "Was a mortgage used for the purchase of this property? - Shared ownership", + field_124: "Was a mortgage used for the purchase of this property? - Discounted ownership", + field_125: "Was a mortgage used for the purchase of this property? - Outright sale", + }.freeze + + attribute :field_1, :string + attribute :field_2, :integer + attribute :field_3, :integer + attribute :field_4, :integer + attribute :field_5 + attribute :field_6, :integer + attribute :field_7, :integer + attribute :field_8, :integer + attribute :field_9, :integer + attribute :field_10, :integer + attribute :field_11, :integer + attribute :field_12, :integer + attribute :field_13, :string + attribute :field_14, :string + attribute :field_15, :string + attribute :field_16, :string + attribute :field_17, :string + attribute :field_18, :string + attribute :field_19, :string + attribute :field_20, :integer + attribute :field_21, :integer + attribute :field_22, :integer + attribute :field_23, :integer + attribute :field_24, :integer + attribute :field_25, :integer + attribute :field_26, :integer + attribute :field_27, :integer + attribute :field_28, :integer + attribute :field_29, :integer + attribute :field_30, :integer + attribute :field_31, :integer + attribute :field_32, :integer + attribute :field_33, :integer + attribute :field_34, :integer + attribute :field_35, :integer + attribute :field_36, :integer + attribute :field_37, :integer + attribute :field_38 + attribute :field_39, :integer + attribute :field_40, :string + attribute :field_41, :string + attribute :field_42, :string + attribute :field_43, :integer + attribute :field_44, :integer + attribute :field_45, :integer + attribute :field_46, :integer + attribute :field_47, :integer + attribute :field_48, :integer + attribute :field_49, :integer + attribute :field_50, :integer + attribute :field_51, :integer + attribute :field_52, :integer + attribute :field_53, :string + attribute :field_54, :string + attribute :field_55, :string + attribute :field_56, :integer + attribute :field_57, :integer + attribute :field_58, :integer + attribute :field_59, :integer + attribute :field_60, :integer + attribute :field_61, :integer + attribute :field_62, :integer + attribute :field_63, :integer + attribute :field_64, :integer + attribute :field_65, :integer + attribute :field_66, :integer + attribute :field_67, :integer + attribute :field_68, :integer + attribute :field_69, :integer + attribute :field_70, :integer + attribute :field_71, :integer + attribute :field_72, :integer + attribute :field_73, :integer + attribute :field_74, :decimal + attribute :field_75, :decimal + attribute :field_76, :integer + attribute :field_77, :integer + attribute :field_78, :integer + attribute :field_79, :integer + attribute :field_80, :integer + attribute :field_81, :integer + attribute :field_82, :integer + attribute :field_83, :integer + attribute :field_84, :integer + attribute :field_85, :string + attribute :field_86 + attribute :field_87, :integer + attribute :field_88, :integer + attribute :field_89, :integer + attribute :field_90, :integer + attribute :field_91, :integer + attribute :field_92, :integer + attribute :field_93, :string + attribute :field_94 + attribute :field_95, :integer + attribute :field_96 + attribute :field_97, :integer + attribute :field_98, :integer + attribute :field_99, :string + attribute :field_100, :integer + attribute :field_101, :string + attribute :field_102, :integer + attribute :field_103, :string + attribute :field_104, :integer + attribute :field_105, :integer + attribute :field_106, :integer + attribute :field_107, :integer + attribute :field_108, :integer + attribute :field_109, :integer + attribute :field_110, :integer + attribute :field_111, :integer + attribute :field_112, :integer + attribute :field_113, :integer + attribute :field_114, :integer + attribute :field_115, :integer + attribute :field_116, :integer + attribute :field_117, :integer + attribute :field_118, :integer + attribute :field_119, :integer + attribute :field_120, :integer + attribute :field_121, :integer + attribute :field_122, :integer + attribute :field_123, :integer + attribute :field_124, :integer + attribute :field_125, :integer + + # validates :field_1, presence: true, numericality: { in: (1..12) } + # validates :field_4, numericality: { in: (1..999), allow_blank: true } + # validates :field_4, presence: true, if: :field_4_presence_check + + validate :validate_possible_answers + + # delegate :valid?, to: :native_object + # delegate :errors, to: :native_object + + def self.question_for_field(field) + QUESTIONS[field] + end + +private + + def native_object + @native_object ||= SalesLog.new(attributes_for_log) + end + + def field_mapping + { + field_117: :buy1livein, + } + end + + def validate_possible_answers + field_mapping.each do |field, attribute| + possible_answers = FormHandler.instance.current_sales_form.questions.find { |q| q.id == attribute.to_s }.answer_options.keys + + unless possible_answers.include?(public_send(field)) + errors.add(field, "Value supplied is not one of the permitted values") + end + end + end + + def attributes_for_log + hash = field_mapping.invert + attributes = {} + + hash.map do |k, v| + attributes[k] = public_send(v) + end + + attributes + end + + # def field_4_presence_check + # [1, 3, 5, 7, 9, 11].include?(field_1) + # end +end diff --git a/config/initializers/feature_toggle.rb b/config/initializers/feature_toggle.rb index 4fc402212..0253bcc41 100644 --- a/config/initializers/feature_toggle.rb +++ b/config/initializers/feature_toggle.rb @@ -40,6 +40,12 @@ class FeatureToggle !Rails.env.development? end + def self.force_crossover? + return false if Rails.env.test? + + !Rails.env.production? + end + def self.validate_valid_radio_options? !(Rails.env.production? || Rails.env.staging?) end diff --git a/spec/components/bulk_upload_error_summary_table_component_spec.rb b/spec/components/bulk_upload_error_summary_table_component_spec.rb index a7468d70a..7fb7b65ed 100644 --- a/spec/components/bulk_upload_error_summary_table_component_spec.rb +++ b/spec/components/bulk_upload_error_summary_table_component_spec.rb @@ -3,7 +3,7 @@ require "rails_helper" RSpec.describe BulkUploadErrorSummaryTableComponent, type: :component do subject(:component) { described_class.new(bulk_upload:) } - let(:bulk_upload) { create(:bulk_upload) } + let(:bulk_upload) { create(:bulk_upload, :lettings) } before do stub_const("BulkUploadErrorSummaryTableComponent::DISPLAY_THRESHOLD", 0) @@ -52,7 +52,7 @@ RSpec.describe BulkUploadErrorSummaryTableComponent, type: :component do expect(row_1).to eql([ "A", "1", - BulkUpload::Lettings::Validator.question_for_field(error_1.field.to_sym), + bulk_upload.prefix_namespace::RowParser.question_for_field(error_1.field.to_sym), error_1.error, error_1.field, ]) @@ -62,7 +62,7 @@ RSpec.describe BulkUploadErrorSummaryTableComponent, type: :component do expect(row_2).to eql([ "B", "1", - BulkUpload::Lettings::Validator.question_for_field(error_2.field.to_sym), + bulk_upload.prefix_namespace::RowParser.question_for_field(error_2.field.to_sym), error_2.error, error_2.field, ]) @@ -89,7 +89,7 @@ RSpec.describe BulkUploadErrorSummaryTableComponent, type: :component do expect(row_1).to eql([ "A", "2", - BulkUpload::Lettings::Validator.question_for_field(error_1.field.to_sym), + bulk_upload.prefix_namespace::RowParser.question_for_field(error_1.field.to_sym), error_1.error, error_1.field, ]) diff --git a/spec/models/forms/bulk_upload_lettings/year_spec.rb b/spec/models/forms/bulk_upload_lettings/year_spec.rb index 0b0babb30..ebb65e517 100644 --- a/spec/models/forms/bulk_upload_lettings/year_spec.rb +++ b/spec/models/forms/bulk_upload_lettings/year_spec.rb @@ -5,8 +5,8 @@ RSpec.describe Forms::BulkUploadLettings::Year do describe "#options" do it "returns correct years" do - expect(form.options.map(&:id)).to eql([2022, 2021]) - expect(form.options.map(&:name)).to eql(%w[2022/2023 2021/2022]) + expect(form.options.map(&:id)).to eql([2023, 2022]) + expect(form.options.map(&:name)).to eql(%w[2023/2024 2022/2023]) end end end diff --git a/spec/services/bulk_upload/lettings/log_creator_spec.rb b/spec/services/bulk_upload/lettings/log_creator_spec.rb index 39dfd00fe..8b320c35f 100644 --- a/spec/services/bulk_upload/lettings/log_creator_spec.rb +++ b/spec/services/bulk_upload/lettings/log_creator_spec.rb @@ -30,9 +30,9 @@ RSpec.describe BulkUpload::Lettings::LogCreator do let(:log) { LettingsLog.new } before do - file.write(BulkUpload::LogToCsv.new(log:, col_offset: 0).to_csv_row) - file.write(BulkUpload::LogToCsv.new(log:, col_offset: 0).to_csv_row) - file.write(BulkUpload::LogToCsv.new(log:, col_offset: 0).to_csv_row) + file.write(BulkUpload::LogToCsv.new(log:, col_offset: 0).to_2022_csv_row) + file.write(BulkUpload::LogToCsv.new(log:, col_offset: 0).to_2022_csv_row) + file.write(BulkUpload::LogToCsv.new(log:, col_offset: 0).to_2022_csv_row) file.rewind end @@ -61,7 +61,7 @@ RSpec.describe BulkUpload::Lettings::LogCreator do end before do - file.write(BulkUpload::LogToCsv.new(log:, col_offset: 0).to_csv_row) + file.write(BulkUpload::LogToCsv.new(log:, col_offset: 0).to_2022_csv_row) file.rewind end diff --git a/spec/services/bulk_upload/lettings/validator_spec.rb b/spec/services/bulk_upload/lettings/validator_spec.rb index ba48bd9e7..dda7722c6 100644 --- a/spec/services/bulk_upload/lettings/validator_spec.rb +++ b/spec/services/bulk_upload/lettings/validator_spec.rb @@ -82,7 +82,7 @@ RSpec.describe BulkUpload::Lettings::Validator do let(:path) { file.path } before do - file.write(BulkUpload::LogToCsv.new(log:, line_ending: "\r\n", col_offset: 0).to_csv_row) + file.write(BulkUpload::LogToCsv.new(log:, line_ending: "\r\n", col_offset: 0).to_2022_csv_row) file.close end @@ -122,8 +122,8 @@ RSpec.describe BulkUpload::Lettings::Validator do let(:log_2) { build(:lettings_log, :completed, created_by: user) } before do - file.write(BulkUpload::LogToCsv.new(log: log_1, line_ending: "\r\n", col_offset: 0).to_csv_row) - file.write(BulkUpload::LogToCsv.new(log: log_2, line_ending: "\r\n", col_offset: 0, overrides: { illness: 100 }).to_csv_row) + file.write(BulkUpload::LogToCsv.new(log: log_1, line_ending: "\r\n", col_offset: 0).to_2022_csv_row) + file.write(BulkUpload::LogToCsv.new(log: log_2, line_ending: "\r\n", col_offset: 0, overrides: { illness: 100 }).to_2022_csv_row) file.close end @@ -138,8 +138,8 @@ RSpec.describe BulkUpload::Lettings::Validator do let(:log_2) { build(:lettings_log, :completed, renttype: 1, created_by: user) } before do - file.write(BulkUpload::LogToCsv.new(log: log_1, line_ending: "\r\n", col_offset: 0).to_csv_row) - file.write(BulkUpload::LogToCsv.new(log: log_2, line_ending: "\r\n", col_offset: 0).to_csv_row) + file.write(BulkUpload::LogToCsv.new(log: log_1, line_ending: "\r\n", col_offset: 0).to_2022_csv_row) + file.write(BulkUpload::LogToCsv.new(log: log_2, line_ending: "\r\n", col_offset: 0).to_2022_csv_row) file.close end @@ -155,7 +155,7 @@ RSpec.describe BulkUpload::Lettings::Validator do let(:log_1) { build(:lettings_log, :completed, renttype: 1, created_by: user, owning_organisation: unaffiliated_org) } before do - file.write(BulkUpload::LogToCsv.new(log: log_1, line_ending: "\r\n", col_offset: 0).to_csv_row) + file.write(BulkUpload::LogToCsv.new(log: log_1, line_ending: "\r\n", col_offset: 0).to_2022_csv_row) file.close end @@ -169,7 +169,7 @@ RSpec.describe BulkUpload::Lettings::Validator do let(:log) { build(:lettings_log, :in_progress, created_by: user, startdate: Time.zone.local(2022, 5, 1)) } before do - file.write(BulkUpload::LogToCsv.new(log:, line_ending: "\r\n", col_offset: 0).to_csv_row) + file.write(BulkUpload::LogToCsv.new(log:, line_ending: "\r\n", col_offset: 0).to_2022_csv_row) file.close end @@ -188,11 +188,11 @@ RSpec.describe BulkUpload::Lettings::Validator do let(:log_5) { build(:lettings_log, renttype: 2, created_by: user, builtype: nil, startdate: Time.zone.local(2022, 5, 1)) } before do - file.write(BulkUpload::LogToCsv.new(log: log_1, line_ending: "\r\n", col_offset: 0).to_csv_row) - file.write(BulkUpload::LogToCsv.new(log: log_2, line_ending: "\r\n", col_offset: 0).to_csv_row) - file.write(BulkUpload::LogToCsv.new(log: log_3, line_ending: "\r\n", col_offset: 0).to_csv_row) - file.write(BulkUpload::LogToCsv.new(log: log_4, line_ending: "\r\n", col_offset: 0).to_csv_row) - file.write(BulkUpload::LogToCsv.new(log: log_5, line_ending: "\r\n", col_offset: 0).to_csv_row) + file.write(BulkUpload::LogToCsv.new(log: log_1, line_ending: "\r\n", col_offset: 0).to_2022_csv_row) + file.write(BulkUpload::LogToCsv.new(log: log_2, line_ending: "\r\n", col_offset: 0).to_2022_csv_row) + file.write(BulkUpload::LogToCsv.new(log: log_3, line_ending: "\r\n", col_offset: 0).to_2022_csv_row) + file.write(BulkUpload::LogToCsv.new(log: log_4, line_ending: "\r\n", col_offset: 0).to_2022_csv_row) + file.write(BulkUpload::LogToCsv.new(log: log_5, line_ending: "\r\n", col_offset: 0).to_2022_csv_row) file.close end @@ -210,11 +210,11 @@ RSpec.describe BulkUpload::Lettings::Validator do let(:log_5) { build(:lettings_log, renttype: 2, created_by: user, builtype: nil, startdate: Time.zone.local(2022, 5, 1)) } before do - file.write(BulkUpload::LogToCsv.new(log: log_1, line_ending: "\r\n", col_offset: 0).to_csv_row) - file.write(BulkUpload::LogToCsv.new(log: log_2, line_ending: "\r\n", col_offset: 0).to_csv_row) - file.write(BulkUpload::LogToCsv.new(log: log_3, line_ending: "\r\n", col_offset: 0).to_csv_row) - file.write(BulkUpload::LogToCsv.new(log: log_4, line_ending: "\r\n", col_offset: 0).to_csv_row) - file.write(BulkUpload::LogToCsv.new(log: log_5, line_ending: "\r\n", col_offset: 0).to_csv_row) + file.write(BulkUpload::LogToCsv.new(log: log_1, line_ending: "\r\n", col_offset: 0).to_2022_csv_row) + file.write(BulkUpload::LogToCsv.new(log: log_2, line_ending: "\r\n", col_offset: 0).to_2022_csv_row) + file.write(BulkUpload::LogToCsv.new(log: log_3, line_ending: "\r\n", col_offset: 0).to_2022_csv_row) + file.write(BulkUpload::LogToCsv.new(log: log_4, line_ending: "\r\n", col_offset: 0).to_2022_csv_row) + file.write(BulkUpload::LogToCsv.new(log: log_5, line_ending: "\r\n", col_offset: 0).to_2022_csv_row) file.close end @@ -238,11 +238,11 @@ RSpec.describe BulkUpload::Lettings::Validator do let(:log_5) { build(:lettings_log, renttype: 2, created_by: user, builtype: nil, startdate: Time.zone.local(2022, 5, 1)) } before do - file.write(BulkUpload::LogToCsv.new(log: log_1, line_ending: "\r\n", col_offset: 0).to_csv_row) - file.write(BulkUpload::LogToCsv.new(log: log_2, line_ending: "\r\n", col_offset: 0).to_csv_row) - file.write(BulkUpload::LogToCsv.new(log: log_3, line_ending: "\r\n", col_offset: 0).to_csv_row) - file.write(BulkUpload::LogToCsv.new(log: log_4, line_ending: "\r\n", col_offset: 0).to_csv_row) - file.write(BulkUpload::LogToCsv.new(log: log_5, line_ending: "\r\n", col_offset: 0).to_csv_row) + file.write(BulkUpload::LogToCsv.new(log: log_1, line_ending: "\r\n", col_offset: 0).to_2022_csv_row) + file.write(BulkUpload::LogToCsv.new(log: log_2, line_ending: "\r\n", col_offset: 0).to_2022_csv_row) + file.write(BulkUpload::LogToCsv.new(log: log_3, line_ending: "\r\n", col_offset: 0).to_2022_csv_row) + file.write(BulkUpload::LogToCsv.new(log: log_4, line_ending: "\r\n", col_offset: 0).to_2022_csv_row) + file.write(BulkUpload::LogToCsv.new(log: log_5, line_ending: "\r\n", col_offset: 0).to_2022_csv_row) file.close end @@ -262,11 +262,11 @@ RSpec.describe BulkUpload::Lettings::Validator do before do overrides = { age1: 50, age2: "R", age3: "R", age4: "4", age5: "R", age6: "R", age7: "R", age8: "R" } - file.write(BulkUpload::LogToCsv.new(log: log_1, line_ending: "\r\n", col_offset: 0, overrides:).to_csv_row) - file.write(BulkUpload::LogToCsv.new(log: log_2, line_ending: "\r\n", col_offset: 0, overrides:).to_csv_row) - file.write(BulkUpload::LogToCsv.new(log: log_3, line_ending: "\r\n", col_offset: 0, overrides:).to_csv_row) - file.write(BulkUpload::LogToCsv.new(log: log_4, line_ending: "\r\n", col_offset: 0, overrides:).to_csv_row) - file.write(BulkUpload::LogToCsv.new(log: log_5, line_ending: "\r\n", col_offset: 0, overrides:).to_csv_row) + file.write(BulkUpload::LogToCsv.new(log: log_1, line_ending: "\r\n", col_offset: 0, overrides:).to_2022_csv_row) + file.write(BulkUpload::LogToCsv.new(log: log_2, line_ending: "\r\n", col_offset: 0, overrides:).to_2022_csv_row) + file.write(BulkUpload::LogToCsv.new(log: log_3, line_ending: "\r\n", col_offset: 0, overrides:).to_2022_csv_row) + file.write(BulkUpload::LogToCsv.new(log: log_4, line_ending: "\r\n", col_offset: 0, overrides:).to_2022_csv_row) + file.write(BulkUpload::LogToCsv.new(log: log_5, line_ending: "\r\n", col_offset: 0, overrides:).to_2022_csv_row) file.close end diff --git a/spec/services/bulk_upload/lettings/csv_parser_spec.rb b/spec/services/bulk_upload/lettings/year2022/csv_parser_spec.rb similarity index 67% rename from spec/services/bulk_upload/lettings/csv_parser_spec.rb rename to spec/services/bulk_upload/lettings/year2022/csv_parser_spec.rb index 80c8e37dc..d396ad78e 100644 --- a/spec/services/bulk_upload/lettings/csv_parser_spec.rb +++ b/spec/services/bulk_upload/lettings/year2022/csv_parser_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -RSpec.describe BulkUpload::Lettings::CsvParser do +RSpec.describe BulkUpload::Lettings::Year2022::CsvParser do subject(:service) { described_class.new(path:) } let(:path) { file_fixture("2022_23_lettings_bulk_upload.csv") } @@ -22,7 +22,7 @@ RSpec.describe BulkUpload::Lettings::CsvParser do let(:log) { build(:lettings_log, :completed) } before do - file.write(BulkUpload::LogToCsv.new(log:, col_offset: 0).to_csv_row) + file.write(BulkUpload::LogToCsv.new(log:, col_offset: 0).to_2022_csv_row) file.rewind end @@ -44,7 +44,7 @@ RSpec.describe BulkUpload::Lettings::CsvParser do before do file.write(bom) - file.write(BulkUpload::LogToCsv.new(log:, col_offset: 0).to_csv_row) + file.write(BulkUpload::LogToCsv.new(log:, col_offset: 0).to_2022_csv_row) file.close end @@ -61,7 +61,7 @@ RSpec.describe BulkUpload::Lettings::CsvParser do before do file.write(invalid_sequence) - file.write(BulkUpload::LogToCsv.new(log:, col_offset: 0).to_csv_row) + file.write(BulkUpload::LogToCsv.new(log:, col_offset: 0).to_2022_csv_row) file.close end @@ -69,4 +69,29 @@ RSpec.describe BulkUpload::Lettings::CsvParser do expect(service.row_parsers[0].field_12.to_i).to eql(log.age1) end end + + describe "#column_for_field", aggregate_failures: true do + context "when headers present" do + it "returns correct column" do + expect(service.column_for_field("field_1")).to eql("B") + expect(service.column_for_field("field_134")).to eql("EE") + end + end + + context "when no headers" do + let(:file) { Tempfile.new } + let(:path) { file.path } + let(:log) { build(:lettings_log, :completed) } + + before do + file.write(BulkUpload::LogToCsv.new(log:, col_offset: 0).to_2022_csv_row) + file.rewind + end + + it "returns correct column" do + expect(service.column_for_field("field_1")).to eql("A") + expect(service.column_for_field("field_134")).to eql("ED") + end + end + end end diff --git a/spec/services/bulk_upload/lettings/row_parser_spec.rb b/spec/services/bulk_upload/lettings/year2022/row_parser_spec.rb similarity index 99% rename from spec/services/bulk_upload/lettings/row_parser_spec.rb rename to spec/services/bulk_upload/lettings/year2022/row_parser_spec.rb index 68990c59b..312a63a3b 100644 --- a/spec/services/bulk_upload/lettings/row_parser_spec.rb +++ b/spec/services/bulk_upload/lettings/year2022/row_parser_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -RSpec.describe BulkUpload::Lettings::RowParser do +RSpec.describe BulkUpload::Lettings::Year2022::RowParser do subject(:parser) { described_class.new(attributes) } let(:now) { Time.zone.today } diff --git a/spec/services/bulk_upload/lettings/year2023/csv_parser_spec.rb b/spec/services/bulk_upload/lettings/year2023/csv_parser_spec.rb new file mode 100644 index 000000000..a8cf227f4 --- /dev/null +++ b/spec/services/bulk_upload/lettings/year2023/csv_parser_spec.rb @@ -0,0 +1,181 @@ +require "rails_helper" + +RSpec.describe BulkUpload::Lettings::Year2023::CsvParser do + subject(:service) { described_class.new(path:) } + + let(:file) { Tempfile.new } + let(:path) { file.path } + let(:log) { build(:lettings_log, :completed) } + + context "when parsing csv with headers" do + before do + file.write("Question\n") + file.write("Additional info\n") + file.write("Values\n") + file.write("Can be empty?\n") + file.write("Type of letting the question applies to\n") + file.write("Duplicate check field?\n") + file.write(BulkUpload::LogToCsv.new(log:).default_2023_field_numbers_row) + file.write(BulkUpload::LogToCsv.new(log:).to_2023_csv_row) + file.rewind + end + + it "returns correct offsets" do + expect(service.row_offset).to eq(7) + expect(service.col_offset).to eq(1) + end + + it "parses csv correctly" do + expect(service.row_parsers[0].field_13).to eql(log.tenancycode) + end + end + + context "when parsing csv with headers with extra rows" do + before do + file.write("Section\n") + file.write("Question\n") + file.write("Additional info\n") + file.write("Values\n") + file.write("Can be empty?\n") + file.write("Type of letting the question applies to\n") + file.write("Duplicate check field?\n") + file.write(BulkUpload::LogToCsv.new(log:).default_2023_field_numbers_row) + file.write(BulkUpload::LogToCsv.new(log:).to_2023_csv_row) + file.rewind + end + + it "returns correct offsets" do + expect(service.row_offset).to eq(8) + expect(service.col_offset).to eq(1) + end + + it "parses csv correctly" do + expect(service.row_parsers[0].field_13).to eql(log.tenancycode) + end + end + + context "when parsing csv with headers in arbitrary order" do + let(:seed) { rand } + + before do + file.write("Question\n") + file.write("Additional info\n") + file.write("Values\n") + file.write("Can be empty?\n") + file.write("Type of letting the question applies to\n") + file.write("Duplicate check field?\n") + file.write(BulkUpload::LogToCsv.new(log:).default_2023_field_numbers_row(seed:)) + file.write(BulkUpload::LogToCsv.new(log:).to_2023_csv_row(seed:)) + file.rewind + end + + it "returns correct offsets" do + expect(service.row_offset).to eq(7) + expect(service.col_offset).to eq(1) + end + + it "parses csv correctly" do + expect(service.row_parsers[0].field_13).to eql(log.tenancycode) + end + end + + context "when parsing csv without headers" do + before do + file.write(BulkUpload::LogToCsv.new(log:, col_offset: 0).to_2023_csv_row) + file.rewind + end + + it "returns correct offsets" do + expect(service.row_offset).to eq(0) + expect(service.col_offset).to eq(0) + end + + it "parses csv correctly" do + expect(service.row_parsers[0].field_13).to eql(log.tenancycode) + end + end + + context "when parsing with BOM aka byte order mark" do + let(:bom) { "\uFEFF" } + + before do + file.write(bom) + file.write(BulkUpload::LogToCsv.new(log:, col_offset: 0).to_2023_csv_row) + file.rewind + end + + it "parses csv correctly" do + expect(service.row_parsers[0].field_13).to eql(log.tenancycode) + end + end + + context "when an invalid byte sequence" do + let(:invalid_sequence) { "\x81" } + + before do + file.write(invalid_sequence) + file.write(BulkUpload::LogToCsv.new(log:, col_offset: 0).to_2023_csv_row) + file.rewind + end + + it "parses csv correctly" do + expect(service.row_parsers[0].field_13).to eql(log.tenancycode) + end + end + + describe "#column_for_field", aggregate_failures: true do + context "when with headers using default ordering" do + before do + file.write("Question\n") + file.write("Additional info\n") + file.write("Values\n") + file.write("Can be empty?\n") + file.write("Type of letting the question applies to\n") + file.write("Duplicate check field?\n") + file.write(BulkUpload::LogToCsv.new(log:).default_2023_field_numbers_row) + file.write(BulkUpload::LogToCsv.new(log:).to_2023_csv_row) + file.rewind + end + + it "returns correct column" do + expect(service.column_for_field("field_5")).to eql("B") + expect(service.column_for_field("field_22")).to eql("EL") + end + end + + context "when without headers using default ordering" do + before do + file.write(BulkUpload::LogToCsv.new(log:, col_offset: 0).to_2023_csv_row) + file.rewind + end + + it "returns correct column" do + expect(service.column_for_field("field_5")).to eql("A") + expect(service.column_for_field("field_22")).to eql("EK") + end + end + + context "when with headers using custom ordering" do + let(:seed) { 123 } + + before do + file.write("Question\n") + file.write("Additional info\n") + file.write("Values\n") + file.write("Can be empty?\n") + file.write("Type of letting the question applies to\n") + file.write("Duplicate check field?\n") + file.write(BulkUpload::LogToCsv.new(log:).default_2023_field_numbers_row(seed:)) + file.write(BulkUpload::LogToCsv.new(log:).to_2023_csv_row(seed:)) + file.rewind + end + + it "returns correct column" do + expect(service.column_for_field("field_5")).to eql("N") + expect(service.column_for_field("field_22")).to eql("O") + expect(service.column_for_field("field_26")).to eql("B") + expect(service.column_for_field("field_25")).to eql("EF") + end + end + end +end diff --git a/spec/services/bulk_upload/lettings/year2023/row_parser_spec.rb b/spec/services/bulk_upload/lettings/year2023/row_parser_spec.rb new file mode 100644 index 000000000..f658f7b04 --- /dev/null +++ b/spec/services/bulk_upload/lettings/year2023/row_parser_spec.rb @@ -0,0 +1,1282 @@ +require "rails_helper" + +RSpec.describe BulkUpload::Lettings::Year2023::RowParser do + subject(:parser) { described_class.new(attributes) } + + let(:now) { Time.zone.today } + + let(:attributes) { { bulk_upload: } } + let(:bulk_upload) { create(:bulk_upload, :lettings, user:, needstype: nil) } + let(:user) { create(:user, organisation: owning_org) } + + let(:owning_org) { create(:organisation, :with_old_visible_id) } + let(:managing_org) { create(:organisation, :with_old_visible_id) } + let(:scheme) { create(:scheme, :with_old_visible_id, owning_organisation: owning_org) } + let(:location) { create(:location, :with_old_visible_id, scheme:) } + + let(:setup_section_params) do + { + bulk_upload:, + field_1: owning_org.old_visible_id, + field_2: managing_org.old_visible_id, + field_4: "1", + field_5: "2", + field_6: "2", + field_7: now.day.to_s, + field_8: now.month.to_s, + field_9: now.strftime("%g"), + } + end + + before do + create(:organisation_relationship, parent_organisation: owning_org, child_organisation: managing_org) + end + + around do |example| + FormHandler.instance.use_real_forms! + + example.run + + FormHandler.instance.use_fake_forms! + end + + describe "#blank_row?" do + context "when a new object" do + it "returns true" do + expect(parser).to be_blank_row + end + end + + context "when any field is populated" do + before do + parser.field_1 = "1" + end + + it "returns false" do + expect(parser).not_to be_blank_row + end + end + end + + describe "validations" do + before do + stub_request(:get, /api.postcodes.io/) + .to_return(status: 200, body: "{\"status\":200,\"result\":{\"admin_district\":\"Manchester\", \"codes\":{\"admin_district\": \"E08000003\"}}}", headers: {}) + + parser.valid? + end + + describe "#valid?" do + context "when the row is blank" do + let(:attributes) { { bulk_upload: } } + + it "returns true" do + expect(parser).to be_valid + end + end + + context "when calling the method multiple times" do + let(:attributes) { { bulk_upload:, field_134: 2 } } + + it "does not add keep adding errors to the pile" do + expect { parser.valid? }.not_to change(parser.errors, :count) + end + end + + context "when valid row" do + let(:attributes) do + { + bulk_upload:, + field_5: "1", + field_13: "123", + field_7: now.day.to_s, + field_8: now.month.to_s, + field_9: now.strftime("%g"), + field_23: "EC1N", + field_24: "2TD", + field_1: owning_org.old_visible_id, + field_2: managing_org.old_visible_id, + field_11: "1", + field_6: "2", + field_29: "2", + field_30: "1", + field_31: "1", + field_32: "1", + field_39: "2", + field_40: "1", + field_41: "2", + field_45: "1", + + field_46: "42", + field_52: "41", + field_56: "20", + field_60: "18", + field_64: "16", + field_68: "14", + field_72: "12", + field_76: "20", + + field_47: "F", + field_53: "M", + field_57: "F", + field_61: "M", + field_65: "F", + field_69: "M", + field_73: "F", + field_77: "M", + + field_48: "17", + field_49: "18", + + field_51: "P", + field_55: "C", + field_59: "X", + field_63: "R", + field_67: "C", + field_71: "C", + field_75: "X", + + field_50: "1", + field_54: "2", + field_58: "6", + field_62: "7", + field_66: "8", + field_70: "9", + field_74: "0", + field_78: "10", + + field_79: "1", + field_80: "4", + field_81: "1", + + field_82: "1", + + field_89: "2", + + field_100: "5", + field_101: "2", + field_102: "31", + field_104: "3", + field_105: "12", + + field_106: "1", + field_107: "EC1N", + field_108: "2TD", + + field_110: "1", + field_111: "1", + field_112: "", + field_113: "1", + field_114: "", + field_115: "", + + field_116: "1", + field_117: "2", + field_118: "2", + + field_119: "2", + + field_120: "1", + field_122: "2000", + field_121: "2", + field_123: "1", + field_124: "1", + + field_126: "4", + field_128: "1234.56", + field_129: "43.32", + field_130: "13.14", + field_131: "101.11", + field_132: "1500.19", + field_133: "1", + field_134: "234.56", + + field_27: "15", + field_28: "0", + field_33: now.day.to_s, + field_34: now.month.to_s, + field_35: now.strftime("%g"), + + field_4: "1", + } + end + + it "returns true" do + expect(parser).to be_valid + end + + it "instantiates a log with everything completed", aggregate_failures: true do + questions = parser.send(:questions).reject do |q| + parser.send(:log).optional_fields.include?(q.id) || q.completed?(parser.send(:log)) + end + + expect(questions.map(&:id).size).to eq(0) + expect(questions.map(&:id)).to eql([]) + end + end + end + + context "when setup section not complete" do + let(:attributes) { { bulk_upload:, field_13: "123" } } + + it "has errors on setup fields" do + errors = parser.errors.select { |e| e.options[:category] == :setup }.map(&:attribute) + + expect(errors).to eql(%i[field_4 field_5 field_7 field_8 field_9 field_1 field_2]) + end + end + + describe "#field_5" do + context "when null" do + let(:attributes) { { bulk_upload:, field_5: nil, field_15: "1" } } + + it "returns an error" do + expect(parser.errors[:field_5]).to be_present + end + end + + context "when incorrect data type" do + let(:attributes) { { bulk_upload:, field_5: "foo" } } + + it "returns an error" do + expect(parser.errors[:field_5]).to be_present + end + end + + context "when unpermitted value" do + let(:attributes) { { bulk_upload:, field_5: "101" } } + + it "returns an error" do + expect(parser.errors[:field_5]).to be_present + end + end + + context "when valid" do + let(:attributes) { { bulk_upload:, field_5: "1", field_4: "1" } } + + it "does not return any errors" do + expect(parser.errors[:field_5]).to be_blank + end + end + + context "when bulk upload is for general needs" do + context "when general needs option selected" do + let(:attributes) { { bulk_upload:, field_5: "1", field_4: "1" } } + + it "is permitted" do + expect(parser.errors[:field_5]).to be_blank + end + end + + context "when supported housing option selected" do + let(:attributes) { { bulk_upload:, field_5: "2", field_4: "1" } } + + it "is not permitted" do + expect(parser.errors[:field_5]).to include("Lettings type must be a general needs type because you selected general needs when uploading the file") + end + end + end + + context "when bulk upload is for supported housing" do + let(:bulk_upload) { create(:bulk_upload, :lettings, user:) } + + context "when general needs option selected" do + let(:attributes) { { bulk_upload:, field_5: "1", field_4: "2" } } + + it "is not permitted" do + expect(parser.errors[:field_5]).to include("Lettings type must be a supported housing type because you selected supported housing when uploading the file") + end + end + + context "when supported housing option selected" do + let(:attributes) { { bulk_upload:, field_5: "2", field_4: "2" } } + + it "is permitted" do + expect(parser.errors[:field_5]).to be_blank + end + end + end + end + + describe "#field_16" do + context "when nullable not permitted" do + let(:attributes) { { bulk_upload:, field_5: "2", field_16: nil } } + + it "cannot be nulled" do + expect(parser.errors[:field_16]).to be_present + end + end + + context "when nullable permitted" do + let(:attributes) { { bulk_upload:, field_5: "1", field_16: nil } } + + it "can be nulled" do + expect(parser.errors[:field_15]).to be_blank + end + end + + context "when matching scheme cannot be found" do + let(:attributes) { { bulk_upload:, field_5: "1", field_16: "123" } } + + it "returns an error" do + expect(parser.errors[:field_16]).to be_present + end + end + + context "when scheme belongs to someone else" do + let(:other_scheme) { create(:scheme, :with_old_visible_id) } + let(:attributes) { { bulk_upload:, field_5: "1", field_16: other_scheme.old_visible_id, field_1: owning_org.old_visible_id } } + + it "returns an error" do + expect(parser.errors[:field_16]).to include("This management group code does not belong to your organisation, or any of your stock owners / managing agents") + end + end + + context "when scheme belongs to owning org" do + let(:scheme) { create(:scheme, :with_old_visible_id, owning_organisation: owning_org) } + let(:attributes) { { bulk_upload:, field_5: "1", field_16: scheme.old_visible_id, field_1: owning_org.old_visible_id } } + + it "does not return an error" do + expect(parser.errors[:field_16]).to be_blank + end + end + + context "when scheme belongs to managing org" do + let(:scheme) { create(:scheme, :with_old_visible_id, owning_organisation: managing_org) } + let(:attributes) { { bulk_upload:, field_5: "1", field_16: scheme.old_visible_id, field_2: managing_org.old_visible_id } } + + it "does not return an error" do + expect(parser.errors[:field_16]).to be_blank + end + end + end + + describe "#field_17" do + context "when location does not exist" do + let(:scheme) { create(:scheme, :with_old_visible_id, owning_organisation: owning_org) } + let(:attributes) do + { + bulk_upload:, + field_5: "1", + field_16: scheme.old_visible_id, + field_17: "dontexist", + field_1: owning_org.old_visible_id, + } + end + + it "returns an error" do + expect(parser.errors[:field_17]).to be_present + end + end + + context "when location exists" do + let(:scheme) { create(:scheme, :with_old_visible_id, owning_organisation: owning_org) } + let(:attributes) do + { + bulk_upload:, + field_5: "1", + field_16: scheme.old_visible_id, + field_17: location.old_visible_id, + field_1: owning_org.old_visible_id, + } + end + + it "does not return an error" do + expect(parser.errors[:field_17]).to be_blank + end + end + + context "when location exists but not related" do + let(:location) { create(:scheme, :with_old_visible_id) } + let(:attributes) do + { + bulk_upload:, + field_5: "1", + field_16: scheme.old_visible_id, + field_17: location.old_visible_id, + field_1: owning_org.old_visible_id, + } + end + + it "returns an error" do + expect(parser.errors[:field_17]).to be_present + end + end + end + + describe "#field_102" do # leaving reason + context "when field_6 is 1 meaning it is a renewal" do + context "when field_102 is 40" do + let(:attributes) { { bulk_upload:, field_102: "40", field_6: "1" } } + + it "is permitted" do + expect(parser.errors[:field_102]).to be_blank + end + end + + context "when field_102 is 42" do + let(:attributes) { { bulk_upload:, field_102: "42", field_6: "1" } } + + it "is permitted" do + expect(parser.errors[:field_102]).to be_blank + end + end + + context "when field_102 is not 40 or 42" do + let(:attributes) { { bulk_upload:, field_102: "1", field_6: "1" } } + + it "is not permitted" do + expect(parser.errors[:field_102]).to be_present + end + end + end + end + + describe "#field_83, #field_84, #field_85" do + context "when more than one item selected" do + let(:attributes) { { bulk_upload:, field_83: "1", field_84: "1" } } + + it "is not permitted" do + expect(parser.errors[:field_83]).to be_present + expect(parser.errors[:field_84]).to be_present + expect(parser.errors[:field_85]).to be_present + end + end + end + + describe "#field_87" do + context "when 1 and another disability field selected" do + let(:attributes) { { bulk_upload:, field_87: "1", field_86: "1" } } + + it "is not permitted" do + expect(parser.errors[:field_87]).to be_present + end + end + end + + describe "#field_88" do + context "when 1 and another disability field selected" do + let(:attributes) { { bulk_upload:, field_88: "1", field_86: "1" } } + + it "is not permitted" do + expect(parser.errors[:field_88]).to be_present + end + end + end + + describe "#field_87, #field_88" do + context "when both 1" do + let(:attributes) { { bulk_upload:, field_87: "1", field_88: "1" } } + + it "is not permitted" do + expect(parser.errors[:field_87]).to be_present + expect(parser.errors[:field_88]).to be_present + end + end + end + + describe "#field_119" do # referral + context "when 3 ie PRP nominated by LA and owning org is LA" do + let(:attributes) { { bulk_upload:, field_119: "3", field_1: owning_org.old_visible_id } } + + it "is not permitted" do + expect(parser.errors[:field_119]).to be_present + end + end + + context "when 4 ie referred by LA and is general needs and owning org is LA" do + let(:attributes) { { bulk_upload:, field_119: "4", field_1: owning_org.old_visible_id.to_s, field_4: "1" } } + + it "is not permitted" do + expect(parser.errors[:field_119]).to be_present + end + end + + context "when 4 ie referred by LA and is general needs and owning org is PRP" do + let(:owning_org) { create(:organisation, :prp, :with_old_visible_id) } + + let(:attributes) { { bulk_upload:, field_119: "4", field_1: owning_org.old_visible_id.to_s } } + + it "is permitted" do + expect(parser.errors[:field_119]).to be_blank + end + end + + context "when 4 ie referred by LA and is not general needs" do + let(:bulk_upload) { create(:bulk_upload, :lettings, user:) } + let(:attributes) { { bulk_upload:, field_119: "4", field_4: "2" } } + + it "is permitted" do + expect(parser.errors[:field_119]).to be_blank + end + end + end + + describe "fields 7, 8, 9 => startdate" do + context "when any one of these fields is blank" do + let(:attributes) { { bulk_upload:, field_5: "1", field_7: nil, field_8: nil, field_9: nil } } + + it "returns an error" do + parser.valid? + + expect(parser.errors[:field_7]).to be_present + expect(parser.errors[:field_8]).to be_present + expect(parser.errors[:field_9]).to be_present + end + end + + context "when field_9 is 4 digits instead of 2" do + let(:attributes) { { bulk_upload:, field_9: "2022" } } + + it "returns an error" do + parser.valid? + + expect(parser.errors[:field_9]).to include("Tenancy start year must be 2 digits") + end + end + + context "when invalid date given" do + let(:attributes) { { bulk_upload:, field_5: "1", field_7: "a", field_8: "12", field_9: "22" } } + + it "does not raise an error" do + expect { parser.valid? }.not_to raise_error + end + end + + context "when inside of collection year" do + let(:attributes) { { bulk_upload:, field_7: "1", field_8: "10", field_9: "22" } } + + let(:bulk_upload) { create(:bulk_upload, :lettings, user:, year: 2022) } + + it "does not return errors" do + parser.valid? + + expect(parser.errors[:field_7]).not_to be_present + expect(parser.errors[:field_8]).not_to be_present + expect(parser.errors[:field_9]).not_to be_present + end + end + + context "when outside of collection year" do + around do |example| + Timecop.freeze(Date.new(2022, 4, 2)) do + example.run + end + end + + let(:attributes) { { bulk_upload:, field_7: "1", field_8: "1", field_9: "22" } } + + let(:bulk_upload) { create(:bulk_upload, :lettings, user:, year: 2022) } + + it "returns errors" do + parser.valid? + + expect(parser.errors[:field_7]).to be_present + expect(parser.errors[:field_8]).to be_present + expect(parser.errors[:field_9]).to be_present + end + end + end + + describe "#field_1" do # owning org + context "when cannot find owning org" do + let(:attributes) { { bulk_upload:, field_1: "donotexist" } } + + it "is not permitted" do + expect(parser.errors[:field_1]).to eql(["The owning organisation code is incorrect"]) + end + end + + context "when org is not stock owning" do + let(:owning_org) { create(:organisation, :with_old_visible_id, :does_not_own_stock) } + + let(:attributes) { { bulk_upload:, field_1: owning_org.old_visible_id } } + + it "is not permitted" do + expect(parser.errors[:field_1]).to eql(["The owning organisation code provided is for an organisation that does not own stock"]) + end + + it "blocks log creation" do + expect(parser).to be_block_log_creation + end + end + + context "when not affiliated with owning org" do + let(:unaffiliated_org) { create(:organisation, :with_old_visible_id) } + + let(:attributes) { { bulk_upload:, field_1: unaffiliated_org.old_visible_id } } + + it "is not permitted" do + expect(parser.errors[:field_1]).to eql(["You do not have permission to add logs for this owning organisation"]) + end + + it "blocks log creation" do + expect(parser).to be_block_log_creation + end + end + end + + describe "#field_2" do # managing org + context "when cannot find managing org" do + let(:attributes) { { bulk_upload:, field_2: "donotexist" } } + + it "is not permitted" do + expect(parser.errors[:field_2]).to eql(["The managing organisation code is incorrect"]) + end + end + + context "when not affiliated with managing org" do + let(:unaffiliated_org) { create(:organisation, :with_old_visible_id) } + + let(:attributes) { { bulk_upload:, field_1: owning_org.old_visible_id, field_2: unaffiliated_org.old_visible_id } } + + it "is not permitted" do + expect(parser.errors[:field_2]).to eql(["This managing organisation does not have a relationship with the owning organisation"]) + end + + it "blocks log creation" do + expect(parser).to be_block_log_creation + end + end + end + + describe "#field_4" do + context "when blank" do + let(:attributes) { { bulk_upload:, field_4: nil, field_13: "123" } } + + it "is reported as a setup error" do + errors = parser.errors.select { |e| e.options[:category] == :setup } + error = errors.find { |e| e.attribute == :field_4 } + + expect(error).to be_present + expect(error.type).to eql("You must answer needs type") + end + end + end + + describe "#field_6" do + context "when an unpermitted value" do + let(:attributes) { { bulk_upload:, field_6: "3" } } + + it "has errors on the field" do + expect(parser.errors[:field_6]).to be_present + end + end + end + + describe "#field_30" do + context "when null" do + let(:attributes) { setup_section_params.merge({ field_30: nil }) } + + it "returns an error" do + expect(parser.errors[:field_30]).to be_present + end + + it "populates with correct error message" do + expect(parser.errors[:field_30]).to eql(["You must answer type of building"]) + end + end + + context "when unpermitted values" do + let(:attributes) { setup_section_params.merge({ field_30: "4" }) } + + it "returns an error" do + expect(parser.errors[:field_30]).to be_present + end + end + end + end + + describe "#log" do + [ + %w[age1_known age1 field_46], + %w[age2_known age2 field_52], + %w[age3_known age3 field_56], + %w[age4_known age4 field_60], + %w[age5_known age5 field_64], + %w[age6_known age6 field_68], + %w[age7_known age7 field_72], + %w[age8_known age8 field_76], + ].each do |known, age, field| + describe "##{known} and ##{age}" do + context "when #{field} is R" do + let(:attributes) { { bulk_upload:, field.to_s => "R" } } + + it "sets ##{known} 1" do + expect(parser.log.public_send(known)).to be(1) + end + + it "sets ##{age} to nil" do + expect(parser.log.public_send(age)).to be_nil + end + end + + context "when #{field} is a number" do + let(:attributes) { { bulk_upload:, field.to_s => "50" } } + + it "sets ##{known} to 0" do + expect(parser.log.public_send(known)).to be(0) + end + + it "sets ##{age} to given age" do + expect(parser.log.public_send(age)).to be(50) + end + end + end + end + + describe "#location" do + context "when lookup is via new core id" do + let(:attributes) { { bulk_upload:, field_16: scheme.old_visible_id, field_17: location.id, field_1: owning_org } } + + it "assigns the correct location" do + expect(parser.log.location).to eql(location) + end + end + end + + describe "#scheme" do + context "when lookup is via id prefixed with S" do + let(:attributes) { { bulk_upload:, field_16: "S#{scheme.id}", field_1: owning_org } } + + it "assigns the correct scheme" do + expect(parser.log.scheme).to eql(scheme) + end + end + end + + describe "#owning_organisation" do + context "when lookup is via id prefixed with ORG" do + let(:attributes) { { bulk_upload:, field_1: "ORG#{owning_org.id}" } } + + it "assigns the correct org" do + expect(parser.log.owning_organisation).to eql(owning_org) + end + end + end + + describe "#managing_organisation" do + context "when lookup is via id prefixed with ORG" do + let(:attributes) { { bulk_upload:, field_2: "ORG#{managing_org.id}" } } + + it "assigns the correct org" do + expect(parser.log.managing_organisation).to eql(managing_org) + end + end + end + + describe "#cbl" do + context "when field_116 is yes ie 1" do + let(:attributes) { { bulk_upload:, field_116: 1 } } + + it "sets value to 1" do + expect(parser.log.cbl).to be(1) + end + end + + context "when field_116 is no ie 2" do + let(:attributes) { { bulk_upload:, field_116: 2 } } + + it "sets value to 0" do + expect(parser.log.cbl).to be(0) + end + end + end + + describe "#chr" do + context "when field_118 is yes ie 1" do + let(:attributes) { { bulk_upload:, field_118: 1 } } + + it "sets value to 1" do + expect(parser.log.chr).to be(1) + end + end + + context "when field_118 is no ie 2" do + let(:attributes) { { bulk_upload:, field_118: 2 } } + + it "sets value to 0" do + expect(parser.log.chr).to be(0) + end + end + end + + describe "#cap" do + context "when field_117 is yes ie 1" do + let(:attributes) { { bulk_upload:, field_117: 1 } } + + it "sets value to 1" do + expect(parser.log.cap).to be(1) + end + end + + context "when field_117 is no ie 2" do + let(:attributes) { { bulk_upload:, field_117: 2 } } + + it "sets value to 0" do + expect(parser.log.cap).to be(0) + end + end + end + + describe "#letting_allocation_unknown" do + context "when field_116, 117, 118 are no ie 2" do + let(:attributes) { { bulk_upload:, field_116: 2, field_117: 2, field_118: 2 } } + + it "sets value to 1" do + expect(parser.log.letting_allocation_unknown).to be(1) + end + end + + context "when any one of field_116, 117, 118 is yes ie 1" do + let(:attributes) { { bulk_upload:, field_116: 1 } } + + it "sets value to 0" do + expect(parser.log.letting_allocation_unknown).to be(0) + end + end + end + + describe "#renewal" do + context "when field_6 is no ie 2" do + let(:attributes) { { bulk_upload:, field_6: 2 } } + + it "sets value to 0" do + expect(parser.log.renewal).to eq(0) + end + end + + context "when field_6 is null but rsnvac/field_27 is 14" do + let(:attributes) { { bulk_upload:, field_6: "", field_27: "14" } } + + it "sets renewal to 1" do + expect(parser.log.renewal).to eq(1) + end + end + end + + describe "#sexN fields" do + let(:attributes) do + { + bulk_upload:, + field_47: "F", + field_53: "M", + field_57: "X", + field_61: "R", + field_65: "F", + field_69: "M", + field_73: "X", + field_77: "R", + } + end + + it "sets value from correct mapping" do + expect(parser.log.sex1).to eql("F") + expect(parser.log.sex2).to eql("M") + expect(parser.log.sex3).to eql("X") + expect(parser.log.sex4).to eql("R") + expect(parser.log.sex5).to eql("F") + expect(parser.log.sex6).to eql("M") + expect(parser.log.sex7).to eql("X") + expect(parser.log.sex8).to eql("R") + end + end + + describe "#ecstatN fields" do + let(:attributes) do + { + bulk_upload:, + field_50: "1", + field_54: "2", + field_58: "6", + field_62: "7", + field_66: "8", + field_70: "9", + field_74: "0", + field_78: "10", + } + end + + it "sets value from correct mapping", aggregate_failures: true do + expect(parser.log.ecstat1).to eq(1) + expect(parser.log.ecstat2).to eq(2) + expect(parser.log.ecstat3).to eq(6) + expect(parser.log.ecstat4).to eq(7) + expect(parser.log.ecstat5).to eq(8) + expect(parser.log.ecstat6).to eq(9) + expect(parser.log.ecstat7).to eq(0) + expect(parser.log.ecstat8).to eq(10) + end + end + + describe "#relatN fields" do + let(:attributes) do + { + bulk_upload:, + field_51: "P", + field_55: "C", + field_59: "X", + field_63: "R", + field_67: "P", + field_71: "C", + field_75: "X", + } + end + + it "sets value from correct mapping", aggregate_failures: true do + expect(parser.log.relat2).to eq("P") + expect(parser.log.relat3).to eq("C") + expect(parser.log.relat4).to eq("X") + expect(parser.log.relat5).to eq("R") + expect(parser.log.relat6).to eq("P") + expect(parser.log.relat7).to eq("C") + expect(parser.log.relat8).to eq("X") + end + end + + describe "#net_income_known" do + let(:attributes) { { bulk_upload:, field_120: "1" } } + + it "sets value from correct mapping" do + expect(parser.log.net_income_known).to eq(0) + end + end + + describe "#unitletas" do + let(:attributes) { { bulk_upload:, field_26: "1" } } + + it "sets value from correct mapping" do + expect(parser.log.unitletas).to eq(1) + end + end + + describe "#rsnvac" do + let(:attributes) { { bulk_upload:, field_27: "5" } } + + it "sets value from correct mapping" do + expect(parser.log.rsnvac).to eq(5) + end + end + + describe "#sheltered" do + let(:attributes) { { bulk_upload:, field_44: "1" } } + + it "sets value from correct mapping" do + expect(parser.log.sheltered).to eq(1) + end + end + + describe "illness fields" do + mapping = [ + { attribute: :illness_type_1, field: :field_98 }, + { attribute: :illness_type_2, field: :field_92 }, + { attribute: :illness_type_3, field: :field_95 }, + { attribute: :illness_type_4, field: :field_90 }, + { attribute: :illness_type_5, field: :field_91 }, + { attribute: :illness_type_6, field: :field_93 }, + { attribute: :illness_type_7, field: :field_94 }, + { attribute: :illness_type_8, field: :field_97 }, + { attribute: :illness_type_9, field: :field_96 }, + { attribute: :illness_type_10, field: :field_99 }, + ] + + mapping.each do |hash| + describe "##{hash[:attribute]}" do + context "when yes" do + let(:attributes) { { bulk_upload:, hash[:field] => "1" } } + + it "sets value from correct mapping" do + expect(parser.log.public_send(hash[:attribute])).to eq(1) + end + end + + context "when no" do + let(:attributes) { { bulk_upload:, hash[:field] => "" } } + + it "sets value from correct mapping" do + expect(parser.log.public_send(hash[:attribute])).to be_nil + end + end + end + end + end + + describe "#irproduct_other" do + let(:attributes) { { bulk_upload:, field_12: "some other product" } } + + it "sets value to given free text string" do + expect(parser.log.irproduct_other).to eql("some other product") + end + end + + describe "#tenancyother" do + let(:attributes) { { bulk_upload:, field_42: "some other tenancy" } } + + it "sets value to given free text string" do + expect(parser.log.tenancyother).to eql("some other tenancy") + end + end + + describe "#tenancylength" do + let(:attributes) { { bulk_upload:, field_43: "2" } } + + it "sets value to given free text string" do + expect(parser.log.tenancylength).to eq(2) + end + end + + describe "#earnings" do + let(:attributes) { { bulk_upload:, field_122: "104.50" } } + + it "rounds to the nearest whole pound" do + expect(parser.log.earnings).to eq(105) + end + end + + describe "#reasonother" do + let(:attributes) { { bulk_upload:, field_103: "some other reason" } } + + it "sets value to given free text string" do + expect(parser.log.reasonother).to eql("some other reason") + end + end + + describe "#ppcodenk" do + let(:attributes) { { bulk_upload:, field_106: "2" } } + + it "sets correct value from mapping" do + expect(parser.log.ppcodenk).to eq(0) + end + end + + describe "#household_charge" do + let(:attributes) { { bulk_upload:, field_125: "1" } } + + it "sets correct value from mapping" do + expect(parser.log.household_charge).to eq(1) + end + end + + describe "#chcharge" do + let(:attributes) { { bulk_upload:, field_127: "123.45" } } + + it "sets value given" do + expect(parser.log.chcharge).to eq(123.45) + end + end + + describe "#tcharge" do + let(:attributes) { { bulk_upload:, field_132: "123.45" } } + + it "sets value given" do + expect(parser.log.tcharge).to eq(123.45) + end + end + + describe "#supcharg" do + let(:attributes) { { bulk_upload:, field_131: "123.45" } } + + it "sets value given" do + expect(parser.log.supcharg).to eq(123.45) + end + end + + describe "#pscharge" do + let(:attributes) { { bulk_upload:, field_130: "123.45" } } + + it "sets value given" do + expect(parser.log.pscharge).to eq(123.45) + end + end + + describe "#scharge" do + let(:attributes) { { bulk_upload:, field_129: "123.45" } } + + it "sets value given" do + expect(parser.log.scharge).to eq(123.45) + end + end + + describe "#offered" do + let(:attributes) { { bulk_upload:, field_28: "3" } } + + it "sets value given" do + expect(parser.log.offered).to eq(3) + end + end + + describe "#propcode" do + let(:attributes) { { bulk_upload:, field_14: "abc123" } } + + it "sets value given" do + expect(parser.log.propcode).to eq("abc123") + end + end + + describe "#mrcdate" do + let(:attributes) { { bulk_upload:, field_36: "13", field_37: "12", field_38: "22" } } + + it "sets value given" do + expect(parser.log.mrcdate).to eq(Date.new(2022, 12, 13)) + end + end + + describe "#majorrepairs" do + context "when mrcdate given" do + let(:attributes) { { bulk_upload:, field_36: "13", field_37: "12", field_38: "22" } } + + it "sets #majorrepairs to 1" do + expect(parser.log.majorrepairs).to eq(1) + end + end + + context "when mrcdate not given" do + let(:attributes) { { bulk_upload:, field_36: "", field_37: "", field_38: "" } } + + it "sets #majorrepairs to 0" do + expect(parser.log.majorrepairs).to eq(0) + end + end + end + + describe "#voiddate" do + let(:attributes) { { bulk_upload:, field_33: "13", field_34: "12", field_35: "22" } } + + it "sets value given" do + expect(parser.log.voiddate).to eq(Date.new(2022, 12, 13)) + end + end + + describe "#startdate" do + let(:attributes) { { bulk_upload:, field_7: now.day.to_s, field_8: now.month.to_s, field_9: now.strftime("%g") } } + + it "sets value given" do + expect(parser.log.startdate).to eq(now) + end + end + + describe "#postcode_full" do + let(:attributes) { { bulk_upload:, field_23: " EC1N ", field_24: " 2TD " } } + + it "strips whitespace" do + expect(parser.log.postcode_full).to eql("EC1N 2TD") + end + end + + describe "#la" do + let(:attributes) { { bulk_upload:, field_25: "E07000223" } } + + it "sets to given value" do + expect(parser.log.la).to eql("E07000223") + end + end + + describe "#prevloc" do + let(:attributes) { { bulk_upload:, field_109: "E07000223" } } + + it "sets to given value" do + expect(parser.log.prevloc).to eql("E07000223") + end + end + + describe "#previous_la_known" do + context "when known" do + let(:attributes) { { bulk_upload:, field_109: "E07000223" } } + + it "sets to 1" do + expect(parser.log.previous_la_known).to eq(1) + end + end + + context "when not known" do + let(:attributes) { { bulk_upload:, field_109: "" } } + + it "sets to 0" do + expect(parser.log.previous_la_known).to eq(0) + end + end + end + + describe "#first_time_property_let_as_social_housing" do + context "when field_27 is 15, 16, or 17" do + let(:attributes) { { bulk_upload:, field_27: %w[15 16 17].sample } } + + it "sets to 1" do + expect(parser.log.first_time_property_let_as_social_housing).to eq(1) + end + end + + context "when field_27 is not 15, 16, or 17" do + let(:attributes) { { bulk_upload:, field_27: "1" } } + + it "sets to 0" do + expect(parser.log.first_time_property_let_as_social_housing).to eq(0) + end + end + end + + describe "#housingneeds" do + context "when no disabled needs" do + let(:attributes) { { bulk_upload:, field_87: "1" } } + + it "sets to 2" do + expect(parser.log.housingneeds).to eq(2) + end + end + + context "when dont know about disabled needs" do + let(:attributes) { { bulk_upload:, field_88: "1" } } + + it "sets to 3" do + expect(parser.log.housingneeds).to eq(3) + end + end + end + + describe "#housingneeds_type" do + context "when field_83 is 1" do + let(:attributes) { { bulk_upload:, field_83: "1" } } + + it "set to 0" do + expect(parser.log.housingneeds_type).to eq(0) + end + end + + context "when field_84 is 1" do + let(:attributes) { { bulk_upload:, field_84: "1" } } + + it "set to 1" do + expect(parser.log.housingneeds_type).to eq(1) + end + end + + context "when field_85 is 1" do + let(:attributes) { { bulk_upload:, field_85: "1" } } + + it "set to 2" do + expect(parser.log.housingneeds_type).to eq(2) + end + end + end + + describe "#housingneeds_other" do + context "when field_58 is 1" do + let(:attributes) { { bulk_upload:, field_86: "1" } } + + it "sets to 1" do + expect(parser.log.housingneeds_other).to eq(1) + end + end + end + end + + describe "#start_date" do + context "when year of 9 is passed to represent 2009" do + let(:attributes) { { bulk_upload:, field_7: "1", field_8: "1", field_9: "9" } } + + it "uses the year 2009" do + expect(parser.send(:start_date)).to eql(Date.new(2009, 1, 1)) + end + end + end +end diff --git a/spec/services/bulk_upload/sales/row_parser_spec.rb b/spec/services/bulk_upload/sales/year2022/row_parser_spec.rb similarity index 87% rename from spec/services/bulk_upload/sales/row_parser_spec.rb rename to spec/services/bulk_upload/sales/year2022/row_parser_spec.rb index 38f02fabb..e27355dc4 100644 --- a/spec/services/bulk_upload/sales/row_parser_spec.rb +++ b/spec/services/bulk_upload/sales/year2022/row_parser_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -RSpec.describe BulkUpload::Sales::RowParser do +RSpec.describe BulkUpload::Sales::Year2022::RowParser do subject(:parser) { described_class.new(attributes) } describe "validations" do diff --git a/spec/support/bulk_upload/log_to_csv.rb b/spec/support/bulk_upload/log_to_csv.rb index e15c9173b..86167376d 100644 --- a/spec/support/bulk_upload/log_to_csv.rb +++ b/spec/support/bulk_upload/log_to_csv.rb @@ -8,9 +8,49 @@ class BulkUpload::LogToCsv @overrides = overrides end - def to_csv_row + def row_prefix + [nil] * col_offset + end + + def to_2022_csv_row + (row_prefix + to_2022_row).flatten.join(",") + line_ending + end + + def to_2023_csv_row(seed: nil) + if seed + row = to_2023_row.shuffle(random: Random.new(seed)) + (row_prefix + row).flatten.join(",") + line_ending + else + (row_prefix + to_2023_row).flatten.join(",") + line_ending + end + end + + def to_2023_row + to_2022_row + [ + log.needstype, + log.location&.id, + nil, # uprn, + nil, # address_line_1, + nil, # address_line_2, + nil, # town_or_city, + nil, # county, + ] + end + + def default_2023_field_numbers_row(seed: nil) + if seed + ["Bulk upload field number"] + default_2023_field_numbers.shuffle(random: Random.new(seed)) + else + ["Bulk upload field number"] + default_2023_field_numbers + end.flatten.join(",") + line_ending + end + + def default_2023_field_numbers + [5, nil, nil, 15, 16, nil, 13, 40, 41, 42, 43, 46, 52, 56, 60, 64, 68, 72, 76, 47, 53, 57, 61, 65, 69, 73, 77, 51, 55, 59, 63, 67, 71, 75, 50, 54, 58, 62, 66, 70, 74, 78, 48, 49, 79, 81, 82, 123, 124, 122, 120, 102, 103, nil, 83, 84, 85, 86, 87, 88, 104, 109, 107, 108, 106, 100, 101, 105, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 126, 128, 129, 130, 131, 132, 127, 125, 133, 134, 33, 34, 35, 36, 37, 38, nil, 7, 8, 9, 28, 14, 32, 29, 30, 31, 26, 27, 25, 23, 24, nil, 1, 3, 2, 80, nil, 121, 44, 89, 98, 92, 95, 90, 91, 93, 94, 97, 96, 99, 10, 11, 12, 45, 39, 6, 4, 17, 18, 19, 20, 21, 22] + end + + def to_2022_row [ - [nil] * col_offset, # 0 log.renttype, # 1 nil, nil, @@ -155,10 +195,11 @@ class BulkUpload::LogToCsv log.declaration, log.joint, renewal, - line_ending, - ].flatten.join(",") + ] end +private + def renewal checkbox_value(log.renewal) end From c3a9c9e61bf55d819d6daa80e398f42618854efd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 16 Mar 2023 10:23:13 +0000 Subject: [PATCH 32/51] Bump activesupport from 7.0.4.2 to 7.0.4.3 in /docs (#1419) Bumps [activesupport](https://github.com/rails/rails) from 7.0.4.2 to 7.0.4.3. - [Release notes](https://github.com/rails/rails/releases) - [Changelog](https://github.com/rails/rails/blob/v7.0.4.3/activesupport/CHANGELOG.md) - [Commits](https://github.com/rails/rails/compare/v7.0.4.2...v7.0.4.3) --- updated-dependencies: - dependency-name: activesupport dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- docs/Gemfile.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/Gemfile.lock b/docs/Gemfile.lock index c8a433b8f..52a7b091a 100644 --- a/docs/Gemfile.lock +++ b/docs/Gemfile.lock @@ -1,7 +1,7 @@ GEM remote: https://rubygems.org/ specs: - activesupport (7.0.4.2) + activesupport (7.0.4.3) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) @@ -14,7 +14,7 @@ GEM coffee-script-source (1.11.1) colorator (1.1.0) commonmarker (0.23.8) - concurrent-ruby (1.2.0) + concurrent-ruby (1.2.2) dnsruby (1.61.9) simpleidn (~> 0.1) em-websocket (0.5.3) @@ -209,7 +209,7 @@ GEM jekyll (>= 3.5, < 5.0) jekyll-feed (~> 0.9) jekyll-seo-tag (~> 2.1) - minitest (5.17.0) + minitest (5.18.0) nokogiri (1.14.2-arm64-darwin) racc (~> 1.4) nokogiri (1.14.2-x86_64-darwin) From 9e4bcfdcc2d83dda48d560f78c7dbc66a4e3e609 Mon Sep 17 00:00:00 2001 From: natdeanlewissoftwire <94526761+natdeanlewissoftwire@users.noreply.github.com> Date: Thu, 16 Mar 2023 10:29:08 +0000 Subject: [PATCH 33/51] CLDC-2034 Skip fixed term tenancy length question when teancy type is other (#1403) * feat: skip fixed term tenancy length question when tenancy is other * CLDC-2006 Add 23/24 collection year LAs (#1392) * Update LAs for 23/24 sales questions * Update LAs for 23/24 lettings questions * Update LAs for 23/24 location * Remove redundant assignments * Update question files to use the local authorities from db * Update locations to use local authorities from db * Rebase changes * Replace hardcoded date * Add PaperTrail to OrganisationRelationship (#1406) * CLDC-1838 update copy for both offered questions (#1401) * ensure copy is changed for both questions relating to how many times a property has been offered extract to en.yml so that both questions keep identical copy in the future * minor typo caught in code review * copy change for LA (#1407) * CLDC-1997 Infer new LAs for post 2023 logs (#1398) * Infer new LAs after year 2023 * Test * Run CSV export before XML export to CDS (#1393) - The XML export mutates the `LogsExport` table which determines the period in which logs are exported. - The CSV export does not change this table, so if the CSV gets ran at the same time as the XML log it could skip records. * CLDC-1998 Correctly infer 22/23 las if a NEW one is returned by postcodes.io (#1397) * feat: correctly infer las for 22/23 logs * feat: copy changes to sales log * feat: don't reset las when clash with postcode to make tests pass * feat: align with similar PR for 23/24 * feat: tidying and add test * refactor: lint * refactor: use unless * CLDC-1919 Add 23/24 rent ranges (#1405) * feat: add 23/24 rent ranges csv * fix: use new 2023/24 rent ranges after duplicates removed * test: update seeds test to use new rent ranges count * fix: resave 2023 CSV as not UTF-8 (#1411) * CLDC-1820 Update reason for leaving domestic abuse answer options (non-renewal only) (#1391) * feat: change domestic abuse answer opts * test: add test for reason question * CLDC-1808 add previous tenure question for buyer two (#1354) * create and run migration for new columns related to buyer two previous tenure * a little refactoring for readability * create new pages, questions, associated tests and a couple of boolean methods on sales log for depends_on readability * add new pages to subsection and amend tests to reflect this change * make new pages only visible for new collection year, rename filesamend tests * some copy changes and alterations of readability after code review * CLDC-1816 add hint text to tenancy type options (#1341) * add hint text to several options on tenancy type, rename question class and a few others to make them pascal case and write test files for all changed questions * update some depends on for readability and write test files for page classes * change the condition to avoid conflicts with 2034 and cover that ticket in this one * also add hints to other tenancy question * add new answer options to nationality, rename question, write test file (#1339) * CLDC-2014 remove text field for buyer 1 nationality other (#1388) * remove question no longer needed and associated test file * amend page and the other question in that page that determined whether the deleted question should be shown update associated test files * createa a migration to remove the column for the deleted question * update test broken by changes * fix test broken by changes * CLDC-1886 Add sales paper form download (#1408) * Add sales paper form download * Rename download path * Add 22/23 sales log download * Update lettings log form download (#1409) * Run tests in parallel (#1412) * Run tests in parallel * Failing test * Add parallel tests to prod pipeline * Remove failing test * Add PARALLEL_TEST_PROCESSORS env var * CLDC-1925 ask for buyer 2 nationality when joint purchase (#1390) * create migration for new column * create page class and add to household characteristics * create question for buyer 2 nationality and associated test file * fix failing test after added page * rename method after code review * add question number for the new question to allow CLDC-1864 to progress with fewer conflicts/complications * fix: get real validation messages for rent range validations (#1413) * CLDC-1826 lettings log codes only download (#1268) * update seeds to add self in review env, change spec to reflect this, update config yml to allow csv exports in review * update interface of relevant methods EmailCsvJob, LettingsLog.to_csv and LettingsLogCsvService consume codes_only flag * update tests including adding a new csv file to test against * update LettingsLogCsvService to output codes only csv * correct minor error and linting * enable codes only download in UI - add link on lettings log index page - pass codes_only flag through params in relevant links and methods - convert flag to boolean in controller methods * ensure link displayed successfully for all renderings of logs_list and params passed through relevant methods in organisations controller * fix existing tests * correct linting thing * correct linting error * update tests for lettings log controller * correct linting errors * update organisations controller tests * make minor changes after code review * remove changes made for testing on review app * make codes only download visible to support users only * change variable names throughout after info on rauby/rails naming conventions, update tests for change in who can view codes only download link * rework csv service for readability, remove delegating methods from lettings log to keep all code to do with mapping between our domain and desired export format in one place * update test name * correct a small typo and remove a duplicated method after clever git merge conflict suggestion * point review app at staging csv bucket for csv download * change variables named codes_only_export to codes_only to avoid inconsistency * write tests to ensure that differetn user roles have the correct permissions around csv download * ensure that non support users may not download codes only exports * correct a small error in a previous commit * correct minor linting error * Make tests less dependant (#1415) * Seed the test db before tests and reset forms after tests * Update rails * Remove redundant FormHandler reinitialise --------- Co-authored-by: kosiakkatrina <54268893+kosiakkatrina@users.noreply.github.com> Co-authored-by: James Rose Co-authored-by: Arthur Campbell <51094020+arfacamble@users.noreply.github.com> Co-authored-by: Phil Lee Co-authored-by: SamSeed-Softwire <63662292+SamSeed-Softwire@users.noreply.github.com> --- config/forms/2022_2023.json | 3 --- 1 file changed, 3 deletions(-) diff --git a/config/forms/2022_2023.json b/config/forms/2022_2023.json index e0ef19198..eeed6c3c7 100644 --- a/config/forms/2022_2023.json +++ b/config/forms/2022_2023.json @@ -1110,9 +1110,6 @@ }, { "tenancy": 6 - }, - { - "tenancy": 3 } ] }, From 98cc162dda4e85ff4046eab160c4c739b9ccddeb Mon Sep 17 00:00:00 2001 From: Phil Lee Date: Thu, 16 Mar 2023 14:06:01 +0000 Subject: [PATCH 34/51] bulk upload checks column count of CSV (#1423) --- app/mailers/bulk_upload_mailer.rb | 3 ++- app/services/bulk_upload/lettings/validator.rb | 11 ++++++++++- .../bulk_upload/lettings/year2022/csv_parser.rb | 1 + .../bulk_upload/lettings/year2023/csv_parser.rb | 1 + app/services/bulk_upload/processor.rb | 6 +++--- config/locales/en.yml | 5 +++++ spec/mailers/bulk_upload_mailer_spec.rb | 3 ++- spec/services/bulk_upload/lettings/validator_spec.rb | 12 ++++++++++++ spec/services/bulk_upload/processor_spec.rb | 1 + 9 files changed, 37 insertions(+), 6 deletions(-) diff --git a/app/mailers/bulk_upload_mailer.rb b/app/mailers/bulk_upload_mailer.rb index 3d5fca769..ebc9df7a6 100644 --- a/app/mailers/bulk_upload_mailer.rb +++ b/app/mailers/bulk_upload_mailer.rb @@ -100,7 +100,7 @@ class BulkUploadMailer < NotifyMailer ) end - def send_bulk_upload_failed_service_error_mail(bulk_upload:) + def send_bulk_upload_failed_service_error_mail(bulk_upload:, errors: []) bulk_upload_link = if bulk_upload.lettings? start_bulk_upload_lettings_logs_url else @@ -115,6 +115,7 @@ class BulkUploadMailer < NotifyMailer upload_timestamp: bulk_upload.created_at, lettings_or_sales: bulk_upload.log_type, year_combo: bulk_upload.year_combo, + errors: errors.map { |e| "- #{e}" }.join("\n"), bulk_upload_link:, }, ) diff --git a/app/services/bulk_upload/lettings/validator.rb b/app/services/bulk_upload/lettings/validator.rb index ea5015e56..fe2768427 100644 --- a/app/services/bulk_upload/lettings/validator.rb +++ b/app/services/bulk_upload/lettings/validator.rb @@ -9,6 +9,7 @@ class BulkUpload::Lettings::Validator attr_reader :bulk_upload, :path validate :validate_file_not_empty + validate :validate_min_columns validate :validate_max_columns def initialize(bulk_upload:, path:) @@ -127,12 +128,20 @@ private end end + def validate_min_columns + return if halt_validations? + + column_count = rows.map(&:size).min + + errors.add(:base, :under_min_column_count) if column_count < csv_parser.class::MIN_COLUMNS + end + def validate_max_columns return if halt_validations? column_count = rows.map(&:size).max - errors.add(:file, :column_count) if column_count > csv_parser.class::MAX_COLUMNS + errors.add(:base, :over_max_column_count) if column_count > csv_parser.class::MAX_COLUMNS end def halt_validations! diff --git a/app/services/bulk_upload/lettings/year2022/csv_parser.rb b/app/services/bulk_upload/lettings/year2022/csv_parser.rb index 81977c3cb..c0d8d8900 100644 --- a/app/services/bulk_upload/lettings/year2022/csv_parser.rb +++ b/app/services/bulk_upload/lettings/year2022/csv_parser.rb @@ -1,6 +1,7 @@ require "csv" class BulkUpload::Lettings::Year2022::CsvParser + MIN_COLUMNS = 134 MAX_COLUMNS = 136 attr_reader :path diff --git a/app/services/bulk_upload/lettings/year2023/csv_parser.rb b/app/services/bulk_upload/lettings/year2023/csv_parser.rb index 550ef1825..6f661922c 100644 --- a/app/services/bulk_upload/lettings/year2023/csv_parser.rb +++ b/app/services/bulk_upload/lettings/year2023/csv_parser.rb @@ -1,6 +1,7 @@ require "csv" class BulkUpload::Lettings::Year2023::CsvParser + MIN_COLUMNS = 141 MAX_COLUMNS = 143 attr_reader :path diff --git a/app/services/bulk_upload/processor.rb b/app/services/bulk_upload/processor.rb index ab4fe50a7..2d27464f0 100644 --- a/app/services/bulk_upload/processor.rb +++ b/app/services/bulk_upload/processor.rb @@ -8,7 +8,7 @@ class BulkUpload::Processor def call download - return send_failure_mail if validator.invalid? + return send_failure_mail(errors: validator.errors.full_messages) if validator.invalid? validator.call @@ -62,9 +62,9 @@ private validator.create_logs? && bulk_upload.logs.group(:status).count.keys == %w[completed] end - def send_failure_mail + def send_failure_mail(errors: []) BulkUploadMailer - .send_bulk_upload_failed_service_error_mail(bulk_upload:) + .send_bulk_upload_failed_service_error_mail(bulk_upload:, errors:) .deliver_later end diff --git a/config/locales/en.yml b/config/locales/en.yml index 9c8324d34..d21bb5b5c 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -41,6 +41,11 @@ en: activemodel: errors: models: + bulk_upload/lettings/validator: + attributes: + base: + over_max_column_count: "too many columns, please ensure you have used the correct template" + under_min_column_count: "too few columns, please ensure you have used the correct template" forms/bulk_upload_lettings/year: attributes: year: diff --git a/spec/mailers/bulk_upload_mailer_spec.rb b/spec/mailers/bulk_upload_mailer_spec.rb index 0e38617a3..323b49b8f 100644 --- a/spec/mailers/bulk_upload_mailer_spec.rb +++ b/spec/mailers/bulk_upload_mailer_spec.rb @@ -72,11 +72,12 @@ RSpec.describe BulkUploadMailer do upload_timestamp: bulk_upload.created_at, lettings_or_sales: bulk_upload.log_type, year_combo: bulk_upload.year_combo, + errors: "- foo\n- bar", bulk_upload_link: start_bulk_upload_lettings_logs_url, }, ) - mailer.send_bulk_upload_failed_service_error_mail(bulk_upload:) + mailer.send_bulk_upload_failed_service_error_mail(bulk_upload:, errors: %w[foo bar]) end end diff --git a/spec/services/bulk_upload/lettings/validator_spec.rb b/spec/services/bulk_upload/lettings/validator_spec.rb index dda7722c6..59c64a796 100644 --- a/spec/services/bulk_upload/lettings/validator_spec.rb +++ b/spec/services/bulk_upload/lettings/validator_spec.rb @@ -28,6 +28,18 @@ RSpec.describe BulkUpload::Lettings::Validator do end end + context "when file has too few columns" do + before do + file.write("a," * 132) + file.write("\n") + file.rewind + end + + it "is not valid" do + expect(validator).not_to be_valid + end + end + context "when incorrect headers" end diff --git a/spec/services/bulk_upload/processor_spec.rb b/spec/services/bulk_upload/processor_spec.rb index 8aaef8c36..2254e1b75 100644 --- a/spec/services/bulk_upload/processor_spec.rb +++ b/spec/services/bulk_upload/processor_spec.rb @@ -21,6 +21,7 @@ RSpec.describe BulkUpload::Processor do BulkUpload::Lettings::Validator, invalid?: true, call: nil, + errors: [], ) end From 406215037f5aa62af3e88047344452693832e384 Mon Sep 17 00:00:00 2001 From: Phil Lee Date: Thu, 16 Mar 2023 14:06:20 +0000 Subject: [PATCH 35/51] bulk upload errors not referencing correct cells (#1424) - this is to handle different years where data is located in different columns --- .../bulk_upload/lettings/validator.rb | 10 +++-- .../lettings/year2022/row_parser.rb | 8 ++++ .../lettings/year2023/row_parser.rb | 8 ++++ .../bulk_upload/lettings/validator_spec.rb | 40 +++++++++++++++++++ 4 files changed, 62 insertions(+), 4 deletions(-) diff --git a/app/services/bulk_upload/lettings/validator.rb b/app/services/bulk_upload/lettings/validator.rb index fe2768427..e60435f75 100644 --- a/app/services/bulk_upload/lettings/validator.rb +++ b/app/services/bulk_upload/lettings/validator.rb @@ -24,14 +24,16 @@ class BulkUpload::Lettings::Validator row = index + row_offset + 1 row_parser.errors.each do |error| + col = csv_parser.column_for_field(error.attribute.to_s) + bulk_upload.bulk_upload_errors.create!( field: error.attribute, error: error.message, - tenant_code: row_parser.field_7, - property_ref: row_parser.field_100, + tenant_code: row_parser.tenant_code, + property_ref: row_parser.property_ref, row:, - cell: "#{cols[field_number_for_attribute(error.attribute) - col_offset + 1]}#{row}", - col: csv_parser.column_for_field(error.attribute.to_s), + cell: "#{col}#{row}", + col:, category: error.options[:category], ) end diff --git a/app/services/bulk_upload/lettings/year2022/row_parser.rb b/app/services/bulk_upload/lettings/year2022/row_parser.rb index 69b7d9b4e..560ed82b5 100644 --- a/app/services/bulk_upload/lettings/year2022/row_parser.rb +++ b/app/services/bulk_upload/lettings/year2022/row_parser.rb @@ -372,6 +372,14 @@ class BulkUpload::Lettings::Year2022::RowParser block_log_creation end + def tenant_code + field_7 + end + + def property_ref + field_100 + end + private def validate_location_related diff --git a/app/services/bulk_upload/lettings/year2023/row_parser.rb b/app/services/bulk_upload/lettings/year2023/row_parser.rb index be20f6515..724b1c2ef 100644 --- a/app/services/bulk_upload/lettings/year2023/row_parser.rb +++ b/app/services/bulk_upload/lettings/year2023/row_parser.rb @@ -375,6 +375,14 @@ class BulkUpload::Lettings::Year2023::RowParser block_log_creation end + def tenant_code + field_13 + end + + def property_ref + field_14 + end + private def validate_needs_type_present diff --git a/spec/services/bulk_upload/lettings/validator_spec.rb b/spec/services/bulk_upload/lettings/validator_spec.rb index 59c64a796..f7048fa27 100644 --- a/spec/services/bulk_upload/lettings/validator_spec.rb +++ b/spec/services/bulk_upload/lettings/validator_spec.rb @@ -71,6 +71,46 @@ RSpec.describe BulkUpload::Lettings::Validator do end end + context "with arbitrary ordered 23/24 csv" do + let(:bulk_upload) { create(:bulk_upload, user:, year: 2023) } + let(:log) { build(:lettings_log, :completed) } + let(:file) { Tempfile.new } + let(:path) { file.path } + let(:seed) { 321 } + + around do |example| + FormHandler.instance.use_real_forms! + + example.run + + FormHandler.instance.use_fake_forms! + end + + before do + file.write(BulkUpload::LogToCsv.new(log:, line_ending: "\r\n").default_2023_field_numbers_row(seed:)) + file.write(BulkUpload::LogToCsv.new(log:, line_ending: "\r\n").to_2023_csv_row(seed:)) + file.close + end + + it "creates validation errors" do + expect { validator.call }.to change(BulkUploadError, :count) + end + + it "create validation error with correct values" do + validator.call + + error = BulkUploadError.find_by(field: "field_5") + + expect(error.field).to eql("field_5") + expect(error.error).to eql("You must answer letting type") + expect(error.tenant_code).to eql(log.tenancycode) + expect(error.property_ref).to eql(log.propcode) + expect(error.row).to eql("2") + expect(error.cell).to eql("DD2") + expect(error.col).to eql("DD") + end + end + context "with unix line endings" do let(:fixture_path) { file_fixture("2022_23_lettings_bulk_upload.csv") } let(:file) { Tempfile.new } From d695c2fc64d6ba68f8bf81f6edcefb555bbc9fc4 Mon Sep 17 00:00:00 2001 From: SamSeed-Softwire <63662292+SamSeed-Softwire@users.noreply.github.com> Date: Thu, 16 Mar 2023 15:17:20 +0000 Subject: [PATCH 36/51] CLDC-2026 Add minimum staircasing validation for shared ownership sales (#1404) * feat: add validation that staircase % is >= threshold * refactor: dry out validation * refactor: correctly order shared ownership types in array * test: add tests for stairbought threshold validation * chore: lint * feat: all staircasing transactions must have stairbought >= 1% * feat: add validation to shared ownership type as well * chore: lint * refactor: simplify no errors tests * refactor: simplify tests by using iteration --- .../sales/financial_validations.rb | 15 +++++++ config/locales/en.yml | 3 ++ .../sales/financial_validations_spec.rb | 42 +++++++++++++++++++ 3 files changed, 60 insertions(+) diff --git a/app/models/validations/sales/financial_validations.rb b/app/models/validations/sales/financial_validations.rb index 21f3743ca..255f12bf2 100644 --- a/app/models/validations/sales/financial_validations.rb +++ b/app/models/validations/sales/financial_validations.rb @@ -52,6 +52,21 @@ module Validations::Sales::FinancialValidations end end + def validate_percentage_bought_at_least_threshold(record) + return unless record.stairbought && record.type + + threshold = if [2, 16, 18, 24].include? record.type + 10 + else + 1 + end + + if threshold && record.stairbought < threshold + record.errors.add :stairbought, I18n.t("validations.financial.staircasing.percentage_bought_must_be_at_least_threshold", threshold:) + record.errors.add :type, I18n.t("validations.setup.type.percentage_bought_must_be_at_least_threshold", threshold:) + end + end + def validate_child_income(record) return unless record.income2 && record.ecstat2 diff --git a/config/locales/en.yml b/config/locales/en.yml index d21bb5b5c..e17c0ab9b 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -159,6 +159,8 @@ en: Enter a date within the %{current_start_year_short}/%{current_end_year_short} financial year, which is between %{current_start_year_long} and %{current_end_year_long} previous_and_current_financial_year: "Enter a date within the %{previous_start_year_short}/%{previous_end_year_short} or %{previous_end_year_short}/%{current_end_year_short} financial years, which is between %{previous_start_year_long} and %{current_end_year_long}" + type: + percentage_bought_must_be_at_least_threshold: "The minimum increase in equity while staircasing is %{threshold}% for this shared ownership type" startdate: later_than_14_days_after: "The tenancy start date must not be later than 14 days from today’s date" @@ -302,6 +304,7 @@ en: staircasing: percentage_bought_must_be_greater_than_percentage_owned: "Total percentage buyer now owns must be more than percentage bought in this transaction" older_person_percentage_owned_maximum_75: "Percentage cannot be above 75% under Older Person's Shared Ownership" + percentage_bought_must_be_at_least_threshold: "The minimum increase in equity while staircasing is %{threshold}%" household: reasonpref: diff --git a/spec/models/validations/sales/financial_validations_spec.rb b/spec/models/validations/sales/financial_validations_spec.rb index fae0e4536..d9406aec9 100644 --- a/spec/models/validations/sales/financial_validations_spec.rb +++ b/spec/models/validations/sales/financial_validations_spec.rb @@ -160,6 +160,48 @@ RSpec.describe Validations::Sales::FinancialValidations do end end + describe "#validate_percentage_bought_at_least_threshold" do + let(:record) { FactoryBot.create(:sales_log) } + + it "adds an error to stairbought and type if the percentage bought is less than the threshold (which is 1% by default, but higher for some shared ownership types)" do + record.stairbought = 9 + [2, 16, 18, 24].each do |type| + record.type = type + financial_validator.validate_percentage_bought_at_least_threshold(record) + expect(record.errors["stairbought"]).to eq(["The minimum increase in equity while staircasing is 10%"]) + expect(record.errors["type"]).to eq(["The minimum increase in equity while staircasing is 10% for this shared ownership type"]) + record.errors.clear + end + + record.stairbought = 0 + [28, 30, 31, 32].each do |type| + record.type = type + financial_validator.validate_percentage_bought_at_least_threshold(record) + expect(record.errors["stairbought"]).to eq(["The minimum increase in equity while staircasing is 1%"]) + expect(record.errors["type"]).to eq(["The minimum increase in equity while staircasing is 1% for this shared ownership type"]) + record.errors.clear + end + end + + it "doesn't add an error to stairbought and type if the percentage bought is less than the threshold (which is 1% by default, but higher for some shared ownership types)" do + record.stairbought = 10 + [2, 16, 18, 24].each do |type| + record.type = type + financial_validator.validate_percentage_bought_at_least_threshold(record) + expect(record.errors).to be_empty + record.errors.clear + end + + record.stairbought = 1 + [28, 30, 31, 32].each do |type| + record.type = type + financial_validator.validate_percentage_bought_at_least_threshold(record) + expect(record.errors).to be_empty + record.errors.clear + end + end + end + describe "#validate_percentage_owned_not_too_much_if_older_person" do let(:record) { FactoryBot.create(:sales_log) } From c862423adfef26674469683de27523df05fe779c Mon Sep 17 00:00:00 2001 From: natdeanlewissoftwire <94526761+natdeanlewissoftwire@users.noreply.github.com> Date: Thu, 16 Mar 2023 18:01:03 +0000 Subject: [PATCH 37/51] CLDC-1864 single log numbering (#1381) * feat: add initial question number behaviour * feat: add initial CYA behaviour * feat: number sales setup section * refactor: lint * feat: property information numbering * feat: household characteristics section and typo fix * feat: household characteristics numbering * feat: household situation numbering * feat: other household info numbering * feat: income, benefits and outgoings numbering * feat: shared ownership scheme numbering * feat: shared, discount and outright numbering * feat: fix income duplication bug, add numbers to other questions * feat: typo fix * feat: add lettings setup numbering * feat: add property info numbering * feat: add household char numbering * feat: add household needs numbering * feat: add household situ numbering * feat: add income numbering * feat: update tests * refactor: cleanup and disable on 2022 and before logs * feat: add test for q numbers in 23/24 year only * refactor: highlight multiplication in brackets * feat: show rent and charge questions individually on cya * feat: number new previous tenure q * feat: delete old prevten file * feat: update card numbers after merge * feat: add q60 ands 61 sales * refactor: delete empty files --------- Co-authored-by: Kat --- ...swers_summary_list_card_component.html.erb | 2 +- ...eck_answers_summary_list_card_component.rb | 4 + app/helpers/check_answers_helper.rb | 4 + app/helpers/question_view_helper.rb | 2 +- app/models/form/lettings/questions/age.rb | 1 + app/models/form/lettings/questions/age1.rb | 1 + .../form/lettings/questions/age1_known.rb | 1 + .../form/lettings/questions/age_known.rb | 1 + .../form/lettings/questions/armedforces.rb | 1 + app/models/form/lettings/questions/beds.rb | 1 + .../form/lettings/questions/benefits.rb | 1 + .../form/lettings/questions/brent_4_weekly.rb | 2 +- .../lettings/questions/brent_bi_weekly.rb | 2 +- .../form/lettings/questions/brent_monthly.rb | 2 +- .../form/lettings/questions/brent_weekly.rb | 2 +- .../form/lettings/questions/builtype.rb | 1 + .../lettings/questions/chcharge_4_weekly.rb | 1 + .../lettings/questions/chcharge_bi_weekly.rb | 1 + .../lettings/questions/chcharge_monthly.rb | 1 + .../lettings/questions/chcharge_weekly.rb | 1 + .../lettings/questions/condition_effects.rb | 1 + .../form/lettings/questions/declaration.rb | 3 +- .../form/lettings/questions/earnings.rb | 1 + .../form/lettings/questions/ethnic_arab.rb | 1 + .../form/lettings/questions/ethnic_asian.rb | 1 + .../form/lettings/questions/ethnic_black.rb | 1 + .../form/lettings/questions/ethnic_group.rb | 1 + .../form/lettings/questions/ethnic_mixed.rb | 1 + .../form/lettings/questions/ethnic_white.rb | 1 + ...rst_time_property_let_as_social_housing.rb | 1 + .../lettings/questions/gender_identity1.rb | 1 + app/models/form/lettings/questions/hb.rb | 1 + .../lettings/questions/hbrentshortfall.rb | 1 + app/models/form/lettings/questions/hhmemb.rb | 1 + .../form/lettings/questions/homeless.rb | 1 + .../lettings/questions/household_charge.rb | 1 + .../form/lettings/questions/housingneeds.rb | 1 + .../lettings/questions/housingneeds_other.rb | 1 + .../lettings/questions/housingneeds_type.rb | 1 + app/models/form/lettings/questions/illness.rb | 1 + app/models/form/lettings/questions/incfreq.rb | 1 + .../lettings/questions/irproduct_other.rb | 1 + .../form/lettings/questions/is_carehome.rb | 1 + app/models/form/lettings/questions/joint.rb | 1 + app/models/form/lettings/questions/la.rb | 1 + app/models/form/lettings/questions/layear.rb | 1 + app/models/form/lettings/questions/leftreg.rb | 1 + .../lettings/questions/letting_allocation.rb | 1 + .../form/lettings/questions/location_id.rb | 1 + .../form/lettings/questions/majorrepairs.rb | 1 + .../questions/managing_organisation.rb | 1 + app/models/form/lettings/questions/mrcdate.rb | 1 + .../form/lettings/questions/nationality.rb | 1 + .../form/lettings/questions/needs_type.rb | 1 + .../lettings/questions/net_income_known.rb | 1 + app/models/form/lettings/questions/offered.rb | 1 + .../lettings/questions/offered_social_let.rb | 1 + app/models/form/lettings/questions/period.rb | 1 + .../questions/person_gender_identity.rb | 1 + .../lettings/questions/person_relationship.rb | 1 + .../questions/person_working_situation.rb | 1 + .../form/lettings/questions/ppcodenk.rb | 1 + .../form/lettings/questions/ppostcode_full.rb | 1 + .../form/lettings/questions/preg_occ.rb | 1 + .../lettings/questions/previous_la_known.rb | 1 + .../lettings/questions/previous_let_type.rb | 1 + .../lettings/questions/previous_tenure.rb | 1 + .../questions/previous_tenure_renewal.rb | 1 + app/models/form/lettings/questions/prevloc.rb | 1 + .../lettings/questions/property_reference.rb | 1 + .../lettings/questions/pscharge_4_weekly.rb | 2 +- .../lettings/questions/pscharge_bi_weekly.rb | 2 +- .../lettings/questions/pscharge_monthly.rb | 2 +- .../lettings/questions/pscharge_weekly.rb | 2 +- app/models/form/lettings/questions/reason.rb | 1 + .../form/lettings/questions/reason_renewal.rb | 1 + .../questions/reasonable_preference_reason.rb | 1 + .../form/lettings/questions/reasonother.rb | 1 + .../form/lettings/questions/reasonpref.rb | 1 + .../form/lettings/questions/referral.rb | 1 + .../form/lettings/questions/referral_prp.rb | 1 + .../questions/referral_supported_housing.rb | 1 + .../referral_supported_housing_prp.rb | 1 + app/models/form/lettings/questions/renewal.rb | 1 + .../form/lettings/questions/rent_type.rb | 1 + .../form/lettings/questions/reservist.rb | 1 + app/models/form/lettings/questions/rsnvac.rb | 1 + .../lettings/questions/rsnvac_first_let.rb | 1 + .../lettings/questions/scharge_4_weekly.rb | 2 +- .../lettings/questions/scharge_bi_weekly.rb | 2 +- .../lettings/questions/scharge_monthly.rb | 2 +- .../form/lettings/questions/scharge_weekly.rb | 2 +- .../form/lettings/questions/scheme_id.rb | 1 + .../form/lettings/questions/sheltered.rb | 1 + .../questions/starter_tenancy_type.rb | 1 + .../form/lettings/questions/startertenancy.rb | 1 + .../form/lettings/questions/stock_owner.rb | 1 + .../lettings/questions/supcharg_4_weekly.rb | 2 +- .../lettings/questions/supcharg_bi_weekly.rb | 2 +- .../lettings/questions/supcharg_monthly.rb | 2 +- .../lettings/questions/supcharg_weekly.rb | 2 +- .../lettings/questions/tcharge_4_weekly.rb | 1 + .../lettings/questions/tcharge_bi_weekly.rb | 1 + .../lettings/questions/tcharge_monthly.rb | 1 + .../form/lettings/questions/tcharge_weekly.rb | 1 + .../form/lettings/questions/tenancy_length.rb | 1 + .../form/lettings/questions/tenancy_other.rb | 1 + .../lettings/questions/tenancy_start_date.rb | 1 + .../form/lettings/questions/tenancy_type.rb | 1 + .../form/lettings/questions/tenant_code.rb | 1 + .../form/lettings/questions/tshortfall.rb | 1 + .../lettings/questions/tshortfall_known.rb | 1 + .../form/lettings/questions/unittype_gn.rb | 1 + .../form/lettings/questions/voiddate.rb | 1 + .../lettings/questions/voiddate_new_build.rb | 1 + .../form/lettings/questions/waityear.rb | 1 + .../form/lettings/questions/wheelchair.rb | 1 + .../lettings/questions/working_situation1.rb | 1 + app/models/form/question.rb | 9 ++- .../pages/about_deposit_with_discount.rb | 2 +- .../pages/about_deposit_without_discount.rb | 7 +- .../form/sales/pages/about_price_not_rtb.rb | 2 +- .../form/sales/pages/about_price_rtb.rb | 2 +- .../form/sales/pages/extra_borrowing.rb | 7 +- .../form/sales/pages/leasehold_charges.rb | 9 ++- .../sales/pages/living_before_purchase.rb | 9 ++- .../form/sales/pages/mortgage_amount.rb | 7 +- .../form/sales/pages/mortgage_lender.rb | 7 +- .../form/sales/pages/mortgage_lender_other.rb | 7 +- .../form/sales/pages/mortgage_length.rb | 7 +- app/models/form/sales/pages/mortgageused.rb | 7 +- .../purchase_price_outright_ownership.rb | 7 +- app/models/form/sales/questions/age1.rb | 1 + app/models/form/sales/questions/age2.rb | 1 + .../form/sales/questions/armed_forces.rb | 1 + .../sales/questions/armed_forces_spouse.rb | 1 + .../form/sales/questions/buyer1_age_known.rb | 1 + .../buyer1_ethnic_background_arab.rb | 3 +- .../buyer1_ethnic_background_asian.rb | 3 +- .../buyer1_ethnic_background_black.rb | 3 +- .../buyer1_ethnic_background_mixed.rb | 3 +- .../buyer1_ethnic_background_white.rb | 3 +- .../sales/questions/buyer1_ethnic_group.rb | 1 + .../form/sales/questions/buyer1_income.rb | 1 + .../sales/questions/buyer1_income_known.rb | 10 ++- .../questions/buyer1_live_in_property.rb | 1 + .../form/sales/questions/buyer1_mortgage.rb | 1 + .../sales/questions/buyer1_previous_tenure.rb | 1 + .../questions/buyer1_working_situation.rb | 1 + .../form/sales/questions/buyer2_age_known.rb | 1 + .../buyer2_ethnic_background_arab.rb | 3 +- .../buyer2_ethnic_background_asian.rb | 3 +- .../buyer2_ethnic_background_black.rb | 3 +- .../buyer2_ethnic_background_mixed.rb | 3 +- .../buyer2_ethnic_background_white.rb | 3 +- .../sales/questions/buyer2_ethnic_group.rb | 1 + .../form/sales/questions/buyer2_income.rb | 1 + .../sales/questions/buyer2_income_known.rb | 10 ++- .../questions/buyer2_live_in_property.rb | 1 + .../form/sales/questions/buyer2_living_in.rb | 1 + .../form/sales/questions/buyer2_mortgage.rb | 1 + .../buyer2_relationship_to_buyer1.rb | 1 + .../questions/buyer2_working_situation.rb | 1 + .../form/sales/questions/buyer_company.rb | 1 + .../form/sales/questions/buyer_interview.rb | 1 + app/models/form/sales/questions/buyer_live.rb | 1 + .../form/sales/questions/buyer_previous.rb | 1 + .../sales/questions/buyer_still_serving.rb | 1 + .../sales/questions/buyers_organisations.rb | 1 + .../form/sales/questions/deposit_amount.rb | 17 +++- .../form/sales/questions/deposit_discount.rb | 1 + app/models/form/sales/questions/discount.rb | 1 + .../questions/discounted_ownership_type.rb | 1 + app/models/form/sales/questions/equity.rb | 1 + .../form/sales/questions/exchange_date.rb | 1 + .../form/sales/questions/extra_borrowing.rb | 17 +++- app/models/form/sales/questions/fromprop.rb | 1 + .../form/sales/questions/gender_identity1.rb | 1 + .../form/sales/questions/gender_identity2.rb | 1 + app/models/form/sales/questions/grant.rb | 3 +- .../form/sales/questions/handover_date.rb | 1 + .../sales/questions/household_disability.rb | 1 + .../sales/questions/household_wheelchair.rb | 1 + .../form/sales/questions/housing_benefits.rb | 1 + .../form/sales/questions/joint_purchase.rb | 1 + .../form/sales/questions/la_nominations.rb | 1 + .../form/sales/questions/leasehold_charges.rb | 17 +++- .../questions/leasehold_charges_known.rb | 17 +++- .../sales/questions/living_before_purchase.rb | 15 +++- .../questions/living_before_purchase_years.rb | 15 +++- .../form/sales/questions/monthly_rent.rb | 1 + .../form/sales/questions/mortgage_amount.rb | 17 +++- .../form/sales/questions/mortgage_lender.rb | 17 +++- .../sales/questions/mortgage_lender_other.rb | 17 +++- .../form/sales/questions/mortgage_length.rb | 17 +++- .../form/sales/questions/mortgageused.rb | 17 +++- .../form/sales/questions/nationality1.rb | 1 + .../sales/questions/number_joint_buyers.rb | 1 + .../questions/number_of_others_in_property.rb | 1 + .../sales/questions/other_ownership_type.rb | 1 + .../questions/outright_ownership_type.rb | 1 + .../form/sales/questions/ownership_scheme.rb | 1 + app/models/form/sales/questions/person_age.rb | 1 + .../form/sales/questions/person_age_known.rb | 1 + .../sales/questions/person_gender_identity.rb | 1 + .../person_relationship_to_buyer_1.rb | 1 + .../questions/person_working_situation.rb | 1 + .../form/sales/questions/previous_bedrooms.rb | 1 + .../form/sales/questions/previous_la_known.rb | 1 + .../form/sales/questions/previous_postcode.rb | 1 + .../questions/previous_postcode_known.rb | 1 + .../form/sales/questions/previous_tenure.rb | 1 + .../sales/questions/previous_tenure_buyer2.rb | 1 + app/models/form/sales/questions/prevloc.rb | 1 + app/models/form/sales/questions/prevown.rb | 1 + app/models/form/sales/questions/prevshared.rb | 1 + .../form/sales/questions/privacy_notice.rb | 1 + .../sales/questions/property_building_type.rb | 1 + .../questions/property_local_authority.rb | 1 + .../property_local_authority_known.rb | 1 + .../questions/property_number_of_bedrooms.rb | 1 + .../sales/questions/property_unit_type.rb | 1 + .../property_wheelchair_accessible.rb | 1 + .../form/sales/questions/purchase_price.rb | 15 +++- .../purchase_price_outright_ownership.rb | 12 --- .../form/sales/questions/purchaser_code.rb | 1 + app/models/form/sales/questions/resale.rb | 1 + app/models/form/sales/questions/sale_date.rb | 1 + app/models/form/sales/questions/savings.rb | 1 + app/models/form/sales/questions/savings_nk.rb | 1 + .../sales/questions/shared_ownership_type.rb | 1 + app/models/form/sales/questions/staircase.rb | 1 + .../form/sales/questions/staircase_bought.rb | 1 + .../form/sales/questions/staircase_owned.rb | 1 + .../form/sales/questions/staircase_sale.rb | 1 + app/models/form/sales/questions/value.rb | 1 + .../discounted_ownership_scheme.rb | 20 ++--- .../form/sales/subsections/outright_sale.rb | 18 ++--- .../subsections/shared_ownership_scheme.rb | 18 ++--- .../form/_check_answers_summary_list.html.erb | 2 +- ...nswers_summary_list_card_component_spec.rb | 77 ++++++++++++------- spec/helpers/question_view_helper_spec.rb | 10 ++- .../about_deposit_without_discount_spec.rb | 2 +- .../form/sales/pages/extra_borrowing_spec.rb | 2 +- .../sales/pages/leasehold_charges_spec.rb | 2 +- .../pages/living_before_purchase_spec.rb | 2 +- .../form/sales/pages/mortgage_amount_spec.rb | 2 +- .../sales/pages/mortgage_lender_other_spec.rb | 2 +- .../form/sales/pages/mortgage_lender_spec.rb | 2 +- .../form/sales/pages/mortgage_length_spec.rb | 2 +- .../form/sales/pages/mortgageused_spec.rb | 2 +- .../purchase_price_outright_ownership_spec.rb | 2 +- .../buyer1_ethnic_background_arab_spec.rb | 2 +- .../buyer1_ethnic_background_asian_spec.rb | 2 +- .../buyer1_ethnic_background_black_spec.rb | 2 +- .../buyer1_ethnic_background_mixed_spec.rb | 2 +- .../buyer1_ethnic_background_white_spec.rb | 2 +- .../questions/buyer1_income_known_spec.rb | 2 +- .../buyer2_ethnic_background_arab_spec.rb | 2 +- .../buyer2_ethnic_background_asian_spec.rb | 2 +- .../buyer2_ethnic_background_black_spec.rb | 2 +- .../buyer2_ethnic_background_mixed_spec.rb | 2 +- .../buyer2_ethnic_background_white_spec.rb | 2 +- .../questions/buyer2_income_known_spec.rb | 2 +- .../sales/questions/deposit_amount_spec.rb | 2 +- .../sales/questions/extra_borrowing_spec.rb | 2 +- .../models/form/sales/questions/grant_spec.rb | 2 +- .../questions/leasehold_charges_known_spec.rb | 2 +- .../sales/questions/leasehold_charges_spec.rb | 2 +- .../questions/living_before_purchase_spec.rb | 2 +- .../living_before_purchase_years_spec.rb | 2 +- .../sales/questions/mortgage_amount_spec.rb | 2 +- .../questions/mortgage_lender_other_spec.rb | 2 +- .../sales/questions/mortgage_lender_spec.rb | 2 +- .../sales/questions/mortgage_length_spec.rb | 2 +- .../form/sales/questions/mortgageused_spec.rb | 2 +- .../sales/questions/purchase_price_spec.rb | 2 +- .../discounted_ownership_scheme_spec.rb | 2 +- 278 files changed, 597 insertions(+), 194 deletions(-) delete mode 100644 app/models/form/sales/questions/purchase_price_outright_ownership.rb diff --git a/app/components/check_answers_summary_list_card_component.html.erb b/app/components/check_answers_summary_list_card_component.html.erb index e5b5388ab..3b4c4978a 100644 --- a/app/components/check_answers_summary_list_card_component.html.erb +++ b/app/components/check_answers_summary_list_card_component.html.erb @@ -10,7 +10,7 @@ <%= govuk_summary_list do |summary_list| %> <% applicable_questions.each do |question| %> <% summary_list.row do |row| %> - <% row.key { question.check_answer_label.to_s.presence || question.header.to_s } %> + <% row.key { get_question_label(question) } %> <% row.value do %> <%= get_answer_label(question) %> diff --git a/app/components/check_answers_summary_list_card_component.rb b/app/components/check_answers_summary_list_card_component.rb index e8ed971bc..62469e324 100644 --- a/app/components/check_answers_summary_list_card_component.rb +++ b/app/components/check_answers_summary_list_card_component.rb @@ -17,6 +17,10 @@ class CheckAnswersSummaryListCardComponent < ViewComponent::Base question.answer_label(log, user).presence || unanswered_value end + def get_question_label(question) + [question.question_number_string, question.check_answer_label.to_s.presence || question.header.to_s].compact.join(" - ") + end + def check_answers_card_title(question) return "Lead tenant" if question.form.type == "lettings" && question.check_answers_card_number == 1 return "Buyer #{question.check_answers_card_number}" if question.check_answers_card_number <= number_of_buyers diff --git a/app/helpers/check_answers_helper.rb b/app/helpers/check_answers_helper.rb index 66a833859..a29ab98d0 100644 --- a/app/helpers/check_answers_helper.rb +++ b/app/helpers/check_answers_helper.rb @@ -45,4 +45,8 @@ private def get_answer_label(question, lettings_log) question.answer_label(lettings_log, current_user).presence || "You didn’t answer this question".html_safe end + + def get_question_label(question) + [question.question_number_string, question.check_answer_label.to_s.presence || question.header.to_s].compact.join(" - ") + end end diff --git a/app/helpers/question_view_helper.rb b/app/helpers/question_view_helper.rb index fc308b835..d40b3cd35 100644 --- a/app/helpers/question_view_helper.rb +++ b/app/helpers/question_view_helper.rb @@ -7,7 +7,7 @@ module QuestionViewHelper def legend(question, page_header, conditional) { - text: question.header.html_safe, + text: [question.question_number_string(conditional:), question.header.html_safe].compact.join(" - "), size: label_size(page_header, conditional), tag: label_tag(page_header, conditional), } diff --git a/app/models/form/lettings/questions/age.rb b/app/models/form/lettings/questions/age.rb index 82975ebb7..6b76a6945 100644 --- a/app/models/form/lettings/questions/age.rb +++ b/app/models/form/lettings/questions/age.rb @@ -12,5 +12,6 @@ class Form::Lettings::Questions::Age < ::Form::Question @min = 1 @step = 1 @hint_text = "For a child under 1, enter 1" if person_type == "child" + @question_number = 31 + (4 * person_index) end end diff --git a/app/models/form/lettings/questions/age1.rb b/app/models/form/lettings/questions/age1.rb index 24512af28..2f43ac7ab 100644 --- a/app/models/form/lettings/questions/age1.rb +++ b/app/models/form/lettings/questions/age1.rb @@ -11,5 +11,6 @@ class Form::Lettings::Questions::Age1 < ::Form::Question @max = 120 @min = 16 @step = 1 + @question_number = 32 end end diff --git a/app/models/form/lettings/questions/age1_known.rb b/app/models/form/lettings/questions/age1_known.rb index d9899eb12..aaf28e68a 100644 --- a/app/models/form/lettings/questions/age1_known.rb +++ b/app/models/form/lettings/questions/age1_known.rb @@ -10,6 +10,7 @@ class Form::Lettings::Questions::Age1Known < ::Form::Question @answer_options = ANSWER_OPTIONS @conditional_for = { "age1" => [0] } @hidden_in_check_answers = { "depends_on" => [{ "age1_known" => 0 }, { "age1_known" => 1 }] } + @question_number = 32 end ANSWER_OPTIONS = { "0" => { "value" => "Yes" }, "1" => { "value" => "No" } }.freeze diff --git a/app/models/form/lettings/questions/age_known.rb b/app/models/form/lettings/questions/age_known.rb index b7682c769..9f9264e7d 100644 --- a/app/models/form/lettings/questions/age_known.rb +++ b/app/models/form/lettings/questions/age_known.rb @@ -15,6 +15,7 @@ class Form::Lettings::Questions::AgeKnown < ::Form::Question { "age#{person_index}_known" => 1 }, ], } + @question_number = 31 + (4 * person_index) end ANSWER_OPTIONS = { "0" => { "value" => "Yes" }, "1" => { "value" => "No" } }.freeze diff --git a/app/models/form/lettings/questions/armedforces.rb b/app/models/form/lettings/questions/armedforces.rb index b5e34d81d..fb9a02a64 100644 --- a/app/models/form/lettings/questions/armedforces.rb +++ b/app/models/form/lettings/questions/armedforces.rb @@ -8,6 +8,7 @@ class Form::Lettings::Questions::Armedforces < ::Form::Question @check_answers_card_number = 0 @hint_text = "This excludes national service.

If there are several people in the household with links to the UK armed forces, you should answer for the regular. If there’s no regular, answer for the reserve. If there’s no reserve, answer for the spouse or civil partner." @answer_options = ANSWER_OPTIONS + @question_number = 66 end ANSWER_OPTIONS = { diff --git a/app/models/form/lettings/questions/beds.rb b/app/models/form/lettings/questions/beds.rb index cc3ceb885..75d2a835d 100644 --- a/app/models/form/lettings/questions/beds.rb +++ b/app/models/form/lettings/questions/beds.rb @@ -11,5 +11,6 @@ class Form::Lettings::Questions::Beds < ::Form::Question @min = 0 @hint_text = "If shared accommodation, enter the number of bedrooms occupied by this household. A bedsit has 1 bedroom." @step = 1 + @question_number = 22 end end diff --git a/app/models/form/lettings/questions/benefits.rb b/app/models/form/lettings/questions/benefits.rb index 27f90053d..3d23c50a1 100644 --- a/app/models/form/lettings/questions/benefits.rb +++ b/app/models/form/lettings/questions/benefits.rb @@ -8,6 +8,7 @@ class Form::Lettings::Questions::Benefits < ::Form::Question @check_answers_card_number = 0 @hint_text = "This excludes child and housing benefit, council tax support and tax credits." @answer_options = ANSWER_OPTIONS + @question_number = 90 end ANSWER_OPTIONS = { diff --git a/app/models/form/lettings/questions/brent_4_weekly.rb b/app/models/form/lettings/questions/brent_4_weekly.rb index c7659dbd4..6649b9a60 100644 --- a/app/models/form/lettings/questions/brent_4_weekly.rb +++ b/app/models/form/lettings/questions/brent_4_weekly.rb @@ -12,8 +12,8 @@ class Form::Lettings::Questions::Brent4Weekly < ::Form::Question @step = 0.01 @fields_to_add = %w[brent scharge pscharge supcharg] @result_field = "tcharge" - @hidden_in_check_answers = true @prefix = "£" @suffix = " every 4 weeks" + @question_number = 95 end end diff --git a/app/models/form/lettings/questions/brent_bi_weekly.rb b/app/models/form/lettings/questions/brent_bi_weekly.rb index 7b1e1d04e..37f1bfa20 100644 --- a/app/models/form/lettings/questions/brent_bi_weekly.rb +++ b/app/models/form/lettings/questions/brent_bi_weekly.rb @@ -12,8 +12,8 @@ class Form::Lettings::Questions::BrentBiWeekly < ::Form::Question @step = 0.01 @fields_to_add = %w[brent scharge pscharge supcharg] @result_field = "tcharge" - @hidden_in_check_answers = true @prefix = "£" @suffix = " every 2 weeks" + @question_number = 95 end end diff --git a/app/models/form/lettings/questions/brent_monthly.rb b/app/models/form/lettings/questions/brent_monthly.rb index c58a21175..e38a490b0 100644 --- a/app/models/form/lettings/questions/brent_monthly.rb +++ b/app/models/form/lettings/questions/brent_monthly.rb @@ -12,8 +12,8 @@ class Form::Lettings::Questions::BrentMonthly < ::Form::Question @step = 0.01 @fields_to_add = %w[brent scharge pscharge supcharg] @result_field = "tcharge" - @hidden_in_check_answers = true @prefix = "£" @suffix = " every month" + @question_number = 95 end end diff --git a/app/models/form/lettings/questions/brent_weekly.rb b/app/models/form/lettings/questions/brent_weekly.rb index 0ea1f5359..7a8adfc7a 100644 --- a/app/models/form/lettings/questions/brent_weekly.rb +++ b/app/models/form/lettings/questions/brent_weekly.rb @@ -12,8 +12,8 @@ class Form::Lettings::Questions::BrentWeekly < ::Form::Question @step = 0.01 @fields_to_add = %w[brent scharge pscharge supcharg] @result_field = "tcharge" - @hidden_in_check_answers = true @prefix = "£" @suffix = " every week" + @question_number = 95 end end diff --git a/app/models/form/lettings/questions/builtype.rb b/app/models/form/lettings/questions/builtype.rb index 087699e0d..9cda5649f 100644 --- a/app/models/form/lettings/questions/builtype.rb +++ b/app/models/form/lettings/questions/builtype.rb @@ -8,6 +8,7 @@ class Form::Lettings::Questions::Builtype < ::Form::Question @check_answers_card_number = 0 @hint_text = "" @answer_options = ANSWER_OPTIONS + @question_number = 20 end ANSWER_OPTIONS = { diff --git a/app/models/form/lettings/questions/chcharge_4_weekly.rb b/app/models/form/lettings/questions/chcharge_4_weekly.rb index c755a933b..6e0923cc0 100644 --- a/app/models/form/lettings/questions/chcharge_4_weekly.rb +++ b/app/models/form/lettings/questions/chcharge_4_weekly.rb @@ -11,5 +11,6 @@ class Form::Lettings::Questions::Chcharge4Weekly < ::Form::Question @step = 0.01 @prefix = "£" @suffix = " every 4 weeks" + @question_number = 94 end end diff --git a/app/models/form/lettings/questions/chcharge_bi_weekly.rb b/app/models/form/lettings/questions/chcharge_bi_weekly.rb index e65dc59a1..273ec7ac0 100644 --- a/app/models/form/lettings/questions/chcharge_bi_weekly.rb +++ b/app/models/form/lettings/questions/chcharge_bi_weekly.rb @@ -11,5 +11,6 @@ class Form::Lettings::Questions::ChchargeBiWeekly < ::Form::Question @step = 0.01 @prefix = "£" @suffix = " every 2 weeks" + @question_number = 94 end end diff --git a/app/models/form/lettings/questions/chcharge_monthly.rb b/app/models/form/lettings/questions/chcharge_monthly.rb index f0bc7bb82..ab2da34ad 100644 --- a/app/models/form/lettings/questions/chcharge_monthly.rb +++ b/app/models/form/lettings/questions/chcharge_monthly.rb @@ -11,5 +11,6 @@ class Form::Lettings::Questions::ChchargeMonthly < ::Form::Question @step = 0.01 @prefix = "£" @suffix = " every month" + @question_number = 94 end end diff --git a/app/models/form/lettings/questions/chcharge_weekly.rb b/app/models/form/lettings/questions/chcharge_weekly.rb index 874259215..96b8de324 100644 --- a/app/models/form/lettings/questions/chcharge_weekly.rb +++ b/app/models/form/lettings/questions/chcharge_weekly.rb @@ -11,5 +11,6 @@ class Form::Lettings::Questions::ChchargeWeekly < ::Form::Question @step = 0.01 @prefix = "£" @suffix = " every week" + @question_number = 94 end end diff --git a/app/models/form/lettings/questions/condition_effects.rb b/app/models/form/lettings/questions/condition_effects.rb index f89cfb3f2..c8240f232 100644 --- a/app/models/form/lettings/questions/condition_effects.rb +++ b/app/models/form/lettings/questions/condition_effects.rb @@ -8,6 +8,7 @@ class Form::Lettings::Questions::ConditionEffects < ::Form::Question @check_answers_card_number = 0 @hint_text = "Select all that apply." @answer_options = ANSWER_OPTIONS + @question_number = 74 end ANSWER_OPTIONS = { diff --git a/app/models/form/lettings/questions/declaration.rb b/app/models/form/lettings/questions/declaration.rb index a342fba6d..742545b96 100644 --- a/app/models/form/lettings/questions/declaration.rb +++ b/app/models/form/lettings/questions/declaration.rb @@ -3,11 +3,12 @@ class Form::Lettings::Questions::Declaration < ::Form::Question super @id = "declaration" @check_answer_label = "Tenant has seen the privacy notice" - @header = "" + @header = "Declaration" @type = "checkbox" @check_answers_card_number = 0 @guidance_partial = "privacy_notice_tenant" @answer_options = ANSWER_OPTIONS + @question_number = 30 end ANSWER_OPTIONS = { "declaration" => { "value" => "The tenant has seen the DLUHC privacy notice" } }.freeze diff --git a/app/models/form/lettings/questions/earnings.rb b/app/models/form/lettings/questions/earnings.rb index 2647d0179..445710f09 100644 --- a/app/models/form/lettings/questions/earnings.rb +++ b/app/models/form/lettings/questions/earnings.rb @@ -17,5 +17,6 @@ class Form::Lettings::Questions::Earnings < ::Form::Question { "label" => " every month", "depends_on" => { "incfreq" => 2 } }, { "label" => " every year", "depends_on" => { "incfreq" => 3 } }, ] + @question_number = 88 end end diff --git a/app/models/form/lettings/questions/ethnic_arab.rb b/app/models/form/lettings/questions/ethnic_arab.rb index 28b3591da..9884b69f0 100644 --- a/app/models/form/lettings/questions/ethnic_arab.rb +++ b/app/models/form/lettings/questions/ethnic_arab.rb @@ -8,6 +8,7 @@ class Form::Lettings::Questions::EthnicArab < ::Form::Question @check_answers_card_number = 1 @hint_text = "The lead tenant is the person in the household who does the most paid work. If several people do the same paid work, the lead tenant is whoever is the oldest." @answer_options = ANSWER_OPTIONS + @question_number = 35 end ANSWER_OPTIONS = { diff --git a/app/models/form/lettings/questions/ethnic_asian.rb b/app/models/form/lettings/questions/ethnic_asian.rb index 96b8df9b5..17aa29d44 100644 --- a/app/models/form/lettings/questions/ethnic_asian.rb +++ b/app/models/form/lettings/questions/ethnic_asian.rb @@ -8,6 +8,7 @@ class Form::Lettings::Questions::EthnicAsian < ::Form::Question @check_answers_card_number = 1 @hint_text = "The lead tenant is the person in the household who does the most paid work. If several people do the same paid work, the lead tenant is whoever is the oldest." @answer_options = ANSWER_OPTIONS + @question_number = 35 end ANSWER_OPTIONS = { diff --git a/app/models/form/lettings/questions/ethnic_black.rb b/app/models/form/lettings/questions/ethnic_black.rb index 68beca8ad..c6f0c81d5 100644 --- a/app/models/form/lettings/questions/ethnic_black.rb +++ b/app/models/form/lettings/questions/ethnic_black.rb @@ -8,6 +8,7 @@ class Form::Lettings::Questions::EthnicBlack < ::Form::Question @check_answers_card_number = 1 @hint_text = "The lead tenant is the person in the household who does the most paid work. If several people do the same paid work, the lead tenant is whoever is the oldest." @answer_options = ANSWER_OPTIONS + @question_number = 35 end ANSWER_OPTIONS = { diff --git a/app/models/form/lettings/questions/ethnic_group.rb b/app/models/form/lettings/questions/ethnic_group.rb index 4f7364296..f9e392089 100644 --- a/app/models/form/lettings/questions/ethnic_group.rb +++ b/app/models/form/lettings/questions/ethnic_group.rb @@ -8,6 +8,7 @@ class Form::Lettings::Questions::EthnicGroup < ::Form::Question @check_answers_card_number = 1 @hint_text = "The lead tenant is the person in the household who does the most paid work. If several people do the same paid work, the lead tenant is whoever is the oldest." @answer_options = ANSWER_OPTIONS + @question_number = 34 end ANSWER_OPTIONS = { diff --git a/app/models/form/lettings/questions/ethnic_mixed.rb b/app/models/form/lettings/questions/ethnic_mixed.rb index 6160e40a5..ac059837d 100644 --- a/app/models/form/lettings/questions/ethnic_mixed.rb +++ b/app/models/form/lettings/questions/ethnic_mixed.rb @@ -8,6 +8,7 @@ class Form::Lettings::Questions::EthnicMixed < ::Form::Question @check_answers_card_number = 1 @hint_text = "The lead tenant is the person in the household who does the most paid work. If several people do the same paid work, the lead tenant is whoever is the oldest." @answer_options = ANSWER_OPTIONS + @question_number = 35 end ANSWER_OPTIONS = { diff --git a/app/models/form/lettings/questions/ethnic_white.rb b/app/models/form/lettings/questions/ethnic_white.rb index 993237a44..707330175 100644 --- a/app/models/form/lettings/questions/ethnic_white.rb +++ b/app/models/form/lettings/questions/ethnic_white.rb @@ -8,6 +8,7 @@ class Form::Lettings::Questions::EthnicWhite < ::Form::Question @check_answers_card_number = 1 @hint_text = "The lead tenant is the person in the household who does the most paid work. If several people do the same paid work, the lead tenant is whoever is the oldest." @answer_options = ANSWER_OPTIONS + @question_number = 35 end ANSWER_OPTIONS = { diff --git a/app/models/form/lettings/questions/first_time_property_let_as_social_housing.rb b/app/models/form/lettings/questions/first_time_property_let_as_social_housing.rb index 62f0bba19..132eca0c2 100644 --- a/app/models/form/lettings/questions/first_time_property_let_as_social_housing.rb +++ b/app/models/form/lettings/questions/first_time_property_let_as_social_housing.rb @@ -8,6 +8,7 @@ class Form::Lettings::Questions::FirstTimePropertyLetAsSocialHousing < ::Form::Q @check_answers_card_number = 0 @hint_text = "" @answer_options = ANSWER_OPTIONS + @question_number = 14 end ANSWER_OPTIONS = { diff --git a/app/models/form/lettings/questions/gender_identity1.rb b/app/models/form/lettings/questions/gender_identity1.rb index 2f5c8f45e..769dc1850 100644 --- a/app/models/form/lettings/questions/gender_identity1.rb +++ b/app/models/form/lettings/questions/gender_identity1.rb @@ -8,6 +8,7 @@ class Form::Lettings::Questions::GenderIdentity1 < ::Form::Question @check_answers_card_number = 1 @hint_text = "The lead tenant is the person in the household who does the most paid work. If several people do the same paid work, the lead tenant is whoever is the oldest." @answer_options = ANSWER_OPTIONS + @question_number = 33 end ANSWER_OPTIONS = { diff --git a/app/models/form/lettings/questions/hb.rb b/app/models/form/lettings/questions/hb.rb index e8da0e146..68dfc987b 100644 --- a/app/models/form/lettings/questions/hb.rb +++ b/app/models/form/lettings/questions/hb.rb @@ -8,6 +8,7 @@ class Form::Lettings::Questions::Hb < ::Form::Question @check_answers_card_number = 0 @hint_text = "" @answer_options = ANSWER_OPTIONS + @question_number = 89 end ANSWER_OPTIONS = { diff --git a/app/models/form/lettings/questions/hbrentshortfall.rb b/app/models/form/lettings/questions/hbrentshortfall.rb index 687ac3aeb..828c36377 100644 --- a/app/models/form/lettings/questions/hbrentshortfall.rb +++ b/app/models/form/lettings/questions/hbrentshortfall.rb @@ -8,6 +8,7 @@ class Form::Lettings::Questions::Hbrentshortfall < ::Form::Question @check_answers_card_number = 0 @hint_text = "Also known as the ‘outstanding amount’." @answer_options = ANSWER_OPTIONS + @question_number = 99 end ANSWER_OPTIONS = { diff --git a/app/models/form/lettings/questions/hhmemb.rb b/app/models/form/lettings/questions/hhmemb.rb index 3c6e6c3af..fee0aced3 100644 --- a/app/models/form/lettings/questions/hhmemb.rb +++ b/app/models/form/lettings/questions/hhmemb.rb @@ -11,5 +11,6 @@ class Form::Lettings::Questions::Hhmemb < ::Form::Question @min = 1 @hint_text = "You can provide details for a maximum of 8 people." @step = 1 + @question_number = 31 end end diff --git a/app/models/form/lettings/questions/homeless.rb b/app/models/form/lettings/questions/homeless.rb index fcfc117d2..21a597a00 100644 --- a/app/models/form/lettings/questions/homeless.rb +++ b/app/models/form/lettings/questions/homeless.rb @@ -8,6 +8,7 @@ class Form::Lettings::Questions::Homeless < ::Form::Question @check_answers_card_number = 0 @hint_text = "" @answer_options = ANSWER_OPTIONS + @question_number = 79 end ANSWER_OPTIONS = { diff --git a/app/models/form/lettings/questions/household_charge.rb b/app/models/form/lettings/questions/household_charge.rb index 1a8ade65a..da77cb361 100644 --- a/app/models/form/lettings/questions/household_charge.rb +++ b/app/models/form/lettings/questions/household_charge.rb @@ -8,6 +8,7 @@ class Form::Lettings::Questions::HouseholdCharge < ::Form::Question @check_answers_card_number = 0 @hint_text = "If rent is charged on the property then answer Yes to this question, even if the tenants do not pay it themselves." @answer_options = ANSWER_OPTIONS + @question_number = 91 end ANSWER_OPTIONS = { "0" => { "value" => "Yes" }, "1" => { "value" => "No" } }.freeze diff --git a/app/models/form/lettings/questions/housingneeds.rb b/app/models/form/lettings/questions/housingneeds.rb index cd8a3275d..5b6775eec 100644 --- a/app/models/form/lettings/questions/housingneeds.rb +++ b/app/models/form/lettings/questions/housingneeds.rb @@ -8,6 +8,7 @@ class Form::Lettings::Questions::Housingneeds < ::Form::Question @check_answers_card_number = 0 @hint_text = "" @answer_options = ANSWER_OPTIONS + @question_number = 70 end ANSWER_OPTIONS = { diff --git a/app/models/form/lettings/questions/housingneeds_other.rb b/app/models/form/lettings/questions/housingneeds_other.rb index 18d544ca9..fd1b463a0 100644 --- a/app/models/form/lettings/questions/housingneeds_other.rb +++ b/app/models/form/lettings/questions/housingneeds_other.rb @@ -8,6 +8,7 @@ class Form::Lettings::Questions::HousingneedsOther < ::Form::Question @check_answers_card_number = 0 @hint_text = "" @answer_options = ANSWER_OPTIONS + @question_number = 72 end ANSWER_OPTIONS = { "1" => { "value" => "Yes" }, "0" => { "value" => "No" } }.freeze diff --git a/app/models/form/lettings/questions/housingneeds_type.rb b/app/models/form/lettings/questions/housingneeds_type.rb index a06f28705..49a03e73d 100644 --- a/app/models/form/lettings/questions/housingneeds_type.rb +++ b/app/models/form/lettings/questions/housingneeds_type.rb @@ -8,6 +8,7 @@ class Form::Lettings::Questions::HousingneedsType < ::Form::Question @check_answers_card_number = 0 @hint_text = "" @answer_options = ANSWER_OPTIONS + @question_number = 71 end ANSWER_OPTIONS = { diff --git a/app/models/form/lettings/questions/illness.rb b/app/models/form/lettings/questions/illness.rb index d2a3b09dd..6a54c6a46 100644 --- a/app/models/form/lettings/questions/illness.rb +++ b/app/models/form/lettings/questions/illness.rb @@ -8,6 +8,7 @@ class Form::Lettings::Questions::Illness < ::Form::Question @check_answers_card_number = 0 @hint_text = "" @answer_options = ANSWER_OPTIONS + @question_number = 73 end ANSWER_OPTIONS = { diff --git a/app/models/form/lettings/questions/incfreq.rb b/app/models/form/lettings/questions/incfreq.rb index 0d347c0da..c31f23fd5 100644 --- a/app/models/form/lettings/questions/incfreq.rb +++ b/app/models/form/lettings/questions/incfreq.rb @@ -9,6 +9,7 @@ class Form::Lettings::Questions::Incfreq < ::Form::Question @hint_text = "" @answer_options = ANSWER_OPTIONS @hidden_in_check_answers = true + @question_number = 87 end ANSWER_OPTIONS = { diff --git a/app/models/form/lettings/questions/irproduct_other.rb b/app/models/form/lettings/questions/irproduct_other.rb index 99945ceea..be21c3d27 100644 --- a/app/models/form/lettings/questions/irproduct_other.rb +++ b/app/models/form/lettings/questions/irproduct_other.rb @@ -5,5 +5,6 @@ class Form::Lettings::Questions::IrproductOther < ::Form::Question @check_answer_label = "Product name" @header = "Name of rent product" @type = "text" + @question_number = 6 end end diff --git a/app/models/form/lettings/questions/is_carehome.rb b/app/models/form/lettings/questions/is_carehome.rb index 6f17acc0d..9011d35bb 100644 --- a/app/models/form/lettings/questions/is_carehome.rb +++ b/app/models/form/lettings/questions/is_carehome.rb @@ -9,6 +9,7 @@ class Form::Lettings::Questions::IsCarehome < ::Form::Question @hint_text = "" @answer_options = ANSWER_OPTIONS @conditional_for = { "chcharge" => [1] } + @question_number = 93 end ANSWER_OPTIONS = { "0" => { "value" => "No" }, "1" => { "value" => "Yes" } }.freeze diff --git a/app/models/form/lettings/questions/joint.rb b/app/models/form/lettings/questions/joint.rb index 484678f2b..7b1d9c2c9 100644 --- a/app/models/form/lettings/questions/joint.rb +++ b/app/models/form/lettings/questions/joint.rb @@ -8,6 +8,7 @@ class Form::Lettings::Questions::Joint < ::Form::Question @check_answers_card_number = 0 @hint_text = "" @answer_options = ANSWER_OPTIONS + @question_number = 25 end ANSWER_OPTIONS = { diff --git a/app/models/form/lettings/questions/la.rb b/app/models/form/lettings/questions/la.rb index adafad4b9..3cafda054 100644 --- a/app/models/form/lettings/questions/la.rb +++ b/app/models/form/lettings/questions/la.rb @@ -7,6 +7,7 @@ class Form::Lettings::Questions::La < ::Form::Question @type = "select" @check_answers_card_number = 0 @hint_text = "" + @question_number = 13 end def answer_options diff --git a/app/models/form/lettings/questions/layear.rb b/app/models/form/lettings/questions/layear.rb index 14a334399..764253250 100644 --- a/app/models/form/lettings/questions/layear.rb +++ b/app/models/form/lettings/questions/layear.rb @@ -8,6 +8,7 @@ class Form::Lettings::Questions::Layear < ::Form::Question @check_answers_card_number = 0 @hint_text = "" @answer_options = ANSWER_OPTIONS + @question_number = 75 end ANSWER_OPTIONS = { diff --git a/app/models/form/lettings/questions/leftreg.rb b/app/models/form/lettings/questions/leftreg.rb index 2601f351d..a6edecbc3 100644 --- a/app/models/form/lettings/questions/leftreg.rb +++ b/app/models/form/lettings/questions/leftreg.rb @@ -8,6 +8,7 @@ class Form::Lettings::Questions::Leftreg < ::Form::Question @check_answers_card_number = 0 @hint_text = "" @answer_options = ANSWER_OPTIONS + @question_number = 67 end ANSWER_OPTIONS = { diff --git a/app/models/form/lettings/questions/letting_allocation.rb b/app/models/form/lettings/questions/letting_allocation.rb index e41f52b09..18c0a3042 100644 --- a/app/models/form/lettings/questions/letting_allocation.rb +++ b/app/models/form/lettings/questions/letting_allocation.rb @@ -8,6 +8,7 @@ class Form::Lettings::Questions::LettingAllocation < ::Form::Question @check_answers_card_number = 0 @hint_text = "Select all that apply." @answer_options = ANSWER_OPTIONS + @question_number = 84 end ANSWER_OPTIONS = { diff --git a/app/models/form/lettings/questions/location_id.rb b/app/models/form/lettings/questions/location_id.rb index fc197cf82..ee97724b5 100644 --- a/app/models/form/lettings/questions/location_id.rb +++ b/app/models/form/lettings/questions/location_id.rb @@ -10,6 +10,7 @@ class Form::Lettings::Questions::LocationId < ::Form::Question "needstype": 2, }, } + @question_number = 10 end def answer_options diff --git a/app/models/form/lettings/questions/majorrepairs.rb b/app/models/form/lettings/questions/majorrepairs.rb index e0a6fdb01..83acf76a6 100644 --- a/app/models/form/lettings/questions/majorrepairs.rb +++ b/app/models/form/lettings/questions/majorrepairs.rb @@ -9,6 +9,7 @@ class Form::Lettings::Questions::Majorrepairs < ::Form::Question @hint_text = "Major repairs are works that could not be reasonably carried out with a tenant living at the property. For example, structural repairs." @answer_options = ANSWER_OPTIONS @conditional_for = { "mrcdate" => [1] } + @question_number = 24 end ANSWER_OPTIONS = { "1" => { "value" => "Yes" }, "0" => { "value" => "No" } }.freeze diff --git a/app/models/form/lettings/questions/managing_organisation.rb b/app/models/form/lettings/questions/managing_organisation.rb index bd9cbb8b9..7e4d318fe 100644 --- a/app/models/form/lettings/questions/managing_organisation.rb +++ b/app/models/form/lettings/questions/managing_organisation.rb @@ -5,6 +5,7 @@ class Form::Lettings::Questions::ManagingOrganisation < ::Form::Question @check_answer_label = "Managing agent" @header = "Which organisation manages this letting?" @type = "select" + @question_number = 2 end def answer_options(log = nil, user = nil) diff --git a/app/models/form/lettings/questions/mrcdate.rb b/app/models/form/lettings/questions/mrcdate.rb index a3718af47..cadcd3a7a 100644 --- a/app/models/form/lettings/questions/mrcdate.rb +++ b/app/models/form/lettings/questions/mrcdate.rb @@ -7,5 +7,6 @@ class Form::Lettings::Questions::Mrcdate < ::Form::Question @type = "date" @check_answers_card_number = 0 @hint_text = "For example, 27 3 2021." + @question_number = 24 end end diff --git a/app/models/form/lettings/questions/nationality.rb b/app/models/form/lettings/questions/nationality.rb index 019c8a4fa..c86f93b09 100644 --- a/app/models/form/lettings/questions/nationality.rb +++ b/app/models/form/lettings/questions/nationality.rb @@ -8,6 +8,7 @@ class Form::Lettings::Questions::Nationality < ::Form::Question @check_answers_card_number = 1 @hint_text = "The lead tenant is the person in the household who does the most paid work. If several people do the same paid work, the lead tenant is whoever is the oldest." @answer_options = ANSWER_OPTIONS + @question_number = 36 end ANSWER_OPTIONS = { diff --git a/app/models/form/lettings/questions/needs_type.rb b/app/models/form/lettings/questions/needs_type.rb index 331899821..eaa13cb9d 100644 --- a/app/models/form/lettings/questions/needs_type.rb +++ b/app/models/form/lettings/questions/needs_type.rb @@ -7,6 +7,7 @@ class Form::Lettings::Questions::NeedsType < ::Form::Question @hint_text = "General needs housing includes both self-contained and shared housing without support or specific adaptations. Supported housing can include direct access hostels, group homes, residential care and nursing homes." @type = "radio" @answer_options = ANSWER_OPTIONS + @question_number = 3 end ANSWER_OPTIONS = { diff --git a/app/models/form/lettings/questions/net_income_known.rb b/app/models/form/lettings/questions/net_income_known.rb index 760c20b9f..226569b9e 100644 --- a/app/models/form/lettings/questions/net_income_known.rb +++ b/app/models/form/lettings/questions/net_income_known.rb @@ -9,6 +9,7 @@ class Form::Lettings::Questions::NetIncomeKnown < ::Form::Question @guidance_partial = "what_counts_as_income" @hint_text = "" @answer_options = ANSWER_OPTIONS + @question_number = 86 end ANSWER_OPTIONS = { diff --git a/app/models/form/lettings/questions/offered.rb b/app/models/form/lettings/questions/offered.rb index e9491ba3c..e41def301 100644 --- a/app/models/form/lettings/questions/offered.rb +++ b/app/models/form/lettings/questions/offered.rb @@ -11,5 +11,6 @@ class Form::Lettings::Questions::Offered < ::Form::Question @min = 0 @hint_text = I18n.t("hints.offered") @step = 1 + @question_number = 18 end end diff --git a/app/models/form/lettings/questions/offered_social_let.rb b/app/models/form/lettings/questions/offered_social_let.rb index 2178ef626..d3ac29516 100644 --- a/app/models/form/lettings/questions/offered_social_let.rb +++ b/app/models/form/lettings/questions/offered_social_let.rb @@ -11,5 +11,6 @@ class Form::Lettings::Questions::OfferedSocialLet < ::Form::Question @min = 0 @hint_text = I18n.t("hints.offered") @step = 1 + @question_number = 18 end end diff --git a/app/models/form/lettings/questions/period.rb b/app/models/form/lettings/questions/period.rb index cf0b4d13a..08a8510c4 100644 --- a/app/models/form/lettings/questions/period.rb +++ b/app/models/form/lettings/questions/period.rb @@ -8,6 +8,7 @@ class Form::Lettings::Questions::Period < ::Form::Question @check_answers_card_number = 0 @hint_text = "" @answer_options = ANSWER_OPTIONS + @question_number = 92 end ANSWER_OPTIONS = { diff --git a/app/models/form/lettings/questions/person_gender_identity.rb b/app/models/form/lettings/questions/person_gender_identity.rb index cb8f04ef2..1416a3414 100644 --- a/app/models/form/lettings/questions/person_gender_identity.rb +++ b/app/models/form/lettings/questions/person_gender_identity.rb @@ -8,6 +8,7 @@ class Form::Lettings::Questions::PersonGenderIdentity < ::Form::Question @check_answers_card_number = person_index @hint_text = "" @answer_options = ANSWER_OPTIONS + @question_number = 32 + (4 * person_index) end ANSWER_OPTIONS = { diff --git a/app/models/form/lettings/questions/person_relationship.rb b/app/models/form/lettings/questions/person_relationship.rb index a346cf3cc..0d54db949 100644 --- a/app/models/form/lettings/questions/person_relationship.rb +++ b/app/models/form/lettings/questions/person_relationship.rb @@ -8,6 +8,7 @@ class Form::Lettings::Questions::PersonRelationship < ::Form::Question @check_answers_card_number = person_index @hint_text = "" @answer_options = ANSWER_OPTIONS + @question_number = 30 + (4 * person_index) end ANSWER_OPTIONS = { diff --git a/app/models/form/lettings/questions/person_working_situation.rb b/app/models/form/lettings/questions/person_working_situation.rb index 9174930a2..d6e593e33 100644 --- a/app/models/form/lettings/questions/person_working_situation.rb +++ b/app/models/form/lettings/questions/person_working_situation.rb @@ -8,6 +8,7 @@ class Form::Lettings::Questions::PersonWorkingSituation < ::Form::Question @check_answers_card_number = person_index @hint_text = "" @answer_options = ANSWER_OPTIONS + @question_number = 33 + (4 * person_index) end ANSWER_OPTIONS = { diff --git a/app/models/form/lettings/questions/ppcodenk.rb b/app/models/form/lettings/questions/ppcodenk.rb index fa10f3d69..33b03d959 100644 --- a/app/models/form/lettings/questions/ppcodenk.rb +++ b/app/models/form/lettings/questions/ppcodenk.rb @@ -10,6 +10,7 @@ class Form::Lettings::Questions::Ppcodenk < ::Form::Question @answer_options = ANSWER_OPTIONS @conditional_for = { "ppostcode_full" => [1] } @hidden_in_check_answers = { "depends_on" => [{ "ppcodenk" => 0 }, { "ppcodenk" => 1 }] } + @question_number = 80 end ANSWER_OPTIONS = { "1" => { "value" => "Yes" }, "0" => { "value" => "No" } }.freeze diff --git a/app/models/form/lettings/questions/ppostcode_full.rb b/app/models/form/lettings/questions/ppostcode_full.rb index 736e06f16..0432d1b5b 100644 --- a/app/models/form/lettings/questions/ppostcode_full.rb +++ b/app/models/form/lettings/questions/ppostcode_full.rb @@ -10,5 +10,6 @@ class Form::Lettings::Questions::PpostcodeFull < ::Form::Question @check_answers_card_number = 0 @hint_text = "" @inferred_answers = { "prevloc" => { "is_previous_la_inferred" => true } } + @question_number = 80 end end diff --git a/app/models/form/lettings/questions/preg_occ.rb b/app/models/form/lettings/questions/preg_occ.rb index c6b6f168f..8a863a870 100644 --- a/app/models/form/lettings/questions/preg_occ.rb +++ b/app/models/form/lettings/questions/preg_occ.rb @@ -8,6 +8,7 @@ class Form::Lettings::Questions::PregOcc < ::Form::Question @check_answers_card_number = 0 @hint_text = "" @answer_options = ANSWER_OPTIONS + @question_number = 69 end ANSWER_OPTIONS = { diff --git a/app/models/form/lettings/questions/previous_la_known.rb b/app/models/form/lettings/questions/previous_la_known.rb index 0f563b62a..a9ff11e55 100644 --- a/app/models/form/lettings/questions/previous_la_known.rb +++ b/app/models/form/lettings/questions/previous_la_known.rb @@ -10,6 +10,7 @@ class Form::Lettings::Questions::PreviousLaKnown < ::Form::Question @answer_options = ANSWER_OPTIONS @conditional_for = { "prevloc" => [1] } @hidden_in_check_answers = { "depends_on" => [{ "previous_la_known" => 0 }, { "previous_la_known" => 1 }] } + @question_number = 81 end ANSWER_OPTIONS = { "1" => { "value" => "Yes" }, "0" => { "value" => "No" } }.freeze diff --git a/app/models/form/lettings/questions/previous_let_type.rb b/app/models/form/lettings/questions/previous_let_type.rb index c685140e6..6c9947743 100644 --- a/app/models/form/lettings/questions/previous_let_type.rb +++ b/app/models/form/lettings/questions/previous_let_type.rb @@ -8,6 +8,7 @@ class Form::Lettings::Questions::PreviousLetType < ::Form::Question @check_answers_card_number = 0 @hint_text = "" @answer_options = ANSWER_OPTIONS + @question_number = 16 end ANSWER_OPTIONS = { diff --git a/app/models/form/lettings/questions/previous_tenure.rb b/app/models/form/lettings/questions/previous_tenure.rb index c100c3ddd..ca5b8d832 100644 --- a/app/models/form/lettings/questions/previous_tenure.rb +++ b/app/models/form/lettings/questions/previous_tenure.rb @@ -8,6 +8,7 @@ class Form::Lettings::Questions::PreviousTenure < ::Form::Question @check_answers_card_number = 0 @hint_text = "This is where the household was the night before they moved." @answer_options = ANSWER_OPTIONS + @question_number = 78 end ANSWER_OPTIONS = { diff --git a/app/models/form/lettings/questions/previous_tenure_renewal.rb b/app/models/form/lettings/questions/previous_tenure_renewal.rb index 6e2722b4f..56be9a95d 100644 --- a/app/models/form/lettings/questions/previous_tenure_renewal.rb +++ b/app/models/form/lettings/questions/previous_tenure_renewal.rb @@ -8,6 +8,7 @@ class Form::Lettings::Questions::PreviousTenureRenewal < ::Form::Question @check_answers_card_number = 0 @hint_text = "" @answer_options = ANSWER_OPTIONS + @question_number = 78 end ANSWER_OPTIONS = { diff --git a/app/models/form/lettings/questions/prevloc.rb b/app/models/form/lettings/questions/prevloc.rb index 06d23eed4..229af2c18 100644 --- a/app/models/form/lettings/questions/prevloc.rb +++ b/app/models/form/lettings/questions/prevloc.rb @@ -8,6 +8,7 @@ class Form::Lettings::Questions::Prevloc < ::Form::Question @inferred_check_answers_value = [{ "condition" => { "previous_la_known" => 0 }, "value" => "Not known" }] @check_answers_card_number = 0 @hint_text = "Select ‘Northern Ireland’, ‘Scotland’, ‘Wales’ or ‘Outside the UK’ if the household’s last settled home was outside England." + @question_number = 81 end def answer_options diff --git a/app/models/form/lettings/questions/property_reference.rb b/app/models/form/lettings/questions/property_reference.rb index 75168f1bd..f93a57cee 100644 --- a/app/models/form/lettings/questions/property_reference.rb +++ b/app/models/form/lettings/questions/property_reference.rb @@ -7,5 +7,6 @@ class Form::Lettings::Questions::PropertyReference < ::Form::Question @hint_text = "This is how you usually refer to this property on your own systems." @type = "text" @width = 10 + @question_number = 8 end end diff --git a/app/models/form/lettings/questions/pscharge_4_weekly.rb b/app/models/form/lettings/questions/pscharge_4_weekly.rb index 2242cd692..cb716abd2 100644 --- a/app/models/form/lettings/questions/pscharge_4_weekly.rb +++ b/app/models/form/lettings/questions/pscharge_4_weekly.rb @@ -12,8 +12,8 @@ class Form::Lettings::Questions::Pscharge4Weekly < ::Form::Question @step = 0.01 @fields_to_add = %w[brent scharge pscharge supcharg] @result_field = "tcharge" - @hidden_in_check_answers = true @prefix = "£" @suffix = " every 4 weeks" + @question_number = 97 end end diff --git a/app/models/form/lettings/questions/pscharge_bi_weekly.rb b/app/models/form/lettings/questions/pscharge_bi_weekly.rb index 7a7c89443..bd3524b10 100644 --- a/app/models/form/lettings/questions/pscharge_bi_weekly.rb +++ b/app/models/form/lettings/questions/pscharge_bi_weekly.rb @@ -12,8 +12,8 @@ class Form::Lettings::Questions::PschargeBiWeekly < ::Form::Question @step = 0.01 @fields_to_add = %w[brent scharge pscharge supcharg] @result_field = "tcharge" - @hidden_in_check_answers = true @prefix = "£" @suffix = " every 2 weeks" + @question_number = 97 end end diff --git a/app/models/form/lettings/questions/pscharge_monthly.rb b/app/models/form/lettings/questions/pscharge_monthly.rb index 6aa1ae911..bae5bd459 100644 --- a/app/models/form/lettings/questions/pscharge_monthly.rb +++ b/app/models/form/lettings/questions/pscharge_monthly.rb @@ -12,8 +12,8 @@ class Form::Lettings::Questions::PschargeMonthly < ::Form::Question @step = 0.01 @fields_to_add = %w[brent scharge pscharge supcharg] @result_field = "tcharge" - @hidden_in_check_answers = true @prefix = "£" @suffix = " every month" + @question_number = 97 end end diff --git a/app/models/form/lettings/questions/pscharge_weekly.rb b/app/models/form/lettings/questions/pscharge_weekly.rb index 73f3d9323..1b24e9a10 100644 --- a/app/models/form/lettings/questions/pscharge_weekly.rb +++ b/app/models/form/lettings/questions/pscharge_weekly.rb @@ -12,8 +12,8 @@ class Form::Lettings::Questions::PschargeWeekly < ::Form::Question @step = 0.01 @fields_to_add = %w[brent scharge pscharge supcharg] @result_field = "tcharge" - @hidden_in_check_answers = true @prefix = "£" @suffix = " every week" + @question_number = 97 end end diff --git a/app/models/form/lettings/questions/reason.rb b/app/models/form/lettings/questions/reason.rb index ef8fbcd0d..9598780ec 100644 --- a/app/models/form/lettings/questions/reason.rb +++ b/app/models/form/lettings/questions/reason.rb @@ -13,6 +13,7 @@ class Form::Lettings::Questions::Reason < ::Form::Question 20, ], } + @question_number = 77 end ANSWER_OPTIONS = { diff --git a/app/models/form/lettings/questions/reason_renewal.rb b/app/models/form/lettings/questions/reason_renewal.rb index c3a825c5e..9111ad8e7 100644 --- a/app/models/form/lettings/questions/reason_renewal.rb +++ b/app/models/form/lettings/questions/reason_renewal.rb @@ -8,6 +8,7 @@ class Form::Lettings::Questions::ReasonRenewal < ::Form::Question @check_answers_card_number = 0 @hint_text = "" @answer_options = ANSWER_OPTIONS + @question_number = 77 end ANSWER_OPTIONS = { diff --git a/app/models/form/lettings/questions/reasonable_preference_reason.rb b/app/models/form/lettings/questions/reasonable_preference_reason.rb index f582ccadf..631949685 100644 --- a/app/models/form/lettings/questions/reasonable_preference_reason.rb +++ b/app/models/form/lettings/questions/reasonable_preference_reason.rb @@ -8,6 +8,7 @@ class Form::Lettings::Questions::ReasonablePreferenceReason < ::Form::Question @check_answers_card_number = 0 @hint_text = "Select all that apply." @answer_options = ANSWER_OPTIONS + @question_number = 83 end ANSWER_OPTIONS = { diff --git a/app/models/form/lettings/questions/reasonother.rb b/app/models/form/lettings/questions/reasonother.rb index 48306f7d7..e045c9aa3 100644 --- a/app/models/form/lettings/questions/reasonother.rb +++ b/app/models/form/lettings/questions/reasonother.rb @@ -7,5 +7,6 @@ class Form::Lettings::Questions::Reasonother < ::Form::Question @type = "text" @check_answers_card_number = 0 @hint_text = "" + @question_number = 77 end end diff --git a/app/models/form/lettings/questions/reasonpref.rb b/app/models/form/lettings/questions/reasonpref.rb index 571a7e3eb..43631a2fd 100644 --- a/app/models/form/lettings/questions/reasonpref.rb +++ b/app/models/form/lettings/questions/reasonpref.rb @@ -8,6 +8,7 @@ class Form::Lettings::Questions::Reasonpref < ::Form::Question @check_answers_card_number = 0 @hint_text = "Households may be given ‘reasonable preference’ for social housing, also known as ‘priority need’, by the local authority." @answer_options = ANSWER_OPTIONS + @question_number = 82 end ANSWER_OPTIONS = { diff --git a/app/models/form/lettings/questions/referral.rb b/app/models/form/lettings/questions/referral.rb index 83e5d3ae2..ca1e117a4 100644 --- a/app/models/form/lettings/questions/referral.rb +++ b/app/models/form/lettings/questions/referral.rb @@ -8,6 +8,7 @@ class Form::Lettings::Questions::Referral < ::Form::Question @check_answers_card_number = 0 @hint_text = "" @answer_options = ANSWER_OPTIONS + @question_number = 85 end ANSWER_OPTIONS = { diff --git a/app/models/form/lettings/questions/referral_prp.rb b/app/models/form/lettings/questions/referral_prp.rb index 5651f431f..a602beea8 100644 --- a/app/models/form/lettings/questions/referral_prp.rb +++ b/app/models/form/lettings/questions/referral_prp.rb @@ -8,6 +8,7 @@ class Form::Lettings::Questions::ReferralPrp < ::Form::Question @check_answers_card_number = 0 @hint_text = "" @answer_options = ANSWER_OPTIONS + @question_number = 85 end ANSWER_OPTIONS = { diff --git a/app/models/form/lettings/questions/referral_supported_housing.rb b/app/models/form/lettings/questions/referral_supported_housing.rb index 5b286d94d..12d24cd53 100644 --- a/app/models/form/lettings/questions/referral_supported_housing.rb +++ b/app/models/form/lettings/questions/referral_supported_housing.rb @@ -8,6 +8,7 @@ class Form::Lettings::Questions::ReferralSupportedHousing < ::Form::Question @check_answers_card_number = 0 @hint_text = "" @answer_options = ANSWER_OPTIONS + @question_number = 85 end ANSWER_OPTIONS = { diff --git a/app/models/form/lettings/questions/referral_supported_housing_prp.rb b/app/models/form/lettings/questions/referral_supported_housing_prp.rb index 051f7b90b..4824dd6c5 100644 --- a/app/models/form/lettings/questions/referral_supported_housing_prp.rb +++ b/app/models/form/lettings/questions/referral_supported_housing_prp.rb @@ -8,6 +8,7 @@ class Form::Lettings::Questions::ReferralSupportedHousingPrp < ::Form::Question @check_answers_card_number = 0 @hint_text = "" @answer_options = ANSWER_OPTIONS + @question_number = 85 end ANSWER_OPTIONS = { diff --git a/app/models/form/lettings/questions/renewal.rb b/app/models/form/lettings/questions/renewal.rb index edf9c1e7b..ac9eca622 100644 --- a/app/models/form/lettings/questions/renewal.rb +++ b/app/models/form/lettings/questions/renewal.rb @@ -7,6 +7,7 @@ class Form::Lettings::Questions::Renewal < ::Form::Question @type = "radio" @answer_options = ANSWER_OPTIONS @hint_text = "A renewal is a letting to the same tenant in the same property" + @question_number = 4 end ANSWER_OPTIONS = { diff --git a/app/models/form/lettings/questions/rent_type.rb b/app/models/form/lettings/questions/rent_type.rb index 64e2839e2..ac9164f0c 100644 --- a/app/models/form/lettings/questions/rent_type.rb +++ b/app/models/form/lettings/questions/rent_type.rb @@ -7,6 +7,7 @@ class Form::Lettings::Questions::RentType < ::Form::Question @type = "radio" @answer_options = ANSWER_OPTIONS @conditional_for = { "irproduct_other" => [5] } + @question_number = 6 end ANSWER_OPTIONS = { diff --git a/app/models/form/lettings/questions/reservist.rb b/app/models/form/lettings/questions/reservist.rb index 695254c05..44eb8219d 100644 --- a/app/models/form/lettings/questions/reservist.rb +++ b/app/models/form/lettings/questions/reservist.rb @@ -8,6 +8,7 @@ class Form::Lettings::Questions::Reservist < ::Form::Question @check_answers_card_number = 0 @hint_text = "" @answer_options = ANSWER_OPTIONS + @question_number = 68 end ANSWER_OPTIONS = { diff --git a/app/models/form/lettings/questions/rsnvac.rb b/app/models/form/lettings/questions/rsnvac.rb index 2899a9463..22d039748 100644 --- a/app/models/form/lettings/questions/rsnvac.rb +++ b/app/models/form/lettings/questions/rsnvac.rb @@ -8,6 +8,7 @@ class Form::Lettings::Questions::Rsnvac < ::Form::Question @check_answers_card_number = 0 @hint_text = "" @answer_options = ANSWER_OPTIONS + @question_number = 17 end ANSWER_OPTIONS = { diff --git a/app/models/form/lettings/questions/rsnvac_first_let.rb b/app/models/form/lettings/questions/rsnvac_first_let.rb index a97e743db..8d7da0433 100644 --- a/app/models/form/lettings/questions/rsnvac_first_let.rb +++ b/app/models/form/lettings/questions/rsnvac_first_let.rb @@ -8,6 +8,7 @@ class Form::Lettings::Questions::RsnvacFirstLet < ::Form::Question @check_answers_card_number = 0 @hint_text = "" @answer_options = ANSWER_OPTIONS + @question_number = 15 end ANSWER_OPTIONS = { diff --git a/app/models/form/lettings/questions/scharge_4_weekly.rb b/app/models/form/lettings/questions/scharge_4_weekly.rb index 418c88157..b13c8339b 100644 --- a/app/models/form/lettings/questions/scharge_4_weekly.rb +++ b/app/models/form/lettings/questions/scharge_4_weekly.rb @@ -12,8 +12,8 @@ class Form::Lettings::Questions::Scharge4Weekly < ::Form::Question @step = 0.01 @fields_to_add = %w[brent scharge pscharge supcharg] @result_field = "tcharge" - @hidden_in_check_answers = true @prefix = "£" @suffix = " every 4 weeks" + @question_number = 96 end end diff --git a/app/models/form/lettings/questions/scharge_bi_weekly.rb b/app/models/form/lettings/questions/scharge_bi_weekly.rb index 913f49844..679662e64 100644 --- a/app/models/form/lettings/questions/scharge_bi_weekly.rb +++ b/app/models/form/lettings/questions/scharge_bi_weekly.rb @@ -12,8 +12,8 @@ class Form::Lettings::Questions::SchargeBiWeekly < ::Form::Question @step = 0.01 @fields_to_add = %w[brent scharge pscharge supcharg] @result_field = "tcharge" - @hidden_in_check_answers = true @prefix = "£" @suffix = " every 2 weeks" + @question_number = 96 end end diff --git a/app/models/form/lettings/questions/scharge_monthly.rb b/app/models/form/lettings/questions/scharge_monthly.rb index bec02543c..74f35578c 100644 --- a/app/models/form/lettings/questions/scharge_monthly.rb +++ b/app/models/form/lettings/questions/scharge_monthly.rb @@ -12,8 +12,8 @@ class Form::Lettings::Questions::SchargeMonthly < ::Form::Question @step = 0.01 @fields_to_add = %w[brent scharge pscharge supcharg] @result_field = "tcharge" - @hidden_in_check_answers = true @prefix = "£" @suffix = " every month" + @question_number = 96 end end diff --git a/app/models/form/lettings/questions/scharge_weekly.rb b/app/models/form/lettings/questions/scharge_weekly.rb index 11e79c111..c8788b7bd 100644 --- a/app/models/form/lettings/questions/scharge_weekly.rb +++ b/app/models/form/lettings/questions/scharge_weekly.rb @@ -12,8 +12,8 @@ class Form::Lettings::Questions::SchargeWeekly < ::Form::Question @step = 0.01 @fields_to_add = %w[brent scharge pscharge supcharg] @result_field = "tcharge" - @hidden_in_check_answers = true @prefix = "£" @suffix = " every week" + @question_number = 96 end end diff --git a/app/models/form/lettings/questions/scheme_id.rb b/app/models/form/lettings/questions/scheme_id.rb index 3f8225caa..a9147ba5f 100644 --- a/app/models/form/lettings/questions/scheme_id.rb +++ b/app/models/form/lettings/questions/scheme_id.rb @@ -8,6 +8,7 @@ class Form::Lettings::Questions::SchemeId < ::Form::Question @answer_options = answer_options @guidance_position = GuidancePosition::BOTTOM @guidance_partial = "scheme_selection" + @question_number = 9 end def answer_options diff --git a/app/models/form/lettings/questions/sheltered.rb b/app/models/form/lettings/questions/sheltered.rb index a5b289ffc..67da39ce5 100644 --- a/app/models/form/lettings/questions/sheltered.rb +++ b/app/models/form/lettings/questions/sheltered.rb @@ -8,6 +8,7 @@ class Form::Lettings::Questions::Sheltered < ::Form::Question @check_answers_card_number = 0 @hint_text = "" @answer_options = ANSWER_OPTIONS + @question_number = 29 end ANSWER_OPTIONS = { diff --git a/app/models/form/lettings/questions/starter_tenancy_type.rb b/app/models/form/lettings/questions/starter_tenancy_type.rb index 13fa20ef6..08fc8e56d 100644 --- a/app/models/form/lettings/questions/starter_tenancy_type.rb +++ b/app/models/form/lettings/questions/starter_tenancy_type.rb @@ -9,6 +9,7 @@ class Form::Lettings::Questions::StarterTenancyType < ::Form::Question @hint_text = "This is also known as an ‘introductory period’." @answer_options = ANSWER_OPTIONS @conditional_for = { "tenancyother" => [3] } + @question_number = 27 end ANSWER_OPTIONS = { diff --git a/app/models/form/lettings/questions/startertenancy.rb b/app/models/form/lettings/questions/startertenancy.rb index 8ae35bb02..10f5946d3 100644 --- a/app/models/form/lettings/questions/startertenancy.rb +++ b/app/models/form/lettings/questions/startertenancy.rb @@ -8,6 +8,7 @@ class Form::Lettings::Questions::Startertenancy < ::Form::Question @check_answers_card_number = 0 @hint_text = "" @answer_options = ANSWER_OPTIONS + @question_number = 26 end ANSWER_OPTIONS = { "1" => { "value" => "Yes" }, "2" => { "value" => "No" } }.freeze diff --git a/app/models/form/lettings/questions/stock_owner.rb b/app/models/form/lettings/questions/stock_owner.rb index 531341739..3835838c5 100644 --- a/app/models/form/lettings/questions/stock_owner.rb +++ b/app/models/form/lettings/questions/stock_owner.rb @@ -5,6 +5,7 @@ class Form::Lettings::Questions::StockOwner < ::Form::Question @check_answer_label = "Stock owner" @header = "Which organisation owns this property?" @type = "select" + @question_number = 1 end def answer_options(log = nil, user = nil) diff --git a/app/models/form/lettings/questions/supcharg_4_weekly.rb b/app/models/form/lettings/questions/supcharg_4_weekly.rb index 5540b3555..1ca7da652 100644 --- a/app/models/form/lettings/questions/supcharg_4_weekly.rb +++ b/app/models/form/lettings/questions/supcharg_4_weekly.rb @@ -12,8 +12,8 @@ class Form::Lettings::Questions::Supcharg4Weekly < ::Form::Question @step = 0.01 @fields_to_add = %w[brent scharge pscharge supcharg] @result_field = "tcharge" - @hidden_in_check_answers = true @prefix = "£" @suffix = " every 4 weeks" + @question_number = 98 end end diff --git a/app/models/form/lettings/questions/supcharg_bi_weekly.rb b/app/models/form/lettings/questions/supcharg_bi_weekly.rb index cbda5e5c9..07150f6f0 100644 --- a/app/models/form/lettings/questions/supcharg_bi_weekly.rb +++ b/app/models/form/lettings/questions/supcharg_bi_weekly.rb @@ -12,8 +12,8 @@ class Form::Lettings::Questions::SupchargBiWeekly < ::Form::Question @step = 0.01 @fields_to_add = %w[brent scharge pscharge supcharg] @result_field = "tcharge" - @hidden_in_check_answers = true @prefix = "£" @suffix = " every 2 weeks" + @question_number = 98 end end diff --git a/app/models/form/lettings/questions/supcharg_monthly.rb b/app/models/form/lettings/questions/supcharg_monthly.rb index 6b799f547..224ddc31c 100644 --- a/app/models/form/lettings/questions/supcharg_monthly.rb +++ b/app/models/form/lettings/questions/supcharg_monthly.rb @@ -12,8 +12,8 @@ class Form::Lettings::Questions::SupchargMonthly < ::Form::Question @step = 0.01 @fields_to_add = %w[brent scharge pscharge supcharg] @result_field = "tcharge" - @hidden_in_check_answers = true @prefix = "£" @suffix = " every month" + @question_number = 98 end end diff --git a/app/models/form/lettings/questions/supcharg_weekly.rb b/app/models/form/lettings/questions/supcharg_weekly.rb index 6f843db94..4e0c99057 100644 --- a/app/models/form/lettings/questions/supcharg_weekly.rb +++ b/app/models/form/lettings/questions/supcharg_weekly.rb @@ -12,8 +12,8 @@ class Form::Lettings::Questions::SupchargWeekly < ::Form::Question @step = 0.01 @fields_to_add = %w[brent scharge pscharge supcharg] @result_field = "tcharge" - @hidden_in_check_answers = true @prefix = "£" @suffix = " every week" + @question_number = 98 end end diff --git a/app/models/form/lettings/questions/tcharge_4_weekly.rb b/app/models/form/lettings/questions/tcharge_4_weekly.rb index 7438f8527..3a353efe8 100644 --- a/app/models/form/lettings/questions/tcharge_4_weekly.rb +++ b/app/models/form/lettings/questions/tcharge_4_weekly.rb @@ -15,5 +15,6 @@ class Form::Lettings::Questions::Tcharge4Weekly < ::Form::Question @suffix = " every 4 weeks" @requires_js = true @fields_added = %w[brent scharge pscharge supcharg] + @hidden_in_check_answers = true end end diff --git a/app/models/form/lettings/questions/tcharge_bi_weekly.rb b/app/models/form/lettings/questions/tcharge_bi_weekly.rb index 1dee6f2bb..42fd9398b 100644 --- a/app/models/form/lettings/questions/tcharge_bi_weekly.rb +++ b/app/models/form/lettings/questions/tcharge_bi_weekly.rb @@ -15,5 +15,6 @@ class Form::Lettings::Questions::TchargeBiWeekly < ::Form::Question @suffix = " every 2 weeks" @requires_js = true @fields_added = %w[brent scharge pscharge supcharg] + @hidden_in_check_answers = true end end diff --git a/app/models/form/lettings/questions/tcharge_monthly.rb b/app/models/form/lettings/questions/tcharge_monthly.rb index dc67c3351..3fcabdace 100644 --- a/app/models/form/lettings/questions/tcharge_monthly.rb +++ b/app/models/form/lettings/questions/tcharge_monthly.rb @@ -15,5 +15,6 @@ class Form::Lettings::Questions::TchargeMonthly < ::Form::Question @suffix = " every month" @requires_js = true @fields_added = %w[brent scharge pscharge supcharg] + @hidden_in_check_answers = true end end diff --git a/app/models/form/lettings/questions/tcharge_weekly.rb b/app/models/form/lettings/questions/tcharge_weekly.rb index 03fb8e4e2..d1ac7cb34 100644 --- a/app/models/form/lettings/questions/tcharge_weekly.rb +++ b/app/models/form/lettings/questions/tcharge_weekly.rb @@ -15,5 +15,6 @@ class Form::Lettings::Questions::TchargeWeekly < ::Form::Question @suffix = " every week" @requires_js = true @fields_added = %w[brent scharge pscharge supcharg] + @hidden_in_check_answers = true end end diff --git a/app/models/form/lettings/questions/tenancy_length.rb b/app/models/form/lettings/questions/tenancy_length.rb index 0a8088c51..90b34aa62 100644 --- a/app/models/form/lettings/questions/tenancy_length.rb +++ b/app/models/form/lettings/questions/tenancy_length.rb @@ -11,5 +11,6 @@ class Form::Lettings::Questions::TenancyLength < ::Form::Question @min = 0 @hint_text = "Don’t include the starter or introductory period." @step = 1 + @question_number = 28 end end diff --git a/app/models/form/lettings/questions/tenancy_other.rb b/app/models/form/lettings/questions/tenancy_other.rb index 6eea47ac8..c19b03703 100644 --- a/app/models/form/lettings/questions/tenancy_other.rb +++ b/app/models/form/lettings/questions/tenancy_other.rb @@ -7,5 +7,6 @@ class Form::Lettings::Questions::TenancyOther < ::Form::Question @type = "text" @check_answers_card_number = 0 @hint_text = "" + @question_number = 27 end end diff --git a/app/models/form/lettings/questions/tenancy_start_date.rb b/app/models/form/lettings/questions/tenancy_start_date.rb index b50021597..fd9d63cec 100644 --- a/app/models/form/lettings/questions/tenancy_start_date.rb +++ b/app/models/form/lettings/questions/tenancy_start_date.rb @@ -6,5 +6,6 @@ class Form::Lettings::Questions::TenancyStartDate < ::Form::Question @header = "What is the tenancy start date?" @type = "date" @unresolved_hint_text = "Some scheme details have changed, and now this log needs updating. Check that the tenancy start date is correct." + @question_number = 5 end end diff --git a/app/models/form/lettings/questions/tenancy_type.rb b/app/models/form/lettings/questions/tenancy_type.rb index c05b4349d..95beffbca 100644 --- a/app/models/form/lettings/questions/tenancy_type.rb +++ b/app/models/form/lettings/questions/tenancy_type.rb @@ -9,6 +9,7 @@ class Form::Lettings::Questions::TenancyType < ::Form::Question @hint_text = "" @answer_options = ANSWER_OPTIONS @conditional_for = { "tenancyother" => [3] } + @question_number = 27 end ANSWER_OPTIONS = { diff --git a/app/models/form/lettings/questions/tenant_code.rb b/app/models/form/lettings/questions/tenant_code.rb index 1872ebe8e..f51d33c46 100644 --- a/app/models/form/lettings/questions/tenant_code.rb +++ b/app/models/form/lettings/questions/tenant_code.rb @@ -7,5 +7,6 @@ class Form::Lettings::Questions::TenantCode < ::Form::Question @hint_text = "This is how you usually refer to this tenancy on your own systems." @type = "text" @width = 10 + @question_number = 7 end end diff --git a/app/models/form/lettings/questions/tshortfall.rb b/app/models/form/lettings/questions/tshortfall.rb index ca88f3e81..af8d32c9c 100644 --- a/app/models/form/lettings/questions/tshortfall.rb +++ b/app/models/form/lettings/questions/tshortfall.rb @@ -21,5 +21,6 @@ class Form::Lettings::Questions::Tshortfall < ::Form::Question { "label" => " every week for 46 weeks", "depends_on" => { "period" => 9 } }, { "label" => " every week for 52 weeks", "depends_on" => { "period" => 1 } }, ] + @question_number = 100 end end diff --git a/app/models/form/lettings/questions/tshortfall_known.rb b/app/models/form/lettings/questions/tshortfall_known.rb index 4f934d75a..7082af4f3 100644 --- a/app/models/form/lettings/questions/tshortfall_known.rb +++ b/app/models/form/lettings/questions/tshortfall_known.rb @@ -9,6 +9,7 @@ class Form::Lettings::Questions::TshortfallKnown < ::Form::Question @hint_text = "You only need to give an approximate figure." @answer_options = ANSWER_OPTIONS @conditional_for = { "tshortfall" => [0] } + @question_number = 100 end ANSWER_OPTIONS = { "0" => { "value" => "Yes" }, "1" => { "value" => "No" } }.freeze diff --git a/app/models/form/lettings/questions/unittype_gn.rb b/app/models/form/lettings/questions/unittype_gn.rb index 82f582722..01f38b0b9 100644 --- a/app/models/form/lettings/questions/unittype_gn.rb +++ b/app/models/form/lettings/questions/unittype_gn.rb @@ -8,6 +8,7 @@ class Form::Lettings::Questions::UnittypeGn < ::Form::Question @check_answers_card_number = 0 @hint_text = "" @answer_options = ANSWER_OPTIONS + @question_number = 19 end ANSWER_OPTIONS = { diff --git a/app/models/form/lettings/questions/voiddate.rb b/app/models/form/lettings/questions/voiddate.rb index 78e57c1ee..a91ac6ddb 100644 --- a/app/models/form/lettings/questions/voiddate.rb +++ b/app/models/form/lettings/questions/voiddate.rb @@ -6,5 +6,6 @@ class Form::Lettings::Questions::Voiddate < ::Form::Question @header = "What is the void or renewal date?" @type = "date" @check_answers_card_number = 0 + @question_number = 23 end end diff --git a/app/models/form/lettings/questions/voiddate_new_build.rb b/app/models/form/lettings/questions/voiddate_new_build.rb index 9cda12522..dcf1326b0 100644 --- a/app/models/form/lettings/questions/voiddate_new_build.rb +++ b/app/models/form/lettings/questions/voiddate_new_build.rb @@ -7,5 +7,6 @@ class Form::Lettings::Questions::VoiddateNewBuild < ::Form::Question @type = "date" @check_answers_card_number = 0 @hint_text = "" + @question_number = 23 end end diff --git a/app/models/form/lettings/questions/waityear.rb b/app/models/form/lettings/questions/waityear.rb index 74239b775..569533a9d 100644 --- a/app/models/form/lettings/questions/waityear.rb +++ b/app/models/form/lettings/questions/waityear.rb @@ -8,6 +8,7 @@ class Form::Lettings::Questions::Waityear < ::Form::Question @check_answers_card_number = 0 @hint_text = "" @answer_options = ANSWER_OPTIONS + @question_number = 76 end ANSWER_OPTIONS = { diff --git a/app/models/form/lettings/questions/wheelchair.rb b/app/models/form/lettings/questions/wheelchair.rb index a841c9b66..3ba4f081f 100644 --- a/app/models/form/lettings/questions/wheelchair.rb +++ b/app/models/form/lettings/questions/wheelchair.rb @@ -8,6 +8,7 @@ class Form::Lettings::Questions::Wheelchair < ::Form::Question @check_answers_card_number = 0 @hint_text = "" @answer_options = ANSWER_OPTIONS + @question_number = 21 end ANSWER_OPTIONS = { diff --git a/app/models/form/lettings/questions/working_situation1.rb b/app/models/form/lettings/questions/working_situation1.rb index 20f5dc984..4975b4125 100644 --- a/app/models/form/lettings/questions/working_situation1.rb +++ b/app/models/form/lettings/questions/working_situation1.rb @@ -8,6 +8,7 @@ class Form::Lettings::Questions::WorkingSituation1 < ::Form::Question @check_answers_card_number = 1 @hint_text = "The lead tenant is the person in the household who does the most paid work. If several people do the same paid work, the lead tenant is whoever is the oldest." @answer_options = ANSWER_OPTIONS + @question_number = 37 end ANSWER_OPTIONS = { diff --git a/app/models/form/question.rb b/app/models/form/question.rb index fffa0059e..9ddacd68b 100644 --- a/app/models/form/question.rb +++ b/app/models/form/question.rb @@ -4,7 +4,7 @@ class Form::Question :conditional_for, :readonly, :answer_options, :page, :check_answer_label, :inferred_answers, :hidden_in_check_answers, :inferred_check_answers_value, :guidance_partial, :prefix, :suffix, :requires_js, :fields_added, :derived, - :check_answers_card_number, :unresolved_hint_text + :check_answers_card_number, :unresolved_hint_text, :question_number module GuidancePosition TOP = 1 @@ -40,6 +40,7 @@ class Form::Question @fields_added = hsh["fields_added"] @check_answers_card_number = hsh["check_answers_card_number"] || 0 @unresolved_hint_text = hsh["unresolved_hint_text"] + @question_number = hsh["question_number"] end end @@ -258,6 +259,12 @@ class Form::Question selected_answer_option_is_derived?(log) || has_inferred_check_answers_value?(log) end + def question_number_string(conditional: false) + if @question_number && !conditional && form.start_date.year >= 2023 + "Q#{@question_number}" + end + end + private def selected_answer_option_is_derived?(log) diff --git a/app/models/form/sales/pages/about_deposit_with_discount.rb b/app/models/form/sales/pages/about_deposit_with_discount.rb index 6a4a54071..1c684b0bc 100644 --- a/app/models/form/sales/pages/about_deposit_with_discount.rb +++ b/app/models/form/sales/pages/about_deposit_with_discount.rb @@ -8,7 +8,7 @@ class Form::Sales::Pages::AboutDepositWithDiscount < ::Form::Page def questions @questions ||= [ - Form::Sales::Questions::DepositAmount.new(nil, nil, self), + Form::Sales::Questions::DepositAmount.new(nil, nil, self, ownershipsch: 1), Form::Sales::Questions::DepositDiscount.new(nil, nil, self), ] end diff --git a/app/models/form/sales/pages/about_deposit_without_discount.rb b/app/models/form/sales/pages/about_deposit_without_discount.rb index e8e387eba..1114b8f84 100644 --- a/app/models/form/sales/pages/about_deposit_without_discount.rb +++ b/app/models/form/sales/pages/about_deposit_without_discount.rb @@ -1,15 +1,16 @@ class Form::Sales::Pages::AboutDepositWithoutDiscount < ::Form::Page - def initialize(id, hsh, subsection) - super + def initialize(id, hsh, subsection, ownershipsch:) + super(id, hsh, subsection) @header = "About the deposit" @depends_on = [{ "is_type_discount?" => false, "ownershipsch" => 1 }, { "ownershipsch" => 2 }, { "ownershipsch" => 3, "mortgageused" => 1 }] + @ownershipsch = ownershipsch end def questions @questions ||= [ - Form::Sales::Questions::DepositAmount.new(nil, nil, self), + Form::Sales::Questions::DepositAmount.new(nil, nil, self, ownershipsch: @ownershipsch), ] end end diff --git a/app/models/form/sales/pages/about_price_not_rtb.rb b/app/models/form/sales/pages/about_price_not_rtb.rb index c69b9a890..2f30548c7 100644 --- a/app/models/form/sales/pages/about_price_not_rtb.rb +++ b/app/models/form/sales/pages/about_price_not_rtb.rb @@ -11,7 +11,7 @@ class Form::Sales::Pages::AboutPriceNotRtb < ::Form::Page def questions @questions ||= [ - Form::Sales::Questions::PurchasePrice.new(nil, nil, self), + Form::Sales::Questions::PurchasePrice.new(nil, nil, self, ownershipsch: 2), Form::Sales::Questions::Grant.new(nil, nil, self), ] end diff --git a/app/models/form/sales/pages/about_price_rtb.rb b/app/models/form/sales/pages/about_price_rtb.rb index 35696e966..d8d20398f 100644 --- a/app/models/form/sales/pages/about_price_rtb.rb +++ b/app/models/form/sales/pages/about_price_rtb.rb @@ -10,7 +10,7 @@ class Form::Sales::Pages::AboutPriceRtb < ::Form::Page def questions @questions ||= [ - Form::Sales::Questions::PurchasePrice.new(nil, nil, self), + Form::Sales::Questions::PurchasePrice.new(nil, nil, self, ownershipsch: 2), Form::Sales::Questions::Discount.new(nil, nil, self), ] end diff --git a/app/models/form/sales/pages/extra_borrowing.rb b/app/models/form/sales/pages/extra_borrowing.rb index 7fb8b08a4..4bb8d0530 100644 --- a/app/models/form/sales/pages/extra_borrowing.rb +++ b/app/models/form/sales/pages/extra_borrowing.rb @@ -1,6 +1,7 @@ class Form::Sales::Pages::ExtraBorrowing < ::Form::Page - def initialize(id, hsh, subsection) - super + def initialize(id, hsh, subsection, ownershipsch:) + super(id, hsh, subsection) + @ownershipsch = ownershipsch @header = "" @description = "" @subsection = subsection @@ -11,7 +12,7 @@ class Form::Sales::Pages::ExtraBorrowing < ::Form::Page def questions @questions ||= [ - Form::Sales::Questions::ExtraBorrowing.new(nil, nil, self), + Form::Sales::Questions::ExtraBorrowing.new(nil, nil, self, ownershipsch: @ownershipsch), ] end end diff --git a/app/models/form/sales/pages/leasehold_charges.rb b/app/models/form/sales/pages/leasehold_charges.rb index 93382cf18..a27c25e1d 100644 --- a/app/models/form/sales/pages/leasehold_charges.rb +++ b/app/models/form/sales/pages/leasehold_charges.rb @@ -1,8 +1,13 @@ class Form::Sales::Pages::LeaseholdCharges < ::Form::Page + def initialize(id, hsh, subsection, ownershipsch:) + super(id, hsh, subsection) + @ownershipsch = ownershipsch + end + def questions @questions ||= [ - Form::Sales::Questions::LeaseholdChargesKnown.new(nil, nil, self), - Form::Sales::Questions::LeaseholdCharges.new(nil, nil, self), + Form::Sales::Questions::LeaseholdChargesKnown.new(nil, nil, self, ownershipsch: @ownershipsch), + Form::Sales::Questions::LeaseholdCharges.new(nil, nil, self, ownershipsch: @ownershipsch), ] end end diff --git a/app/models/form/sales/pages/living_before_purchase.rb b/app/models/form/sales/pages/living_before_purchase.rb index ac61ab1de..205b75e66 100644 --- a/app/models/form/sales/pages/living_before_purchase.rb +++ b/app/models/form/sales/pages/living_before_purchase.rb @@ -1,14 +1,19 @@ class Form::Sales::Pages::LivingBeforePurchase < ::Form::Page + def initialize(id, hsh, subsection, ownershipsch:) + super(id, hsh, subsection) + @ownershipsch = ownershipsch + end + def questions @questions ||= [ living_before_purchase, - Form::Sales::Questions::LivingBeforePurchaseYears.new(nil, nil, self), + Form::Sales::Questions::LivingBeforePurchaseYears.new(nil, nil, self, ownershipsch: @ownershipsch), ].compact end def living_before_purchase if form.start_date.year >= 2023 - Form::Sales::Questions::LivingBeforePurchase.new(nil, nil, self) + Form::Sales::Questions::LivingBeforePurchase.new(nil, nil, self, ownershipsch: @ownershipsch) end end end diff --git a/app/models/form/sales/pages/mortgage_amount.rb b/app/models/form/sales/pages/mortgage_amount.rb index 153c3bbe6..793570b46 100644 --- a/app/models/form/sales/pages/mortgage_amount.rb +++ b/app/models/form/sales/pages/mortgage_amount.rb @@ -1,6 +1,7 @@ class Form::Sales::Pages::MortgageAmount < ::Form::Page - def initialize(id, hsh, subsection) - super + def initialize(id, hsh, subsection, ownershipsch:) + super(id, hsh, subsection) + @ownershipsch = ownershipsch @header = "Mortgage Amount" @depends_on = [{ "mortgageused" => 1, @@ -9,7 +10,7 @@ class Form::Sales::Pages::MortgageAmount < ::Form::Page def questions @questions ||= [ - Form::Sales::Questions::MortgageAmount.new(nil, nil, self), + Form::Sales::Questions::MortgageAmount.new(nil, nil, self, ownershipsch: @ownershipsch), ] end end diff --git a/app/models/form/sales/pages/mortgage_lender.rb b/app/models/form/sales/pages/mortgage_lender.rb index 552d7abf8..f187815b1 100644 --- a/app/models/form/sales/pages/mortgage_lender.rb +++ b/app/models/form/sales/pages/mortgage_lender.rb @@ -1,6 +1,7 @@ class Form::Sales::Pages::MortgageLender < ::Form::Page - def initialize(id, hsh, subsection) - super + def initialize(id, hsh, subsection, ownershipsch:) + super(id, hsh, subsection) + @ownershipsch = ownershipsch @header = "" @description = "" @subsection = subsection @@ -11,7 +12,7 @@ class Form::Sales::Pages::MortgageLender < ::Form::Page def questions @questions ||= [ - Form::Sales::Questions::MortgageLender.new(nil, nil, self), + Form::Sales::Questions::MortgageLender.new(nil, nil, self, ownershipsch: @ownershipsch), ] end end diff --git a/app/models/form/sales/pages/mortgage_lender_other.rb b/app/models/form/sales/pages/mortgage_lender_other.rb index a4f6aaf90..903a7dba8 100644 --- a/app/models/form/sales/pages/mortgage_lender_other.rb +++ b/app/models/form/sales/pages/mortgage_lender_other.rb @@ -1,6 +1,7 @@ class Form::Sales::Pages::MortgageLenderOther < ::Form::Page - def initialize(id, hsh, subsection) - super + def initialize(id, hsh, subsection, ownershipsch:) + super(id, hsh, subsection) + @ownershipsch = ownershipsch @header = "" @description = "" @subsection = subsection @@ -11,7 +12,7 @@ class Form::Sales::Pages::MortgageLenderOther < ::Form::Page def questions @questions ||= [ - Form::Sales::Questions::MortgageLenderOther.new(nil, nil, self), + Form::Sales::Questions::MortgageLenderOther.new(nil, nil, self, ownershipsch: @ownershipsch), ] end end diff --git a/app/models/form/sales/pages/mortgage_length.rb b/app/models/form/sales/pages/mortgage_length.rb index 979369bdd..dbc01a695 100644 --- a/app/models/form/sales/pages/mortgage_length.rb +++ b/app/models/form/sales/pages/mortgage_length.rb @@ -1,6 +1,7 @@ class Form::Sales::Pages::MortgageLength < ::Form::Page - def initialize(id, hsh, subsection) - super + def initialize(id, hsh, subsection, ownershipsch:) + super(id, hsh, subsection) + @ownershipsch = ownershipsch @depends_on = [{ "mortgageused" => 1, }] @@ -8,7 +9,7 @@ class Form::Sales::Pages::MortgageLength < ::Form::Page def questions @questions ||= [ - Form::Sales::Questions::MortgageLength.new(nil, nil, self), + Form::Sales::Questions::MortgageLength.new(nil, nil, self, ownershipsch: @ownershipsch), ] end end diff --git a/app/models/form/sales/pages/mortgageused.rb b/app/models/form/sales/pages/mortgageused.rb index 4a22c480e..f9d8eae2e 100644 --- a/app/models/form/sales/pages/mortgageused.rb +++ b/app/models/form/sales/pages/mortgageused.rb @@ -1,7 +1,12 @@ class Form::Sales::Pages::Mortgageused < ::Form::Page + def initialize(id, hsh, subsection, ownershipsch:) + super(id, hsh, subsection) + @ownershipsch = ownershipsch + end + def questions @questions ||= [ - Form::Sales::Questions::Mortgageused.new(nil, nil, self), + Form::Sales::Questions::Mortgageused.new(nil, nil, self, ownershipsch: @ownershipsch), ] end end diff --git a/app/models/form/sales/pages/purchase_price_outright_ownership.rb b/app/models/form/sales/pages/purchase_price_outright_ownership.rb index 6bf044d01..a5e995ed6 100644 --- a/app/models/form/sales/pages/purchase_price_outright_ownership.rb +++ b/app/models/form/sales/pages/purchase_price_outright_ownership.rb @@ -1,14 +1,15 @@ class Form::Sales::Pages::PurchasePriceOutrightOwnership < ::Form::Page - def initialize(id, hsh, subsection) - super + def initialize(id, hsh, subsection, ownershipsch:) + super(id, hsh, subsection) @depends_on = [ { "outright_sale_or_discounted_with_full_ownership?" => true }, ] + @ownershipsch = ownershipsch end def questions @questions ||= [ - Form::Sales::Questions::PurchasePriceOutrightOwnership.new(nil, nil, self), + Form::Sales::Questions::PurchasePrice.new(nil, nil, self, ownershipsch: @ownershipsch), ] end end diff --git a/app/models/form/sales/questions/age1.rb b/app/models/form/sales/questions/age1.rb index 94d40100f..d32083b53 100644 --- a/app/models/form/sales/questions/age1.rb +++ b/app/models/form/sales/questions/age1.rb @@ -19,5 +19,6 @@ class Form::Sales::Questions::Age1 < ::Form::Question @check_answers_card_number = 1 @min = 16 @max = 110 + @question_number = 20 end end diff --git a/app/models/form/sales/questions/age2.rb b/app/models/form/sales/questions/age2.rb index 9ba347ec8..c0dc567a1 100644 --- a/app/models/form/sales/questions/age2.rb +++ b/app/models/form/sales/questions/age2.rb @@ -13,5 +13,6 @@ class Form::Sales::Questions::Age2 < ::Form::Question @check_answers_card_number = 2 @max = 110 @min = 0 + @question_number = 28 end end diff --git a/app/models/form/sales/questions/armed_forces.rb b/app/models/form/sales/questions/armed_forces.rb index af003c5b2..3d5aa5621 100644 --- a/app/models/form/sales/questions/armed_forces.rb +++ b/app/models/form/sales/questions/armed_forces.rb @@ -7,6 +7,7 @@ class Form::Sales::Questions::ArmedForces < ::Form::Question @type = "radio" @hint_text = "A regular is somebody who has served in the Royal Navy, the Royal Marines, the Royal Airforce or Army full time and does not include reserve forces" @answer_options = ANSWER_OPTIONS + @question_number = 62 end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/armed_forces_spouse.rb b/app/models/form/sales/questions/armed_forces_spouse.rb index cf38bd434..f6857d6b7 100644 --- a/app/models/form/sales/questions/armed_forces_spouse.rb +++ b/app/models/form/sales/questions/armed_forces_spouse.rb @@ -6,6 +6,7 @@ class Form::Sales::Questions::ArmedForcesSpouse < ::Form::Question @header = "Are any of the buyers a spouse or civil partner of a UK armed forces regular who died in service within the last 2 years?" @type = "radio" @answer_options = ANSWER_OPTIONS + @question_number = 64 end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/buyer1_age_known.rb b/app/models/form/sales/questions/buyer1_age_known.rb index 761bacddb..566ae8f7d 100644 --- a/app/models/form/sales/questions/buyer1_age_known.rb +++ b/app/models/form/sales/questions/buyer1_age_known.rb @@ -24,6 +24,7 @@ class Form::Sales::Questions::Buyer1AgeKnown < ::Form::Question ], } @check_answers_card_number = 1 + @question_number = 20 end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/buyer1_ethnic_background_arab.rb b/app/models/form/sales/questions/buyer1_ethnic_background_arab.rb index 19526f5b7..5b603deda 100644 --- a/app/models/form/sales/questions/buyer1_ethnic_background_arab.rb +++ b/app/models/form/sales/questions/buyer1_ethnic_background_arab.rb @@ -3,11 +3,12 @@ class Form::Sales::Questions::Buyer1EthnicBackgroundArab < ::Form::Question super @id = "ethnic" @check_answer_label = "Buyer 1’s ethnic background" - @header = "Which of the following best describes the buyer 1’s Arab background?" + @header = "Which of the following best describes buyer 1’s Arab background?" @type = "radio" @answer_options = ANSWER_OPTIONS @hint_text = "Buyer 1 is the person in the household who does the most paid work. If it’s a joint purchase and the buyers do the same amount of paid work, buyer 1 is whoever is the oldest." @check_answers_card_number = 1 + @question_number = 23 end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/buyer1_ethnic_background_asian.rb b/app/models/form/sales/questions/buyer1_ethnic_background_asian.rb index ee910c054..4e851edd3 100644 --- a/app/models/form/sales/questions/buyer1_ethnic_background_asian.rb +++ b/app/models/form/sales/questions/buyer1_ethnic_background_asian.rb @@ -3,11 +3,12 @@ class Form::Sales::Questions::Buyer1EthnicBackgroundAsian < ::Form::Question super @id = "ethnic" @check_answer_label = "Buyer 1’s ethnic background" - @header = "Which of the following best describes the buyer 1’s Asian or Asian British background?" + @header = "Which of the following best describes buyer 1’s Asian or Asian British background?" @type = "radio" @answer_options = ANSWER_OPTIONS @hint_text = "Buyer 1 is the person in the household who does the most paid work. If it’s a joint purchase and the buyers do the same amount of paid work, buyer 1 is whoever is the oldest." @check_answers_card_number = 1 + @question_number = 23 end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/buyer1_ethnic_background_black.rb b/app/models/form/sales/questions/buyer1_ethnic_background_black.rb index 4c24f1433..16e341a5a 100644 --- a/app/models/form/sales/questions/buyer1_ethnic_background_black.rb +++ b/app/models/form/sales/questions/buyer1_ethnic_background_black.rb @@ -3,11 +3,12 @@ class Form::Sales::Questions::Buyer1EthnicBackgroundBlack < ::Form::Question super @id = "ethnic" @check_answer_label = "Buyer 1’s ethnic background" - @header = "Which of the following best describes the buyer 1’s Black, African, Caribbean or Black British background?" + @header = "Which of the following best describes buyer 1’s Black, African, Caribbean or Black British background?" @type = "radio" @answer_options = ANSWER_OPTIONS @hint_text = "Buyer 1 is the person in the household who does the most paid work. If it’s a joint purchase and the buyers do the same amount of paid work, buyer 1 is whoever is the oldest." @check_answers_card_number = 1 + @question_number = 23 end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/buyer1_ethnic_background_mixed.rb b/app/models/form/sales/questions/buyer1_ethnic_background_mixed.rb index 8fa879949..b35a4563f 100644 --- a/app/models/form/sales/questions/buyer1_ethnic_background_mixed.rb +++ b/app/models/form/sales/questions/buyer1_ethnic_background_mixed.rb @@ -3,11 +3,12 @@ class Form::Sales::Questions::Buyer1EthnicBackgroundMixed < ::Form::Question super @id = "ethnic" @check_answer_label = "Buyer 1’s ethnic background" - @header = "Which of the following best describes the buyer 1’s Mixed or Multiple ethnic groups background?" + @header = "Which of the following best describes buyer 1’s Mixed or Multiple ethnic groups background?" @type = "radio" @answer_options = ANSWER_OPTIONS @hint_text = "Buyer 1 is the person in the household who does the most paid work. If it’s a joint purchase and the buyers do the same amount of paid work, buyer 1 is whoever is the oldest." @check_answers_card_number = 1 + @question_number = 23 end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/buyer1_ethnic_background_white.rb b/app/models/form/sales/questions/buyer1_ethnic_background_white.rb index 4b7ec9182..644839979 100644 --- a/app/models/form/sales/questions/buyer1_ethnic_background_white.rb +++ b/app/models/form/sales/questions/buyer1_ethnic_background_white.rb @@ -3,11 +3,12 @@ class Form::Sales::Questions::Buyer1EthnicBackgroundWhite < ::Form::Question super @id = "ethnic" @check_answer_label = "Buyer 1’s ethnic background" - @header = "Which of the following best describes the buyer 1’s White background?" + @header = "Which of the following best describes buyer 1’s White background?" @type = "radio" @answer_options = ANSWER_OPTIONS @hint_text = "Buyer 1 is the person in the household who does the most paid work. If it’s a joint purchase and the buyers do the same amount of paid work, buyer 1 is whoever is the oldest." @check_answers_card_number = 1 + @question_number = 23 end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/buyer1_ethnic_group.rb b/app/models/form/sales/questions/buyer1_ethnic_group.rb index ab151d84d..c33641b73 100644 --- a/app/models/form/sales/questions/buyer1_ethnic_group.rb +++ b/app/models/form/sales/questions/buyer1_ethnic_group.rb @@ -14,6 +14,7 @@ class Form::Sales::Questions::Buyer1EthnicGroup < ::Form::Question "value" => "Prefers not to say", }] @check_answers_card_number = 1 + @question_number = 22 end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/buyer1_income.rb b/app/models/form/sales/questions/buyer1_income.rb index 43451af50..089747d8e 100644 --- a/app/models/form/sales/questions/buyer1_income.rb +++ b/app/models/form/sales/questions/buyer1_income.rb @@ -12,5 +12,6 @@ class Form::Sales::Questions::Buyer1Income < ::Form::Question @width = 5 @prefix = "£" @check_answers_card_number = 1 + @question_number = 67 end end diff --git a/app/models/form/sales/questions/buyer1_income_known.rb b/app/models/form/sales/questions/buyer1_income_known.rb index 64462fa59..b5fb9e1f1 100644 --- a/app/models/form/sales/questions/buyer1_income_known.rb +++ b/app/models/form/sales/questions/buyer1_income_known.rb @@ -2,7 +2,7 @@ class Form::Sales::Questions::Buyer1IncomeKnown < ::Form::Question def initialize(id, hsh, page) super @id = "income1nk" - @check_answer_label = "Buyer 1’s gross annual income" + @check_answer_label = "Buyer 1’s gross annual income known?" @header = "Do you know buyer 1’s annual income?" @type = "radio" @answer_options = ANSWER_OPTIONS @@ -10,6 +10,14 @@ class Form::Sales::Questions::Buyer1IncomeKnown < ::Form::Question "income1" => [0], } @check_answers_card_number = 1 + @question_number = 67 + @hidden_in_check_answers = { + "depends_on" => [ + { + "income1nk" => 0, + }, + ], + } end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/buyer1_live_in_property.rb b/app/models/form/sales/questions/buyer1_live_in_property.rb index 4f18f60df..72c269fc9 100644 --- a/app/models/form/sales/questions/buyer1_live_in_property.rb +++ b/app/models/form/sales/questions/buyer1_live_in_property.rb @@ -8,6 +8,7 @@ class Form::Sales::Questions::Buyer1LiveInProperty < ::Form::Question @answer_options = ANSWER_OPTIONS @hint_text = "Buyer 1 is the person in the household who does the most paid work. If it’s a joint purchase and the buyers do the same amount of paid work, buyer 1 is whoever is the oldest." @check_answers_card_number = 1 + @question_number = 26 end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/buyer1_mortgage.rb b/app/models/form/sales/questions/buyer1_mortgage.rb index baaf00d4c..6db5a699f 100644 --- a/app/models/form/sales/questions/buyer1_mortgage.rb +++ b/app/models/form/sales/questions/buyer1_mortgage.rb @@ -7,6 +7,7 @@ class Form::Sales::Questions::Buyer1Mortgage < ::Form::Question @type = "radio" @answer_options = ANSWER_OPTIONS @check_answers_card_number = 1 + @question_number = 68 end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/buyer1_previous_tenure.rb b/app/models/form/sales/questions/buyer1_previous_tenure.rb index 2795cee2b..6341bee8f 100644 --- a/app/models/form/sales/questions/buyer1_previous_tenure.rb +++ b/app/models/form/sales/questions/buyer1_previous_tenure.rb @@ -6,6 +6,7 @@ class Form::Sales::Questions::Buyer1PreviousTenure < ::Form::Question @header = "What was buyer 1’s previous tenure?" @type = "radio" @answer_options = answer_options + @question_number = 56 end def answer_options diff --git a/app/models/form/sales/questions/buyer1_working_situation.rb b/app/models/form/sales/questions/buyer1_working_situation.rb index 79db1790b..8d88e2422 100644 --- a/app/models/form/sales/questions/buyer1_working_situation.rb +++ b/app/models/form/sales/questions/buyer1_working_situation.rb @@ -14,6 +14,7 @@ class Form::Sales::Questions::Buyer1WorkingSituation < ::Form::Question }, "value" => "Prefers not to say", }] + @question_number = 25 end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/buyer2_age_known.rb b/app/models/form/sales/questions/buyer2_age_known.rb index c100d0b67..c71123452 100644 --- a/app/models/form/sales/questions/buyer2_age_known.rb +++ b/app/models/form/sales/questions/buyer2_age_known.rb @@ -20,6 +20,7 @@ class Form::Sales::Questions::Buyer2AgeKnown < ::Form::Question ], } @check_answers_card_number = 2 + @question_number = 28 end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/buyer2_ethnic_background_arab.rb b/app/models/form/sales/questions/buyer2_ethnic_background_arab.rb index 1766780b7..d2c590c0a 100644 --- a/app/models/form/sales/questions/buyer2_ethnic_background_arab.rb +++ b/app/models/form/sales/questions/buyer2_ethnic_background_arab.rb @@ -3,10 +3,11 @@ class Form::Sales::Questions::Buyer2EthnicBackgroundArab < ::Form::Question super @id = "ethnicbuy2" @check_answer_label = "Buyer 2’s ethnic background" - @header = "Which of the following best describes the buyer 2’s Arab background?" + @header = "Which of the following best describes buyer 2’s Arab background?" @type = "radio" @answer_options = ANSWER_OPTIONS @check_answers_card_number = 2 + @question_number = 31 end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/buyer2_ethnic_background_asian.rb b/app/models/form/sales/questions/buyer2_ethnic_background_asian.rb index 2578d220a..e74d5a4ba 100644 --- a/app/models/form/sales/questions/buyer2_ethnic_background_asian.rb +++ b/app/models/form/sales/questions/buyer2_ethnic_background_asian.rb @@ -3,10 +3,11 @@ class Form::Sales::Questions::Buyer2EthnicBackgroundAsian < ::Form::Question super @id = "ethnicbuy2" @check_answer_label = "Buyer 2’s ethnic background" - @header = "Which of the following best describes the buyer 2’s Asian or Asian British background?" + @header = "Which of the following best describes buyer 2’s Asian or Asian British background?" @type = "radio" @answer_options = ANSWER_OPTIONS @check_answers_card_number = 2 + @question_number = 31 end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/buyer2_ethnic_background_black.rb b/app/models/form/sales/questions/buyer2_ethnic_background_black.rb index 11d47790c..8442e9431 100644 --- a/app/models/form/sales/questions/buyer2_ethnic_background_black.rb +++ b/app/models/form/sales/questions/buyer2_ethnic_background_black.rb @@ -3,10 +3,11 @@ class Form::Sales::Questions::Buyer2EthnicBackgroundBlack < ::Form::Question super @id = "ethnicbuy2" @check_answer_label = "Buyer 2’s ethnic background" - @header = "Which of the following best describes the buyer 2’s Black, African, Caribbean or Black British background?" + @header = "Which of the following best describes buyer 2’s Black, African, Caribbean or Black British background?" @type = "radio" @answer_options = ANSWER_OPTIONS @check_answers_card_number = 2 + @question_number = 31 end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/buyer2_ethnic_background_mixed.rb b/app/models/form/sales/questions/buyer2_ethnic_background_mixed.rb index 78600af34..a610644ef 100644 --- a/app/models/form/sales/questions/buyer2_ethnic_background_mixed.rb +++ b/app/models/form/sales/questions/buyer2_ethnic_background_mixed.rb @@ -3,10 +3,11 @@ class Form::Sales::Questions::Buyer2EthnicBackgroundMixed < ::Form::Question super @id = "ethnicbuy2" @check_answer_label = "Buyer 2’s ethnic background" - @header = "Which of the following best describes the buyer 2’s Mixed or Multiple ethnic groups background?" + @header = "Which of the following best describes buyer 2’s Mixed or Multiple ethnic groups background?" @type = "radio" @answer_options = ANSWER_OPTIONS @check_answers_card_number = 2 + @question_number = 31 end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/buyer2_ethnic_background_white.rb b/app/models/form/sales/questions/buyer2_ethnic_background_white.rb index 5b5fc8e2c..1500072e1 100644 --- a/app/models/form/sales/questions/buyer2_ethnic_background_white.rb +++ b/app/models/form/sales/questions/buyer2_ethnic_background_white.rb @@ -3,10 +3,11 @@ class Form::Sales::Questions::Buyer2EthnicBackgroundWhite < ::Form::Question super @id = "ethnicbuy2" @check_answer_label = "Buyer 2’s ethnic background" - @header = "Which of the following best describes the buyer 2’s White background?" + @header = "Which of the following best describes buyer 2’s White background?" @type = "radio" @answer_options = ANSWER_OPTIONS @check_answers_card_number = 2 + @question_number = 31 end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/buyer2_ethnic_group.rb b/app/models/form/sales/questions/buyer2_ethnic_group.rb index 5366910fe..dd0ab8866 100644 --- a/app/models/form/sales/questions/buyer2_ethnic_group.rb +++ b/app/models/form/sales/questions/buyer2_ethnic_group.rb @@ -13,6 +13,7 @@ class Form::Sales::Questions::Buyer2EthnicGroup < ::Form::Question "value" => "Prefers not to say", }] @check_answers_card_number = 2 + @question_number = 30 end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/buyer2_income.rb b/app/models/form/sales/questions/buyer2_income.rb index f7d96720b..8cc0cd288 100644 --- a/app/models/form/sales/questions/buyer2_income.rb +++ b/app/models/form/sales/questions/buyer2_income.rb @@ -12,5 +12,6 @@ class Form::Sales::Questions::Buyer2Income < ::Form::Question @width = 5 @prefix = "£" @check_answers_card_number = 2 + @question_number = 69 end end diff --git a/app/models/form/sales/questions/buyer2_income_known.rb b/app/models/form/sales/questions/buyer2_income_known.rb index 0b4613809..7409383fa 100644 --- a/app/models/form/sales/questions/buyer2_income_known.rb +++ b/app/models/form/sales/questions/buyer2_income_known.rb @@ -2,7 +2,7 @@ class Form::Sales::Questions::Buyer2IncomeKnown < ::Form::Question def initialize(id, hsh, page) super @id = "income2nk" - @check_answer_label = "Buyer 2’s gross annual income" + @check_answer_label = "Buyer 2’s gross annual income known?" @header = "Do you know buyer 2’s annual income?" @type = "radio" @answer_options = ANSWER_OPTIONS @@ -10,6 +10,14 @@ class Form::Sales::Questions::Buyer2IncomeKnown < ::Form::Question "income2" => [0], } @check_answers_card_number = 2 + @question_number = 69 + @hidden_in_check_answers = { + "depends_on" => [ + { + "income2nk" => 0, + }, + ], + } end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/buyer2_live_in_property.rb b/app/models/form/sales/questions/buyer2_live_in_property.rb index 162627905..367a434b4 100644 --- a/app/models/form/sales/questions/buyer2_live_in_property.rb +++ b/app/models/form/sales/questions/buyer2_live_in_property.rb @@ -7,6 +7,7 @@ class Form::Sales::Questions::Buyer2LiveInProperty < ::Form::Question @type = "radio" @answer_options = ANSWER_OPTIONS @check_answers_card_number = 2 + @question_number = 34 end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/buyer2_living_in.rb b/app/models/form/sales/questions/buyer2_living_in.rb index 1494e61a2..9440e1370 100644 --- a/app/models/form/sales/questions/buyer2_living_in.rb +++ b/app/models/form/sales/questions/buyer2_living_in.rb @@ -7,6 +7,7 @@ class Form::Sales::Questions::Buyer2LivingIn < ::Form::Question @type = "radio" @hint_text = "" @answer_options = ANSWER_OPTIONS + @question_number = 60 end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/buyer2_mortgage.rb b/app/models/form/sales/questions/buyer2_mortgage.rb index 884137df1..9c0ef029f 100644 --- a/app/models/form/sales/questions/buyer2_mortgage.rb +++ b/app/models/form/sales/questions/buyer2_mortgage.rb @@ -7,6 +7,7 @@ class Form::Sales::Questions::Buyer2Mortgage < ::Form::Question @type = "radio" @answer_options = ANSWER_OPTIONS @check_answers_card_number = 2 + @question_number = 70 end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/buyer2_relationship_to_buyer1.rb b/app/models/form/sales/questions/buyer2_relationship_to_buyer1.rb index 678219be8..2d5ed8427 100644 --- a/app/models/form/sales/questions/buyer2_relationship_to_buyer1.rb +++ b/app/models/form/sales/questions/buyer2_relationship_to_buyer1.rb @@ -13,6 +13,7 @@ class Form::Sales::Questions::Buyer2RelationshipToBuyer1 < ::Form::Question }, "value" => "Prefers not to say", }] + @question_number = 27 end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/buyer2_working_situation.rb b/app/models/form/sales/questions/buyer2_working_situation.rb index 21c68b456..9cd82cd68 100644 --- a/app/models/form/sales/questions/buyer2_working_situation.rb +++ b/app/models/form/sales/questions/buyer2_working_situation.rb @@ -13,6 +13,7 @@ class Form::Sales::Questions::Buyer2WorkingSituation < ::Form::Question }, "value" => "Prefers not to say", }] + @question_number = 33 end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/buyer_company.rb b/app/models/form/sales/questions/buyer_company.rb index 1dac995b0..55a84019a 100644 --- a/app/models/form/sales/questions/buyer_company.rb +++ b/app/models/form/sales/questions/buyer_company.rb @@ -6,6 +6,7 @@ class Form::Sales::Questions::BuyerCompany < ::Form::Question @header = "Is the buyer a company?" @type = "radio" @answer_options = ANSWER_OPTIONS + @question_number = 7 end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/buyer_interview.rb b/app/models/form/sales/questions/buyer_interview.rb index b157c05cc..aa737171f 100644 --- a/app/models/form/sales/questions/buyer_interview.rb +++ b/app/models/form/sales/questions/buyer_interview.rb @@ -7,6 +7,7 @@ class Form::Sales::Questions::BuyerInterview < ::Form::Question @type = "radio" @hint_text = "You should still try to answer all questions even if the buyer wasn't interviewed in person" @answer_options = ANSWER_OPTIONS + @question_number = 18 end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/buyer_live.rb b/app/models/form/sales/questions/buyer_live.rb index a8aeb0401..ee0a79611 100644 --- a/app/models/form/sales/questions/buyer_live.rb +++ b/app/models/form/sales/questions/buyer_live.rb @@ -6,6 +6,7 @@ class Form::Sales::Questions::BuyerLive < ::Form::Question @header = "Will the buyers live in the property?" @type = "radio" @answer_options = ANSWER_OPTIONS + @question_number = 8 end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/buyer_previous.rb b/app/models/form/sales/questions/buyer_previous.rb index 15fe330f0..4a851a487 100644 --- a/app/models/form/sales/questions/buyer_previous.rb +++ b/app/models/form/sales/questions/buyer_previous.rb @@ -6,6 +6,7 @@ class Form::Sales::Questions::BuyerPrevious < ::Form::Question @header = I18n.t("questions.soctenant", count: joint_purchase ? 2 : 1) @type = "radio" @answer_options = ANSWER_OPTIONS + @question_number = 84 end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/buyer_still_serving.rb b/app/models/form/sales/questions/buyer_still_serving.rb index 04929fb42..75a525d1b 100644 --- a/app/models/form/sales/questions/buyer_still_serving.rb +++ b/app/models/form/sales/questions/buyer_still_serving.rb @@ -6,6 +6,7 @@ class Form::Sales::Questions::BuyerStillServing < ::Form::Question @header = "Is the buyer still serving in the UK armed forces?" @type = "radio" @answer_options = ANSWER_OPTIONS + @question_number = 63 end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/buyers_organisations.rb b/app/models/form/sales/questions/buyers_organisations.rb index ec76aebcd..1ab8a81e8 100644 --- a/app/models/form/sales/questions/buyers_organisations.rb +++ b/app/models/form/sales/questions/buyers_organisations.rb @@ -7,6 +7,7 @@ class Form::Sales::Questions::BuyersOrganisations < ::Form::Question @type = "checkbox" @hint_text = "Select all that apply" @answer_options = ANSWER_OPTIONS + @question_number = 59 end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/deposit_amount.rb b/app/models/form/sales/questions/deposit_amount.rb index e4fd4ceb2..fb6c0e563 100644 --- a/app/models/form/sales/questions/deposit_amount.rb +++ b/app/models/form/sales/questions/deposit_amount.rb @@ -1,6 +1,6 @@ class Form::Sales::Questions::DepositAmount < ::Form::Question - def initialize(id, hsh, page) - super + def initialize(id, hsh, subsection, ownershipsch:) + super(id, hsh, subsection) @id = "deposit" @check_answer_label = "Cash deposit" @header = "How much cash deposit was paid on the property?" @@ -11,9 +11,22 @@ class Form::Sales::Questions::DepositAmount < ::Form::Question @prefix = "£" @hint_text = "Enter the total cash sum paid by the buyer towards the property that was not funded by the mortgage" @derived = true + @ownershipsch = ownershipsch + @question_number = question_number end def selected_answer_option_is_derived?(_log) true end + + def question_number + case @ownershipsch + when 1 + 95 + when 2 + 108 + when 3 + 116 + end + end end diff --git a/app/models/form/sales/questions/deposit_discount.rb b/app/models/form/sales/questions/deposit_discount.rb index b23a3e1b4..577da5a91 100644 --- a/app/models/form/sales/questions/deposit_discount.rb +++ b/app/models/form/sales/questions/deposit_discount.rb @@ -10,5 +10,6 @@ class Form::Sales::Questions::DepositDiscount < ::Form::Question @width = 5 @prefix = "£" @hint_text = "Enter the total cash discount given on the property being purchased through the Social HomeBuy scheme" + @question_number = 96 end end diff --git a/app/models/form/sales/questions/discount.rb b/app/models/form/sales/questions/discount.rb index 01ae38fd5..8c5cf7132 100644 --- a/app/models/form/sales/questions/discount.rb +++ b/app/models/form/sales/questions/discount.rb @@ -12,5 +12,6 @@ class Form::Sales::Questions::Discount < ::Form::Question @hint_text = "For Right to Buy (RTB), Preserved Right to Buy (PRTB), and Voluntary Right to Buy (VRTB)

If discount capped, enter capped %

If the property is being sold to an existing tenant under the RTB, PRTB, or VRTB schemes, enter the % discount from the full market value that is being given." + @question_number = 102 end end diff --git a/app/models/form/sales/questions/discounted_ownership_type.rb b/app/models/form/sales/questions/discounted_ownership_type.rb index f75d83c01..99e10b1db 100644 --- a/app/models/form/sales/questions/discounted_ownership_type.rb +++ b/app/models/form/sales/questions/discounted_ownership_type.rb @@ -6,6 +6,7 @@ class Form::Sales::Questions::DiscountedOwnershipType < ::Form::Question @header = "What is the type of discounted ownership sale?" @type = "radio" @answer_options = ANSWER_OPTIONS + @question_number = 5 end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/equity.rb b/app/models/form/sales/questions/equity.rb index 7dec2ac37..0119fea69 100644 --- a/app/models/form/sales/questions/equity.rb +++ b/app/models/form/sales/questions/equity.rb @@ -10,5 +10,6 @@ class Form::Sales::Questions::Equity < ::Form::Question @width = 5 @suffix = "%" @hint_text = "Enter the amount of initial equity held by the purchaser (for example, 25% or 50%)" + @question_number = 89 end end diff --git a/app/models/form/sales/questions/exchange_date.rb b/app/models/form/sales/questions/exchange_date.rb index 69b8ec39f..9e3ede3f4 100644 --- a/app/models/form/sales/questions/exchange_date.rb +++ b/app/models/form/sales/questions/exchange_date.rb @@ -5,5 +5,6 @@ class Form::Sales::Questions::ExchangeDate < ::Form::Question @check_answer_label = "Exchange of contracts date" @header = "What is the exchange of contracts date?" @type = "date" + @question_number = 81 end end diff --git a/app/models/form/sales/questions/extra_borrowing.rb b/app/models/form/sales/questions/extra_borrowing.rb index 04f906b22..f63413bba 100644 --- a/app/models/form/sales/questions/extra_borrowing.rb +++ b/app/models/form/sales/questions/extra_borrowing.rb @@ -1,6 +1,6 @@ class Form::Sales::Questions::ExtraBorrowing < ::Form::Question - def initialize(id, hsh, page) - super + def initialize(id, hsh, subsection, ownershipsch:) + super(id, hsh, subsection) @id = "extrabor" @check_answer_label = "Any other borrowing?" @header = "Does this include any extra borrowing?" @@ -8,6 +8,8 @@ class Form::Sales::Questions::ExtraBorrowing < ::Form::Question @answer_options = ANSWER_OPTIONS @page = page @hint_text = "" + @ownershipsch = ownershipsch + @question_number = question_number end ANSWER_OPTIONS = { @@ -15,4 +17,15 @@ class Form::Sales::Questions::ExtraBorrowing < ::Form::Question "2" => { "value" => "No" }, "3" => { "value" => "Don't know" }, }.freeze + + def question_number + case @ownershipsch + when 1 + 94 + when 2 + 107 + when 3 + 115 + end + end end diff --git a/app/models/form/sales/questions/fromprop.rb b/app/models/form/sales/questions/fromprop.rb index af33c67ea..88abc6b1b 100644 --- a/app/models/form/sales/questions/fromprop.rb +++ b/app/models/form/sales/questions/fromprop.rb @@ -8,6 +8,7 @@ class Form::Sales::Questions::Fromprop < ::Form::Question @hint_text = "" @page = page @answer_options = ANSWER_OPTIONS + @question_number = 86 end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/gender_identity1.rb b/app/models/form/sales/questions/gender_identity1.rb index c31a9cc0b..b9b47ee0a 100644 --- a/app/models/form/sales/questions/gender_identity1.rb +++ b/app/models/form/sales/questions/gender_identity1.rb @@ -8,6 +8,7 @@ class Form::Sales::Questions::GenderIdentity1 < ::Form::Question @hint_text = "Buyer 1 is the person in the household who does the most paid work. If it’s a joint purchase and the buyers do the same amount of paid work, buyer 1 is whoever is the oldest." @answer_options = ANSWER_OPTIONS @check_answers_card_number = 1 + @question_number = 21 end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/gender_identity2.rb b/app/models/form/sales/questions/gender_identity2.rb index e394ae325..15ef9fda1 100644 --- a/app/models/form/sales/questions/gender_identity2.rb +++ b/app/models/form/sales/questions/gender_identity2.rb @@ -13,6 +13,7 @@ class Form::Sales::Questions::GenderIdentity2 < ::Form::Question }, "value" => "Prefers not to say", }] + @question_number = 29 end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/grant.rb b/app/models/form/sales/questions/grant.rb index beef93c58..9b0fd3091 100644 --- a/app/models/form/sales/questions/grant.rb +++ b/app/models/form/sales/questions/grant.rb @@ -9,6 +9,7 @@ class Form::Sales::Questions::Grant < ::Form::Question @max = 999_999 @width = 5 @prefix = "£" - @hint_text = "For all schemes except Right to Buy (RTB), Preserved Right to Buy (PRTB), Voluntary Right to Buy (VRTB)" + @hint_text = "For all schemes except Right to Buy (RTB), Preserved Right to Buy (PRTB), Voluntary Right to Buy (VRTB) and Rent to Buy" + @question_number = 101 end end diff --git a/app/models/form/sales/questions/handover_date.rb b/app/models/form/sales/questions/handover_date.rb index 06a89eb04..389fe75d5 100644 --- a/app/models/form/sales/questions/handover_date.rb +++ b/app/models/form/sales/questions/handover_date.rb @@ -6,5 +6,6 @@ class Form::Sales::Questions::HandoverDate < ::Form::Question @header = "What is the practical completion or handover date?" @type = "date" @hint_text = "This is the date on which the building contractor hands over responsibility for the completed property to the private registered provider (PRP)" + @question_number = 82 end end diff --git a/app/models/form/sales/questions/household_disability.rb b/app/models/form/sales/questions/household_disability.rb index c0edef69c..894024c27 100644 --- a/app/models/form/sales/questions/household_disability.rb +++ b/app/models/form/sales/questions/household_disability.rb @@ -7,6 +7,7 @@ class Form::Sales::Questions::HouseholdDisability < ::Form::Question @type = "radio" @answer_options = ANSWER_OPTIONS @hint_text = "This includes any long-term health condition that has an impact on the person's day-to-day life" + @question_number = 65 end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/household_wheelchair.rb b/app/models/form/sales/questions/household_wheelchair.rb index 9266909dc..cff617bad 100644 --- a/app/models/form/sales/questions/household_wheelchair.rb +++ b/app/models/form/sales/questions/household_wheelchair.rb @@ -6,6 +6,7 @@ class Form::Sales::Questions::HouseholdWheelchair < ::Form::Question @type = "radio" @answer_options = ANSWER_OPTIONS @hint_text = "This can be inside or outside the home" + @question_number = 66 end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/housing_benefits.rb b/app/models/form/sales/questions/housing_benefits.rb index a4af620e6..d1baa7d38 100644 --- a/app/models/form/sales/questions/housing_benefits.rb +++ b/app/models/form/sales/questions/housing_benefits.rb @@ -6,6 +6,7 @@ class Form::Sales::Questions::HousingBenefits < ::Form::Question @header = "#{joint_purchase ? 'Were the buyers' : 'Was the buyer'} receiving any of these housing-related benefits immediately before buying this property?" @type = "radio" @answer_options = ANSWER_OPTIONS + @question_number = 71 end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/joint_purchase.rb b/app/models/form/sales/questions/joint_purchase.rb index e2bf0f754..3de66ae1e 100644 --- a/app/models/form/sales/questions/joint_purchase.rb +++ b/app/models/form/sales/questions/joint_purchase.rb @@ -6,6 +6,7 @@ class Form::Sales::Questions::JointPurchase < ::Form::Question @header = "Is this a joint purchase?" @type = "radio" @answer_options = ANSWER_OPTIONS + @question_number = 9 end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/la_nominations.rb b/app/models/form/sales/questions/la_nominations.rb index 806f7cfdd..c43c99a02 100644 --- a/app/models/form/sales/questions/la_nominations.rb +++ b/app/models/form/sales/questions/la_nominations.rb @@ -7,6 +7,7 @@ class Form::Sales::Questions::LaNominations < ::Form::Question @type = "radio" @answer_options = ANSWER_OPTIONS @hint_text = "A local authority nominations agreement is a written agreement between a local authority and private registered provider (PRP) that some or all of its sales vacancies are offered to local authorities for rehousing" + @question_number = 83 end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/leasehold_charges.rb b/app/models/form/sales/questions/leasehold_charges.rb index ef9260c56..697a91b26 100644 --- a/app/models/form/sales/questions/leasehold_charges.rb +++ b/app/models/form/sales/questions/leasehold_charges.rb @@ -1,6 +1,6 @@ class Form::Sales::Questions::LeaseholdCharges < ::Form::Question - def initialize(id, hsh, page) - super + def initialize(id, hsh, subsection, ownershipsch:) + super(id, hsh, subsection) @id = "mscharge" @check_answer_label = "Monthly leasehold charges" @header = "Enter the total monthly charge" @@ -8,5 +8,18 @@ class Form::Sales::Questions::LeaseholdCharges < ::Form::Question @min = 0 @width = 5 @prefix = "£" + @ownershipsch = ownershipsch + @question_number = question_number + end + + def question_number + case @ownershipsch + when 1 + 98 + when 2 + 109 + when 3 + 117 + end end end diff --git a/app/models/form/sales/questions/leasehold_charges_known.rb b/app/models/form/sales/questions/leasehold_charges_known.rb index 2c28e1814..a800690e4 100644 --- a/app/models/form/sales/questions/leasehold_charges_known.rb +++ b/app/models/form/sales/questions/leasehold_charges_known.rb @@ -1,6 +1,6 @@ class Form::Sales::Questions::LeaseholdChargesKnown < ::Form::Question - def initialize(id, hsh, page) - super + def initialize(id, hsh, subsection, ownershipsch:) + super(id, hsh, subsection) @id = "mscharge_known" @check_answer_label = "Monthly leasehold charges known?" @header = "Does the property have any monthly leasehold charges?" @@ -17,10 +17,23 @@ class Form::Sales::Questions::LeaseholdChargesKnown < ::Form::Question }, ], } + @ownershipsch = ownershipsch + @question_number = question_number end ANSWER_OPTIONS = { "1" => { "value" => "Yes" }, "0" => { "value" => "No" }, }.freeze + + def question_number + case @ownershipsch + when 1 + 98 + when 2 + 109 + when 3 + 117 + end + end end diff --git a/app/models/form/sales/questions/living_before_purchase.rb b/app/models/form/sales/questions/living_before_purchase.rb index f631220dc..4080e34b6 100644 --- a/app/models/form/sales/questions/living_before_purchase.rb +++ b/app/models/form/sales/questions/living_before_purchase.rb @@ -1,6 +1,6 @@ class Form::Sales::Questions::LivingBeforePurchase < ::Form::Question - def initialize(id, hsh, page) - super + def initialize(id, hsh, page, ownershipsch:) + super(id, hsh, page) @id = "proplen_asked" @check_answer_label = "Buyer lived in the property before purchasing" @header = "Did the buyer live in the property before purchasing it?" @@ -17,10 +17,21 @@ class Form::Sales::Questions::LivingBeforePurchase < ::Form::Question }, ], } + @ownershipsch = ownershipsch + @question_number = question_number end ANSWER_OPTIONS = { "0" => { "value" => "Yes" }, "1" => { "value" => "No" }, }.freeze + + def question_number + case @ownershipsch + when 1 + 75 + when 2 + 99 + end + end end diff --git a/app/models/form/sales/questions/living_before_purchase_years.rb b/app/models/form/sales/questions/living_before_purchase_years.rb index f3f1e58a7..ec9cd9d52 100644 --- a/app/models/form/sales/questions/living_before_purchase_years.rb +++ b/app/models/form/sales/questions/living_before_purchase_years.rb @@ -1,6 +1,6 @@ class Form::Sales::Questions::LivingBeforePurchaseYears < ::Form::Question - def initialize(id, hsh, page) - super + def initialize(id, hsh, page, ownershipsch:) + super(id, hsh, page) @id = "proplen" @check_answer_label = "Number of years living in the property before purchase" @header = header_text @@ -11,6 +11,8 @@ class Form::Sales::Questions::LivingBeforePurchaseYears < ::Form::Question @step = 1 @width = 5 @suffix = " years" + @ownershipsch = ownershipsch + @question_number = question_number end def header_text @@ -28,4 +30,13 @@ class Form::Sales::Questions::LivingBeforePurchaseYears < ::Form::Question "You should round this up to the nearest year. If the buyers haven't been living in the property, enter '0'" end end + + def question_number + case @ownershipsch + when 1 + 75 + when 2 + 99 + end + end end diff --git a/app/models/form/sales/questions/monthly_rent.rb b/app/models/form/sales/questions/monthly_rent.rb index 34ac1bed9..2a28bc691 100644 --- a/app/models/form/sales/questions/monthly_rent.rb +++ b/app/models/form/sales/questions/monthly_rent.rb @@ -9,5 +9,6 @@ class Form::Sales::Questions::MonthlyRent < ::Form::Question @width = 5 @prefix = "£" @hint_text = "Amount paid before any charges" + @question_number = 97 end end diff --git a/app/models/form/sales/questions/mortgage_amount.rb b/app/models/form/sales/questions/mortgage_amount.rb index bd4ae5e60..12959709a 100644 --- a/app/models/form/sales/questions/mortgage_amount.rb +++ b/app/models/form/sales/questions/mortgage_amount.rb @@ -1,6 +1,6 @@ class Form::Sales::Questions::MortgageAmount < ::Form::Question - def initialize(id, hsh, page) - super + def initialize(id, hsh, subsection, ownershipsch:) + super(id, hsh, subsection) @id = "mortgage" @check_answer_label = "Mortgage amount" @header = "What is the mortgage amount?" @@ -9,5 +9,18 @@ class Form::Sales::Questions::MortgageAmount < ::Form::Question @width = 5 @prefix = "£" @hint_text = "Enter the amount of mortgage agreed with the mortgage lender. Exclude any deposits or cash payments. Numeric in pounds. Rounded to the nearest pound." + @ownershipsch = ownershipsch + @question_number = question_number + end + + def question_number + case @ownershipsch + when 1 + 91 + when 2 + 104 + when 3 + 112 + end end end diff --git a/app/models/form/sales/questions/mortgage_lender.rb b/app/models/form/sales/questions/mortgage_lender.rb index 54c9a66c6..1fee10b8b 100644 --- a/app/models/form/sales/questions/mortgage_lender.rb +++ b/app/models/form/sales/questions/mortgage_lender.rb @@ -1,6 +1,6 @@ class Form::Sales::Questions::MortgageLender < ::Form::Question - def initialize(id, hsh, page) - super + def initialize(id, hsh, subsection, ownershipsch:) + super(id, hsh, subsection) @id = "mortgagelender" @check_answer_label = "Mortgage Lender" @header = "What is the name of the mortgage lender?" @@ -10,6 +10,8 @@ class Form::Sales::Questions::MortgageLender < ::Form::Question @answer_options = ANSWER_OPTIONS @guidance_position = GuidancePosition::BOTTOM @guidance_partial = "mortgage_lender" + @ownershipsch = ownershipsch + @question_number = question_number end ANSWER_OPTIONS = { @@ -55,4 +57,15 @@ class Form::Sales::Questions::MortgageLender < ::Form::Question "39" => "Yorkshire Building Society", "40" => "Other", }.freeze + + def question_number + case @ownershipsch + when 1 + 92 + when 2 + 105 + when 3 + 113 + end + end end diff --git a/app/models/form/sales/questions/mortgage_lender_other.rb b/app/models/form/sales/questions/mortgage_lender_other.rb index fa1fefa49..677b1c117 100644 --- a/app/models/form/sales/questions/mortgage_lender_other.rb +++ b/app/models/form/sales/questions/mortgage_lender_other.rb @@ -1,10 +1,23 @@ class Form::Sales::Questions::MortgageLenderOther < ::Form::Question - def initialize(id, hsh, page) - super + def initialize(id, hsh, subsection, ownershipsch:) + super(id, hsh, subsection) @id = "mortgagelenderother" @check_answer_label = "Other Mortgage Lender" @header = "What is the other mortgage lender?" @type = "text" @page = page + @ownershipsch = ownershipsch + @question_number = question_number + end + + def question_number + case @ownershipsch + when 1 + 92 + when 2 + 105 + when 3 + 113 + end end end diff --git a/app/models/form/sales/questions/mortgage_length.rb b/app/models/form/sales/questions/mortgage_length.rb index 3f1603b75..adaa94d01 100644 --- a/app/models/form/sales/questions/mortgage_length.rb +++ b/app/models/form/sales/questions/mortgage_length.rb @@ -1,6 +1,6 @@ class Form::Sales::Questions::MortgageLength < ::Form::Question - def initialize(id, hsh, page) - super + def initialize(id, hsh, subsection, ownershipsch:) + super(id, hsh, subsection) @id = "mortlen" @check_answer_label = "Length of mortgage" @header = "What is the length of the mortgage?" @@ -10,5 +10,18 @@ class Form::Sales::Questions::MortgageLength < ::Form::Question @width = 5 @suffix = " years" @hint_text = "You should round up to the nearest year. Value should not exceed 60 years." + @ownershipsch = ownershipsch + @question_number = question_number + end + + def question_number + case @ownershipsch + when 1 + 93 + when 2 + 106 + when 3 + 114 + end end end diff --git a/app/models/form/sales/questions/mortgageused.rb b/app/models/form/sales/questions/mortgageused.rb index ad18652c4..7f87b9230 100644 --- a/app/models/form/sales/questions/mortgageused.rb +++ b/app/models/form/sales/questions/mortgageused.rb @@ -1,11 +1,13 @@ class Form::Sales::Questions::Mortgageused < ::Form::Question - def initialize(id, hsh, page) - super + def initialize(id, hsh, subsection, ownershipsch:) + super(id, hsh, subsection) @id = "mortgageused" @check_answer_label = "Mortgage used" @header = "Was a mortgage used for the purchase of this property?" @type = "radio" @answer_options = ANSWER_OPTIONS + @ownershipsch = ownershipsch + @question_number = question_number end ANSWER_OPTIONS = { @@ -20,4 +22,15 @@ class Form::Sales::Questions::Mortgageused < ::Form::Question "2" => { "value" => "No" }, } end + + def question_number + case @ownershipsch + when 1 + 90 + when 2 + 103 + when 3 + 111 + end + end end diff --git a/app/models/form/sales/questions/nationality1.rb b/app/models/form/sales/questions/nationality1.rb index 765489f27..68c2ce5ea 100644 --- a/app/models/form/sales/questions/nationality1.rb +++ b/app/models/form/sales/questions/nationality1.rb @@ -14,6 +14,7 @@ class Form::Sales::Questions::Nationality1 < ::Form::Question }, "value" => "Prefers not to say", }] + @question_number = 24 end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/number_joint_buyers.rb b/app/models/form/sales/questions/number_joint_buyers.rb index b9c2fc2e2..bd8a6ef3a 100644 --- a/app/models/form/sales/questions/number_joint_buyers.rb +++ b/app/models/form/sales/questions/number_joint_buyers.rb @@ -7,6 +7,7 @@ class Form::Sales::Questions::NumberJointBuyers < ::Form::Question @hint_text = "You should still try to answer all questions even if the buyer wasn't interviewed in person" @type = "radio" @answer_options = ANSWER_OPTIONS + @question_number = 10 end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/number_of_others_in_property.rb b/app/models/form/sales/questions/number_of_others_in_property.rb index 97a873430..44e7e5563 100644 --- a/app/models/form/sales/questions/number_of_others_in_property.rb +++ b/app/models/form/sales/questions/number_of_others_in_property.rb @@ -9,6 +9,7 @@ class Form::Sales::Questions::NumberOfOthersInProperty < ::Form::Question @width = 2 @min = 0 @max = joint_purchase ? 4 : 5 + @question_number = 35 end private diff --git a/app/models/form/sales/questions/other_ownership_type.rb b/app/models/form/sales/questions/other_ownership_type.rb index 428691381..08bd9955b 100644 --- a/app/models/form/sales/questions/other_ownership_type.rb +++ b/app/models/form/sales/questions/other_ownership_type.rb @@ -6,5 +6,6 @@ class Form::Sales::Questions::OtherOwnershipType < ::Form::Question @header = "What type of sale is it?" @type = "text" @width = 10 + @question_number = 6 end end diff --git a/app/models/form/sales/questions/outright_ownership_type.rb b/app/models/form/sales/questions/outright_ownership_type.rb index baead7f5a..01fa77a0d 100644 --- a/app/models/form/sales/questions/outright_ownership_type.rb +++ b/app/models/form/sales/questions/outright_ownership_type.rb @@ -9,6 +9,7 @@ class Form::Sales::Questions::OutrightOwnershipType < ::Form::Question @conditional_for = { "othtype" => [12], } + @question_number = 6 end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/ownership_scheme.rb b/app/models/form/sales/questions/ownership_scheme.rb index fc30ce3b4..dc1d4fb29 100644 --- a/app/models/form/sales/questions/ownership_scheme.rb +++ b/app/models/form/sales/questions/ownership_scheme.rb @@ -6,6 +6,7 @@ class Form::Sales::Questions::OwnershipScheme < ::Form::Question @header = "Was this purchase made through an ownership scheme?" @type = "radio" @answer_options = ANSWER_OPTIONS + @question_number = 3 end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/person_age.rb b/app/models/form/sales/questions/person_age.rb index c0a3e55a8..779e09669 100644 --- a/app/models/form/sales/questions/person_age.rb +++ b/app/models/form/sales/questions/person_age.rb @@ -12,5 +12,6 @@ class Form::Sales::Questions::PersonAge < ::Form::Question @check_answers_card_number = person_index @min = 0 @max = 110 + @question_number = 29 + (4 * person_index) end end diff --git a/app/models/form/sales/questions/person_age_known.rb b/app/models/form/sales/questions/person_age_known.rb index 198b4ed30..9272bb21e 100644 --- a/app/models/form/sales/questions/person_age_known.rb +++ b/app/models/form/sales/questions/person_age_known.rb @@ -19,6 +19,7 @@ class Form::Sales::Questions::PersonAgeKnown < ::Form::Question ], } @check_answers_card_number = person_index + @question_number = 29 + (4 * person_index) end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/person_gender_identity.rb b/app/models/form/sales/questions/person_gender_identity.rb index 01967e737..94774f5ce 100644 --- a/app/models/form/sales/questions/person_gender_identity.rb +++ b/app/models/form/sales/questions/person_gender_identity.rb @@ -12,6 +12,7 @@ class Form::Sales::Questions::PersonGenderIdentity < ::Form::Question }, "value" => "Prefers not to say", }] + @question_number = 30 + (4 * person_index) end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/person_relationship_to_buyer_1.rb b/app/models/form/sales/questions/person_relationship_to_buyer_1.rb index 774de4208..50f06c55e 100644 --- a/app/models/form/sales/questions/person_relationship_to_buyer_1.rb +++ b/app/models/form/sales/questions/person_relationship_to_buyer_1.rb @@ -12,6 +12,7 @@ class Form::Sales::Questions::PersonRelationshipToBuyer1 < ::Form::Question }, "value" => "Prefers not to say", }] + @question_number = 28 + (4 * person_index) end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/person_working_situation.rb b/app/models/form/sales/questions/person_working_situation.rb index 0740541b3..d74c38f14 100644 --- a/app/models/form/sales/questions/person_working_situation.rb +++ b/app/models/form/sales/questions/person_working_situation.rb @@ -12,6 +12,7 @@ class Form::Sales::Questions::PersonWorkingSituation < ::Form::Question }, "value" => "Prefers not to say", }] + @question_number = 31 + (4 * person_index) end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/previous_bedrooms.rb b/app/models/form/sales/questions/previous_bedrooms.rb index 1bea6538c..d9f9aaddb 100644 --- a/app/models/form/sales/questions/previous_bedrooms.rb +++ b/app/models/form/sales/questions/previous_bedrooms.rb @@ -9,5 +9,6 @@ class Form::Sales::Questions::PreviousBedrooms < ::Form::Question @min = 1 @max = 6 @hint_text = "For bedsits enter 1" + @question_number = 85 end end diff --git a/app/models/form/sales/questions/previous_la_known.rb b/app/models/form/sales/questions/previous_la_known.rb index b38f5c560..1a9a646f3 100644 --- a/app/models/form/sales/questions/previous_la_known.rb +++ b/app/models/form/sales/questions/previous_la_known.rb @@ -20,6 +20,7 @@ class Form::Sales::Questions::PreviousLaKnown < ::Form::Question @conditional_for = { "prevloc" => [1], } + @question_number = 58 end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/previous_postcode.rb b/app/models/form/sales/questions/previous_postcode.rb index 103a68ab6..568ba66ea 100644 --- a/app/models/form/sales/questions/previous_postcode.rb +++ b/app/models/form/sales/questions/previous_postcode.rb @@ -17,5 +17,6 @@ class Form::Sales::Questions::PreviousPostcode < ::Form::Question "is_previous_la_inferred" => true, }, } + @question_number = 57 end end diff --git a/app/models/form/sales/questions/previous_postcode_known.rb b/app/models/form/sales/questions/previous_postcode_known.rb index 9806d12e4..e83fda8d3 100644 --- a/app/models/form/sales/questions/previous_postcode_known.rb +++ b/app/models/form/sales/questions/previous_postcode_known.rb @@ -20,6 +20,7 @@ class Form::Sales::Questions::PreviousPostcodeKnown < ::Form::Question }, ], } + @question_number = 57 end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/previous_tenure.rb b/app/models/form/sales/questions/previous_tenure.rb index e570ec90c..96b638cf8 100644 --- a/app/models/form/sales/questions/previous_tenure.rb +++ b/app/models/form/sales/questions/previous_tenure.rb @@ -8,6 +8,7 @@ class Form::Sales::Questions::PreviousTenure < ::Form::Question @hint_text = "" @page = page @answer_options = ANSWER_OPTIONS + @question_number = 87 end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/previous_tenure_buyer2.rb b/app/models/form/sales/questions/previous_tenure_buyer2.rb index 49d495682..e3d8ee27d 100644 --- a/app/models/form/sales/questions/previous_tenure_buyer2.rb +++ b/app/models/form/sales/questions/previous_tenure_buyer2.rb @@ -7,6 +7,7 @@ class Form::Sales::Questions::PreviousTenureBuyer2 < ::Form::Question @type = "radio" @hint_text = "" @answer_options = ANSWER_OPTIONS + @question_number = 61 end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/prevloc.rb b/app/models/form/sales/questions/prevloc.rb index e7395e749..75bb50e81 100644 --- a/app/models/form/sales/questions/prevloc.rb +++ b/app/models/form/sales/questions/prevloc.rb @@ -11,6 +11,7 @@ class Form::Sales::Questions::Prevloc < ::Form::Question }, "value" => "Not known", }] + @question_number = 58 end def answer_options diff --git a/app/models/form/sales/questions/prevown.rb b/app/models/form/sales/questions/prevown.rb index 571e1af8f..1ae9fb90c 100644 --- a/app/models/form/sales/questions/prevown.rb +++ b/app/models/form/sales/questions/prevown.rb @@ -6,6 +6,7 @@ class Form::Sales::Questions::Prevown < ::Form::Question @header = I18n.t("questions.prevown", count: joint_purchase ? 2 : 1) @type = "radio" @answer_options = ANSWER_OPTIONS + @question_number = 73 end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/prevshared.rb b/app/models/form/sales/questions/prevshared.rb index 2c09cf485..b319281d3 100644 --- a/app/models/form/sales/questions/prevshared.rb +++ b/app/models/form/sales/questions/prevshared.rb @@ -7,6 +7,7 @@ class Form::Sales::Questions::Prevshared < ::Form::Question @type = "radio" @answer_options = ANSWER_OPTIONS @hint = "For any buyer" + @question_number = 74 end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/privacy_notice.rb b/app/models/form/sales/questions/privacy_notice.rb index 4d7bb61c6..c08e4be6a 100644 --- a/app/models/form/sales/questions/privacy_notice.rb +++ b/app/models/form/sales/questions/privacy_notice.rb @@ -7,6 +7,7 @@ class Form::Sales::Questions::PrivacyNotice < ::Form::Question @type = "checkbox" @answer_options = ANSWER_OPTIONS @guidance_partial = "privacy_notice_buyer" + @question_number = 19 end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/property_building_type.rb b/app/models/form/sales/questions/property_building_type.rb index 80102cc7a..fea48ce02 100644 --- a/app/models/form/sales/questions/property_building_type.rb +++ b/app/models/form/sales/questions/property_building_type.rb @@ -6,6 +6,7 @@ class Form::Sales::Questions::PropertyBuildingType < ::Form::Question @header = "What type of building is the property?" @type = "radio" @answer_options = ANSWER_OPTIONS + @question_number = 13 end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/property_local_authority.rb b/app/models/form/sales/questions/property_local_authority.rb index 699a67984..d66f856ac 100644 --- a/app/models/form/sales/questions/property_local_authority.rb +++ b/app/models/form/sales/questions/property_local_authority.rb @@ -5,6 +5,7 @@ class Form::Sales::Questions::PropertyLocalAuthority < ::Form::Question @check_answer_label = "Local authority" @header = "What is the property’s local authority?" @type = "select" + @question_number = 16 end def answer_options diff --git a/app/models/form/sales/questions/property_local_authority_known.rb b/app/models/form/sales/questions/property_local_authority_known.rb index 912ddbd8e..196ee8e6a 100644 --- a/app/models/form/sales/questions/property_local_authority_known.rb +++ b/app/models/form/sales/questions/property_local_authority_known.rb @@ -14,6 +14,7 @@ class Form::Sales::Questions::PropertyLocalAuthorityKnown < ::Form::Question }, ], } + @question_number = 16 end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/property_number_of_bedrooms.rb b/app/models/form/sales/questions/property_number_of_bedrooms.rb index e8ea674ea..9dbdbf3e8 100644 --- a/app/models/form/sales/questions/property_number_of_bedrooms.rb +++ b/app/models/form/sales/questions/property_number_of_bedrooms.rb @@ -9,5 +9,6 @@ class Form::Sales::Questions::PropertyNumberOfBedrooms < ::Form::Question @width = 10 @min = 1 @max = 9 + @question_number = 11 end end diff --git a/app/models/form/sales/questions/property_unit_type.rb b/app/models/form/sales/questions/property_unit_type.rb index afa4f0f38..f44bd67d3 100644 --- a/app/models/form/sales/questions/property_unit_type.rb +++ b/app/models/form/sales/questions/property_unit_type.rb @@ -6,6 +6,7 @@ class Form::Sales::Questions::PropertyUnitType < ::Form::Question @header = "What type of unit is the property?" @type = "radio" @answer_options = ANSWER_OPTIONS + @question_number = 12 end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/property_wheelchair_accessible.rb b/app/models/form/sales/questions/property_wheelchair_accessible.rb index bfdd133c2..feb017be0 100644 --- a/app/models/form/sales/questions/property_wheelchair_accessible.rb +++ b/app/models/form/sales/questions/property_wheelchair_accessible.rb @@ -6,6 +6,7 @@ class Form::Sales::Questions::PropertyWheelchairAccessible < ::Form::Question @header = "Is the property build or adapted to wheelchair-user standards?" @type = "radio" @answer_options = ANSWER_OPTIONS + @question_number = 17 end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/purchase_price.rb b/app/models/form/sales/questions/purchase_price.rb index 6242e45e8..c98a39ef3 100644 --- a/app/models/form/sales/questions/purchase_price.rb +++ b/app/models/form/sales/questions/purchase_price.rb @@ -1,6 +1,6 @@ class Form::Sales::Questions::PurchasePrice < ::Form::Question - def initialize(id, hsh, page) - super + def initialize(id, hsh, page, ownershipsch:) + super(id, hsh, page) @id = "value" @check_answer_label = "Purchase price" @header = "What is the full purchase price?" @@ -9,5 +9,16 @@ class Form::Sales::Questions::PurchasePrice < ::Form::Question @width = 5 @prefix = "£" @hint_text = "For all schemes, including Right to Acquire (RTA), Right to Buy (RTB), Voluntary Right to Buy (VRTB) or Preserved Right to Buy (PRTB) sales, enter the full price of the property without any discount" + @ownership_sch = ownershipsch + @question_number = question_number + end + + def question_number + case @ownership_sch + when 2 + 100 + when 3 + 110 + end end end diff --git a/app/models/form/sales/questions/purchase_price_outright_ownership.rb b/app/models/form/sales/questions/purchase_price_outright_ownership.rb deleted file mode 100644 index 9824a4629..000000000 --- a/app/models/form/sales/questions/purchase_price_outright_ownership.rb +++ /dev/null @@ -1,12 +0,0 @@ -class Form::Sales::Questions::PurchasePriceOutrightOwnership < ::Form::Question - def initialize(id, hsh, page) - super - @id = "value" - @check_answer_label = "Purchase price" - @header = "What is the full purchase price?" - @type = "numeric" - @min = 0 - @width = 5 - @prefix = "£" - end -end diff --git a/app/models/form/sales/questions/purchaser_code.rb b/app/models/form/sales/questions/purchaser_code.rb index 7a5cc4bf7..d288c9f5b 100644 --- a/app/models/form/sales/questions/purchaser_code.rb +++ b/app/models/form/sales/questions/purchaser_code.rb @@ -7,5 +7,6 @@ class Form::Sales::Questions::PurchaserCode < ::Form::Question @hint_text = "This is how you usually refer to the purchaser on your own systems." @type = "text" @width = 10 + @question_number = 2 end end diff --git a/app/models/form/sales/questions/resale.rb b/app/models/form/sales/questions/resale.rb index e67491d65..e0d2d99f5 100644 --- a/app/models/form/sales/questions/resale.rb +++ b/app/models/form/sales/questions/resale.rb @@ -7,6 +7,7 @@ class Form::Sales::Questions::Resale < ::Form::Question @type = "radio" @answer_options = ANSWER_OPTIONS @hint_text = "If the social landlord has previously sold the property to another buyer and is now reselling the property, select 'yes'. If this is the first time the property has been sold, select 'no'." + @question_number = 80 end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/sale_date.rb b/app/models/form/sales/questions/sale_date.rb index ce085b646..735872a6c 100644 --- a/app/models/form/sales/questions/sale_date.rb +++ b/app/models/form/sales/questions/sale_date.rb @@ -5,5 +5,6 @@ class Form::Sales::Questions::SaleDate < ::Form::Question @check_answer_label = "Sale completion date" @header = "What is the sale completion date?" @type = "date" + @question_number = 1 end end diff --git a/app/models/form/sales/questions/savings.rb b/app/models/form/sales/questions/savings.rb index 920b87d4f..086a0ec8d 100644 --- a/app/models/form/sales/questions/savings.rb +++ b/app/models/form/sales/questions/savings.rb @@ -9,5 +9,6 @@ class Form::Sales::Questions::Savings < ::Form::Question @prefix = "£" @step = 1 @min = 0 + @question_number = 72 end end diff --git a/app/models/form/sales/questions/savings_nk.rb b/app/models/form/sales/questions/savings_nk.rb index f68b45560..515f0a544 100644 --- a/app/models/form/sales/questions/savings_nk.rb +++ b/app/models/form/sales/questions/savings_nk.rb @@ -16,6 +16,7 @@ class Form::Sales::Questions::SavingsNk < ::Form::Question }, ], } + @question_number = 72 end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/shared_ownership_type.rb b/app/models/form/sales/questions/shared_ownership_type.rb index 73b6a4e17..e0cb5b486 100644 --- a/app/models/form/sales/questions/shared_ownership_type.rb +++ b/app/models/form/sales/questions/shared_ownership_type.rb @@ -7,6 +7,7 @@ class Form::Sales::Questions::SharedOwnershipType < ::Form::Question @hint_text = "A shared ownership sale is when the purchaser buys up to 75% of the property value and pays rent to the Private Registered Provider (PRP) on the remaining portion" @type = "radio" @answer_options = answer_options + @question_number = 4 end def answer_options diff --git a/app/models/form/sales/questions/staircase.rb b/app/models/form/sales/questions/staircase.rb index c03c24089..d01f0ea40 100644 --- a/app/models/form/sales/questions/staircase.rb +++ b/app/models/form/sales/questions/staircase.rb @@ -7,6 +7,7 @@ class Form::Sales::Questions::Staircase < ::Form::Question @type = "radio" @answer_options = ANSWER_OPTIONS @hint_text = "A staircasing transaction is when the household purchases more shares in their property, increasing the proportion they own and decreasing the proportion the housing association owns. Once the household purchases 100% of the shares, they own the property" + @question_number = 76 end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/staircase_bought.rb b/app/models/form/sales/questions/staircase_bought.rb index 385cfb782..9e54e92d3 100644 --- a/app/models/form/sales/questions/staircase_bought.rb +++ b/app/models/form/sales/questions/staircase_bought.rb @@ -9,5 +9,6 @@ class Form::Sales::Questions::StaircaseBought < ::Form::Question @min = 0 @max = 100 @suffix = "%" + @question_number = 77 end end diff --git a/app/models/form/sales/questions/staircase_owned.rb b/app/models/form/sales/questions/staircase_owned.rb index a3596554e..b8d5a65ec 100644 --- a/app/models/form/sales/questions/staircase_owned.rb +++ b/app/models/form/sales/questions/staircase_owned.rb @@ -9,5 +9,6 @@ class Form::Sales::Questions::StaircaseOwned < ::Form::Question @min = 0 @max = 100 @suffix = "%" + @question_number = 78 end end diff --git a/app/models/form/sales/questions/staircase_sale.rb b/app/models/form/sales/questions/staircase_sale.rb index fb56572cf..aaf2f6a08 100644 --- a/app/models/form/sales/questions/staircase_sale.rb +++ b/app/models/form/sales/questions/staircase_sale.rb @@ -6,6 +6,7 @@ class Form::Sales::Questions::StaircaseSale < ::Form::Question @header = "Is this transaction part of a back-to-back staircasing transaction to facilitate sale of the home on the open market?" @type = "radio" @answer_options = ANSWER_OPTIONS + @question_number = 79 end ANSWER_OPTIONS = { diff --git a/app/models/form/sales/questions/value.rb b/app/models/form/sales/questions/value.rb index 24e20e5ca..4736f37af 100644 --- a/app/models/form/sales/questions/value.rb +++ b/app/models/form/sales/questions/value.rb @@ -9,5 +9,6 @@ class Form::Sales::Questions::Value < ::Form::Question @width = 5 @prefix = "£" @hint_text = "Enter the full purchase price of the property before any discounts are applied. For shared ownership, enter the full purchase price paid for 100% equity (this is equal to the value of the share owned by the PRP plus the value bought by the purchaser)" + @question_number = 88 end end diff --git a/app/models/form/sales/subsections/discounted_ownership_scheme.rb b/app/models/form/sales/subsections/discounted_ownership_scheme.rb index a44f10ee9..f9292b6d6 100644 --- a/app/models/form/sales/subsections/discounted_ownership_scheme.rb +++ b/app/models/form/sales/subsections/discounted_ownership_scheme.rb @@ -8,30 +8,30 @@ class Form::Sales::Subsections::DiscountedOwnershipScheme < ::Form::Subsection def pages @pages ||= [ - Form::Sales::Pages::LivingBeforePurchase.new("living_before_purchase_discounted_ownership", nil, self), + Form::Sales::Pages::LivingBeforePurchase.new("living_before_purchase_discounted_ownership", nil, self, ownershipsch: 2), Form::Sales::Pages::AboutPriceRtb.new(nil, nil, self), Form::Sales::Pages::ExtraBorrowingValueCheck.new("extra_borrowing_price_value_check", nil, self), Form::Sales::Pages::AboutPriceNotRtb.new(nil, nil, self), Form::Sales::Pages::GrantValueCheck.new(nil, nil, self), - Form::Sales::Pages::PurchasePriceOutrightOwnership.new("purchase_price_outright_ownership", nil, self), + Form::Sales::Pages::PurchasePriceOutrightOwnership.new("purchase_price_discounted_ownership", nil, self, ownershipsch: 2), Form::Sales::Pages::AboutPriceValueCheck.new("about_price_discounted_ownership_value_check", nil, self), Form::Sales::Pages::DepositAndMortgageValueCheck.new("discounted_ownership_deposit_and_mortgage_value_check_after_value_and_discount", nil, self), - Form::Sales::Pages::Mortgageused.new("mortgage_used_discounted_ownership", nil, self), + Form::Sales::Pages::Mortgageused.new("mortgage_used_discounted_ownership", nil, self, ownershipsch: 2), Form::Sales::Pages::MortgageValueCheck.new("discounted_ownership_mortgage_used_mortgage_value_check", nil, self), - Form::Sales::Pages::MortgageAmount.new("mortgage_amount_discounted_ownership", nil, self), + Form::Sales::Pages::MortgageAmount.new("mortgage_amount_discounted_ownership", nil, self, ownershipsch: 2), Form::Sales::Pages::MortgageValueCheck.new("discounted_ownership_mortgage_amount_mortgage_value_check", nil, self), Form::Sales::Pages::ExtraBorrowingValueCheck.new("extra_borrowing_mortgage_value_check", nil, self), Form::Sales::Pages::DepositAndMortgageValueCheck.new("discounted_ownership_deposit_and_mortgage_value_check_after_mortgage", nil, self), - Form::Sales::Pages::MortgageLender.new("mortgage_lender_discounted_ownership", nil, self), - Form::Sales::Pages::MortgageLenderOther.new("mortgage_lender_other_discounted_ownership", nil, self), - Form::Sales::Pages::MortgageLength.new("mortgage_length_discounted_ownership", nil, self), - Form::Sales::Pages::ExtraBorrowing.new("extra_borrowing_discounted_ownership", nil, self), + Form::Sales::Pages::MortgageLender.new("mortgage_lender_discounted_ownership", nil, self, ownershipsch: 2), + Form::Sales::Pages::MortgageLenderOther.new("mortgage_lender_other_discounted_ownership", nil, self, ownershipsch: 2), + Form::Sales::Pages::MortgageLength.new("mortgage_length_discounted_ownership", nil, self, ownershipsch: 2), + Form::Sales::Pages::ExtraBorrowing.new("extra_borrowing_discounted_ownership", nil, self, ownershipsch: 2), Form::Sales::Pages::ExtraBorrowingValueCheck.new("extra_borrowing_value_check", nil, self), - Form::Sales::Pages::AboutDepositWithoutDiscount.new("about_deposit_discounted_ownership", nil, self), + Form::Sales::Pages::AboutDepositWithoutDiscount.new("about_deposit_discounted_ownership", nil, self, ownershipsch: 2), Form::Sales::Pages::ExtraBorrowingValueCheck.new("extra_borrowing_deposit_value_check", nil, self), Form::Sales::Pages::DepositValueCheck.new("discounted_ownership_deposit_value_check", nil, self), Form::Sales::Pages::DepositAndMortgageValueCheck.new("discounted_ownership_deposit_and_mortgage_value_check_after_deposit", nil, self), - Form::Sales::Pages::LeaseholdCharges.new("leasehold_charges_discounted_ownership", nil, self), + Form::Sales::Pages::LeaseholdCharges.new("leasehold_charges_discounted_ownership", nil, self, ownershipsch: 2), Form::Sales::Pages::MonthlyChargesValueCheck.new("monthly_charges_discounted_ownership_value_check", nil, self), ] end diff --git a/app/models/form/sales/subsections/outright_sale.rb b/app/models/form/sales/subsections/outright_sale.rb index 100c8fa64..d29dc5759 100644 --- a/app/models/form/sales/subsections/outright_sale.rb +++ b/app/models/form/sales/subsections/outright_sale.rb @@ -8,17 +8,17 @@ class Form::Sales::Subsections::OutrightSale < ::Form::Subsection def pages @pages ||= [ - Form::Sales::Pages::PurchasePriceOutrightOwnership.new("purchase_price_outright_sale", nil, self), + Form::Sales::Pages::PurchasePriceOutrightOwnership.new("purchase_price_outright_sale", nil, self, ownershipsch: 3), Form::Sales::Pages::AboutPriceValueCheck.new("about_price_outright_sale_value_check", nil, self), - Form::Sales::Pages::Mortgageused.new("mortgage_used_outright_sale", nil, self), + Form::Sales::Pages::Mortgageused.new("mortgage_used_outright_sale", nil, self, ownershipsch: 3), Form::Sales::Pages::MortgageValueCheck.new("outright_sale_mortgage_used_mortgage_value_check", nil, self), - Form::Sales::Pages::MortgageAmount.new("mortgage_amount_outright_sale", nil, self), + Form::Sales::Pages::MortgageAmount.new("mortgage_amount_outright_sale", nil, self, ownershipsch: 3), Form::Sales::Pages::MortgageValueCheck.new("outright_sale_mortgage_amount_mortgage_value_check", nil, self), - Form::Sales::Pages::MortgageLender.new("mortgage_lender_outright_sale", nil, self), - Form::Sales::Pages::MortgageLenderOther.new("mortgage_lender_other_outright_sale", nil, self), - Form::Sales::Pages::MortgageLength.new("mortgage_length_outright_sale", nil, self), - Form::Sales::Pages::ExtraBorrowing.new("extra_borrowing_outright_sale", nil, self), - Form::Sales::Pages::AboutDepositWithoutDiscount.new("about_deposit_outright_sale", nil, self), + Form::Sales::Pages::MortgageLender.new("mortgage_lender_outright_sale", nil, self, ownershipsch: 3), + Form::Sales::Pages::MortgageLenderOther.new("mortgage_lender_other_outright_sale", nil, self, ownershipsch: 3), + Form::Sales::Pages::MortgageLength.new("mortgage_length_outright_sale", nil, self, ownershipsch: 3), + Form::Sales::Pages::ExtraBorrowing.new("extra_borrowing_outright_sale", nil, self, ownershipsch: 3), + Form::Sales::Pages::AboutDepositWithoutDiscount.new("about_deposit_outright_sale", nil, self, ownershipsch: 3), Form::Sales::Pages::DepositValueCheck.new("outright_sale_deposit_value_check", nil, self), leasehold_charge_pages, Form::Sales::Pages::MonthlyChargesValueCheck.new("monthly_charges_outright_sale_value_check", nil, self), @@ -31,7 +31,7 @@ class Form::Sales::Subsections::OutrightSale < ::Form::Subsection def leasehold_charge_pages if form.start_date.year >= 2023 - Form::Sales::Pages::LeaseholdCharges.new("leasehold_charges_outright_sale", nil, self) + Form::Sales::Pages::LeaseholdCharges.new("leasehold_charges_outright_sale", nil, self, ownershipsch: 3) end end end diff --git a/app/models/form/sales/subsections/shared_ownership_scheme.rb b/app/models/form/sales/subsections/shared_ownership_scheme.rb index 1c30f3b6f..afd13ec47 100644 --- a/app/models/form/sales/subsections/shared_ownership_scheme.rb +++ b/app/models/form/sales/subsections/shared_ownership_scheme.rb @@ -8,7 +8,7 @@ class Form::Sales::Subsections::SharedOwnershipScheme < ::Form::Subsection def pages @pages ||= [ - Form::Sales::Pages::LivingBeforePurchase.new("living_before_purchase_shared_ownership", nil, self), + Form::Sales::Pages::LivingBeforePurchase.new("living_before_purchase_shared_ownership", nil, self, ownershipsch: 1), Form::Sales::Pages::Staircase.new(nil, nil, self), Form::Sales::Pages::AboutStaircase.new("about_staircasing_joint_purchase", nil, self, joint_purchase: true), Form::Sales::Pages::AboutStaircase.new("about_staircasing_not_joint_purchase", nil, self, joint_purchase: false), @@ -26,21 +26,21 @@ class Form::Sales::Subsections::SharedOwnershipScheme < ::Form::Subsection Form::Sales::Pages::AboutPriceSharedOwnership.new(nil, nil, self), Form::Sales::Pages::AboutPriceValueCheck.new("about_price_shared_ownership_value_check", nil, self), Form::Sales::Pages::SharedOwnershipDepositValueCheck.new("shared_ownership_equity_value_check", nil, self), - Form::Sales::Pages::Mortgageused.new("mortgage_used_shared_ownership", nil, self), + Form::Sales::Pages::Mortgageused.new("mortgage_used_shared_ownership", nil, self, ownershipsch: 1), Form::Sales::Pages::MortgageValueCheck.new("mortgage_used_mortgage_value_check", nil, self), - Form::Sales::Pages::MortgageAmount.new("mortgage_amount_shared_ownership", nil, self), + Form::Sales::Pages::MortgageAmount.new("mortgage_amount_shared_ownership", nil, self, ownershipsch: 1), Form::Sales::Pages::SharedOwnershipDepositValueCheck.new("shared_ownership_mortgage_amount_value_check", nil, self), Form::Sales::Pages::MortgageValueCheck.new("mortgage_amount_mortgage_value_check", nil, self), - Form::Sales::Pages::MortgageLender.new("mortgage_lender_shared_ownership", nil, self), - Form::Sales::Pages::MortgageLenderOther.new("mortgage_lender_other_shared_ownership", nil, self), - Form::Sales::Pages::MortgageLength.new("mortgage_length_shared_ownership", nil, self), - Form::Sales::Pages::ExtraBorrowing.new("extra_borrowing_shared_ownership", nil, self), + Form::Sales::Pages::MortgageLender.new("mortgage_lender_shared_ownership", nil, self, ownershipsch: 1), + Form::Sales::Pages::MortgageLenderOther.new("mortgage_lender_other_shared_ownership", nil, self, ownershipsch: 1), + Form::Sales::Pages::MortgageLength.new("mortgage_length_shared_ownership", nil, self, ownershipsch: 1), + Form::Sales::Pages::ExtraBorrowing.new("extra_borrowing_shared_ownership", nil, self, ownershipsch: 1), Form::Sales::Pages::AboutDepositWithDiscount.new(nil, nil, self), - Form::Sales::Pages::AboutDepositWithoutDiscount.new("about_deposit_shared_ownership", nil, self), + Form::Sales::Pages::AboutDepositWithoutDiscount.new("about_deposit_shared_ownership", nil, self, ownershipsch: 1), Form::Sales::Pages::DepositValueCheck.new("deposit_value_check", nil, self), Form::Sales::Pages::SharedOwnershipDepositValueCheck.new("shared_ownership_deposit_value_check", nil, self), Form::Sales::Pages::MonthlyRent.new(nil, nil, self), - Form::Sales::Pages::LeaseholdCharges.new("leasehold_charges_shared_ownership", nil, self), + Form::Sales::Pages::LeaseholdCharges.new("leasehold_charges_shared_ownership", nil, self, ownershipsch: 1), Form::Sales::Pages::MonthlyChargesValueCheck.new("monthly_charges_shared_ownership_value_check", nil, self), ] end diff --git a/app/views/form/_check_answers_summary_list.html.erb b/app/views/form/_check_answers_summary_list.html.erb index 56ae87905..bb9b1e56b 100644 --- a/app/views/form/_check_answers_summary_list.html.erb +++ b/app/views/form/_check_answers_summary_list.html.erb @@ -1,7 +1,7 @@ <%= govuk_summary_list do |summary_list| %> <% total_applicable_questions(subsection, @log, current_user).each do |question| %> <% summary_list.row do |row| %> - <% row.key { question.check_answer_label.to_s.presence || question.header.to_s } %> + <% row.key { get_question_label(question) } %> <% row.value do %> <%= get_answer_label(question, @log) %> <% extra_value = question.get_extra_check_answer_value(@log) %> diff --git a/spec/components/check_answers_summary_list_card_component_spec.rb b/spec/components/check_answers_summary_list_card_component_spec.rb index f9b8f6667..41bf32e28 100644 --- a/spec/components/check_answers_summary_list_card_component_spec.rb +++ b/spec/components/check_answers_summary_list_card_component_spec.rb @@ -5,44 +5,63 @@ RSpec.describe CheckAnswersSummaryListCardComponent, type: :component do let(:rendered) { render_inline(component) } - context "when given a set of questions" do - let(:user) { build(:user) } - let(:log) { build(:lettings_log, :completed, age2: 99, startdate: Time.zone.local(2021, 5, 1)) } - let(:subsection_id) { "household_characteristics" } - let(:subsection) { log.form.get_subsection(subsection_id) } - let(:questions) { subsection.applicable_questions(log) } - - it "renders a summary list card for the answers to those questions" do - expect(rendered).to have_content(questions.first.answer_label(log)) - end + context "when before 23/24 collection" do + context "when given a set of questions" do + let(:user) { build(:user) } + let(:log) { build(:lettings_log, :completed, age2: 99, startdate: Time.zone.local(2021, 5, 1)) } + let(:subsection_id) { "household_characteristics" } + let(:subsection) { log.form.get_subsection(subsection_id) } + let(:questions) { subsection.applicable_questions(log) } - it "applicable questions doesn't return questions that are hidden in check answers" do - expect(component.applicable_questions.map(&:id).include?("retirement_value_check")).to eq(false) - end + it "renders a summary list card without question numbers for the answers to those questions" do + expect(rendered).to have_content(questions.first.answer_label(log)) + expect(rendered).to have_content("Lead tenant’s age") + expect(rendered).not_to have_content("Q32 - Lead tenant’s age") + end - it "has the correct answer label for a question" do - sex1_question = questions[2] - expect(component.get_answer_label(sex1_question)).to eq("Female") - end + it "applicable questions doesn't return questions that are hidden in check answers" do + expect(component.applicable_questions.map(&:id).include?("retirement_value_check")).to eq(false) + end + + it "has the correct answer label for a question" do + sex1_question = questions[2] + expect(component.get_answer_label(sex1_question)).to eq("Female") + end - context "when log was created via a bulk upload and has an unanswered question" do - subject(:component) { described_class.new(questions:, log:, user:) } + context "when log was created via a bulk upload and has an unanswered question" do + subject(:component) { described_class.new(questions:, log:, user:) } - let(:bulk_upload) { build(:bulk_upload, :lettings) } - let(:log) { build(:lettings_log, :in_progress, bulk_upload:, age2: 99, startdate: Time.zone.local(2021, 5, 1)) } + let(:bulk_upload) { build(:bulk_upload, :lettings) } + let(:log) { build(:lettings_log, :in_progress, bulk_upload:, age2: 99, startdate: Time.zone.local(2021, 5, 1)) } - it "displays tweaked copy in red" do - expect(rendered).to have_selector("span", class: "app-!-colour-red", text: "You still need to answer this question") + it "displays tweaked copy in red" do + expect(rendered).to have_selector("span", class: "app-!-colour-red", text: "You still need to answer this question") + end end - end - context "when log was not created via a bulk upload and has an unanswered question" do - subject(:component) { described_class.new(questions:, log:, user:) } + context "when log was not created via a bulk upload and has an unanswered question" do + subject(:component) { described_class.new(questions:, log:, user:) } + + let(:log) { build(:lettings_log, :in_progress, age2: 99, startdate: Time.zone.local(2021, 5, 1)) } + + it "displays normal copy with muted colour " do + expect(rendered).to have_selector("span", class: "app-!-colour-muted", text: "You didn’t answer this question") + end + end + end + end - let(:log) { build(:lettings_log, :in_progress, age2: 99, startdate: Time.zone.local(2021, 5, 1)) } + context "when in 23/24 collection" do + context "when given a set of questions" do + let(:user) { build(:user) } + let(:log) { build(:lettings_log, :completed, age2: 99, startdate: Time.zone.local(2023, 5, 1)) } + let(:subsection_id) { "household_characteristics" } + let(:subsection) { log.form.get_subsection(subsection_id) } + let(:questions) { subsection.applicable_questions(log) } - it "displays normal copy with muted colour " do - expect(rendered).to have_selector("span", class: "app-!-colour-muted", text: "You didn’t answer this question") + it "renders a summary list card includinq question numbers for the answers to those questions" do + expect(rendered).to have_content(questions.first.answer_label(log)) + expect(rendered).to have_content("Q32 - Lead tenant’s age") end end end diff --git a/spec/helpers/question_view_helper_spec.rb b/spec/helpers/question_view_helper_spec.rb index 82f6d0b08..e170efe15 100644 --- a/spec/helpers/question_view_helper_spec.rb +++ b/spec/helpers/question_view_helper_spec.rb @@ -44,7 +44,13 @@ RSpec.describe QuestionViewHelper do describe "legend" do subject(:question_view_helper) { legend(question, page_header, conditional) } - let(:question) { OpenStruct.new(header: "Some question header") } + question_stub = Struct.new(:header) do + def question_number_string(_conditional) + nil + end + end + + let(:question) { question_stub.new("Some question header") } let(:size) { "m" } let(:tag) { "div" } let(:legend_options_hash) do @@ -67,7 +73,7 @@ RSpec.describe QuestionViewHelper do end end - context "when viewinng a conditional question" do + context "when viewing a conditional question" do let(:conditional) { true } let(:tag) { "" } diff --git a/spec/models/form/sales/pages/about_deposit_without_discount_spec.rb b/spec/models/form/sales/pages/about_deposit_without_discount_spec.rb index 62212e011..1a0b5ef4d 100644 --- a/spec/models/form/sales/pages/about_deposit_without_discount_spec.rb +++ b/spec/models/form/sales/pages/about_deposit_without_discount_spec.rb @@ -1,7 +1,7 @@ require "rails_helper" RSpec.describe Form::Sales::Pages::AboutDepositWithoutDiscount, type: :model do - subject(:page) { described_class.new(page_id, page_definition, subsection) } + subject(:page) { described_class.new(page_id, page_definition, subsection, ownershipsch: 1) } let(:page_id) { nil } let(:page_definition) { nil } diff --git a/spec/models/form/sales/pages/extra_borrowing_spec.rb b/spec/models/form/sales/pages/extra_borrowing_spec.rb index 5540f89cf..a0c148c9f 100644 --- a/spec/models/form/sales/pages/extra_borrowing_spec.rb +++ b/spec/models/form/sales/pages/extra_borrowing_spec.rb @@ -1,7 +1,7 @@ require "rails_helper" RSpec.describe Form::Sales::Pages::ExtraBorrowing, type: :model do - subject(:page) { described_class.new(page_id, page_definition, subsection) } + subject(:page) { described_class.new(page_id, page_definition, subsection, ownershipsch: 1) } let(:page_id) { nil } let(:page_definition) { nil } diff --git a/spec/models/form/sales/pages/leasehold_charges_spec.rb b/spec/models/form/sales/pages/leasehold_charges_spec.rb index c729bc82e..d58b965c3 100644 --- a/spec/models/form/sales/pages/leasehold_charges_spec.rb +++ b/spec/models/form/sales/pages/leasehold_charges_spec.rb @@ -1,7 +1,7 @@ require "rails_helper" RSpec.describe Form::Sales::Pages::LeaseholdCharges, type: :model do - subject(:page) { described_class.new(page_id, page_definition, subsection) } + subject(:page) { described_class.new(page_id, page_definition, subsection, ownershipsch: 1) } let(:page_id) { nil } let(:page_definition) { nil } diff --git a/spec/models/form/sales/pages/living_before_purchase_spec.rb b/spec/models/form/sales/pages/living_before_purchase_spec.rb index 76dbd7609..939910583 100644 --- a/spec/models/form/sales/pages/living_before_purchase_spec.rb +++ b/spec/models/form/sales/pages/living_before_purchase_spec.rb @@ -1,7 +1,7 @@ require "rails_helper" RSpec.describe Form::Sales::Pages::LivingBeforePurchase, type: :model do - subject(:page) { described_class.new(page_id, page_definition, subsection) } + subject(:page) { described_class.new(page_id, page_definition, subsection, ownershipsch: 1) } let(:page_id) { nil } let(:page_definition) { nil } diff --git a/spec/models/form/sales/pages/mortgage_amount_spec.rb b/spec/models/form/sales/pages/mortgage_amount_spec.rb index 1aa563d9b..551788fbb 100644 --- a/spec/models/form/sales/pages/mortgage_amount_spec.rb +++ b/spec/models/form/sales/pages/mortgage_amount_spec.rb @@ -1,7 +1,7 @@ require "rails_helper" RSpec.describe Form::Sales::Pages::MortgageAmount, type: :model do - subject(:page) { described_class.new(page_id, page_definition, subsection) } + subject(:page) { described_class.new(page_id, page_definition, subsection, ownershipsch: 1) } let(:page_id) { nil } let(:page_definition) { nil } diff --git a/spec/models/form/sales/pages/mortgage_lender_other_spec.rb b/spec/models/form/sales/pages/mortgage_lender_other_spec.rb index 32ad5bb6b..93ef4d342 100644 --- a/spec/models/form/sales/pages/mortgage_lender_other_spec.rb +++ b/spec/models/form/sales/pages/mortgage_lender_other_spec.rb @@ -1,7 +1,7 @@ require "rails_helper" RSpec.describe Form::Sales::Pages::MortgageLenderOther, type: :model do - subject(:page) { described_class.new(page_id, page_definition, subsection) } + subject(:page) { described_class.new(page_id, page_definition, subsection, ownershipsch: 1) } let(:page_id) { "mortgage_lender_other" } let(:page_definition) { nil } diff --git a/spec/models/form/sales/pages/mortgage_lender_spec.rb b/spec/models/form/sales/pages/mortgage_lender_spec.rb index fafa8e043..ad195b8a1 100644 --- a/spec/models/form/sales/pages/mortgage_lender_spec.rb +++ b/spec/models/form/sales/pages/mortgage_lender_spec.rb @@ -1,7 +1,7 @@ require "rails_helper" RSpec.describe Form::Sales::Pages::MortgageLender, type: :model do - subject(:page) { described_class.new(page_id, page_definition, subsection) } + subject(:page) { described_class.new(page_id, page_definition, subsection, ownershipsch: 1) } let(:page_id) { "mortgage_lender" } let(:page_definition) { nil } diff --git a/spec/models/form/sales/pages/mortgage_length_spec.rb b/spec/models/form/sales/pages/mortgage_length_spec.rb index ef2573e57..5b04503a0 100644 --- a/spec/models/form/sales/pages/mortgage_length_spec.rb +++ b/spec/models/form/sales/pages/mortgage_length_spec.rb @@ -1,7 +1,7 @@ require "rails_helper" RSpec.describe Form::Sales::Pages::MortgageLength, type: :model do - subject(:page) { described_class.new(page_id, page_definition, subsection) } + subject(:page) { described_class.new(page_id, page_definition, subsection, ownershipsch: 1) } let(:page_id) { nil } let(:page_definition) { nil } diff --git a/spec/models/form/sales/pages/mortgageused_spec.rb b/spec/models/form/sales/pages/mortgageused_spec.rb index 963814074..71fe94128 100644 --- a/spec/models/form/sales/pages/mortgageused_spec.rb +++ b/spec/models/form/sales/pages/mortgageused_spec.rb @@ -1,7 +1,7 @@ require "rails_helper" RSpec.describe Form::Sales::Pages::Mortgageused, type: :model do - subject(:page) { described_class.new(page_id, page_definition, subsection) } + subject(:page) { described_class.new(page_id, page_definition, subsection, ownershipsch: 1) } let(:page_id) { "mortgage_used" } let(:page_definition) { nil } diff --git a/spec/models/form/sales/pages/purchase_price_outright_ownership_spec.rb b/spec/models/form/sales/pages/purchase_price_outright_ownership_spec.rb index 88c357034..11b84baa6 100644 --- a/spec/models/form/sales/pages/purchase_price_outright_ownership_spec.rb +++ b/spec/models/form/sales/pages/purchase_price_outright_ownership_spec.rb @@ -1,7 +1,7 @@ require "rails_helper" RSpec.describe Form::Sales::Pages::PurchasePriceOutrightOwnership, type: :model do - subject(:page) { described_class.new(page_id, page_definition, subsection) } + subject(:page) { described_class.new(page_id, page_definition, subsection, ownershipsch: 1) } let(:page_id) { "purchase_price" } let(:page_definition) { nil } diff --git a/spec/models/form/sales/questions/buyer1_ethnic_background_arab_spec.rb b/spec/models/form/sales/questions/buyer1_ethnic_background_arab_spec.rb index fd62707bd..31df4708c 100644 --- a/spec/models/form/sales/questions/buyer1_ethnic_background_arab_spec.rb +++ b/spec/models/form/sales/questions/buyer1_ethnic_background_arab_spec.rb @@ -16,7 +16,7 @@ RSpec.describe Form::Sales::Questions::Buyer1EthnicBackgroundArab, type: :model end it "has the correct header" do - expect(question.header).to eq("Which of the following best describes the buyer 1’s Arab background?") + expect(question.header).to eq("Which of the following best describes buyer 1’s Arab background?") end it "has the correct check_answer_label" do diff --git a/spec/models/form/sales/questions/buyer1_ethnic_background_asian_spec.rb b/spec/models/form/sales/questions/buyer1_ethnic_background_asian_spec.rb index 1b7c99988..931802fe5 100644 --- a/spec/models/form/sales/questions/buyer1_ethnic_background_asian_spec.rb +++ b/spec/models/form/sales/questions/buyer1_ethnic_background_asian_spec.rb @@ -16,7 +16,7 @@ RSpec.describe Form::Sales::Questions::Buyer1EthnicBackgroundAsian, type: :model end it "has the correct header" do - expect(question.header).to eq("Which of the following best describes the buyer 1’s Asian or Asian British background?") + expect(question.header).to eq("Which of the following best describes buyer 1’s Asian or Asian British background?") end it "has the correct check_answer_label" do diff --git a/spec/models/form/sales/questions/buyer1_ethnic_background_black_spec.rb b/spec/models/form/sales/questions/buyer1_ethnic_background_black_spec.rb index c324556f7..c4b7919c8 100644 --- a/spec/models/form/sales/questions/buyer1_ethnic_background_black_spec.rb +++ b/spec/models/form/sales/questions/buyer1_ethnic_background_black_spec.rb @@ -16,7 +16,7 @@ RSpec.describe Form::Sales::Questions::Buyer1EthnicBackgroundBlack, type: :model end it "has the correct header" do - expect(question.header).to eq("Which of the following best describes the buyer 1’s Black, African, Caribbean or Black British background?") + expect(question.header).to eq("Which of the following best describes buyer 1’s Black, African, Caribbean or Black British background?") end it "has the correct check_answer_label" do diff --git a/spec/models/form/sales/questions/buyer1_ethnic_background_mixed_spec.rb b/spec/models/form/sales/questions/buyer1_ethnic_background_mixed_spec.rb index efbb928d4..f6fbdf3b0 100644 --- a/spec/models/form/sales/questions/buyer1_ethnic_background_mixed_spec.rb +++ b/spec/models/form/sales/questions/buyer1_ethnic_background_mixed_spec.rb @@ -16,7 +16,7 @@ RSpec.describe Form::Sales::Questions::Buyer1EthnicBackgroundMixed, type: :model end it "has the correct header" do - expect(question.header).to eq("Which of the following best describes the buyer 1’s Mixed or Multiple ethnic groups background?") + expect(question.header).to eq("Which of the following best describes buyer 1’s Mixed or Multiple ethnic groups background?") end it "has the correct check_answer_label" do diff --git a/spec/models/form/sales/questions/buyer1_ethnic_background_white_spec.rb b/spec/models/form/sales/questions/buyer1_ethnic_background_white_spec.rb index e155378a3..684477542 100644 --- a/spec/models/form/sales/questions/buyer1_ethnic_background_white_spec.rb +++ b/spec/models/form/sales/questions/buyer1_ethnic_background_white_spec.rb @@ -16,7 +16,7 @@ RSpec.describe Form::Sales::Questions::Buyer1EthnicBackgroundWhite, type: :model end it "has the correct header" do - expect(question.header).to eq("Which of the following best describes the buyer 1’s White background?") + expect(question.header).to eq("Which of the following best describes buyer 1’s White background?") end it "has the correct check_answer_label" do diff --git a/spec/models/form/sales/questions/buyer1_income_known_spec.rb b/spec/models/form/sales/questions/buyer1_income_known_spec.rb index aafe16c2d..2abd58d3a 100644 --- a/spec/models/form/sales/questions/buyer1_income_known_spec.rb +++ b/spec/models/form/sales/questions/buyer1_income_known_spec.rb @@ -20,7 +20,7 @@ RSpec.describe Form::Sales::Questions::Buyer1IncomeKnown, type: :model do end it "has the correct check_answer_label" do - expect(question.check_answer_label).to eq("Buyer 1’s gross annual income") + expect(question.check_answer_label).to eq("Buyer 1’s gross annual income known?") end it "has the correct type" do diff --git a/spec/models/form/sales/questions/buyer2_ethnic_background_arab_spec.rb b/spec/models/form/sales/questions/buyer2_ethnic_background_arab_spec.rb index 9fd408db9..0ec22b6bf 100644 --- a/spec/models/form/sales/questions/buyer2_ethnic_background_arab_spec.rb +++ b/spec/models/form/sales/questions/buyer2_ethnic_background_arab_spec.rb @@ -16,7 +16,7 @@ RSpec.describe Form::Sales::Questions::Buyer2EthnicBackgroundArab, type: :model end it "has the correct header" do - expect(question.header).to eq("Which of the following best describes the buyer 2’s Arab background?") + expect(question.header).to eq("Which of the following best describes buyer 2’s Arab background?") end it "has the correct check_answer_label" do diff --git a/spec/models/form/sales/questions/buyer2_ethnic_background_asian_spec.rb b/spec/models/form/sales/questions/buyer2_ethnic_background_asian_spec.rb index 67ce60e43..86a59b65f 100644 --- a/spec/models/form/sales/questions/buyer2_ethnic_background_asian_spec.rb +++ b/spec/models/form/sales/questions/buyer2_ethnic_background_asian_spec.rb @@ -16,7 +16,7 @@ RSpec.describe Form::Sales::Questions::Buyer2EthnicBackgroundAsian, type: :model end it "has the correct header" do - expect(question.header).to eq("Which of the following best describes the buyer 2’s Asian or Asian British background?") + expect(question.header).to eq("Which of the following best describes buyer 2’s Asian or Asian British background?") end it "has the correct check_answer_label" do diff --git a/spec/models/form/sales/questions/buyer2_ethnic_background_black_spec.rb b/spec/models/form/sales/questions/buyer2_ethnic_background_black_spec.rb index 8e772f870..db5cbba0d 100644 --- a/spec/models/form/sales/questions/buyer2_ethnic_background_black_spec.rb +++ b/spec/models/form/sales/questions/buyer2_ethnic_background_black_spec.rb @@ -16,7 +16,7 @@ RSpec.describe Form::Sales::Questions::Buyer2EthnicBackgroundBlack, type: :model end it "has the correct header" do - expect(question.header).to eq("Which of the following best describes the buyer 2’s Black, African, Caribbean or Black British background?") + expect(question.header).to eq("Which of the following best describes buyer 2’s Black, African, Caribbean or Black British background?") end it "has the correct check_answer_label" do diff --git a/spec/models/form/sales/questions/buyer2_ethnic_background_mixed_spec.rb b/spec/models/form/sales/questions/buyer2_ethnic_background_mixed_spec.rb index 6c1b12865..255251e90 100644 --- a/spec/models/form/sales/questions/buyer2_ethnic_background_mixed_spec.rb +++ b/spec/models/form/sales/questions/buyer2_ethnic_background_mixed_spec.rb @@ -16,7 +16,7 @@ RSpec.describe Form::Sales::Questions::Buyer2EthnicBackgroundMixed, type: :model end it "has the correct header" do - expect(question.header).to eq("Which of the following best describes the buyer 2’s Mixed or Multiple ethnic groups background?") + expect(question.header).to eq("Which of the following best describes buyer 2’s Mixed or Multiple ethnic groups background?") end it "has the correct check_answer_label" do diff --git a/spec/models/form/sales/questions/buyer2_ethnic_background_white_spec.rb b/spec/models/form/sales/questions/buyer2_ethnic_background_white_spec.rb index d3f2da508..d8aaa0292 100644 --- a/spec/models/form/sales/questions/buyer2_ethnic_background_white_spec.rb +++ b/spec/models/form/sales/questions/buyer2_ethnic_background_white_spec.rb @@ -16,7 +16,7 @@ RSpec.describe Form::Sales::Questions::Buyer2EthnicBackgroundWhite, type: :model end it "has the correct header" do - expect(question.header).to eq("Which of the following best describes the buyer 2’s White background?") + expect(question.header).to eq("Which of the following best describes buyer 2’s White background?") end it "has the correct check_answer_label" do diff --git a/spec/models/form/sales/questions/buyer2_income_known_spec.rb b/spec/models/form/sales/questions/buyer2_income_known_spec.rb index a1be51ad4..6724b9b0d 100644 --- a/spec/models/form/sales/questions/buyer2_income_known_spec.rb +++ b/spec/models/form/sales/questions/buyer2_income_known_spec.rb @@ -20,7 +20,7 @@ RSpec.describe Form::Sales::Questions::Buyer2IncomeKnown, type: :model do end it "has the correct check_answer_label" do - expect(question.check_answer_label).to eq("Buyer 2’s gross annual income") + expect(question.check_answer_label).to eq("Buyer 2’s gross annual income known?") end it "has the correct type" do diff --git a/spec/models/form/sales/questions/deposit_amount_spec.rb b/spec/models/form/sales/questions/deposit_amount_spec.rb index 33a5dcf1d..e0a77b7fc 100644 --- a/spec/models/form/sales/questions/deposit_amount_spec.rb +++ b/spec/models/form/sales/questions/deposit_amount_spec.rb @@ -1,7 +1,7 @@ require "rails_helper" RSpec.describe Form::Sales::Questions::DepositAmount, type: :model do - subject(:question) { described_class.new(question_id, question_definition, page) } + subject(:question) { described_class.new(question_id, question_definition, page, ownershipsch: 1) } let(:question_id) { nil } let(:question_definition) { nil } diff --git a/spec/models/form/sales/questions/extra_borrowing_spec.rb b/spec/models/form/sales/questions/extra_borrowing_spec.rb index b9149c27d..cc0656031 100644 --- a/spec/models/form/sales/questions/extra_borrowing_spec.rb +++ b/spec/models/form/sales/questions/extra_borrowing_spec.rb @@ -1,7 +1,7 @@ require "rails_helper" RSpec.describe Form::Sales::Questions::ExtraBorrowing, type: :model do - subject(:question) { described_class.new(question_id, question_definition, page) } + subject(:question) { described_class.new(question_id, question_definition, page, ownershipsch: 1) } let(:question_id) { nil } let(:question_definition) { nil } diff --git a/spec/models/form/sales/questions/grant_spec.rb b/spec/models/form/sales/questions/grant_spec.rb index d4e92f703..cd74ee704 100644 --- a/spec/models/form/sales/questions/grant_spec.rb +++ b/spec/models/form/sales/questions/grant_spec.rb @@ -32,7 +32,7 @@ RSpec.describe Form::Sales::Questions::Grant, type: :model do end it "has the correct hint" do - expect(question.hint_text).to eq("For all schemes except Right to Buy (RTB), Preserved Right to Buy (PRTB), Voluntary Right to Buy (VRTB)") + expect(question.hint_text).to eq("For all schemes except Right to Buy (RTB), Preserved Right to Buy (PRTB), Voluntary Right to Buy (VRTB) and Rent to Buy") end it "has correct width" do diff --git a/spec/models/form/sales/questions/leasehold_charges_known_spec.rb b/spec/models/form/sales/questions/leasehold_charges_known_spec.rb index d47b535eb..64cd08f33 100644 --- a/spec/models/form/sales/questions/leasehold_charges_known_spec.rb +++ b/spec/models/form/sales/questions/leasehold_charges_known_spec.rb @@ -1,7 +1,7 @@ require "rails_helper" RSpec.describe Form::Sales::Questions::LeaseholdChargesKnown, type: :model do - subject(:question) { described_class.new(question_id, question_definition, page) } + subject(:question) { described_class.new(question_id, question_definition, page, ownershipsch: 1) } let(:question_id) { nil } let(:question_definition) { nil } diff --git a/spec/models/form/sales/questions/leasehold_charges_spec.rb b/spec/models/form/sales/questions/leasehold_charges_spec.rb index a06fc9975..a9be62ef5 100644 --- a/spec/models/form/sales/questions/leasehold_charges_spec.rb +++ b/spec/models/form/sales/questions/leasehold_charges_spec.rb @@ -1,7 +1,7 @@ require "rails_helper" RSpec.describe Form::Sales::Questions::LeaseholdCharges, type: :model do - subject(:question) { described_class.new(question_id, question_definition, page) } + subject(:question) { described_class.new(question_id, question_definition, page, ownershipsch: 1) } let(:question_id) { nil } let(:question_definition) { nil } diff --git a/spec/models/form/sales/questions/living_before_purchase_spec.rb b/spec/models/form/sales/questions/living_before_purchase_spec.rb index 530bb151a..624865aac 100644 --- a/spec/models/form/sales/questions/living_before_purchase_spec.rb +++ b/spec/models/form/sales/questions/living_before_purchase_spec.rb @@ -1,7 +1,7 @@ require "rails_helper" RSpec.describe Form::Sales::Questions::LivingBeforePurchase, type: :model do - subject(:question) { described_class.new(question_id, question_definition, page) } + subject(:question) { described_class.new(question_id, question_definition, page, ownershipsch: 1) } let(:question_id) { nil } let(:question_definition) { nil } diff --git a/spec/models/form/sales/questions/living_before_purchase_years_spec.rb b/spec/models/form/sales/questions/living_before_purchase_years_spec.rb index 5fdb5ccba..52ea05a4f 100644 --- a/spec/models/form/sales/questions/living_before_purchase_years_spec.rb +++ b/spec/models/form/sales/questions/living_before_purchase_years_spec.rb @@ -1,7 +1,7 @@ require "rails_helper" RSpec.describe Form::Sales::Questions::LivingBeforePurchaseYears, type: :model do - subject(:question) { described_class.new(question_id, question_definition, page) } + subject(:question) { described_class.new(question_id, question_definition, page, ownershipsch: 1) } let(:question_id) { nil } let(:question_definition) { nil } diff --git a/spec/models/form/sales/questions/mortgage_amount_spec.rb b/spec/models/form/sales/questions/mortgage_amount_spec.rb index 832b47d37..328406ecd 100644 --- a/spec/models/form/sales/questions/mortgage_amount_spec.rb +++ b/spec/models/form/sales/questions/mortgage_amount_spec.rb @@ -1,7 +1,7 @@ require "rails_helper" RSpec.describe Form::Sales::Questions::MortgageAmount, type: :model do - subject(:question) { described_class.new(question_id, question_definition, page) } + subject(:question) { described_class.new(question_id, question_definition, page, ownershipsch: 1) } let(:question_id) { nil } let(:question_definition) { nil } diff --git a/spec/models/form/sales/questions/mortgage_lender_other_spec.rb b/spec/models/form/sales/questions/mortgage_lender_other_spec.rb index e5a8a3869..8150c1088 100644 --- a/spec/models/form/sales/questions/mortgage_lender_other_spec.rb +++ b/spec/models/form/sales/questions/mortgage_lender_other_spec.rb @@ -1,7 +1,7 @@ require "rails_helper" RSpec.describe Form::Sales::Questions::MortgageLenderOther, type: :model do - subject(:question) { described_class.new(question_id, question_definition, page) } + subject(:question) { described_class.new(question_id, question_definition, page, ownershipsch: 1) } let(:question_id) { nil } let(:question_definition) { nil } diff --git a/spec/models/form/sales/questions/mortgage_lender_spec.rb b/spec/models/form/sales/questions/mortgage_lender_spec.rb index 659cf7070..84caef701 100644 --- a/spec/models/form/sales/questions/mortgage_lender_spec.rb +++ b/spec/models/form/sales/questions/mortgage_lender_spec.rb @@ -1,7 +1,7 @@ require "rails_helper" RSpec.describe Form::Sales::Questions::MortgageLender, type: :model do - subject(:question) { described_class.new(question_id, question_definition, page) } + subject(:question) { described_class.new(question_id, question_definition, page, ownershipsch: 1) } let(:question_id) { nil } let(:question_definition) { nil } diff --git a/spec/models/form/sales/questions/mortgage_length_spec.rb b/spec/models/form/sales/questions/mortgage_length_spec.rb index 0f3193244..bb77c16e6 100644 --- a/spec/models/form/sales/questions/mortgage_length_spec.rb +++ b/spec/models/form/sales/questions/mortgage_length_spec.rb @@ -1,7 +1,7 @@ require "rails_helper" RSpec.describe Form::Sales::Questions::MortgageLength, type: :model do - subject(:question) { described_class.new(question_id, question_definition, page) } + subject(:question) { described_class.new(question_id, question_definition, page, ownershipsch: 1) } let(:question_id) { nil } let(:question_definition) { nil } diff --git a/spec/models/form/sales/questions/mortgageused_spec.rb b/spec/models/form/sales/questions/mortgageused_spec.rb index a31f063c9..32fdfde72 100644 --- a/spec/models/form/sales/questions/mortgageused_spec.rb +++ b/spec/models/form/sales/questions/mortgageused_spec.rb @@ -1,7 +1,7 @@ require "rails_helper" RSpec.describe Form::Sales::Questions::Mortgageused, type: :model do - subject(:question) { described_class.new(question_id, question_definition, page) } + subject(:question) { described_class.new(question_id, question_definition, page, ownershipsch: 1) } let(:question_id) { nil } let(:question_definition) { nil } diff --git a/spec/models/form/sales/questions/purchase_price_spec.rb b/spec/models/form/sales/questions/purchase_price_spec.rb index ce0aaae9c..e9e7ee3c3 100644 --- a/spec/models/form/sales/questions/purchase_price_spec.rb +++ b/spec/models/form/sales/questions/purchase_price_spec.rb @@ -1,7 +1,7 @@ require "rails_helper" RSpec.describe Form::Sales::Questions::PurchasePrice, type: :model do - subject(:question) { described_class.new(question_id, question_definition, page) } + subject(:question) { described_class.new(question_id, question_definition, page, ownershipsch: 1) } let(:question_id) { nil } let(:question_definition) { nil } diff --git a/spec/models/form/sales/subsections/discounted_ownership_scheme_spec.rb b/spec/models/form/sales/subsections/discounted_ownership_scheme_spec.rb index 5d1d30037..b6947661d 100644 --- a/spec/models/form/sales/subsections/discounted_ownership_scheme_spec.rb +++ b/spec/models/form/sales/subsections/discounted_ownership_scheme_spec.rb @@ -19,7 +19,7 @@ RSpec.describe Form::Sales::Subsections::DiscountedOwnershipScheme, type: :model extra_borrowing_price_value_check about_price_not_rtb grant_value_check - purchase_price_outright_ownership + purchase_price_discounted_ownership about_price_discounted_ownership_value_check discounted_ownership_deposit_and_mortgage_value_check_after_value_and_discount mortgage_used_discounted_ownership From 74a75d3d3daad6b71c6c9f22abf182936d563601 Mon Sep 17 00:00:00 2001 From: Phil Lee Date: Fri, 17 Mar 2023 09:48:54 +0000 Subject: [PATCH 38/51] fix bulk upload email timestamp formatting (#1426) --- app/mailers/bulk_upload_mailer.rb | 4 ++-- spec/mailers/bulk_upload_mailer_spec.rb | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/mailers/bulk_upload_mailer.rb b/app/mailers/bulk_upload_mailer.rb index ebc9df7a6..cb1fac03c 100644 --- a/app/mailers/bulk_upload_mailer.rb +++ b/app/mailers/bulk_upload_mailer.rb @@ -26,7 +26,7 @@ class BulkUploadMailer < NotifyMailer { title:, filename: bulk_upload.filename, - upload_timestamp: bulk_upload.created_at, + upload_timestamp: bulk_upload.created_at.to_fs(:govuk_date_and_time), success_description:, logs_link: url, }, @@ -112,7 +112,7 @@ class BulkUploadMailer < NotifyMailer BULK_UPLOAD_FAILED_SERVICE_ERROR_TEMPLATE_ID, { filename: bulk_upload.filename, - upload_timestamp: bulk_upload.created_at, + upload_timestamp: bulk_upload.created_at.to_fs(:govuk_date_and_time), lettings_or_sales: bulk_upload.log_type, year_combo: bulk_upload.year_combo, errors: errors.map { |e| "- #{e}" }.join("\n"), diff --git a/spec/mailers/bulk_upload_mailer_spec.rb b/spec/mailers/bulk_upload_mailer_spec.rb index 323b49b8f..a0d9a3cd1 100644 --- a/spec/mailers/bulk_upload_mailer_spec.rb +++ b/spec/mailers/bulk_upload_mailer_spec.rb @@ -52,7 +52,7 @@ RSpec.describe BulkUploadMailer do personalisation: { title: "You’ve successfully uploaded 0 logs", filename: bulk_upload.filename, - upload_timestamp: bulk_upload.created_at, + upload_timestamp: bulk_upload.created_at.to_fs(:govuk_date_and_time), success_description: "The lettings 2022/23 data you uploaded has been checked. The 0 logs you uploaded are now complete.", logs_link: lettings_logs_url, }, @@ -69,7 +69,7 @@ RSpec.describe BulkUploadMailer do template_id: described_class::BULK_UPLOAD_FAILED_SERVICE_ERROR_TEMPLATE_ID, personalisation: { filename: bulk_upload.filename, - upload_timestamp: bulk_upload.created_at, + upload_timestamp: bulk_upload.created_at.to_fs(:govuk_date_and_time), lettings_or_sales: bulk_upload.log_type, year_combo: bulk_upload.year_combo, errors: "- foo\n- bar", From e2032edd889f407dad4d27f20f611cd5d08a8259 Mon Sep 17 00:00:00 2001 From: kosiakkatrina <54268893+kosiakkatrina@users.noreply.github.com> Date: Fri, 17 Mar 2023 09:51:16 +0000 Subject: [PATCH 39/51] Filter on the subset of logs in tests (#1430) --- spec/services/filter_service_spec.rb | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/spec/services/filter_service_spec.rb b/spec/services/filter_service_spec.rb index 2c89b1302..6122550c9 100644 --- a/spec/services/filter_service_spec.rb +++ b/spec/services/filter_service_spec.rb @@ -29,13 +29,12 @@ describe FilterService do context "when filtering logs" do context "when filtering lettings logs" do - before do - FactoryBot.create_list(:lettings_log, 5) - FactoryBot.create(:lettings_log, postcode_full: "SW1 1AA") + let(:lettings_log_list) do + logs = FactoryBot.create_list(:lettings_log, 5) + searched_log = FactoryBot.create(:lettings_log, postcode_full: "SW1 1AA") + LettingsLog.where(id: [searched_log.id] + logs.map(&:id)) end - let(:lettings_log_list) { LettingsLog.all } - context "when given a postcode" do let(:search_term) { "SW1 1AA" } @@ -54,13 +53,12 @@ describe FilterService do end context "when filtering sales logs" do - before do - FactoryBot.create_list(:sales_log, 5) - FactoryBot.create(:sales_log, purchid: "2") + let(:sales_log_list) do + logs = FactoryBot.create_list(:sales_log, 5) + searched_log = FactoryBot.create(:sales_log, purchid: "2") + SalesLog.where(id: [searched_log.id] + logs.map(&:id)) end - let(:sales_log_list) { SalesLog.all } - context "when given a purchid" do let(:search_term) { "2" } From cff4cc45bcc1f49074f9ac3199fce99c065ae704 Mon Sep 17 00:00:00 2001 From: Jack <113976590+bibblobcode@users.noreply.github.com> Date: Fri, 17 Mar 2023 10:08:21 +0000 Subject: [PATCH 40/51] CLDC-2068 request, validate UPRN and retrieve address (#1370) * Add OS_DATA_KEY env var * Add new UPRN and address columns to logs * Bugfix: use dynamic optional fields * Update optional fields * Add UPRN validation * Add UPRN Client * Add UPRN Presenter * UPRN questions and flows * Skip to non addresss questions if UPRN unknown * Address PO review comments and add missing specs * Display LA correctly --- .env.example | 1 + .env.test | 2 + .github/workflows/production_pipeline.yml | 2 + .github/workflows/review_pipeline.yml | 2 + .github/workflows/staging_pipeline.yml | 2 + app/controllers/form_controller.rb | 2 +- app/helpers/question_view_helper.rb | 6 +- .../derived_variables/sales_log_variables.rb | 9 + app/models/form.rb | 2 +- app/models/form/page.rb | 6 +- app/models/form/question.rb | 5 +- app/models/form/sales/pages/address.rb | 23 +++ .../sales/pages/property_local_authority.rb | 16 +- app/models/form/sales/pages/uprn.rb | 26 +++ .../form/sales/pages/uprn_confirmation.rb | 17 ++ app/models/form/sales/pages/uprn_known.rb | 12 ++ .../form/sales/questions/address_line1.rb | 37 ++++ .../form/sales/questions/address_line2.rb | 13 ++ app/models/form/sales/questions/county.rb | 13 ++ .../questions/postcode_for_full_address.rb | 25 +++ .../questions/property_local_authority.rb | 4 + .../form/sales/questions/town_or_city.rb | 13 ++ app/models/form/sales/questions/uprn.rb | 34 ++++ .../form/sales/questions/uprn_confirmation.rb | 34 ++++ app/models/form/sales/questions/uprn_known.rb | 21 +++ .../sales/subsections/property_information.rb | 27 ++- app/models/lettings_log.rb | 2 + app/models/log.rb | 18 ++ app/models/sales_log.rb | 7 + .../validations/property_validations.rb | 8 + .../validations/sales/property_validations.rb | 8 + app/services/uprn_client.rb | 50 ++++++ app/services/uprn_data_presenter.rb | 41 +++++ .../form/_check_answers_summary_list.html.erb | 15 +- .../form/_numeric_output_question.html.erb | 2 +- app/views/form/_radio_question.html.erb | 9 + app/views/form/page.html.erb | 5 +- config/locales/en.yml | 4 + db/migrate/20230301170338_add_uprn_to_logs.rb | 15 ++ .../20230306110210_add_address_to_logs.rb | 15 ++ db/schema.rb | 14 ++ spec/features/lettings_log_spec.rb | 21 +-- .../fixtures/files/lettings_logs_download.csv | 4 +- .../lettings_logs_download_codes_only.csv | 4 +- .../lettings_logs_download_non_support.csv | 4 +- spec/helpers/question_view_helper_spec.rb | 30 +++- spec/models/form/sales/pages/address_spec.rb | 73 ++++++++ .../pages/property_local_authority_spec.rb | 61 ++++++- .../sales/pages/uprn_confirmation_spec.rb | 59 +++++++ .../form/sales/pages/uprn_known_spec.rb | 33 ++++ spec/models/form/sales/pages/uprn_spec.rb | 73 ++++++++ .../sales/questions/address_line1_spec.rb | 75 ++++++++ .../sales/questions/address_line2_spec.rb | 49 ++++++ .../form/sales/questions/county_spec.rb | 49 ++++++ .../postcode_for_full_address_spec.rb | 62 +++++++ .../property_local_authority_spec.rb | 30 ++++ .../form/sales/questions/town_or_city_spec.rb | 49 ++++++ .../sales/questions/uprn_confirmation_spec.rb | 90 ++++++++++ .../form/sales/questions/uprn_known_spec.rb | 59 +++++++ spec/models/form/sales/questions/uprn_spec.rb | 88 ++++++++++ .../subsections/property_information_spec.rb | 59 +++++-- spec/models/lettings_log_spec.rb | 165 ++++++++++-------- spec/models/sales_log_spec.rb | 89 +++++++++- .../validations/property_validations_spec.rb | 29 +++ .../sales/property_validations_spec.rb | 39 ++++- .../csv/lettings_log_csv_service_spec.rb | 9 + spec/services/uprn_client_spec.rb | 68 ++++++++ spec/services/uprn_data_presenter_spec.rb | 66 +++++++ 68 files changed, 1866 insertions(+), 138 deletions(-) create mode 100644 .env.test create mode 100644 app/models/form/sales/pages/address.rb create mode 100644 app/models/form/sales/pages/uprn.rb create mode 100644 app/models/form/sales/pages/uprn_confirmation.rb create mode 100644 app/models/form/sales/pages/uprn_known.rb create mode 100644 app/models/form/sales/questions/address_line1.rb create mode 100644 app/models/form/sales/questions/address_line2.rb create mode 100644 app/models/form/sales/questions/county.rb create mode 100644 app/models/form/sales/questions/postcode_for_full_address.rb create mode 100644 app/models/form/sales/questions/town_or_city.rb create mode 100644 app/models/form/sales/questions/uprn.rb create mode 100644 app/models/form/sales/questions/uprn_confirmation.rb create mode 100644 app/models/form/sales/questions/uprn_known.rb create mode 100644 app/services/uprn_client.rb create mode 100644 app/services/uprn_data_presenter.rb create mode 100644 db/migrate/20230301170338_add_uprn_to_logs.rb create mode 100644 db/migrate/20230306110210_add_address_to_logs.rb create mode 100644 spec/models/form/sales/pages/address_spec.rb create mode 100644 spec/models/form/sales/pages/uprn_confirmation_spec.rb create mode 100644 spec/models/form/sales/pages/uprn_known_spec.rb create mode 100644 spec/models/form/sales/pages/uprn_spec.rb create mode 100644 spec/models/form/sales/questions/address_line1_spec.rb create mode 100644 spec/models/form/sales/questions/address_line2_spec.rb create mode 100644 spec/models/form/sales/questions/county_spec.rb create mode 100644 spec/models/form/sales/questions/postcode_for_full_address_spec.rb create mode 100644 spec/models/form/sales/questions/town_or_city_spec.rb create mode 100644 spec/models/form/sales/questions/uprn_confirmation_spec.rb create mode 100644 spec/models/form/sales/questions/uprn_known_spec.rb create mode 100644 spec/models/form/sales/questions/uprn_spec.rb create mode 100644 spec/services/uprn_client_spec.rb create mode 100644 spec/services/uprn_data_presenter_spec.rb diff --git a/.env.example b/.env.example index b6a2bf14f..8b966b4f4 100644 --- a/.env.example +++ b/.env.example @@ -5,3 +5,4 @@ GOVUK_NOTIFY_API_KEY= OTP_SECRET_ENCRYPTION_KEY="" APP_HOST="http://localhost:3000" +OS_DATA_KEY=OS_DATA_KEY diff --git a/.env.test b/.env.test new file mode 100644 index 000000000..2ba1222ba --- /dev/null +++ b/.env.test @@ -0,0 +1,2 @@ +APP_HOST="http://localhost:3000" +OS_DATA_KEY=OS_DATA_KEY diff --git a/.github/workflows/production_pipeline.yml b/.github/workflows/production_pipeline.yml index 82f37e743..0e479cbf0 100644 --- a/.github/workflows/production_pipeline.yml +++ b/.github/workflows/production_pipeline.yml @@ -237,6 +237,7 @@ jobs: GOVUK_NOTIFY_API_KEY: ${{ secrets.GOVUK_NOTIFY_API_KEY }} APP_HOST: ${{ secrets.APP_HOST }} RAILS_MASTER_KEY: ${{ secrets.RAILS_MASTER_KEY }} + OS_DATA_KEY: ${{ secrets.OS_DATA_KEY }} IMPORT_PAAS_INSTANCE: ${{ secrets.IMPORT_PAAS_INSTANCE }} EXPORT_PAAS_INSTANCE: ${{ secrets.EXPORT_PAAS_INSTANCE }} S3_CONFIG: ${{ secrets.S3_CONFIG }} @@ -249,6 +250,7 @@ jobs: cf set-env $APP_NAME GOVUK_NOTIFY_API_KEY $GOVUK_NOTIFY_API_KEY cf set-env $APP_NAME APP_HOST $APP_HOST cf set-env $APP_NAME RAILS_MASTER_KEY $RAILS_MASTER_KEY + cf set-env $APP_NAME OS_DATA_KEY $OS_DATA_KEY cf set-env $APP_NAME IMPORT_PAAS_INSTANCE $IMPORT_PAAS_INSTANCE cf set-env $APP_NAME EXPORT_PAAS_INSTANCE $EXPORT_PAAS_INSTANCE cf set-env $APP_NAME S3_CONFIG $S3_CONFIG diff --git a/.github/workflows/review_pipeline.yml b/.github/workflows/review_pipeline.yml index ac883c788..8248c8f46 100644 --- a/.github/workflows/review_pipeline.yml +++ b/.github/workflows/review_pipeline.yml @@ -110,6 +110,7 @@ jobs: API_KEY: ${{ secrets.API_KEY }} GOVUK_NOTIFY_API_KEY: ${{ secrets.GOVUK_NOTIFY_API_KEY }} RAILS_MASTER_KEY: ${{ secrets.RAILS_MASTER_KEY }} + OS_DATA_KEY: ${{ secrets.OS_DATA_KEY }} IMPORT_PAAS_INSTANCE: ${{ secrets.IMPORT_PAAS_INSTANCE }} EXPORT_PAAS_INSTANCE: ${{ secrets.EXPORT_PAAS_INSTANCE }} S3_CONFIG: ${{ secrets.S3_CONFIG }} @@ -120,6 +121,7 @@ jobs: cf set-env $APP_NAME API_KEY $API_KEY cf set-env $APP_NAME GOVUK_NOTIFY_API_KEY $GOVUK_NOTIFY_API_KEY cf set-env $APP_NAME RAILS_MASTER_KEY $RAILS_MASTER_KEY + cf set-env $APP_NAME OS_DATA_KEY $OS_DATA_KEY cf set-env $APP_NAME IMPORT_PAAS_INSTANCE $IMPORT_PAAS_INSTANCE cf set-env $APP_NAME EXPORT_PAAS_INSTANCE "dluhc-core-review-export-bucket" cf set-env $APP_NAME S3_CONFIG $S3_CONFIG diff --git a/.github/workflows/staging_pipeline.yml b/.github/workflows/staging_pipeline.yml index 9ca8cb69d..987d18233 100644 --- a/.github/workflows/staging_pipeline.yml +++ b/.github/workflows/staging_pipeline.yml @@ -208,6 +208,7 @@ jobs: GOVUK_NOTIFY_API_KEY: ${{ secrets.GOVUK_NOTIFY_API_KEY }} APP_HOST: ${{ secrets.APP_HOST }} RAILS_MASTER_KEY: ${{ secrets.RAILS_MASTER_KEY }} + OS_DATA_KEY: ${{ secrets.OS_DATA_KEY }} IMPORT_PAAS_INSTANCE: ${{ secrets.IMPORT_PAAS_INSTANCE }} EXPORT_PAAS_INSTANCE: ${{ secrets.EXPORT_PAAS_INSTANCE }} S3_CONFIG: ${{ secrets.S3_CONFIG }} @@ -222,6 +223,7 @@ jobs: cf set-env $APP_NAME GOVUK_NOTIFY_API_KEY $GOVUK_NOTIFY_API_KEY cf set-env $APP_NAME APP_HOST $APP_HOST cf set-env $APP_NAME RAILS_MASTER_KEY $RAILS_MASTER_KEY + cf set-env $APP_NAME OS_DATA_KEY $OS_DATA_KEY cf set-env $APP_NAME IMPORT_PAAS_INSTANCE $IMPORT_PAAS_INSTANCE cf set-env $APP_NAME EXPORT_PAAS_INSTANCE $EXPORT_PAAS_INSTANCE cf set-env $APP_NAME S3_CONFIG $S3_CONFIG diff --git a/app/controllers/form_controller.rb b/app/controllers/form_controller.rb index 467b049df..92b62a511 100644 --- a/app/controllers/form_controller.rb +++ b/app/controllers/form_controller.rb @@ -160,7 +160,7 @@ private end def question_is_required?(question) - @log.class::OPTIONAL_FIELDS.exclude?(question.id) && required_questions.include?(question.id) + @log.optional_fields.exclude?(question.id) && required_questions.include?(question.id) end def required_questions diff --git a/app/helpers/question_view_helper.rb b/app/helpers/question_view_helper.rb index d40b3cd35..3ff84bc19 100644 --- a/app/helpers/question_view_helper.rb +++ b/app/helpers/question_view_helper.rb @@ -8,14 +8,16 @@ module QuestionViewHelper def legend(question, page_header, conditional) { text: [question.question_number_string(conditional:), question.header.html_safe].compact.join(" - "), - size: label_size(page_header, conditional), + size: label_size(page_header, conditional, question), tag: label_tag(page_header, conditional), } end private - def label_size(page_header, conditional) + def label_size(page_header, conditional, question) + return if question.plain_label.present? + page_header.blank? && !conditional ? "l" : "m" end diff --git a/app/models/derived_variables/sales_log_variables.rb b/app/models/derived_variables/sales_log_variables.rb index 525c12936..56d687f59 100644 --- a/app/models/derived_variables/sales_log_variables.rb +++ b/app/models/derived_variables/sales_log_variables.rb @@ -23,6 +23,15 @@ module DerivedVariables::SalesLogVariables self.totadult = total_adult + total_elder self.hhmemb = number_of_household_members self.hhtype = household_type + + if uprn_known&.zero? + self.uprn = nil + end + + if uprn_confirmed&.zero? + self.uprn = nil + self.uprn_known = 0 + end end private diff --git a/app/models/form.rb b/app/models/form.rb index f9959959e..c7bb4f2b0 100644 --- a/app/models/form.rb +++ b/app/models/form.rb @@ -160,7 +160,7 @@ class Form def invalidated_page_questions(log, current_user = nil) # we're already treating these fields as a special case and reset their values upon saving a log - callback_questions = %w[postcode_known la ppcodenk previous_la_known prevloc postcode_full ppostcode_full location_id] + callback_questions = %w[postcode_known la ppcodenk previous_la_known prevloc postcode_full ppostcode_full location_id address_line1 address_line2 town_or_city county] questions.reject { |q| q.page.routed_to?(log, current_user) || q.derived? || callback_questions.include?(q.id) } || [] end diff --git a/app/models/form/page.rb b/app/models/form/page.rb index ea57bac66..2ac5a716a 100644 --- a/app/models/form/page.rb +++ b/app/models/form/page.rb @@ -1,6 +1,7 @@ class Form::Page attr_accessor :id, :header, :header_partial, :description, :questions, :depends_on, :title_text, - :informative_text, :subsection, :hide_subsection_label, :next_unresolved_page_id + :informative_text, :subsection, :hide_subsection_label, :next_unresolved_page_id, + :skip_text def initialize(id, hsh, subsection) @id = id @@ -15,6 +16,7 @@ class Form::Page @informative_text = hsh["informative_text"] @hide_subsection_label = hsh["hide_subsection_label"] @next_unresolved_page_id = hsh["next_unresolved_page_id"] + @skip_text = hsh["skip_text"] end end @@ -36,6 +38,8 @@ class Form::Page questions.all? { |question| question.type == "interruption_screen" } end + def skip_href(log = nil); end + private def conditional_question_ids diff --git a/app/models/form/question.rb b/app/models/form/question.rb index 9ddacd68b..de77674e6 100644 --- a/app/models/form/question.rb +++ b/app/models/form/question.rb @@ -4,7 +4,7 @@ class Form::Question :conditional_for, :readonly, :answer_options, :page, :check_answer_label, :inferred_answers, :hidden_in_check_answers, :inferred_check_answers_value, :guidance_partial, :prefix, :suffix, :requires_js, :fields_added, :derived, - :check_answers_card_number, :unresolved_hint_text, :question_number + :check_answers_card_number, :unresolved_hint_text, :question_number, :plain_label module GuidancePosition TOP = 1 @@ -41,6 +41,7 @@ class Form::Question @check_answers_card_number = hsh["check_answers_card_number"] || 0 @unresolved_hint_text = hsh["unresolved_hint_text"] @question_number = hsh["question_number"] + @plain_label = hsh["plain_label"] end end @@ -57,6 +58,8 @@ class Form::Question inferred_answer_value(log) || answer_label end + def notification_banner(_log = nil); end + def get_inferred_answers(log) return [] unless inferred_answers diff --git a/app/models/form/sales/pages/address.rb b/app/models/form/sales/pages/address.rb new file mode 100644 index 000000000..aa8ab7e0d --- /dev/null +++ b/app/models/form/sales/pages/address.rb @@ -0,0 +1,23 @@ +class Form::Sales::Pages::Address < ::Form::Page + def initialize(id, hsh, subsection) + super + @id = "address" + @header = "What is the property's address?" + end + + def questions + @questions ||= [ + Form::Sales::Questions::AddressLine1.new(nil, nil, self), + Form::Sales::Questions::AddressLine2.new(nil, nil, self), + Form::Sales::Questions::TownOrCity.new(nil, nil, self), + Form::Sales::Questions::County.new(nil, nil, self), + Form::Sales::Questions::PostcodeForFullAddress.new(nil, nil, self), + ] + end + + def routed_to?(log, _current_user = nil) + return false if log.uprn_known.nil? + + log.uprn_confirmed != 1 || log.uprn_known.zero? + end +end diff --git a/app/models/form/sales/pages/property_local_authority.rb b/app/models/form/sales/pages/property_local_authority.rb index 7e63b2f6c..66c4b965b 100644 --- a/app/models/form/sales/pages/property_local_authority.rb +++ b/app/models/form/sales/pages/property_local_authority.rb @@ -9,8 +9,20 @@ class Form::Sales::Pages::PropertyLocalAuthority < ::Form::Page def questions @questions ||= [ - Form::Sales::Questions::PropertyLocalAuthorityKnown.new(nil, nil, self), + la_known_question, Form::Sales::Questions::PropertyLocalAuthority.new(nil, nil, self), - ] + ].compact + end + + def routed_to?(log, _current_user = nil) + return false if log.uprn_known.nil? && form.start_date.year >= 2023 + + true + end + + def la_known_question + if form.start_date.year < 2023 + Form::Sales::Questions::PropertyLocalAuthorityKnown.new(nil, nil, self) + end end end diff --git a/app/models/form/sales/pages/uprn.rb b/app/models/form/sales/pages/uprn.rb new file mode 100644 index 000000000..e1835f8ca --- /dev/null +++ b/app/models/form/sales/pages/uprn.rb @@ -0,0 +1,26 @@ +class Form::Sales::Pages::Uprn < ::Form::Page + def initialize(id, hsh, subsection) + super + @id = "uprn" + end + + def questions + @questions ||= [ + Form::Sales::Questions::Uprn.new(nil, nil, self), + ] + end + + def routed_to?(log, _current_user = nil) + log.uprn_known == 1 + end + + def skip_text + "Enter address instead" + end + + def skip_href(log = nil) + return unless log + + "/#{log.model_name.param_key.dasherize}s/#{log.id}/address" + end +end diff --git a/app/models/form/sales/pages/uprn_confirmation.rb b/app/models/form/sales/pages/uprn_confirmation.rb new file mode 100644 index 000000000..d553972a3 --- /dev/null +++ b/app/models/form/sales/pages/uprn_confirmation.rb @@ -0,0 +1,17 @@ +class Form::Sales::Pages::UprnConfirmation < ::Form::Page + def initialize(id, hsh, subsection) + super + @id = "uprn_confirmation" + @header = "We found an address that might be this property" + end + + def questions + @questions ||= [ + Form::Sales::Questions::UprnConfirmation.new(nil, nil, self), + ] + end + + def routed_to?(log, _current_user = nil) + log.uprn.present? && log.uprn_known == 1 + end +end diff --git a/app/models/form/sales/pages/uprn_known.rb b/app/models/form/sales/pages/uprn_known.rb new file mode 100644 index 000000000..e2cbfe63f --- /dev/null +++ b/app/models/form/sales/pages/uprn_known.rb @@ -0,0 +1,12 @@ +class Form::Sales::Pages::UprnKnown < ::Form::Page + def initialize(id, hsh, subsection) + super + @id = "uprn_known" + end + + def questions + @questions ||= [ + Form::Sales::Questions::UprnKnown.new(nil, nil, self), + ] + end +end diff --git a/app/models/form/sales/questions/address_line1.rb b/app/models/form/sales/questions/address_line1.rb new file mode 100644 index 000000000..e8ccb17c0 --- /dev/null +++ b/app/models/form/sales/questions/address_line1.rb @@ -0,0 +1,37 @@ +class Form::Sales::Questions::AddressLine1 < ::Form::Question + def initialize(id, hsh, page) + super + @id = "address_line1" + @check_answer_label = "Address" + @header = "Address line 1" + @type = "text" + @plain_label = true + end + + def hidden_in_check_answers?(log, _current_user = nil) + return true if log.uprn_known.nil? + return false if log.uprn_known&.zero? + return true if log.uprn_confirmed.nil? && log.uprn.present? + return true if log.uprn_known == 1 && log.uprn.blank? + + log.uprn_confirmed == 1 + end + + def answer_label(log, _current_user = nil) + [ + log.address_line1, + log.address_line2, + log.postcode_full, + log.town_or_city, + log.county, + ].select(&:present?).join("\n") + end + + def get_extra_check_answer_value(log) + return unless log.is_la_inferred? + + la = LocalAuthority.find_by(code: log.la)&.name + + la.presence + end +end diff --git a/app/models/form/sales/questions/address_line2.rb b/app/models/form/sales/questions/address_line2.rb new file mode 100644 index 000000000..0b4ff661c --- /dev/null +++ b/app/models/form/sales/questions/address_line2.rb @@ -0,0 +1,13 @@ +class Form::Sales::Questions::AddressLine2 < ::Form::Question + def initialize(id, hsh, page) + super + @id = "address_line2" + @header = "Address line 2 (optional)" + @type = "text" + @plain_label = true + end + + def hidden_in_check_answers?(_log = nil, _current_user = nil) + true + end +end diff --git a/app/models/form/sales/questions/county.rb b/app/models/form/sales/questions/county.rb new file mode 100644 index 000000000..080ac809f --- /dev/null +++ b/app/models/form/sales/questions/county.rb @@ -0,0 +1,13 @@ +class Form::Sales::Questions::County < ::Form::Question + def initialize(id, hsh, page) + super + @id = "county" + @header = "County (optional)" + @type = "text" + @plain_label = true + end + + def hidden_in_check_answers?(_log = nil, _current_user = nil) + true + end +end diff --git a/app/models/form/sales/questions/postcode_for_full_address.rb b/app/models/form/sales/questions/postcode_for_full_address.rb new file mode 100644 index 000000000..a1e6f8633 --- /dev/null +++ b/app/models/form/sales/questions/postcode_for_full_address.rb @@ -0,0 +1,25 @@ +class Form::Sales::Questions::PostcodeForFullAddress < ::Form::Question + def initialize(id, hsh, page) + super + @id = "postcode_full" + @header = "Postcode" + @type = "text" + @width = 5 + @inferred_check_answers_value = [{ + "condition" => { + "pcodenk" => 1, + }, + "value" => "Not known", + }] + @inferred_answers = { + "la" => { + "is_la_inferred" => true, + }, + } + @plain_label = true + end + + def hidden_in_check_answers?(_log = nil, _current_user = nil) + true + end +end diff --git a/app/models/form/sales/questions/property_local_authority.rb b/app/models/form/sales/questions/property_local_authority.rb index d66f856ac..04dbed347 100644 --- a/app/models/form/sales/questions/property_local_authority.rb +++ b/app/models/form/sales/questions/property_local_authority.rb @@ -11,4 +11,8 @@ class Form::Sales::Questions::PropertyLocalAuthority < ::Form::Question def answer_options { "" => "Select an option" }.merge(LocalAuthority.active(form.start_date).england.map { |la| [la.code, la.name] }.to_h) end + + def hidden_in_check_answers?(log, _current_user = nil) + log.saledate && log.saledate.year >= 2023 && log.is_la_inferred? + end end diff --git a/app/models/form/sales/questions/town_or_city.rb b/app/models/form/sales/questions/town_or_city.rb new file mode 100644 index 000000000..9dde3aeb8 --- /dev/null +++ b/app/models/form/sales/questions/town_or_city.rb @@ -0,0 +1,13 @@ +class Form::Sales::Questions::TownOrCity < ::Form::Question + def initialize(id, hsh, page) + super + @id = "town_or_city" + @header = "Town or city" + @type = "text" + @plain_label = true + end + + def hidden_in_check_answers?(_log = nil, _current_user = nil) + true + end +end diff --git a/app/models/form/sales/questions/uprn.rb b/app/models/form/sales/questions/uprn.rb new file mode 100644 index 000000000..2c0b66dc8 --- /dev/null +++ b/app/models/form/sales/questions/uprn.rb @@ -0,0 +1,34 @@ +class Form::Sales::Questions::Uprn < ::Form::Question + def initialize(id, hsh, page) + super + @id = "uprn" + @check_answer_label = "UPRN" + @header = "What is the property's UPRN" + @type = "text" + @hint_text = "The Unique Property Reference Number (UPRN) is a unique number system created by Ordnance Survey and used by housing providers and sectors UK-wide. For example 10010457355." + @width = 10 + end + + def unanswered_error_message + I18n.t("validations.property.uprn.invalid") + end + + def get_extra_check_answer_value(log) + value = [ + log.address_line1, + log.address_line2, + log.town_or_city, + log.county, + log.postcode_full, + (LocalAuthority.find_by(code: log.la)&.name if log.la.present?), + ].select(&:present?) + + return unless value.any? + + "\n\n#{value.join("\n")}" + end + + def hidden_in_check_answers?(log, _current_user = nil) + log.uprn_known != 1 + end +end diff --git a/app/models/form/sales/questions/uprn_confirmation.rb b/app/models/form/sales/questions/uprn_confirmation.rb new file mode 100644 index 000000000..38ad9c938 --- /dev/null +++ b/app/models/form/sales/questions/uprn_confirmation.rb @@ -0,0 +1,34 @@ +class Form::Sales::Questions::UprnConfirmation < ::Form::Question + def initialize(id, hsh, page) + super + @id = "uprn_confirmed" + @header = "Is this the property address?" + @type = "radio" + @answer_options = ANSWER_OPTIONS + @check_answer_label = "Is this the right address?" + end + + ANSWER_OPTIONS = { + "1" => { "value" => "Yes" }, + "0" => { "value" => "No, I want to enter the address manually" }, + }.freeze + + def notification_banner(log = nil) + return unless log&.uprn + + { + title: "UPRN: #{log.uprn}", + heading: [ + log.address_line1, + log.address_line2, + log.postcode_full, + log.town_or_city, + log.county, + ].select(&:present?).join("\n"), + } + end + + def hidden_in_check_answers?(log, _current_user = nil) + log.uprn_known != 1 || log.uprn_confirmed.present? + end +end diff --git a/app/models/form/sales/questions/uprn_known.rb b/app/models/form/sales/questions/uprn_known.rb new file mode 100644 index 000000000..9f192f7de --- /dev/null +++ b/app/models/form/sales/questions/uprn_known.rb @@ -0,0 +1,21 @@ +class Form::Sales::Questions::UprnKnown < ::Form::Question + def initialize(id, hsh, page) + super + @id = "uprn_known" + @check_answer_label = "UPRN known?" + @header = "Do you know the property UPRN?" + @type = "radio" + @answer_options = ANSWER_OPTIONS + @hint_text = "The Unique Property Reference Number (UPRN) is a unique number system created by Ordnance Survey and used by housing providers and sectors UK-wide. For example 10010457355.

+ You can continue without the UPRN, but it means we will need you to enter the address of the property." + end + + ANSWER_OPTIONS = { + "1" => { "value" => "Yes" }, + "0" => { "value" => "No" }, + }.freeze + + def unanswered_error_message + I18n.t("validations.property.uprn_known.invalid") + end +end diff --git a/app/models/form/sales/subsections/property_information.rb b/app/models/form/sales/subsections/property_information.rb index a43607d7c..cca34a764 100644 --- a/app/models/form/sales/subsections/property_information.rb +++ b/app/models/form/sales/subsections/property_information.rb @@ -8,15 +8,36 @@ class Form::Sales::Subsections::PropertyInformation < ::Form::Subsection def pages @pages ||= [ + uprn_questions, Form::Sales::Pages::PropertyNumberOfBedrooms.new(nil, nil, self), Form::Sales::Pages::AboutPriceValueCheck.new("about_price_bedrooms_value_check", nil, self), Form::Sales::Pages::PropertyUnitType.new(nil, nil, self), Form::Sales::Pages::MonthlyChargesValueCheck.new("monthly_charges_property_type_value_check", nil, self), Form::Sales::Pages::PropertyBuildingType.new(nil, nil, self), - Form::Sales::Pages::Postcode.new(nil, nil, self), - Form::Sales::Pages::PropertyLocalAuthority.new(nil, nil, self), + postcode_and_la_questions, Form::Sales::Pages::AboutPriceValueCheck.new("about_price_la_value_check", nil, self), Form::Sales::Pages::PropertyWheelchairAccessible.new(nil, nil, self), - ] + ].flatten.compact + end + + def uprn_questions + if form.start_date.year >= 2023 + [ + Form::Sales::Pages::UprnKnown.new(nil, nil, self), + Form::Sales::Pages::Uprn.new(nil, nil, self), + Form::Sales::Pages::UprnConfirmation.new(nil, nil, self), + Form::Sales::Pages::Address.new(nil, nil, self), + Form::Sales::Pages::PropertyLocalAuthority.new(nil, nil, self), + ] + end + end + + def postcode_and_la_questions + if form.start_date.year < 2023 + [ + Form::Sales::Pages::Postcode.new(nil, nil, self), + Form::Sales::Pages::PropertyLocalAuthority.new(nil, nil, self), + ] + end end end diff --git a/app/models/lettings_log.rb b/app/models/lettings_log.rb index dad1ef705..57766a405 100644 --- a/app/models/lettings_log.rb +++ b/app/models/lettings_log.rb @@ -562,6 +562,8 @@ private not_required << "tshortfall" if tshortfall_unknown? not_required << "tenancylength" if tenancylength_optional? + not_required |= %w[address_line2 county postcode_full] if startdate && startdate.year >= 2023 + not_required end diff --git a/app/models/log.rb b/app/models/log.rb index 0cb974d31..256db3612 100644 --- a/app/models/log.rb +++ b/app/models/log.rb @@ -31,6 +31,24 @@ class Log < ApplicationRecord } scope :created_by, ->(user) { where(created_by: user) } + def process_uprn_change! + if uprn.present? + service = UprnClient.new(uprn) + service.call + + return errors.add(:uprn, service.error) if service.error.present? + + presenter = UprnDataPresenter.new(service.result) + + self.uprn_confirmed = nil + self.address_line1 = presenter.address_line1 + self.address_line2 = presenter.address_line2 + self.town_or_city = presenter.town_or_city + self.postcode_full = presenter.postcode + process_postcode_changes! + end + end + def collection_start_year return @start_year if @start_year diff --git a/app/models/sales_log.rb b/app/models/sales_log.rb index e15b9c610..c7fe68bca 100644 --- a/app/models/sales_log.rb +++ b/app/models/sales_log.rb @@ -31,6 +31,7 @@ class SalesLog < Log before_validation :reset_location_fields!, unless: :postcode_known? before_validation :reset_previous_location_fields!, unless: :previous_postcode_known? before_validation :set_derived_fields! + after_validation :process_uprn_change!, if: :should_process_uprn_change? scope :filter_by_year, ->(year) { where(saledate: Time.zone.local(year.to_i, 4, 1)...Time.zone.local(year.to_i + 1, 4, 1)) } scope :filter_by_purchaser_code, ->(purchid) { where("purchid ILIKE ?", "%#{purchid}%") } @@ -78,6 +79,8 @@ class SalesLog < Log not_required = [] not_required << "proplen" if proplen_optional? + not_required |= %w[address_line2 county postcode_full] if saledate && saledate.year >= 2023 + not_required end @@ -309,4 +312,8 @@ class SalesLog < Log field_value = public_send(field_name) format_as_currency(field_value) end + + def should_process_uprn_change? + uprn_changed? && saledate && saledate.year >= 2023 + end end diff --git a/app/models/validations/property_validations.rb b/app/models/validations/property_validations.rb index 8b0988dd9..2e53b8385 100644 --- a/app/models/validations/property_validations.rb +++ b/app/models/validations/property_validations.rb @@ -75,4 +75,12 @@ module Validations::PropertyValidations record.errors.add :beds, I18n.t("validations.property.beds.over_max") end end + + def validate_uprn(record) + return unless record.uprn + + return if record.uprn.match?(/^[0-9]{1,12}$/) + + record.errors.add :uprn, I18n.t("validations.property.uprn.invalid") + end end diff --git a/app/models/validations/sales/property_validations.rb b/app/models/validations/sales/property_validations.rb index 83f86ec8f..b1bdb5b62 100644 --- a/app/models/validations/sales/property_validations.rb +++ b/app/models/validations/sales/property_validations.rb @@ -16,4 +16,12 @@ module Validations::Sales::PropertyValidations record.errors.add :beds, I18n.t("validations.property.beds.bedsits_have_max_one_bedroom") end end + + def validate_uprn(record) + return unless record.uprn + + return if record.uprn.match?(/^[0-9]{1,12}$/) + + record.errors.add :uprn, I18n.t("validations.property.uprn.invalid") + end end diff --git a/app/services/uprn_client.rb b/app/services/uprn_client.rb new file mode 100644 index 000000000..2e57a6072 --- /dev/null +++ b/app/services/uprn_client.rb @@ -0,0 +1,50 @@ +require "net/http" + +class UprnClient + attr_reader :uprn + attr_accessor :error + + ADDRESS = "api.os.uk".freeze + PATH = "/search/places/v1/uprn".freeze + + def initialize(uprn) + @uprn = uprn + end + + def call + unless response.is_a?(Net::HTTPSuccess) && result.present? + @error = "UPRN is not recognised. Check the number, or enter the address" + end + rescue JSON::ParserError + @error = "UPRN is not recognised. Check the number, or enter the address" + end + + def result + @result ||= JSON.parse(response.body).dig("results", 0, "DPA") + end + +private + + def http_client + client = Net::HTTP.new(ADDRESS, 443) + client.use_ssl = true + client.verify_mode = OpenSSL::SSL::VERIFY_PEER + client.max_retries = 3 + client.read_timeout = 10 # seconds + client + end + + def endpoint_uri + uri = URI(PATH) + params = { + uprn:, + key: ENV["OS_DATA_KEY"], + } + uri.query = URI.encode_www_form(params) + uri.to_s + end + + def response + @response ||= http_client.request_get(endpoint_uri) + end +end diff --git a/app/services/uprn_data_presenter.rb b/app/services/uprn_data_presenter.rb new file mode 100644 index 000000000..5602cbd28 --- /dev/null +++ b/app/services/uprn_data_presenter.rb @@ -0,0 +1,41 @@ +require "net/http" + +class UprnDataPresenter + attr_reader :data + + def initialize(data) + @data = data + end + + def postcode + data["POSTCODE"] + end + + def address_line1 + data.values_at( + "PO_BOX_NUMBER", + "ORGANISATION_NAME", + "DEPARTMENT_NAME", + "SUB_BUILDING_NAME", + "BUILDING_NAME", + "BUILDING_NUMBER", + "DEPENDENT_THOROUGHFARE_NAME", + "THOROUGHFARE_NAME", + ).compact + .join(", ") + .titleize + end + + def address_line2 + data.values_at( + "DOUBLE_DEPENDENT_LOCALITY", "DEPENDENT_LOCALITY" + ).compact + .join(", ") + .titleize + .presence + end + + def town_or_city + data["POST_TOWN"].titleize + end +end diff --git a/app/views/form/_check_answers_summary_list.html.erb b/app/views/form/_check_answers_summary_list.html.erb index bb9b1e56b..71fe9cd97 100644 --- a/app/views/form/_check_answers_summary_list.html.erb +++ b/app/views/form/_check_answers_summary_list.html.erb @@ -3,12 +3,19 @@ <% summary_list.row do |row| %> <% row.key { get_question_label(question) } %> <% row.value do %> - <%= get_answer_label(question, @log) %> + <%= simple_format( + get_answer_label(question, @log), + wrapper_tag: "span", + class: "govuk-!-margin-right-4", + ) %> <% extra_value = question.get_extra_check_answer_value(@log) %> - <% if extra_value %> - <%= extra_value %> + <% if extra_value && question.answer_label(lettings_log, current_user).present? %> + <%= simple_format( + extra_value, + wrapper_tag: "span", + class: "govuk-!-font-weight-regular app-!-colour-muted", + ) %> <% end %> -
<% question.get_inferred_answers(@log).each do |inferred_answer| %> <%= inferred_answer %> <% end %> diff --git a/app/views/form/_numeric_output_question.html.erb b/app/views/form/_numeric_output_question.html.erb index b96e7b53d..8892523aa 100644 --- a/app/views/form/_numeric_output_question.html.erb +++ b/app/views/form/_numeric_output_question.html.erb @@ -1,7 +1,7 @@ <%= render partial: "form/guidance/#{question.guidance_partial}" if question.top_guidance? %>
-