|  |  | @ -271,9 +271,10 @@ module Submissions | 
			
		
	
		
		
			
				
					
					|  |  |  |       end |  |  |  |       end | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |       ActiveStorage::Attachment.create!( |  |  |  |       ActiveStorage::Attachment.create!( | 
			
		
	
		
		
			
				
					
					|  |  |  |         uuid:, |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         blob: ActiveStorage::Blob.create_and_upload!(io: StringIO.new(io.string), filename: "#{name}.pdf"), |  |  |  |         blob: ActiveStorage::Blob.create_and_upload!(io: StringIO.new(io.string), filename: "#{name}.pdf"), | 
			
		
	
		
		
			
				
					
					|  |  |  |         metadata: { sha256: Base64.urlsafe_encode64(Digest::SHA256.digest(io.string)) }, |  |  |  |         metadata: { original_uuid: uuid, | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     analyzed: true, | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     sha256: Base64.urlsafe_encode64(Digest::SHA256.digest(io.string)) }, | 
			
		
	
		
		
			
				
					
					|  |  |  |         name: 'documents', |  |  |  |         name: 'documents', | 
			
		
	
		
		
			
				
					
					|  |  |  |         record: submitter |  |  |  |         record: submitter | 
			
		
	
		
		
			
				
					
					|  |  |  |       ) |  |  |  |       ) | 
			
		
	
	
		
		
			
				
					|  |  | @ -284,11 +285,7 @@ module Submissions | 
			
		
	
		
		
			
				
					
					|  |  |  |     end |  |  |  |     end | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     def build_pdfs_index(submitter) |  |  |  |     def build_pdfs_index(submitter) | 
			
		
	
		
		
			
				
					
					|  |  |  |       latest_submitter = |  |  |  |       latest_submitter = find_last_submitter(submitter) | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |         submitter.submission.submitters |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                  .select(&:completed_at?) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                  .select { |e| e.id != submitter.id && e.completed_at <= submitter.completed_at } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                  .max_by(&:completed_at) |  |  |  |  | 
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |       Submissions::EnsureResultGenerated.call(latest_submitter) if latest_submitter |  |  |  |       Submissions::EnsureResultGenerated.call(latest_submitter) if latest_submitter | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
	
		
		
			
				
					|  |  | @ -309,10 +306,17 @@ module Submissions | 
			
		
	
		
		
			
				
					
					|  |  |  |           Rollbar.error(e) if defined?(Rollbar) |  |  |  |           Rollbar.error(e) if defined?(Rollbar) | 
			
		
	
		
		
			
				
					
					|  |  |  |         end |  |  |  |         end | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         [attachment.uuid, pdf] |  |  |  |         [attachment.metadata['original_uuid'] || attachment.uuid, pdf] | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |       end |  |  |  |       end | 
			
		
	
		
		
			
				
					
					|  |  |  |     end |  |  |  |     end | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     def find_last_submitter(submitter) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |       submitter.submission.submitters | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                .select(&:completed_at?) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                .select { |e| e.id != submitter.id && e.completed_at <= submitter.completed_at } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                .max_by(&:completed_at) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     end | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     def build_pdf_from_image(attachment) |  |  |  |     def build_pdf_from_image(attachment) | 
			
		
	
		
		
			
				
					
					|  |  |  |       pdf = HexaPDF::Document.new |  |  |  |       pdf = HexaPDF::Document.new | 
			
		
	
		
		
			
				
					
					|  |  |  |       page = pdf.pages.add |  |  |  |       page = pdf.pages.add | 
			
		
	
	
		
		
			
				
					|  |  | 
 |