submission completed_at
This commit is contained in:
@@ -116,15 +116,6 @@ module Mcp
|
||||
|
||||
Submissions.send_signature_requests(submissions)
|
||||
|
||||
submissions.each do |submission|
|
||||
submission.submitters.each do |submitter|
|
||||
next unless submitter.completed_at?
|
||||
|
||||
ProcessSubmitterCompletionJob.perform_async('submitter_id' => submitter.id,
|
||||
'send_invitation_email' => false)
|
||||
end
|
||||
end
|
||||
|
||||
SearchEntries.enqueue_reindex(submissions)
|
||||
|
||||
submission = submissions.first
|
||||
|
||||
@@ -5,6 +5,22 @@ module Submissions
|
||||
|
||||
module_function
|
||||
|
||||
def maybe_update_completed_at(submission)
|
||||
incomplete_submitter = Submitter.where(submission_id: submission.id, completed_at: nil).select(1)
|
||||
|
||||
max_completed_at =
|
||||
Arel::Nodes::Grouping.new(
|
||||
Submitter.arel_table.project(Submitter.arel_table[:completed_at].maximum)
|
||||
.where(Submitter.arel_table[:submission_id].eq(Submission.arel_table[:id]))
|
||||
.ast
|
||||
)
|
||||
|
||||
Submission.where(id: submission.id, completed_at: nil)
|
||||
.where.not(incomplete_submitter.arel.exists)
|
||||
.update_all(completed_at: max_completed_at)
|
||||
.positive?
|
||||
end
|
||||
|
||||
def search(current_user, submissions, keyword, search_values: false, search_template: false)
|
||||
if Docuseal.fulltext_search?
|
||||
fulltext_search(current_user, submissions, keyword, search_template:)
|
||||
|
||||
@@ -32,7 +32,11 @@ module Submitters
|
||||
|
||||
submitter.submission.save!
|
||||
|
||||
ProcessSubmitterCompletionJob.perform_async('submitter_id' => submitter.id) if submitter.completed_at?
|
||||
if submitter.completed_at?
|
||||
is_last = Submissions.maybe_update_completed_at(submitter.submission)
|
||||
|
||||
ProcessSubmitterCompletionJob.perform_async('submitter_id' => submitter.id, 'is_last' => is_last)
|
||||
end
|
||||
|
||||
submitter
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user