Browse Source

feat: add related org helper

pull/957/head
natdeanlewissoftwire 3 years ago
parent
commit
5626f64330
  1. 59
      app/controllers/organisation_relationships_controller.rb

59
app/controllers/organisation_relationships_controller.rb

@ -38,44 +38,47 @@ class OrganisationRelationshipsController < ApplicationController
end end
def create_housing_provider def create_housing_provider
child_organisation_id = @organisation.id child_organisation = @organisation
parent_organisation_id = related_organisation_id
relationship_type = OrganisationRelationship::OWNING relationship_type = OrganisationRelationship::OWNING
if related_organisation_id.empty? if params[:organisation][:related_organisation_id].empty?
@organisation.errors.add :related_organisation_id, "You must choose a housing provider" @organisation.errors.add :related_organisation_id, "You must choose a housing provider"
@organisations = Organisation.where.not(id: child_organisation_id).pluck(:id, :name) @organisations = Organisation.where.not(id: child_organisation.id).pluck(:id, :name)
render "organisation_relationships/add_housing_provider"
return
elsif OrganisationRelationship.exists?(child_organisation_id:, parent_organisation_id:, relationship_type:)
@organisation.errors.add :related_organisation_id, "You have already added this housing provider"
@organisations = Organisation.where.not(id: child_organisation_id).pluck(:id, :name)
render "organisation_relationships/add_housing_provider" render "organisation_relationships/add_housing_provider"
return return
else
parent_organisation = related_organisation
if OrganisationRelationship.exists?(child_organisation:, parent_organisation:, relationship_type:)
@organisation.errors.add :related_organisation_id, "You have already added this housing provider"
@organisations = Organisation.where.not(id: child_organisation.id).pluck(:id, :name)
render "organisation_relationships/add_housing_provider"
return
end
end end
create!(child_organisation_id:, parent_organisation_id:, relationship_type:) create!(child_organisation:, parent_organisation:, relationship_type:)
flash[:notice] = "#{Organisation.find(related_organisation_id).name} is now one of #{current_user.data_coordinator? ? 'your' : "this organisation's"} housing providers" flash[:notice] = "#{related_organisation.name} is now one of #{current_user.data_coordinator? ? 'your' : "this organisation's"} housing providers"
redirect_to housing_providers_organisation_path redirect_to housing_providers_organisation_path
end end
def create_managing_agent def create_managing_agent
parent_organisation_id = @organisation.id parent_organisation = @organisation
child_organisation_id = related_organisation_id
relationship_type = OrganisationRelationship::MANAGING relationship_type = OrganisationRelationship::MANAGING
if params[:organisation][:related_organisation_id].empty?
if related_organisation_id.empty?
@organisation.errors.add :related_organisation_id, "You must choose a managing agent" @organisation.errors.add :related_organisation_id, "You must choose a managing agent"
@organisations = Organisation.where.not(id: parent_organisation_id).pluck(:id, :name) @organisations = Organisation.where.not(id: parent_organisation.id).pluck(:id, :name)
render "organisation_relationships/add_managing_agent"
return
elsif OrganisationRelationship.exists?(child_organisation_id:, parent_organisation_id:, relationship_type:)
@organisation.errors.add :related_organisation_id, "You have already added this managing agent"
@organisations = Organisation.where.not(id: parent_organisation_id).pluck(:id, :name)
render "organisation_relationships/add_managing_agent" render "organisation_relationships/add_managing_agent"
return return
else
child_organisation = related_organisation
if OrganisationRelationship.exists?(child_organisation:, parent_organisation:, relationship_type:)
@organisation.errors.add :related_organisation_id, "You have already added this managing agent"
@organisations = Organisation.where.not(id: parent_organisation.id).pluck(:id, :name)
render "organisation_relationships/add_managing_agent"
return
end
end end
create!(child_organisation:, parent_organisation:, relationship_type:)
create!(child_organisation_id:, parent_organisation_id:, relationship_type:) flash[:notice] = "#{related_organisation.name} is now one of #{current_user.data_coordinator? ? 'your' : "this organisation's"} managing agents"
redirect_to managing_agents_organisation_path(related_organisation_id:) redirect_to managing_agents_organisation_path
end end
def remove_housing_provider def remove_housing_provider
@ -91,8 +94,8 @@ class OrganisationRelationshipsController < ApplicationController
private private
def create!(child_organisation_id:, parent_organisation_id:, relationship_type:) def create!(child_organisation:, parent_organisation:, relationship_type:)
@resource = OrganisationRelationship.new(child_organisation_id:, parent_organisation_id:, relationship_type:) @resource = OrganisationRelationship.new(child_organisation:, parent_organisation:, relationship_type:)
@resource.save! @resource.save!
end end
@ -100,8 +103,8 @@ private
@organisation ||= Organisation.find(params[:id]) @organisation ||= Organisation.find(params[:id])
end end
def related_organisation_id def related_organisation
params["organisation"]["related_organisation_id"] @related_organisation ||= Organisation.find(params[:organisation][:related_organisation_id])
end end
def target_organisation def target_organisation

Loading…
Cancel
Save