@ -6,45 +6,15 @@ module Validations::SetupValidations
end
def validate_location ( record )
location_status_during_startdate = status_during_startdate ( record . startdate , record . location & . location_deactivation_periods , record . location & . available_from )
if location_status_during_startdate . present? && location_status_during_startdate [ :status ] == :deactivated
record . errors . add :location_id , I18n . t ( " validations.setup.startdate.during_deactivated_location " , postcode : record . location . postcode , date : location_status_during_startdate [ :date ] . to_formatted_s ( :govuk_date ) )
end
if location_status_during_startdate . present? && location_status_during_startdate [ :status ] == :reactivating_soon
record . errors . add :location_id , I18n . t ( " validations.setup.startdate.location_reactivating_soon " , postcode : record . location . postcode , date : location_status_during_startdate [ :date ] . to_formatted_s ( :govuk_date ) , deactivation_date : location_status_during_startdate [ :deactivation_date ] . to_formatted_s ( :govuk_date ) )
end
if location_status_during_startdate . present? && location_status_during_startdate [ :status ] == :activating_soon
record . errors . add :location_id , I18n . t ( " validations.setup.startdate.location_activating_soon " , postcode : record . location . postcode , date : location_status_during_startdate [ :date ] . to_formatted_s ( :govuk_date ) )
end
validate_location_during_startdate ( record , :location_id )
end
def validate_scheme ( record )
location_status_during_startdate = status_during_startdate ( record . startdate , record . location & . location_deactivation_periods , record . location & . available_from )
if location_status_during_startdate . present? && location_status_during_startdate [ :status ] == :deactivated
record . errors . add :scheme_id , I18n . t ( " validations.setup.startdate.during_deactivated_location " , postcode : record . location . postcode , date : location_status_during_startdate [ :date ] . to_formatted_s ( :govuk_date ) )
end
if location_status_during_startdate . present? && location_status_during_startdate [ :status ] == :reactivating_soon
record . errors . add :scheme_id , I18n . t ( " validations.setup.startdate.location_reactivating_soon " , postcode : record . location . postcode , date : location_status_during_startdate [ :date ] . to_formatted_s ( :govuk_date ) , deactivation_date : location_status_during_startdate [ :deactivation_date ] . to_formatted_s ( :govuk_date ) )
end
if location_status_during_startdate . present? && location_status_during_startdate [ :status ] == :activating_soon
record . errors . add :scheme_id , I18n . t ( " validations.setup.startdate.location_activating_soon " , postcode : record . location . postcode , date : location_status_during_startdate [ :date ] . to_formatted_s ( :govuk_date ) )
end
validate_location_during_startdate ( record , :scheme_id )
scheme_status_during_startdate = status_during_startdate ( record . startdate , record . scheme & . scheme_deactivation_periods , record . scheme & . available_from )
if scheme_status_during_startdate . present? && scheme_status_during_startdate [ :status ] == :deactivated
record . errors . add :scheme_id , I18n . t ( " validations.setup.startdate.during_deactivated_scheme " , name : record . scheme . service_name , date : scheme_status_during_startdate [ :date ] . to_formatted_s ( :govuk_date ) )
end
if scheme_status_during_startdate . present? && scheme_status_during_startdate [ :status ] == :reactivating_soon
record . errors . add :scheme_id , I18n . t ( " validations.setup.startdate.scheme_reactivating_soon " , name : record . scheme . service_name , date : scheme_status_during_startdate [ :date ] . to_formatted_s ( :govuk_date ) , deactivation_date : scheme_status_during_startdate [ :deactivation_date ] . to_formatted_s ( :govuk_date ) )
end
if scheme_status_during_startdate . present? && scheme_status_during_startdate [ :status ] == :activating_soon
record . errors . add :scheme_id , I18n . t ( " validations.setup.startdate.scheme_activating_soon " , name : record . scheme . service_name , date : scheme_status_during_startdate [ :date ] . to_formatted_s ( :govuk_date ) )
if scheme_status_during_startdate . present?
record . errors . add :scheme_id , I18n . t ( " validations.setup.startdate.scheme_ #{ scheme_status_during_startdate [ :status ] } " , name : record . scheme . service_name , date : scheme_status_during_startdate [ :date ] . to_formatted_s ( :govuk_date ) , deactivation_date : scheme_status_during_startdate [ :deactivation_date ] & . to_formatted_s ( :govuk_date ) )
end
end
@ -58,10 +28,17 @@ private
return if date . blank?
closest_reactivation = deactivation_periods . reverse . find { | period | period . reactivation_date . present? && date . between? ( period . deactivation_date , period . reactivation_date - 1 . day ) } if deactivation_periods . present?
return { status : : reactivating_soon, date : closest_reactivation . reactivation_date , deactivation_date : closest_reactivation . deactivation_date } if closest_reactivation . present?
return { status : : activating_soon, date : available_from } if available_from . present? && available_from > date
return { status : " reactivating_soon" , date : closest_reactivation . reactivation_date , deactivation_date : closest_reactivation . deactivation_date } if closest_reactivation . present?
return { status : " activating_soon" , date : available_from } if available_from . present? && available_from > date
open_deactivation = deactivation_periods . deactivations_without_reactivation . first if deactivation_periods . present?
return { status : :deactivated , date : open_deactivation . deactivation_date } if open_deactivation . present? && open_deactivation . deactivation_date < = date
return { status : " deactivated " , date : open_deactivation . deactivation_date } if open_deactivation . present? && open_deactivation . deactivation_date < = date
end
def validate_location_during_startdate ( record , field )
location_status_during_startdate = status_during_startdate ( record . startdate , record . location & . location_deactivation_periods , record . location & . available_from )
if location_status_during_startdate . present?
record . errors . add field , I18n . t ( " validations.setup.startdate.location_ #{ location_status_during_startdate [ :status ] } " , postcode : record . location . postcode , date : location_status_during_startdate [ :date ] . to_formatted_s ( :govuk_date ) , deactivation_date : location_status_during_startdate [ :deactivation_date ] & . to_formatted_s ( :govuk_date ) )
end
end
end