Browse Source

feat: use scoping to simplify editable set logic

pull/2027/head
natdeanlewissoftwire 3 years ago
parent
commit
8200634c9f
  1. 16
      app/models/form_handler.rb
  2. 6
      app/models/organisation.rb
  3. 6
      app/models/user.rb

16
app/models/form_handler.rb

@ -178,6 +178,22 @@ class FormHandler
end
end
def lettings_earliest_open_for_editing_collection_start_date(now: Time.zone.now)
if lettings_in_edit_crossover_period?(now:)
collection_start_date(now) - 1.year
else
collection_start_date(now)
end
end
def sales_earliest_open_for_editing_collection_start_date(now: Time.zone.now)
if sales_in_edit_crossover_period?(now:)
collection_start_date(now) - 1.year
else
collection_start_date(now)
end
end
private
def get_all_forms

6
app/models/organisation.rb

@ -134,13 +134,11 @@ class Organisation < ApplicationRecord
end
def editable_duplicate_lettings_logs_sets
lettings_logs.duplicate_sets.map { |array_str| array_str ? array_str.map(&:to_i) : [] }
.select { |set| LettingsLog.find(set.first).collection_period_open_for_editing? }
lettings_logs.after_date(FormHandler.instance.lettings_earliest_open_for_editing_collection_start_date).duplicate_sets.map { |array_str| array_str ? array_str.map(&:to_i) : [] }
end
def editable_duplicate_sales_logs_sets
sales_logs.duplicate_sets.map { |array_str| array_str ? array_str.map(&:to_i) : [] }
.select { |set| SalesLog.find(set.first).collection_period_open_for_editing? }
sales_logs.after_date(FormHandler.instance.sales_earliest_open_for_editing_collection_start_date).duplicate_sets.map { |array_str| array_str ? array_str.map(&:to_i) : [] }
end
def recently_absorbed_organisations_grouped_by_merge_date

6
app/models/user.rb

@ -204,13 +204,11 @@ class User < ApplicationRecord
end
def editable_duplicate_lettings_logs_sets
lettings_logs.duplicate_sets(id).map { |array_str| array_str ? array_str.map(&:to_i) : [] }
.select { |set| LettingsLog.find(set.first).collection_period_open_for_editing? }
lettings_logs.after_date(FormHandler.instance.lettings_earliest_open_for_editing_collection_start_date).duplicate_sets(id).map { |array_str| array_str ? array_str.map(&:to_i) : [] }
end
def editable_duplicate_sales_logs_sets
sales_logs.duplicate_sets(id).map { |array_str| array_str ? array_str.map(&:to_i) : [] }
.select { |set| SalesLog.find(set.first).collection_period_open_for_editing? }
sales_logs.after_date(FormHandler.instance.sales_earliest_open_for_editing_collection_start_date).duplicate_sets(id).map { |array_str| array_str ? array_str.map(&:to_i) : [] }
end
protected

Loading…
Cancel
Save