Browse Source

Display correct owning organisation options

pull/2049/head
Kat 3 years ago
parent
commit
6e95c36acc
  1. 17
      app/models/form/sales/questions/owning_organisation_id.rb
  2. 25
      spec/models/form/sales/questions/owning_organisation_id_spec.rb

17
app/models/form/sales/questions/owning_organisation_id.rb

@ -11,11 +11,24 @@ class Form::Sales::Questions::OwningOrganisationId < ::Form::Question
answer_opts = { "" => "Select an option" }
return answer_opts unless ActiveRecord::Base.connected?
if FeatureToggle.merge_organisations_enabled?
return answer_opts unless user
return answer_opts unless log
if FeatureToggle.sales_managing_organisation_enabled? && !user.support?
if log.owning_organisation_id.present?
answer_opts[log.owning_organisation.id] = log.owning_organisation.name
end
if user.organisation.holds_own_stock?
answer_opts[user.organisation.id] = "#{user.organisation.name} (Your organisation)"
end
user.organisation.stock_owners.where(holds_own_stock: true).find_each do |org|
answer_opts[org.id] = org.name
end
end
if FeatureToggle.merge_organisations_enabled?
if log.owning_organisation_id.present?
answer_opts[log.owning_organisation.id] = log.owning_organisation.name
end

25
spec/models/form/sales/questions/owning_organisation_id_spec.rb

@ -59,21 +59,25 @@ RSpec.describe Form::Sales::Questions::OwningOrganisationId, type: :model do
let(:owning_org_1) { create(:organisation, name: "Owning org 1") }
let(:owning_org_2) { create(:organisation, name: "Owning org 2") }
let!(:org_rel) do
create(:organisation_relationship, child_organisation: user.organisation, parent_organisation: owning_org_2)
end
let(:non_stock_owner) { create(:organisation, name: "Non stock owner", holds_own_stock: false) }
let(:log) { create(:lettings_log, owning_organisation: owning_org_1) }
context "when user's org owns stock" do
before do
create(:organisation_relationship, child_organisation: user.organisation, parent_organisation: owning_org_2)
create(:organisation_relationship, child_organisation: user.organisation, parent_organisation: non_stock_owner)
end
let(:options) do
{
"" => "Select an option",
owning_org_1.id => "Owning org 1",
owning_org_2.id => "Owning org 2",
user.organisation.id => "User org (Your organisation)",
}
end
it "does not show stock owner" do
it "shows user organisation, current owning organisation and the stock owners that hold their stock" do
user.organisation.update!(holds_own_stock: true)
expect(question.displayed_answer_options(log, user)).to eq(options)
end
@ -84,10 +88,16 @@ RSpec.describe Form::Sales::Questions::OwningOrganisationId, type: :model do
{
"" => "Select an option",
owning_org_1.id => "Owning org 1",
owning_org_2.id => "Owning org 2",
}
end
it "shows current log owner" do
before do
create(:organisation_relationship, child_organisation: user.organisation, parent_organisation: owning_org_2)
create(:organisation_relationship, child_organisation: user.organisation, parent_organisation: non_stock_owner)
end
it "shows current owning organisation and the stock owners that hold their stock" do
user.organisation.update!(holds_own_stock: false)
expect(question.displayed_answer_options(log, user)).to eq(options)
end
@ -156,7 +166,7 @@ RSpec.describe Form::Sales::Questions::OwningOrganisationId, type: :model do
end
before do
org_rel.update!(child_organisation: merged_organisation)
create(:organisation_relationship, child_organisation: user.organisation, parent_organisation: merged_organisation)
merged_organisation.update!(merge_date: Time.zone.local(2023, 2, 2), absorbing_organisation: user.organisation)
Timecop.freeze(Time.zone.local(2023, 11, 10))
end
@ -176,13 +186,14 @@ RSpec.describe Form::Sales::Questions::OwningOrganisationId, type: :model do
{
"" => "Select an option",
user.organisation.id => "User org (Your organisation)",
merged_organisation.id => "Merged org",
owning_org_1.id => "Owning org 1",
}
end
before do
Timecop.freeze(Time.zone.local(2023, 4, 2))
org_rel.update!(child_organisation: merged_organisation)
create(:organisation_relationship, child_organisation: user.organisation, parent_organisation: merged_organisation)
merged_organisation.update!(merge_date: Time.zone.local(2021, 6, 2), absorbing_organisation: user.organisation)
user.organisation.update!(available_from: Time.zone.local(2021, 2, 2))
end

Loading…
Cancel
Save