diff --git a/app/jobs/process_submitter_completion_job.rb b/app/jobs/process_submitter_completion_job.rb index 50375483..a6c02dc6 100644 --- a/app/jobs/process_submitter_completion_job.rb +++ b/app/jobs/process_submitter_completion_job.rb @@ -123,13 +123,18 @@ class ProcessSubmitterCompletionJob user = submission.created_by_user || template.author + copy_email_configs = AccountConfigs.find_or_initialize_for_key(submitter.account, + AccountConfig::SUBMITTER_DOCUMENTS_COPY_EMAIL_KEY) + + is_copy_email_enabled = documents_copy_email_enabled?(submitter, copy_email_configs) + if submitter.account.users.exists?(id: user.id) && submission.preferences['send_email'] != false && (!template || template.preferences['completed_notification_email_enabled'] != false) user_submitter = submission.submitters.find { |s| s.email == user.email } is_sent_to_user = if user.role != 'integration' && - (!user_submitter || user_submitter.preferences['send_email'] == false) && + (!user_submitter || user_submitter.preferences['send_email'] == false || !is_copy_email_enabled) && user.user_configs.find_by(key: UserConfig::RECEIVE_COMPLETED_EMAIL)&.value != false SubmitterMailer.completed_email(submitter, user).deliver_later! @@ -139,7 +144,7 @@ class ProcessSubmitterCompletionJob enqueue_bcc_completed_emails(submitter, user, is_sent_to_user) end - maybe_enqueue_copy_emails(submitter) + enqueue_copy_emails(submitter, copy_email_configs) if is_copy_email_enabled end def enqueue_bcc_completed_emails(submitter, user, is_sent_to_user) @@ -154,14 +159,13 @@ class ProcessSubmitterCompletionJob end end - def maybe_enqueue_copy_emails(submitter) - return if submitter.template&.preferences&.dig('documents_copy_email_enabled') == false + def documents_copy_email_enabled?(submitter, configs) + return false if submitter.template&.preferences&.dig('documents_copy_email_enabled') == false - configs = AccountConfigs.find_or_initialize_for_key(submitter.account, - AccountConfig::SUBMITTER_DOCUMENTS_COPY_EMAIL_KEY) - - return if configs.value['enabled'] == false + configs.value['enabled'] != false + end + def enqueue_copy_emails(submitter, configs) to = submitter.submission.submitters.reject { |e| e.preferences['send_email'] == false } .sort_by { |e| e.completed_at || Time.current }.select(&:email?).map(&:friendly_name)