app/models/ticket/checks_reopen_after_certain_time.rb
# Copyright (C) 2012-2024 Zammad Foundation, https://zammad-foundation.org/
# Adds new and updated tickets to the reopen log processing.
module Ticket::ChecksReopenAfterCertainTime
extend ActiveSupport::Concern
included do
def reopen_after_certain_time?
# No reopen time is configured.
return false if !reopen_time_in_days_configured?
# Ticket is not closed.
return false if !close_time
# We missed the possible time frame to reopen, sorry.
return false if !reopen_in_configured_time?
true
end
private
def reopen_time_in_days_configured?
return false if group.reopen_time_in_days.blank?
return false if !group.reopen_time_in_days.positive?
true
end
def close_time
last_close_at || close_at
end
def reopen_in_configured_time?
((Time.zone.now - close_time).to_i / (24 * 60 * 60)) < group.reopen_time_in_days
end
end
end