1 class ProviderStatus < ActiveRecord::Base
4 validates :token, :format => {:with => /^[a-zA-Z0-9]+$/, :allow_blank => true}
5 validates :receive_hour1, :numericality => {:allow_blank => true}
6 validates :receive_hour2, :numericality => {:allow_blank => true}
7 # validates :received_at
8 # validates :stopped_at
11 r.token = r.token.gsub(/\s/, '') if r.token
21 return false unless ad
26 return false unless ad
31 self.token.blank? ? 0 : 1
34 def self.default_page_size
38 def self.max_page_size
42 def self.default_panel_size
46 def self.max_panel_size
50 def self.page prm = nil
56 def self.page_size prm = self.default_page_size
58 page_size = self.max_page_size if page_size > self.max_page_size
59 page_size = self.default_page_size if page_size < 1
63 def self.list page = 1, page_size = self.default_page_size
65 opt.merge!(ProviderStatus.list_opt)
66 opt.merge!({:limit => page_size, :offset => (page -1) * page_size}) if page_size > 0
67 opt.merge!({:order => 'providers.name'})
68 ProviderStatus.find(:all, opt)
71 def self.available_list page = 1, page_size = self.default_page_size
73 opt.merge!(ProviderStatus.list_opt)
74 opt.merge!({:limit => page_size, :offset => (page -1) * page_size}) if page_size > 0
75 opt.merge!({:conditions => ['provider_statuses.token is null'], :order => 'providers.name'})
76 ProviderStatus.find(:all, opt)
80 {:include => {:provider => {}} }
83 def self.list_json_opt
84 {:include => {:provider => {}} }
89 opt.merge!(ProviderStatus.show_opt)
90 res = ProviderStatus.find(pid, opt)
91 raise ActiveRecord::Forbidden unless res.visible?(ad)
97 opt.merge!(ProviderStatus.show_opt)
98 res = ProviderStatus.find(pid, opt)
99 raise ActiveRecord::Forbidden unless res.own?(ad)
104 {:include => {:provider => {}} }
107 def self.show_json_opt
108 {:include => {:provider => {}} }
116 def self.import pid, exports
118 ProviderStatus.transaction do
119 res[:licenses] = ProviderLicense.import pid, exports['licenses']
120 raise ActiveRecord::Rollback if res[:licenses].any?
121 res[:artists] = ProviderArtist.import pid, exports['artists']
122 raise ActiveRecord::Rollback if res[:artists].any?
123 res[:original_pictures] = ProviderOriginalPicture.import pid, exports['original_pictures'], exports['pictures']
124 raise ActiveRecord::Rollback if res[:original_pictures][:original_pictures].any? or res[:original_pictures][:resource_pictures].any? or res[:original_pictures][:pictures].any?