Class: Ticket
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- Ticket
- Includes:
- GuidReferenced
- Defined in:
- app/models/ticket.rb
Instance Method Summary collapse
- #allows_access?(user) ⇒ Boolean
- #client ⇒ Object
- #files_and_comments ⇒ Object
- #hours ⇒ Object
- #long_name ⇒ Object
- #percentage_complete ⇒ Object
- #remaining_hours ⇒ Object
- #to_s ⇒ Object
- #uninvoiced_hours ⇒ Object
- #unpaid_hours ⇒ Object
Instance Method Details
#allows_access?(user) ⇒ Boolean
78 79 80 |
# File 'app/models/ticket.rb', line 78 def allows_access?(user) project.accepts_roles_by?(user) || user.admin? end |
#client ⇒ Object
36 37 38 |
# File 'app/models/ticket.rb', line 36 def client project.client end |
#files_and_comments ⇒ Object
82 83 84 |
# File 'app/models/ticket.rb', line 82 def files_and_comments [comments, ].flatten.sort_by {|x| x.created_at} end |
#hours ⇒ Object
44 45 46 |
# File 'app/models/ticket.rb', line 44 def hours work_units.sum(:effective_hours) end |
#long_name ⇒ Object
74 75 76 |
# File 'app/models/ticket.rb', line 74 def long_name "Ticket: [#{id}] - #{project.name} - #{name} ticket for #{client.name}" end |
#percentage_complete ⇒ Object
56 57 58 59 60 61 62 63 64 |
# File 'app/models/ticket.rb', line 56 def percentage_complete return 100 unless self.estimated_hours begin percent = (((self.hours / self.estimated_hours)).to_f * 100.00).round(2) [percent, 100].min rescue 0 end end |
#remaining_hours ⇒ Object
66 67 68 69 70 71 72 |
# File 'app/models/ticket.rb', line 66 def remaining_hours if self.estimated_hours and self.estimated_hours > self.hours self.estimated_hours - self.hours else 0 end end |
#to_s ⇒ Object
40 41 42 |
# File 'app/models/ticket.rb', line 40 def to_s name end |
#uninvoiced_hours ⇒ Object
52 53 54 |
# File 'app/models/ticket.rb', line 52 def uninvoiced_hours work_units.not_invoiced.sum(:effective_hours) end |
#unpaid_hours ⇒ Object
48 49 50 |
# File 'app/models/ticket.rb', line 48 def unpaid_hours work_units.unpaid.sum(:effective_hours) end |