1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- module Ticket::SetsCloseTime
- extend ActiveSupport::Concern
- included do
- before_create :ticket_set_close_time
- before_update :ticket_set_close_time
- end
- private
- def ticket_set_close_time
-
- return true if Setting.get('import_mode')
-
- return true if !ticket_closed?(self)
-
- if changes_to_save['state_id'].present? || last_close_at.blank?
- self.last_close_at = Time.zone.now
- end
-
- return true if close_at
-
- self.close_at = Time.zone.now
- end
- def ticket_closed?(ticket)
- return false if !ticket.state_id
- state = Ticket::State.lookup(id: ticket.state_id)
- state_type = Ticket::StateType.lookup(id: state.state_type_id)
- return true if state_type.name == 'closed'
- false
- end
- end
|