From 807e14884f4cc45b32400dff7183c8d310936224 Mon Sep 17 00:00:00 2001 From: Kat Date: Mon, 10 Jul 2023 12:08:53 +0100 Subject: [PATCH] Extract duplicate log fields as contsants --- app/models/lettings_log.rb | 8 ++++++-- app/models/sales_log.rb | 4 ++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/app/models/lettings_log.rb b/app/models/lettings_log.rb index 590498c3a..cd31eb656 100644 --- a/app/models/lettings_log.rb +++ b/app/models/lettings_log.rb @@ -54,8 +54,7 @@ class LettingsLog < Log scope :unresolved, -> { where(unresolved: true) } scope :filter_by_organisation, ->(org, _user = nil) { where(owning_organisation: org).or(where(managing_organisation: org)) } scope :duplicate_logs, lambda { |log| - attrs_to_check = %w[tenancycode propcode startdate age1 sex1 ecstat1 tcharge postcode_full] - where(log.slice(*attrs_to_check)) + where(log.slice(*DUPLICATE_LOG_ATTRIBUTES)) .where.not(id: log.id) .where.not(status: "deleted") .where.not("startdate IS NULL OR age1 IS NULL OR sex1 IS NULL OR ecstat1 IS NULL OR tcharge IS NULL OR postcode_full IS NULL OR propcode IS NULL OR needstype IS NULL") @@ -70,6 +69,7 @@ class LettingsLog < Log NUM_OF_WEEKS_FROM_PERIOD = { 2 => 26, 3 => 13, 4 => 12, 5 => 50, 6 => 49, 7 => 48, 8 => 47, 9 => 46, 1 => 52, 10 => 53 }.freeze SUFFIX_FROM_PERIOD = { 2 => "every 2 weeks", 3 => "every 4 weeks", 4 => "every month" }.freeze RETIREMENT_AGES = { "M" => 67, "F" => 60, "X" => 67 }.freeze + DUPLICATE_LOG_ATTRIBUTES = %w[tenancycode propcode startdate age1 sex1 ecstat1 tcharge postcode_full].freeze def form FormHandler.instance.get_form(form_name) || FormHandler.instance.current_lettings_form @@ -531,6 +531,10 @@ class LettingsLog < Log end end + def duplicate_log_attributes + %w[tenancycode propcode startdate age1 sex1 ecstat1 tcharge postcode_full] + end + private def reset_invalid_unresolved_log_fields! diff --git a/app/models/sales_log.rb b/app/models/sales_log.rb index 3e51af2c6..25d37858f 100644 --- a/app/models/sales_log.rb +++ b/app/models/sales_log.rb @@ -42,8 +42,7 @@ class SalesLog < Log } scope :filter_by_organisation, ->(org, _user = nil) { where(owning_organisation: org) } scope :duplicate_logs, lambda { |log| - attrs_to_check = %w[purchid saledate age1 sex1 ecstat1 postcode_full] - where(log.slice(*attrs_to_check)) + where(log.slice(*DUPLICATE_LOG_ATTRIBUTES)) .where.not(id: log.id) .where.not(status: "deleted") .where.not("saledate is NULL OR age1 IS NULL OR sex1 IS NULL OR ecstat1 IS NULL OR postcode_full IS NULL") @@ -52,6 +51,7 @@ class SalesLog < Log OPTIONAL_FIELDS = %w[purchid othtype].freeze RETIREMENT_AGES = { "M" => 65, "F" => 60, "X" => 65 }.freeze + DUPLICATE_LOG_ATTRIBUTES = %w[purchid saledate age1 sex1 ecstat1 postcode_full].freeze def lettings? false