Class: Wf::CaseCommand::SetWorkitemAssignments

Inherits:
Object
  • Object
show all
Includes:
SimpleCommand
Defined in:
app/models/wf/case_command/set_workitem_assignments.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(workitem) ⇒ SetWorkitemAssignments

Returns a new instance of SetWorkitemAssignments.



7
8
9
# File 'app/models/wf/case_command/set_workitem_assignments.rb', line 7

def initialize(workitem)
  @workitem = workitem
end

Instance Attribute Details

#workitemObject (readonly)

Returns the value of attribute workitem.



6
7
8
# File 'app/models/wf/case_command/set_workitem_assignments.rb', line 6

def workitem
  @workitem
end

Instance Method Details

#callObject



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# 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_values = workitem.transition.assignment_callback.constantize.new(workitem.id).perform
      if callback_values.present?
        # TODO: do assignment for callback.
      else
        workitem.transition.transition_static_assignments.each do |static_assignment|
          AddWorkitemAssignment.call(workitem, static_assignment.party, false)
        end
      end
    end
  end
end