1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
def assigned_to_id=(user_id) if user_id == "" if self.ticket_assigment != nil- if self.ticket_assigment.destroy TicketNote.create(:body => "Ticket assigment has been removed, No one is assigned to the ticket}", :ticket_id => self.id, :user_id => @session[:user_id]) end end else if self.ticket_assigment != nil if user_id.to_i != self.ticket_assigment.user_id.to_i old_user = self.assigned_to_user_name self.ticket_assigment.user_id = user_id if self.ticket_assigment.save self.reload TicketNote.create(:body => "Ticket Assignement has changed from #{old_user} to #{self.assigned_to_user_name}", :ticket_id => self.id, :user_id => @session[:user_id]) end end end if self.ticket_assigment == nil self.ticket_assigment = TicketAssigment.new(:user_id => user_id) TicketNote.create(:body => "Ticket has been assigned to #{self.assigned_to_user_name}", :ticket_id => self.id, :user_id => @session[:user_id]) end end end
Refactorings
No refactoring yet !
Jordan
April 10, 2008, April 10, 2008 00:41, permalink
I tend to go overboard w/ methods but it's practically English now
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
def assign_to(user_id) if user_id.empty? create_note("Ticket assigment has been removed, No one is assigned to the ticket") if removed? else if assigned? transfer_to(user_id) unless assigned_to?(user_id) else self.ticket_assigment = TicketAssigment.new(:user_id => user_id) create_note("Ticket has been assigned to #{self.assigned_to_user_name}") end end end def transfer_to(user_id) old_user = self.assigned_to_user_name self.ticket_assigment.user_id = user_id if self.ticket_assigment.save self.reload create_note("Ticket Assignement has changed from #{old_user} to #{self.assigned_to_user_name}") end end def create_note(body) note = {:ticket_id => self.id, :user_id => @session[:user_id]} TicketNote.create note.merge(:body => body) end # returns true if ticket has been removed def removed? !self.ticket_assignment.nil? and self.ticket_assignment.destroy end # returns true if ticket has been assigned to user def assigned? not self.ticket_assignment.nil? end # returns true if assigned to given user_id def assigned_to?(user_id) user_id.to_i.eql? self.ticket_assigment.user_id.to_i end
There's got to be a better way to configure this virtual attribute