Method: Wf::CaseCommand::SetWorkitemAssignments#call

Defined in:
app/models/wf/case_command/set_workitem_assignments.rb

#callObject



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'app/models/wf/case_command/set_workitem_assignments.rb', line 11

def call
  Wf::ApplicationRecord.transaction do
    has_case_ass = false
    workitem.case.case_assignments.where(transition: workitem.transition).find_each do |case_ass|
      AddWorkitemAssignment.call(workitem, case_ass.party, false)
      has_case_ass = true
    end

    unless has_case_ass
      callback_parties = workitem.transition.assignment_callback.constantize.new.perform(workitem.id)
      if callback_parties.present?
        callback_parties.each do |party|
          AddWorkitemAssignment.call(workitem, party, false)
        end
      else
        workitem.transition.transition_static_assignments.each do |static_assignment|
          AddWorkitemAssignment.call(workitem, static_assignment.party, false)
        end
      end
    end
  end
end