@@ -123,13 +123,18 @@ def enqueue_completed_emails(submitter)
123123
124124 user = submission . created_by_user || template . author
125125
126+ copy_email_configs = AccountConfigs . find_or_initialize_for_key ( submitter . account ,
127+ AccountConfig ::SUBMITTER_DOCUMENTS_COPY_EMAIL_KEY )
128+
129+ is_copy_email_enabled = documents_copy_email_enabled? ( submitter , copy_email_configs )
130+
126131 if submitter . account . users . exists? ( id : user . id ) && submission . preferences [ 'send_email' ] != false &&
127132 ( !template || template . preferences [ 'completed_notification_email_enabled' ] != false )
128133 user_submitter = submission . submitters . find { |s | s . email == user . email }
129134
130135 is_sent_to_user =
131136 if user . role != 'integration' &&
132- ( !user_submitter || user_submitter . preferences [ 'send_email' ] == false ) &&
137+ ( !user_submitter || user_submitter . preferences [ 'send_email' ] == false || ! is_copy_email_enabled ) &&
133138 user . user_configs . find_by ( key : UserConfig ::RECEIVE_COMPLETED_EMAIL ) &.value != false
134139 SubmitterMailer . completed_email ( submitter , user ) . deliver_later!
135140
@@ -139,7 +144,7 @@ def enqueue_completed_emails(submitter)
139144 enqueue_bcc_completed_emails ( submitter , user , is_sent_to_user )
140145 end
141146
142- maybe_enqueue_copy_emails ( submitter )
147+ enqueue_copy_emails ( submitter , copy_email_configs ) if is_copy_email_enabled
143148 end
144149
145150 def enqueue_bcc_completed_emails ( submitter , user , is_sent_to_user )
@@ -154,14 +159,13 @@ def enqueue_bcc_completed_emails(submitter, user, is_sent_to_user)
154159 end
155160 end
156161
157- def maybe_enqueue_copy_emails ( submitter )
158- return if submitter . template &.preferences &.dig ( 'documents_copy_email_enabled' ) == false
162+ def documents_copy_email_enabled? ( submitter , configs )
163+ return false if submitter . template &.preferences &.dig ( 'documents_copy_email_enabled' ) == false
159164
160- configs = AccountConfigs . find_or_initialize_for_key ( submitter . account ,
161- AccountConfig ::SUBMITTER_DOCUMENTS_COPY_EMAIL_KEY )
162-
163- return if configs . value [ 'enabled' ] == false
165+ configs . value [ 'enabled' ] != false
166+ end
164167
168+ def enqueue_copy_emails ( submitter , configs )
165169 to = submitter . submission . submitters . reject { |e | e . preferences [ 'send_email' ] == false }
166170 . sort_by { |e | e . completed_at || Time . current } . select ( &:email? ) . map ( &:friendly_name )
167171
0 commit comments