Browse Source

feat: update scheme status so incomplete unless has active locations

pull/1456/head
natdeanlewissoftwire 3 years ago
parent
commit
adc3461caa
  1. 6
      app/models/scheme.rb
  2. 2
      db/schema.rb

6
app/models/scheme.rb

@ -235,7 +235,7 @@ class Scheme < ApplicationRecord
end end
def status_at(date) def status_at(date)
return :incomplete unless confirmed return :incomplete unless confirmed && has_active_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
@ -254,4 +254,8 @@ class Scheme < ApplicationRecord
def deactivated? def deactivated?
status == :deactivated status == :deactivated
end end
def has_active_locations?
locations.count { |location| %i[active deactivating_soon].include?(location.status) }.positive?
end
end end

2
db/schema.rb

@ -568,8 +568,8 @@ ActiveRecord::Schema[7.0].define(version: 2023_03_20_084057) do
t.string "town_or_city" t.string "town_or_city"
t.string "county" t.string "county"
t.integer "nationalbuy2" t.integer "nationalbuy2"
t.integer "student_not_child_value_check"
t.integer "discounted_sale_value_check" t.integer "discounted_sale_value_check"
t.integer "student_not_child_value_check"
t.index ["bulk_upload_id"], name: "index_sales_logs_on_bulk_upload_id" t.index ["bulk_upload_id"], name: "index_sales_logs_on_bulk_upload_id"
t.index ["created_by_id"], name: "index_sales_logs_on_created_by_id" t.index ["created_by_id"], name: "index_sales_logs_on_created_by_id"
t.index ["old_id"], name: "index_sales_logs_on_old_id", unique: true t.index ["old_id"], name: "index_sales_logs_on_old_id", unique: true

Loading…
Cancel
Save