first_response.rb 880 B

1234567891011121314151617181920212223242526272829303132
  1. class Observer::Ticket::FirstResponse < ActiveRecord::Observer
  2. observe 'ticket::_article'
  3. def after_create(record)
  4. # puts 'check first response'
  5. # return if we run import mode
  6. return if Setting.get('import_mode')
  7. # if article in internal
  8. return true if record.internal
  9. # if sender is not agent
  10. sender = Ticket::Article::Sender.lookup( :id => record.ticket_article_sender_id )
  11. type = Ticket::Article::Type.lookup( :id => record.ticket_article_type_id )
  12. if sender.name != 'Agent' && type.name !~ /^phone/
  13. return true
  14. end
  15. # if article is a message to customer
  16. return true if !type.communication
  17. # check if first_response is already set
  18. return true if record.ticket.first_response
  19. # set first_response
  20. record.ticket.first_response = record.created_at
  21. # save ticket
  22. record.ticket.save
  23. end
  24. end