From 91a61bb1b99a2b9a1312e3508d52e68e379ffa37 Mon Sep 17 00:00:00 2001 From: natdeanlewissoftwire Date: Fri, 19 May 2023 14:18:00 +0100 Subject: [PATCH] feat: validate uprn not in scientific notation --- app/services/bulk_upload/lettings/year2023/row_parser.rb | 8 ++++++++ app/services/bulk_upload/sales/year2023/row_parser.rb | 7 +++++++ 2 files changed, 15 insertions(+) diff --git a/app/services/bulk_upload/lettings/year2023/row_parser.rb b/app/services/bulk_upload/lettings/year2023/row_parser.rb index 8c9de5f62..d1e60dd5c 100644 --- a/app/services/bulk_upload/lettings/year2023/row_parser.rb +++ b/app/services/bulk_upload/lettings/year2023/row_parser.rb @@ -384,6 +384,7 @@ class BulkUpload::Lettings::Year2023::RowParser validate :validate_nulls, on: :after_log validate :validate_uprn_exists_if_any_key_address_fields_are_blank, on: :after_log + validate :validate_uprn_not_in_scientific_notation, on: :after_log validate :validate_incomplete_soft_validations, on: :after_log @@ -509,6 +510,13 @@ private end end + + def validate_uprn_not_in_scientific_notation + if field_18.&include?("E") + errors.add(:field_19, I18n.t("validations.invalid_option", question: "UPRN")) + end + end + def validate_incomplete_soft_validations routed_to_soft_validation_questions = log.form.questions.filter { |q| q.type == "interruption_screen" && q.page.routed_to?(log, nil) }.compact routed_to_soft_validation_questions.each do |question| diff --git a/app/services/bulk_upload/sales/year2023/row_parser.rb b/app/services/bulk_upload/sales/year2023/row_parser.rb index 1475269e0..8d674ba3c 100644 --- a/app/services/bulk_upload/sales/year2023/row_parser.rb +++ b/app/services/bulk_upload/sales/year2023/row_parser.rb @@ -410,6 +410,7 @@ class BulkUpload::Sales::Year2023::RowParser validate :validate_incomplete_soft_validations, on: :after_log validate :validate_uprn_exists_if_any_key_address_fields_are_blank, on: :after_log + validate :validate_uprn_not_in_scientific_notation, on: :after_log validate :validate_address_fields, on: :after_log validate :validate_if_log_already_exists, on: :after_log, if: -> { FeatureToggle.bulk_upload_duplicate_log_check_enabled? } @@ -512,6 +513,12 @@ private end end + def validate_uprn_not_in_scientific_notation + if field_19&.include?("E") + errors.add(:field_19, I18n.t("validations.invalid_option", question: "UPRN")) + end + end + def validate_address_fields if field_19.blank? || log.errors.attribute_names.include?(:uprn) if field_20.blank?