zammad/zammad

View on GitHub
app/models/ticket/checks_reopen_after_certain_time.rb

Summary

Maintainability
A
25 mins
Test Coverage
# 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