Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
27 lines (22 sloc) 1.51 KB
class BudgetProjectHook < Redmine::Hook::ViewListener
def model_project_copy_before_save(context = {})
source = context[:source_project]
destination = context[:destination_project]
if source.module_enabled?(:budget_module)
Deliverable.find(:all, :conditions => {:project_id => source.id}).each do |source_deliverable|
destination_deliverable = source_deliverable.class.new # STI classes
# Copy attribute except for the ones that have wrapped
# accessors, use read/write attribute for them
destination_deliverable.attributes = source_deliverable.attributes.except("project_id", "profit", "materials", "overhead")
destination_deliverable.write_attribute(:profit, source_deliverable.read_attribute(:profit))
destination_deliverable.write_attribute(:profit_percent, source_deliverable.read_attribute(:profit_percent))
destination_deliverable.write_attribute(:materials, source_deliverable.read_attribute(:materials))
destination_deliverable.write_attribute(:materials_percent, source_deliverable.read_attribute(:materials_percent))
destination_deliverable.write_attribute(:overhead, source_deliverable.read_attribute(:overhead))
destination_deliverable.write_attribute(:overhead_percent, source_deliverable.read_attribute(:overhead_percent))
destination_deliverable.project = destination
destination_deliverable.save # Need to save here because there is no relation on project to deliverable
end
end
end
end
You can’t perform that action at this time.