mirror of
https://github.com/opf/openproject.git
synced 2026-06-14 03:30:14 +00:00
Refactor Projects::Phases::ApplyWorkingDaysChangeJob methods
This commit is contained in:
@@ -33,14 +33,15 @@ class Projects::Phases::ApplyWorkingDaysChangeJob < ApplyWorkingDaysChangeJobBas
|
||||
|
||||
def apply_working_days_change
|
||||
Project.where(id: applicable_phases.select(:project_id)).find_each do |project|
|
||||
available_phases = project.available_phases.to_a
|
||||
phase = available_phases.find(&:start_date?)
|
||||
from = phase&.start_date
|
||||
phases = project.available_phases.drop_while { !it.start_date? }
|
||||
from = phases.first&.start_date
|
||||
next unless from
|
||||
|
||||
phases = available_phases.filter { it.position >= phase.position }
|
||||
ProjectPhases::RescheduleService.new(user: User.current, project:).call(phases:, from:)
|
||||
|
||||
reschedule_project_phases(project:, phases:, from:)
|
||||
project.journal_cause = journal_cause
|
||||
|
||||
project.touch_and_save_journals
|
||||
end
|
||||
end
|
||||
|
||||
@@ -52,12 +53,4 @@ class Projects::Phases::ApplyWorkingDaysChangeJob < ApplyWorkingDaysChangeJobBas
|
||||
.active
|
||||
.covering_dates_or_days_of_week(days_of_week:, dates:)
|
||||
end
|
||||
|
||||
def reschedule_project_phases(project:, phases:, from:)
|
||||
ProjectPhases::RescheduleService.new(user: User.current, project:).call(phases:, from:)
|
||||
|
||||
project.journal_cause = journal_cause
|
||||
|
||||
project.touch_and_save_journals
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user