Class: Helpdesk::Ticket

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
app/models/helpdesk/ticket.rb

Constant Summary collapse

STATUSES =
[
  [ :new,        'label-primary',3],
  [ :open,        'label-warning',2],
  [ :waiting,     'label-info',2],
  [ :solved,      'label-success',0],
  [ :not_fixable, 'label-default',-1],
  [ :unreachable, 'label-default',-1],
  [ :bug,         'label-default',-1]
]
STATUS_BY_KEY =
STATUS_CLASS_BY_KEY =
STATUS_STATUS_BY_KEY =
OPEN_STATUSES_KEYS =
STATUSES.map { |i| (i[2]>0 ? i[0] : nil)}.compact

Instance Method Summary collapse

Instance Method Details

#open?Boolean

Returns:

  • (Boolean)


72
73
74
75
76
77
78
# File 'app/models/helpdesk/ticket.rb', line 72

def open?
  if self.status.blank? || STATUS_STATUS_BY_KEY[self.status.to_sym] > 0
    true
  else
    false
  end
end

#send_emailObject



65
66
67
68
69
70
# File 'app/models/helpdesk/ticket.rb', line 65

def send_email
  Helpdesk::NotificationsMailer.ticket_created_notification(self).deliver_now
  unless requester.email.empty?
    Helpdesk::NotificationsMailer.ticket_created_confirmation(self).deliver_now if Helpdesk.send_confirmation_emails
  end
end

#set_statusObject



44
45
46
47
48
# File 'app/models/helpdesk/ticket.rb', line 44

def set_status
  if self.status.blank?
    self.status = :new
  end
end

#set_subjectObject



50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'app/models/helpdesk/ticket.rb', line 50

def set_subject
  if self.created_at.nil?
    time = Time.now
  else
    time = self.created_at
  end

  new_subject = "#{sprintf '%02d',time.year-2000}#{sprintf '%02d',time.month}#{sprintf '%02d',time.day}"

  day_num = Helpdesk::Ticket.where(created_at: Date.today.beginning_of_day..Date.today.end_of_day).count+1
  new_subject += "-#{sprintf '%04d',day_num}: "
  self.subject = new_subject + subject.to_s
  self.subject.strip!
end