Class: Timeoff
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- Timeoff
- Defined in:
- app/models/timeoff.rb
Overview
Schema Information
Table name: timeoffs
id :integer not null, primary key
day_of_week :integer
reason :string(255)
all_day :boolean default(FALSE)
start_time :time
end_time :time
status :string(255) default("pending")
user_id :integer
created_at :datetime
updated_at :datetime
off_date :date
approved_date :datetime
approved_by :integer
cancelled_date :datetime
vacation :boolean default(FALSE)
Instance Method Summary collapse
-
#all_day_absence? ⇒ Boolean
before_save :create_vacation_info.
- #approve(manager) ⇒ Object
- #approved? ⇒ Boolean
- #cancel ⇒ Object
- #detail ⇒ Object
- #formatted_due_date ⇒ Object
- #interfere?(start_time, end_time) ⇒ Boolean
Instance Method Details
#all_day_absence? ⇒ Boolean
before_save :create_vacation_info
32 33 34 |
# File 'app/models/timeoff.rb', line 32 def all_day_absence? self.all_day == true end |
#approve(manager) ⇒ Object
58 59 60 61 62 63 64 |
# File 'app/models/timeoff.rb', line 58 def approve(manager) create_vacation_info self.approved_by = manager.id self.approved_date = DateTime.now self.status = 'approved' save end |
#approved? ⇒ Boolean
36 37 38 |
# File 'app/models/timeoff.rb', line 36 def approved? self.status == 'approved' end |
#cancel ⇒ Object
66 67 68 69 70 |
# File 'app/models/timeoff.rb', line 66 def cancel self.status = 'cancelled' self.cancelled_date = DateTime.now save end |
#detail ⇒ Object
50 51 52 |
# File 'app/models/timeoff.rb', line 50 def detail return "Your TimeOff Request for #{off_date} has been approved" end |
#formatted_due_date ⇒ Object
54 55 56 |
# File 'app/models/timeoff.rb', line 54 def formatted_due_date "#{off_date.strftime('%A')},#{off_date.strftime('%B')} #{off_date.day}, #{off_date.year}" end |
#interfere?(start_time, end_time) ⇒ Boolean
40 41 42 43 44 45 46 47 48 |
# File 'app/models/timeoff.rb', line 40 def interfere?(start_time, end_time) if ( self.start_time < start_time && self.end_time > start_time ) || ( end_time > self.start_time && end_time < self.end_time ) || ( self.start_time > start_time && self.end_time < end_time ) true else false end end |