diff --git a/app/services/imports/sales_logs_field_import_service.rb b/app/services/imports/sales_logs_field_import_service.rb index ee951783c..e677cc8a0 100644 --- a/app/services/imports/sales_logs_field_import_service.rb +++ b/app/services/imports/sales_logs_field_import_service.rb @@ -43,10 +43,9 @@ module Imports if record.owning_organisation_id.present? @logger.info("sales log #{record.id} has a value for owning_organisation_id, skipping update") else - old_owning_organisation_id = safe_string_as_integer(xml_doc, "OWNINGORGID") - new_owning_organisation_id = Organisation.find_by(old_visible_id: old_owning_organisation_id).id - record.update!(owning_organisation_id: new_owning_organisation_id) - @logger.info("sales log #{record.id}'s owning_organisation_id value has been set to #{new_owning_organisation_id}") + owning_organisation_id = find_organisation_id(xml_doc, "OWNINGORGID") + record.update!(owning_organisation_id:) + @logger.info("sales log #{record.id}'s owning_organisation_id value has been set to #{owning_organisation_id}") end else @logger.warn("sales log with old id #{old_id} not found") diff --git a/lib/tasks/data_import_field.rake b/lib/tasks/data_import_field.rake index 42fa12c41..69a6479b5 100644 --- a/lib/tasks/data_import_field.rake +++ b/lib/tasks/data_import_field.rake @@ -20,4 +20,26 @@ namespace :core do raise "Field #{field} cannot be updated by data_import_field" end end + + desc "Update sales log database field from data XMLs provided by Softwire" + task :sales_data_import_field, %i[field path] => :environment do |_task, args| + field = args[:field] + path = args[:path] + raise "Usage: rake core:sales_data_import_field['field','path/to/xml_files']" if path.blank? || field.blank? + + # We only allow a reduced list of known fields to be updatable + case field + when "owning_organisation_id" + s3_service = Storage::S3Service.new(PlatformHelper.is_paas? ? Configuration::PaasConfigurationService.new : Configuration::EnvConfigurationService.new, ENV["IMPORT_PAAS_INSTANCE"]) + archive_io = s3_service.get_file_io(path) + archive_service = Storage::ArchiveService.new(archive_io) + if archive_service.folder_present?("logs") + Rails.logger.info("Start importing field from folder logs") + Imports::SalesLogsFieldImportService.new(archive_service).update_field(field, "logs") + Rails.logger.info("Imported") + end + else + raise "Field #{field} cannot be updated by data_import_field" + end + end end diff --git a/lib/tasks/sales_data_import_field.rake b/lib/tasks/sales_data_import_field.rake deleted file mode 100644 index 7aef76e5f..000000000 --- a/lib/tasks/sales_data_import_field.rake +++ /dev/null @@ -1,23 +0,0 @@ -namespace :core do - desc "Update sales log database field from data XMLs provided by Softwire" - task :sales_data_import_field, %i[field path] => :environment do |_task, args| - field = args[:field] - path = args[:path] - raise "Usage: rake core:sales_data_import_field['field','path/to/xml_files']" if path.blank? || field.blank? - - # We only allow a reduced list of known fields to be updatable - case field - when "owning_organisation_id" - s3_service = Storage::S3Service.new(PlatformHelper.is_paas? ? Configuration::PaasConfigurationService.new : Configuration::EnvConfigurationService.new, ENV["IMPORT_PAAS_INSTANCE"]) - archive_io = s3_service.get_file_io(path) - archive_service = Storage::ArchiveService.new(archive_io) - if archive_service.folder_present?("logs") - Rails.logger.info("Start importing field from folder logs") - Imports::SalesLogsFieldImportService.new(archive_service).update_field(field, "logs") - Rails.logger.info("Imported") - end - else - raise "Field #{field} cannot be updated by data_import_field" - end - end -end