Refactor Projects::Phases::ApplyWorkingDaysChangeJob methods

This commit is contained in:
Dombi Attila
2025-06-16 16:57:08 +03:00
parent 46ef0c505f
commit 28cd76c40e
@@ -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