Class: Oujoke::Workflow::ForwardTransition

Inherits:
Transition
  • Object
show all
Defined in:
lib/workflow/transitions/forward_transition.rb

Instance Attribute Summary

Attributes inherited from Transition

#from_state, #name, #on_raise, #params, #to_state, #workflow

Instance Method Summary collapse

Methods inherited from Transition

#initialize

Constructor Details

This class inherits a constructor from Oujoke::Workflow::Transition

Instance Method Details

#performObject



5
6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/workflow/transitions/forward_transition.rb', line 5

def perform
  @invoice = Invoice.find(@business_process.invoice_id)
  permissions = @invoice.permissions.where(:type => "HolderPermission").includes(:contact).all.select{|v| v.contact.value == @workflow.initiator_email }
  permissions.each{|p| p.destroy}
  ViewerPermission.create!(:invoice_id => @invoice.id, :_contact => @workflow.initiator_email)
  @params["recipient_contacts"].each do |contact|
    permission = HolderPermission.create!(:invoice_id => @invoice.id, :_contact => contact)
    FlexibilityNotifier.new(permission.contact, :name => :forward_invoice,
          :permission => permission.id, :invoice => id, :comment => @params["comment"]).perform
  end
  @invoice.comments.create(:body => @params["comment"],:_contact => @workflow.initiator_email) unless @params["comment"].blank?
  @business_process.to_state(@params["to_state"])
end