123456789101112131415161718192021222324252627282930313233 |
- class Observer::Ticket::CloseTime < ActiveRecord::Observer
- observe 'ticket'
- def after_create(record)
- _check(record)
- end
- def after_update(record)
- _check(record)
- end
- private
- def _check(record)
- # puts 'check close time'
- # return if we run import mode
- return if Setting.get('import_mode')
- # check if close_time is already set
- return true if record.close_time
- # check if ticket is closed now
- ticket_state = Ticket::State.lookup( :id => record.ticket_state_id )
- ticket_state_type = Ticket::StateType.lookup( :id => ticket_state.state_type_id )
- return true if ticket_state_type.name != 'closed'
- # set close_time
- record.close_time = Time.now
- # save ticket
- record.save
- end
- end
|