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