[#4184] Refactor duplication.
This commit is contained in:
1 parent
f0eb4812b5
commit
70d57ee359
1 file changed
+16
-23
@@ -36,35 +36,28 @@ module RedmineContracts
|
|||||||
deliverable.contract = contract
|
deliverable.contract = contract
|
||||||
deliverable.manager = project.users.first
|
deliverable.manager = project.users.first
|
||||||
|
|
||||||
|
case old_deliverable['type']
|
||||||
|
when 'FixedDeliverable'
|
||||||
|
@total = deliverable.total = old_deliverable['fixed_cost']
|
||||||
|
when 'HourlyDeliverable'
|
||||||
|
@total = old_deliverable['total_hours'].to_f * old_deliverable['cost_per_hour'].to_f
|
||||||
|
else
|
||||||
|
@total = 0
|
||||||
|
end
|
||||||
|
|
||||||
if old_deliverable['overhead'].present?
|
if old_deliverable['overhead'].present?
|
||||||
deliverable.overhead_budgets << OverheadBudget.new(:deliverable => deliverable,
|
deliverable.overhead_budgets << OverheadBudget.new(:deliverable => deliverable,
|
||||||
:budget => old_deliverable['overhead'],
|
:budget => old_deliverable['overhead'],
|
||||||
:hours => 0)
|
:hours => 0)
|
||||||
end
|
elsif old_deliverable['overhead_percent'].present?
|
||||||
|
overhead = @total * (old_deliverable['overhead_percent'].to_f / 100)
|
||||||
case old_deliverable['type']
|
deliverable.overhead_budgets << OverheadBudget.new(:deliverable => deliverable,
|
||||||
when 'FixedDeliverable'
|
:budget => overhead,
|
||||||
deliverable.total = old_deliverable['fixed_cost']
|
:hours => 0)
|
||||||
if old_deliverable['overhead_percent'].present?
|
|
||||||
budget = old_deliverable['fixed_cost'] * (old_deliverable['overhead_percent'].to_f / 100)
|
|
||||||
|
|
||||||
deliverable.overhead_budgets << OverheadBudget.new(:deliverable => deliverable,
|
|
||||||
:budget => budget,
|
|
||||||
:hours => 0)
|
|
||||||
end
|
|
||||||
when 'HourlyDeliverable'
|
|
||||||
if old_deliverable['overhead_percent'].present?
|
|
||||||
budget = old_deliverable['total_hours'].to_f * old_deliverable['cost_per_hour'].to_f *
|
|
||||||
(old_deliverable['overhead_percent'].to_f / 100)
|
|
||||||
|
|
||||||
deliverable.overhead_budgets << OverheadBudget.new(:deliverable => deliverable,
|
|
||||||
:budget => budget,
|
|
||||||
:hours => 0)
|
|
||||||
end
|
|
||||||
|
|
||||||
else
|
|
||||||
# no-op
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
deliverable.save!
|
deliverable.save!
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in new issue
Block a user