From c28a74b503926f64b00da2cd9028f75dd547133d Mon Sep 17 00:00:00 2001 From: Katherine Langford Date: Thu, 22 Jan 2026 16:48:32 +0000 Subject: [PATCH] CLDC-4177: Changes logic used to decide which fields to export --- .../exports/sales_log_export_service.rb | 23 ++++++++++++++----- 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/app/services/exports/sales_log_export_service.rb b/app/services/exports/sales_log_export_service.rb index e894f9dda..a4f44f38e 100644 --- a/app/services/exports/sales_log_export_service.rb +++ b/app/services/exports/sales_log_export_service.rb @@ -150,9 +150,19 @@ module Exports attribute_hash end - def is_omitted_field?(field_name, _sales_log) - !EXPORT_FIELDS.include?(field_name) || - (!_sales_log.form.start_year_2026_or_later? && POST_2026_EXPORT_FIELDS.include?(field_name)) + def is_included_field?(field_name, included_fields) + included_fields.include?(field_name) + end + + def get_included_fields(sales_log) + included_fields = Set[] + included_fields.merge(EXPORT_FIELDS) + + if sales_log.form.start_year_2026_or_later? + included_fields.merge(POST_2026_EXPORT_FIELDS) + end + + return included_fields end def build_export_xml(sales_logs) @@ -162,11 +172,12 @@ module Exports attribute_hash = apply_cds_transformation(sales_log, EXPORT_MODE[:xml]) form = doc.create_element("form") doc.at("forms") << form + included_fields = get_included_fields(sales_log) attribute_hash.each do |key, value| - if is_omitted_field?(key, sales_log) - next - else + if is_included_field?(key, included_fields) form << doc.create_element(key, value) + else + next end end end