Class: Candidate
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- Candidate
- Defined in:
- app/models/candidate.rb
Overview
Schema Information
Table name: candidates
id :integer not null, primary key
swap_id :integer
user_id :integer
created_at :datetime
updated_at :datetime
status :string(255) default("initial")
Instance Method Summary collapse
- #confirm(confirmed_shift_trade_id) ⇒ Object
- #deny ⇒ Object
- #end_time ⇒ Object
- #get_fill_end_time ⇒ Object
- #get_fill_shift_job ⇒ Object
- #get_fill_start_time ⇒ Object
- #get_swap_job ⇒ Object
- #get_week_hours ⇒ Object
- #if_swap_approved ⇒ Object
- #job_name ⇒ Object
- #shift_due_date ⇒ Object
- #shift_end_time ⇒ Object
- #shift_job_name ⇒ Object
- #shift_start_time ⇒ Object
- #start_time ⇒ Object
-
#trade ⇒ Object
has_many :shift_trades, :dependent => :destroy accepts_nested_attributes_for :shift_trades.
- #user_name ⇒ Object
Instance Method Details
#confirm(confirmed_shift_trade_id) ⇒ Object
119 120 121 122 123 124 125 |
# File 'app/models/candidate.rb', line 119 def confirm(confirmed_shift_trade_id) self.status = 'approved' save self.shift_trades.delete_if{|trade| trade.id == confirmed_shift_trade_id} self.shift_trades.each {|shift_trade| shift_trade.ignore} self.swap.approve end |
#deny ⇒ Object
43 44 45 46 |
# File 'app/models/candidate.rb', line 43 def deny self.status = 'denied' save end |
#end_time ⇒ Object
39 40 41 |
# File 'app/models/candidate.rb', line 39 def end_time self.swap.shift.end_time end |
#get_fill_end_time ⇒ Object
65 66 67 68 |
# File 'app/models/candidate.rb', line 65 def get_fill_end_time @shift = Shift.find_by_id(self.alert_type_id) @shift.end_time.strftime('%H:%M') end |
#get_fill_shift_job ⇒ Object
55 56 57 58 |
# File 'app/models/candidate.rb', line 55 def get_fill_shift_job @shift = Shift.find_by_id(self.alert_type_id) @shift.job.name end |
#get_fill_start_time ⇒ Object
60 61 62 63 |
# File 'app/models/candidate.rb', line 60 def get_fill_start_time @shift = Shift.find_by_id(self.alert_type_id) @shift.start_time.strftime('%H:%M') end |
#get_swap_job ⇒ Object
48 49 50 51 52 53 |
# File 'app/models/candidate.rb', line 48 def get_swap_job @swap = self.swap if !@swap.nil? @swap.shift.job.name end end |
#get_week_hours ⇒ Object
70 71 72 73 74 75 76 |
# File 'app/models/candidate.rb', line 70 def get_week_hours user = self.user shift = Shift.find_by_id(self.alert_type_id) if user.present? and shift.present? return user.shifts.where("due_date >= ? AND due_date <= ?",shift.due_date.beginning_of_week, shift.due_date.end_of_week ).sum(:hours).to_i end end |
#if_swap_approved ⇒ Object
78 79 80 81 82 83 |
# File 'app/models/candidate.rb', line 78 def if_swap_approved shift = Shift.find_by_id(self.alert_type_id) if shift.present? return (self.get_week_hours + shift.hours.strftime('%H').to_i) end end |
#job_name ⇒ Object
27 28 29 |
# File 'app/models/candidate.rb', line 27 def job_name self.swap.shift.schedule.job.name end |
#shift_due_date ⇒ Object
110 111 112 113 114 115 116 117 |
# File 'app/models/candidate.rb', line 110 def shift_due_date if self.one_sided shift = Shift.find_by_id(self.alert_type_id) else shift = Shift.find_by_id(self.candidate_shift_id) end shift.due_date end |
#shift_end_time ⇒ Object
101 102 103 104 105 106 107 108 |
# File 'app/models/candidate.rb', line 101 def shift_end_time if self.one_sided shift = Shift.find_by_id(self.alert_type_id) else shift = Shift.find_by_id(self.candidate_shift_id) end shift.end_time end |
#shift_job_name ⇒ Object
85 86 87 88 89 90 |
# File 'app/models/candidate.rb', line 85 def shift_job_name shift = Shift.find_by_id(self.alert_type_id) if shift.present? return shift.job_name end end |
#shift_start_time ⇒ Object
92 93 94 95 96 97 98 99 |
# File 'app/models/candidate.rb', line 92 def shift_start_time if self.one_sided shift = Shift.find_by_id(self.alert_type_id) else shift = Shift.find_by_id(self.candidate_shift_id) end shift.start_time end |
#start_time ⇒ Object
35 36 37 |
# File 'app/models/candidate.rb', line 35 def start_time self.swap.shift.start_time end |
#trade ⇒ Object
has_many :shift_trades, :dependent => :destroy
accepts_nested_attributes_for :shift_trades
22 23 24 25 |
# File 'app/models/candidate.rb', line 22 def trade self.status = 'trading' save end |
#user_name ⇒ Object
31 32 33 |
# File 'app/models/candidate.rb', line 31 def user_name self.user.name end |