|
|
|
@ -25,10 +25,9 @@ class LocationsController < ApplicationController |
|
|
|
|
|
|
|
|
|
|
|
if @location.errors.present? |
|
|
|
if @location.errors.present? |
|
|
|
render "toggle_active", locals: { action: "deactivate" }, status: :unprocessable_entity |
|
|
|
render "toggle_active", locals: { action: "deactivate" }, status: :unprocessable_entity |
|
|
|
else |
|
|
|
elsif deactivation_date_value.blank? |
|
|
|
if deactivation_date_value.blank? |
|
|
|
|
|
|
|
render "toggle_active", locals: { action: "deactivate" } |
|
|
|
render "toggle_active", locals: { action: "deactivate" } |
|
|
|
elsif (params[:location][:confirm].present?) |
|
|
|
elsif params[:location][:confirm].present? |
|
|
|
if @location.update(deactivation_date: deactivation_date_value) |
|
|
|
if @location.update(deactivation_date: deactivation_date_value) |
|
|
|
# update the logs |
|
|
|
# update the logs |
|
|
|
flash[:notice] = "#{@location.name} has been deactivated" |
|
|
|
flash[:notice] = "#{@location.name} has been deactivated" |
|
|
|
@ -38,7 +37,6 @@ class LocationsController < ApplicationController |
|
|
|
render "toggle_active_confirm", locals: { action: "deactivate", deactivation_date: deactivation_date_value } |
|
|
|
render "toggle_active_confirm", locals: { action: "deactivate", deactivation_date: deactivation_date_value } |
|
|
|
end |
|
|
|
end |
|
|
|
end |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def create |
|
|
|
def create |
|
|
|
if date_params_missing?(location_params) || valid_date_params?(location_params) |
|
|
|
if date_params_missing?(location_params) || valid_date_params?(location_params) |
|
|
|
@ -164,8 +162,8 @@ private |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
def deactivation_date |
|
|
|
def deactivation_date |
|
|
|
return unless params[:location].present? |
|
|
|
return if params[:location].blank? |
|
|
|
return @location.errors.add(:deactivation_date, message: I18n.t("validations.location.deactivation_date.not_selected")) unless params[:location][:deactivation_date].present? |
|
|
|
return @location.errors.add(:deactivation_date, message: I18n.t("validations.location.deactivation_date.not_selected")) if params[:location][:deactivation_date].blank? |
|
|
|
return params[:location][:deactivation_date] unless params[:location][:deactivation_date] == "other" |
|
|
|
return params[:location][:deactivation_date] unless params[:location][:deactivation_date] == "other" |
|
|
|
|
|
|
|
|
|
|
|
day = params[:location]["deactivation_date(3i)"] |
|
|
|
day = params[:location]["deactivation_date(3i)"] |
|
|
|
@ -182,7 +180,7 @@ private |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
def deactivation_date_valid?(day, month, year, collection_start_date) |
|
|
|
def deactivation_date_valid?(day, month, year, collection_start_date) |
|
|
|
[day, month, year].all?(&:present?) && Date.valid_date?(year.to_i, month.to_i, day.to_i) && Date.new(year.to_i, month.to_i, day.to_i).between?(collection_start_date, Time.new(2200,1,1)) |
|
|
|
[day, month, year].all?(&:present?) && Date.valid_date?(year.to_i, month.to_i, day.to_i) && Date.new(year.to_i, month.to_i, day.to_i).between?(collection_start_date, Date.new(2200, 1, 1)) |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
def set_deactivation_date_errors(day, month, year, collection_start_date) |
|
|
|
def set_deactivation_date_errors(day, month, year, collection_start_date) |
|
|
|
@ -192,7 +190,7 @@ private |
|
|
|
end |
|
|
|
end |
|
|
|
elsif !Date.valid_date?(year.to_i, month.to_i, day.to_i) |
|
|
|
elsif !Date.valid_date?(year.to_i, month.to_i, day.to_i) |
|
|
|
@location.errors.add(:deactivation_date, message: I18n.t("validations.location.deactivation_date.invalid")) |
|
|
|
@location.errors.add(:deactivation_date, message: I18n.t("validations.location.deactivation_date.invalid")) |
|
|
|
elsif !Date.new(year.to_i, month.to_i, day.to_i).between?(collection_start_date, Time.new(2200,1,1)) |
|
|
|
elsif !Date.new(year.to_i, month.to_i, day.to_i).between?(collection_start_date, Date.new(2200, 1, 1)) |
|
|
|
@location.errors.add(:deactivation_date, message: I18n.t("validations.location.deactivation_date.out_of_range", date: collection_start_date.to_formatted_s(:govuk_date))) |
|
|
|
@location.errors.add(:deactivation_date, message: I18n.t("validations.location.deactivation_date.out_of_range", date: collection_start_date.to_formatted_s(:govuk_date))) |
|
|
|
end |
|
|
|
end |
|
|
|
end |
|
|
|
end |
|
|
|
|