|  |  | @ -6,6 +6,8 @@ class ProcessSubmitterCompletionJob | 
			
		
	
		
		
			
				
					
					|  |  |  |   def perform(params = {}) |  |  |  |   def perform(params = {}) | 
			
		
	
		
		
			
				
					
					|  |  |  |     submitter = Submitter.find(params['submitter_id']) |  |  |  |     submitter = Submitter.find(params['submitter_id']) | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     create_completed_submitter!(submitter) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     is_all_completed = !submitter.submission.submitters.exists?(completed_at: nil) |  |  |  |     is_all_completed = !submitter.submission.submitters.exists?(completed_at: nil) | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     if !is_all_completed && submitter.submission.submitters_order_preserved? |  |  |  |     if !is_all_completed && submitter.submission.submitters_order_preserved? | 
			
		
	
	
		
		
			
				
					|  |  | @ -24,7 +26,7 @@ class ProcessSubmitterCompletionJob | 
			
		
	
		
		
			
				
					
					|  |  |  |       enqueue_completed_emails(submitter) |  |  |  |       enqueue_completed_emails(submitter) | 
			
		
	
		
		
			
				
					
					|  |  |  |     end |  |  |  |     end | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     create_completed_submitter!(submitter) |  |  |  |     create_completed_documents!(submitter) | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     enqueue_completed_webhooks(submitter, is_all_completed:) |  |  |  |     enqueue_completed_webhooks(submitter, is_all_completed:) | 
			
		
	
		
		
			
				
					
					|  |  |  |   end |  |  |  |   end | 
			
		
	
	
		
		
			
				
					|  |  | @ -45,15 +47,19 @@ class ProcessSubmitterCompletionJob | 
			
		
	
		
		
			
				
					
					|  |  |  |       completed_at: submitter.completed_at |  |  |  |       completed_at: submitter.completed_at | 
			
		
	
		
		
			
				
					
					|  |  |  |     ) |  |  |  |     ) | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     submitter.documents.each do |attachment| |  |  |  |     completed_submitter.save! | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |       next if attachment.metadata['sha256'].blank? |  |  |  |  | 
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |       completed_submitter.completed_documents << CompletedDocument.new(sha256: attachment.metadata['sha256']) |  |  |  |     completed_submitter | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   rescue ActiveRecord::RecordNotUnique | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     retry | 
			
		
	
		
		
			
				
					
					|  |  |  |   end |  |  |  |   end | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     completed_submitter.save! |  |  |  |   def create_completed_documents!(submitter) | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     submitter.documents.filter_map do |attachment| | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       next if attachment.metadata['sha256'].blank? | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     completed_submitter |  |  |  |       CompletedDocument.find_or_create_by!(sha256: attachment.metadata['sha256'], submitter_id: submitter.id) | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     end | 
			
		
	
		
		
			
				
					
					|  |  |  |   end |  |  |  |   end | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |   def enqueue_completed_webhooks(submitter, is_all_completed: false) |  |  |  |   def enqueue_completed_webhooks(submitter, is_all_completed: false) | 
			
		
	
	
		
		
			
				
					|  |  | 
 |