From ec8f36238cf54e45cd04ffae21363fab665fe689 Mon Sep 17 00:00:00 2001 From: Martin Edenhofer Date: Sun, 30 Dec 2012 12:48:53 +0100 Subject: [PATCH] Also set close time on ticket creation with close state. --- app/models/observer/ticket/close_time.rb | 49 ++++++++++++++---------- 1 file changed, 29 insertions(+), 20 deletions(-) diff --git a/app/models/observer/ticket/close_time.rb b/app/models/observer/ticket/close_time.rb index 50fccfa69..de13d3e43 100644 --- a/app/models/observer/ticket/close_time.rb +++ b/app/models/observer/ticket/close_time.rb @@ -1,24 +1,33 @@ class Observer::Ticket::CloseTime < ActiveRecord::Observer observe 'ticket' - def after_update(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.find( record.ticket_state_id ) - ticket_state_type = Ticket::StateType.find( ticket_state.ticket_state_type_id ) - return true if ticket_state_type.name != 'closed' - - # set close_time - record.close_time = Time.now - - # save ticket - record.save + def after_create(record) + _check(record) end -end \ No newline at end of file + + 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.find( record.ticket_state_id ) + ticket_state_type = Ticket::StateType.find( ticket_state.ticket_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 \ No newline at end of file