@ -92,14 +92,12 @@ class SchemesController < ApplicationController
validation_errors scheme_params
if @scheme . errors . empty? && @scheme . save
if @scheme . arrangement_type_before_type_cast == " D "
redirect_to scheme_primary_client_group_path ( @scheme )
else
redirect_to scheme_support_services_provider_path ( @scheme )
end
redirect_to scheme_primary_client_group_path ( @scheme )
else
@scheme . errors . add ( :owning_organisation_id , message : @scheme . errors [ :organisation ] )
@scheme . errors . delete ( :owning_organisation )
if @scheme . errors . any? { | error | error . attribute == :owning_organisation }
@scheme . errors . add ( :owning_organisation_id , message : @scheme . errors [ :organisation ] )
@scheme . errors . delete ( :owning_organisation )
end
render :new , status : :unprocessable_entity
end
end
@ -182,12 +180,6 @@ class SchemesController < ApplicationController
render " schemes/edit_name "
end
def support_services_provider
render_not_found and return unless @scheme
render " schemes/support_services_provider "
end
private
def validation_errors ( scheme_params )
@ -196,10 +188,6 @@ private
@scheme . errors . add ( key . to_sym )
end
end
if @scheme . arrangement_type_same? && arrangement_type_value ( scheme_params [ :arrangement_type ] ) != " D "
@scheme . errors . delete ( :managing_organisation_id )
end
end
def confirm_secondary_page? ( page )
@ -209,8 +197,6 @@ private
def current_template ( page )
if page . include? ( " primary " )
" schemes/primary_client_group "
elsif page . include? ( " support-services-provider " )
" schemes/support_services_provider "
elsif page . include? ( " confirm " )
" schemes/confirm_secondary "
elsif page . include? ( " secondary-client " )
@ -228,8 +214,6 @@ private
def next_page_path ( page )
case page
when " support-services-provider "
scheme_primary_client_group_path ( @scheme )
when " primary-client-group "
scheme_confirm_secondary_client_group_path ( @scheme )
when " confirm-secondary "
@ -239,13 +223,7 @@ private
when " support "
scheme_check_answers_path ( @scheme )
when " details "
if @scheme . arrangement_type_before_type_cast == " D "
scheme_primary_client_group_path ( @scheme )
elsif @scheme . arrangement_type . present? && @scheme . arrangement_type_before_type_cast != " D "
scheme_support_services_provider_path ( @scheme )
else
scheme_details_path ( @scheme )
end
scheme_primary_client_group_path ( @scheme )
when " edit-name "
scheme_check_answers_path ( @scheme )
when " check-answers "
@ -257,7 +235,6 @@ private
required_params = params . require ( :scheme ) . permit ( :service_name ,
:sensitive ,
:owning_organisation_id ,
:managing_organisation_id ,
:scheme_type ,
:registered_under_care_act ,
:id ,
@ -269,14 +246,6 @@ private
:intended_stay ,
:confirmed )
if arrangement_type_changed_to_different_org? ( required_params )
required_params [ :managing_organisation_id ] = nil
end
if arrangement_type_set_to_same_org? ( required_params )
required_params [ :managing_organisation_id ] = required_params [ :owning_organisation_id ] || @scheme . owning_organisation_id
end
required_params [ :sensitive ] = required_params [ :sensitive ] . to_i if required_params [ :sensitive ]
if current_user . data_coordinator?
@ -285,22 +254,6 @@ private
required_params
end
def arrangement_type_set_to_same_org? ( required_params )
return unless @scheme
arrangement_type_value ( required_params [ :arrangement_type ] ) == " D " || ( required_params [ :arrangement_type ] . blank? && @scheme . arrangement_type_same? )
end
def arrangement_type_changed_to_different_org? ( required_params )
return unless @scheme
@scheme . arrangement_type_same? && arrangement_type_value ( required_params [ :arrangement_type ] ) != " D " && required_params [ :managing_organisation_id ] . blank?
end
def arrangement_type_value ( key )
key . present? ? Scheme :: ARRANGEMENT_TYPE [ key . to_sym ] : nil
end
def search_term
params [ " search " ]
end