1 class DemanderStatus < ActiveRecord::Base
5 validates :receive_hour1, :numericality => {:allow_blank => true}
6 validates :receive_hour2, :numericality => {:allow_blank => true}
15 return false unless ad
20 return false unless ad
25 return 0 if self.requested_at.blank?
26 return 1 if self.requested_at and self.rejected_at
27 return 3 if self.requested_at and self.approved_at
28 return 2 if self.requested_at and self.rejected_at.blank? and self.approved_at.blank?
32 def self.default_page_size
36 def self.max_page_size
40 def self.default_panel_size
44 def self.max_panel_size
48 def self.page prm = nil
54 def self.page_size prm = self.default_page_size
56 page_size = self.max_page_size if page_size > self.max_page_size
57 page_size = self.default_page_size if page_size < 1
61 def self.list page = 1, page_size = self.default_page_size
63 opt.merge!(DemanderStatus.list_opt)
64 opt.merge!({:limit => page_size, :offset => (page -1) * page_size}) if page_size > 0
65 opt.merge!({:order => 'demanders.name'})
66 DemanderStatus.find(:all, opt)
69 def self.requested_list page = 1, page_size = self.default_page_size
71 opt.merge!(DemanderStatus.list_opt)
72 opt.merge!({:limit => page_size, :offset => (page -1) * page_size}) if page_size > 0
73 opt.merge!({:conditions => 'demander_statuses.requested_at is not null and demander_statuses.approved_at is null and demander_statuses.rejected_at is null', :order => 'demanders.name'})
74 DemanderStatus.find(:all, opt)
78 {:include => {:demander => {}} }
81 def self.list_json_opt
82 {:include => {:demander => {}} }
87 opt.merge!(DemanderStatus.show_opt)
88 res = DemanderStatus.find(pid, opt)
89 raise ActiveRecord::Forbidden unless res.visible?(ad)
95 opt.merge!(DemanderStatus.show_opt)
96 res = DemanderStatus.find(pid, opt)
97 raise ActiveRecord::Forbidden unless res.own?(ad)
102 {:include => {:demander => {}} }
105 def self.show_json_opt
106 {:include => {:demander => {}} }
110 return false if self.status == 2 or self.status == 3
111 self.requested_at = Time.now
112 self.rejected_at = nil
113 self.approved_at = nil
118 return false if self.status == 0 or self.status == 1
120 DemanderStatus.transaction do
121 self.rejected_at = Time.now
122 self.approved_at = nil
123 r = self.demander.demand_user.delete_token
124 raise ActiveRecord::Rollback unless r
131 return false if self.status == 0 or self.status == 3
133 DemanderStatus.transaction do
134 self.rejected_at = nil
135 self.approved_at = Time.now
136 self.receive_hour1 = h1
137 self.receive_hour2 = h2
138 r = self.demander.demand_user.create_token
139 raise ActiveRecord::Rollback unless r
147 DemanderStatus.transaction do
148 self.requested_at = nil
149 self.rejected_at = nil
150 self.approved_at = nil
151 self.receive_hour1 = nil
152 self.receive_hour2 = nil
153 r = self.demander.demand_user.delete_token
154 raise ActiveRecord::Rollback unless r