From dbe35cf7f95da698b7a51313e4ced46d469b8c61 Mon Sep 17 00:00:00 2001 From: Kat Date: Wed, 10 May 2023 09:04:03 +0100 Subject: [PATCH] Do not create duplicate logs --- app/services/bulk_upload/sales/validator.rb | 5 +++++ .../bulk_upload/sales/year2022/row_parser.rb | 12 ++++++------ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/app/services/bulk_upload/sales/validator.rb b/app/services/bulk_upload/sales/validator.rb index ee87530ca..df91f8d99 100644 --- a/app/services/bulk_upload/sales/validator.rb +++ b/app/services/bulk_upload/sales/validator.rb @@ -37,6 +37,7 @@ class BulkUpload::Sales::Validator def create_logs? return false if any_setup_errors? return false if row_parsers.any?(&:block_log_creation?) + return false if any_logs_already_exist? && FeatureToggle.bulk_upload_duplicate_log_check_enabled? row_parsers.all? { |row_parser| row_parser.log.valid? } end @@ -49,6 +50,10 @@ class BulkUpload::Sales::Validator .positive? end + def any_logs_already_exist? + row_parsers.any?(&:log_already_exists?) + end + private def csv_parser diff --git a/app/services/bulk_upload/sales/year2022/row_parser.rb b/app/services/bulk_upload/sales/year2022/row_parser.rb index e66ef74ee..c55500eb9 100644 --- a/app/services/bulk_upload/sales/year2022/row_parser.rb +++ b/app/services/bulk_upload/sales/year2022/row_parser.rb @@ -338,6 +338,12 @@ class BulkUpload::Sales::Year2022::RowParser block_log_creation end + def log_already_exists? + @log_already_exists ||= SalesLog + .where(status: %w[not_started in_progress completed]) + .exists?(duplicate_check_fields.index_with { |field| log.public_send(field) }) + end + private def buyer_not_interviewed? @@ -857,12 +863,6 @@ private ] end - def log_already_exists? - @log_already_exists ||= SalesLog - .where(status: %w[not_started in_progress completed]) - .exists?(duplicate_check_fields.index_with { |field| log.public_send(field) }) - end - def validate_owning_org_data_given if field_92.blank? block_log_creation!