close_time.rb 554 B

123456789101112131415161718192021
  1. class Ticket::Observer::CloseTime < ActiveRecord::Observer
  2. observe 'ticket'
  3. def after_update(record)
  4. # puts 'check close time'
  5. # check if close_time is already set
  6. return true if record.close_time
  7. # check if ticket is closed now
  8. ticket_state = Ticket::State.find( record.ticket_state_id )
  9. ticket_state_type = Ticket::StateType.find( ticket_state.ticket_state_type_id )
  10. return true if ticket_state_type.name != 'closed'
  11. # set close_time
  12. record.close_time = Time.now
  13. # save ticket
  14. record.save
  15. end
  16. end