Browse Source

status check all deactivation periods instead of just one

pull/2995/head
Carolyn 2 months ago
parent
commit
78c6f55de0
  1. 2
      app/models/location.rb
  2. 5
      app/models/location_deactivation_period.rb
  3. 2
      app/models/scheme.rb
  4. 4
      app/models/scheme_deactivation_period.rb

2
app/models/location.rb

@ -235,7 +235,7 @@ class Location < ApplicationRecord
open_deactivation&.deactivation_date.present? && date >= open_deactivation.deactivation_date || scheme.status_at(date) == :deactivated open_deactivation&.deactivation_date.present? && date >= open_deactivation.deactivation_date || scheme.status_at(date) == :deactivated
return :deactivating_soon if open_deactivation&.deactivation_date.present? && date < open_deactivation.deactivation_date || scheme.status_at(date) == :deactivating_soon return :deactivating_soon if open_deactivation&.deactivation_date.present? && date < open_deactivation.deactivation_date || scheme.status_at(date) == :deactivating_soon
return :activating_soon if startdate.present? && date < startdate return :activating_soon if startdate.present? && date < startdate
return :reactivating_soon if last_deactivation_before(date)&.reactivation_date.present? && date < last_deactivation_before(date).reactivation_date || scheme.status_at(date) == :reactivating_soon return :reactivating_soon if location_deactivation_periods.deactivations_with_reactivation.any? { |p| p.includes_date?(date) } || scheme.status_at(date) == :reactivating_soon
:active :active
end end

5
app/models/location_deactivation_period.rb

@ -48,4 +48,9 @@ class LocationDeactivationPeriod < ApplicationRecord
attr_accessor :deactivation_date_type, :reactivation_date_type attr_accessor :deactivation_date_type, :reactivation_date_type
scope :deactivations_without_reactivation, -> { where(reactivation_date: nil) } scope :deactivations_without_reactivation, -> { where(reactivation_date: nil) }
scope :deactivations_with_reactivation, -> { where.not(reactivation_date: nil) }
def includes_date?(date)
deactivation_date <= date && (reactivation_date.nil? or reactivation_date > date)
end
end end

2
app/models/scheme.rb

@ -333,7 +333,7 @@ class Scheme < ApplicationRecord
(open_deactivation&.deactivation_date.present? && date >= open_deactivation.deactivation_date) (open_deactivation&.deactivation_date.present? && date >= open_deactivation.deactivation_date)
return :incomplete unless confirmed && locations.confirmed.any? return :incomplete unless confirmed && locations.confirmed.any?
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 last_deactivation_before(date)&.reactivation_date.present? && date < last_deactivation_before(date).reactivation_date return :reactivating_soon if scheme_deactivation_periods.deactivations_with_reactivation.any? { |p| p.includes_date?(date) }
return :activating_soon if startdate.present? && date < startdate return :activating_soon if startdate.present? && date < startdate
:active :active

4
app/models/scheme_deactivation_period.rb

@ -49,4 +49,8 @@ class SchemeDeactivationPeriod < ApplicationRecord
scope :deactivations_without_reactivation, -> { where(reactivation_date: nil) } scope :deactivations_without_reactivation, -> { where(reactivation_date: nil) }
scope :deactivations_with_reactivation, -> { where.not(reactivation_date: nil) } scope :deactivations_with_reactivation, -> { where.not(reactivation_date: nil) }
def includes_date?(date)
deactivation_date <= date && (reactivation_date.nil? or reactivation_date > date)
end
end end

Loading…
Cancel
Save