|
|
|
@ -235,7 +235,7 @@ class Scheme < ApplicationRecord |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
def status_at(date) |
|
|
|
def status_at(date) |
|
|
|
return :incomplete unless confirmed && has_active_locations? |
|
|
|
return :incomplete unless confirmed && has_completed_locations? |
|
|
|
return :deactivated if open_deactivation&.deactivation_date.present? && date >= open_deactivation.deactivation_date |
|
|
|
return :deactivated if open_deactivation&.deactivation_date.present? && date >= open_deactivation.deactivation_date |
|
|
|
return :deactivating_soon if open_deactivation&.deactivation_date.present? && date < open_deactivation.deactivation_date |
|
|
|
return :deactivating_soon if open_deactivation&.deactivation_date.present? && date < open_deactivation.deactivation_date |
|
|
|
return :reactivating_soon if recent_deactivation&.reactivation_date.present? && date < recent_deactivation.reactivation_date |
|
|
|
return :reactivating_soon if recent_deactivation&.reactivation_date.present? && date < recent_deactivation.reactivation_date |
|
|
|
@ -255,7 +255,13 @@ class Scheme < ApplicationRecord |
|
|
|
status == :deactivated |
|
|
|
status == :deactivated |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
def has_active_locations? |
|
|
|
def has_completed_locations? |
|
|
|
locations.count { |location| %i[active deactivating_soon].include?(location.status) }.positive? |
|
|
|
completed_locations_count.positive? |
|
|
|
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def completed_locations_count |
|
|
|
|
|
|
|
locations.count { |location| location.status != :incomplete } |
|
|
|
end |
|
|
|
end |
|
|
|
end |
|
|
|
end |
|
|
|
|