diff --git a/app/models/budget/phase.rb b/app/models/budget/phase.rb index b10bd4837..5204d217a 100644 --- a/app/models/budget/phase.rb +++ b/app/models/budget/phase.rb @@ -49,40 +49,40 @@ class Budget private - def adjust_date_ranges - if enabled? - next_enabled_phase&.update_column(:starts_at, ends_at) - prev_enabled_phase&.update_column(:ends_at, starts_at) - elsif enabled_changed? - next_enabled_phase&.update_column(:starts_at, starts_at) - end - end - - def touch_budget - budget.touch - end - - def prev_phase_dates_valid? - if enabled? && starts_at.present? && prev_enabled_phase.present? - prev_enabled_phase.assign_attributes(ends_at: starts_at) - if prev_enabled_phase.invalid_dates_range? - phase_name = I18n.t("budgets.phase.#{prev_enabled_phase.kind}") - error = I18n.t("budgets.phases.errors.prev_phase_dates_invalid", phase_name: phase_name) - errors.add(:starts_at, error) + def adjust_date_ranges + if enabled? + next_enabled_phase&.update_column(:starts_at, ends_at) + prev_enabled_phase&.update_column(:ends_at, starts_at) + elsif enabled_changed? + next_enabled_phase&.update_column(:starts_at, starts_at) end end - end - def next_phase_dates_valid? - if enabled? && ends_at.present? && next_enabled_phase.present? - next_enabled_phase.assign_attributes(starts_at: ends_at) - if next_enabled_phase.invalid_dates_range? - phase_name = I18n.t("budgets.phase.#{next_enabled_phase.kind}") - error = I18n.t("budgets.phases.errors.next_phase_dates_invalid", phase_name: phase_name) - errors.add(:ends_at, error) + def touch_budget + budget.touch + end + + def prev_phase_dates_valid? + if enabled? && starts_at.present? && prev_enabled_phase.present? + prev_enabled_phase.assign_attributes(ends_at: starts_at) + if prev_enabled_phase.invalid_dates_range? + phase_name = I18n.t("budgets.phase.#{prev_enabled_phase.kind}") + error = I18n.t("budgets.phases.errors.prev_phase_dates_invalid", phase_name: phase_name) + errors.add(:starts_at, error) + end + end + end + + def next_phase_dates_valid? + if enabled? && ends_at.present? && next_enabled_phase.present? + next_enabled_phase.assign_attributes(starts_at: ends_at) + if next_enabled_phase.invalid_dates_range? + phase_name = I18n.t("budgets.phase.#{next_enabled_phase.kind}") + error = I18n.t("budgets.phases.errors.next_phase_dates_invalid", phase_name: phase_name) + errors.add(:ends_at, error) + end end end - end end end