enterprise.rb
2.51 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
# An enterprise is a kind of organization. According to the system concept,
# only enterprises can offer products and services.
class Enterprise < Organization
N_('Enterprise')
has_many :products, :dependent => :destroy
extra_data_for_index :product_categories
N_('Organization website'); N_('Historic and current context'); N_('Activities short description'); N_('City'); N_('State'); N_('Country'); N_('ZIP code')
settings_items :organization_website, :historic_and_current_context, :activities_short_description, :zip_code, :city, :state, :country
FIELDS = %w[
zip_code
city
state
country
organization_website
historic_and_current_context
activities_short_description
]
def self.fields
super + FIELDS
end
def validate
self.required_fields.each do |field|
if self.send(field).blank?
self.errors.add(field, _('%{fn} is mandatory'))
end
end
end
def active_fields
environment ? environment.active_enterprise_fields : []
end
def required_fields
environment ? environment.required_enterprise_fields : []
end
def product_categories
products.map{|p| p.category_full_name}.compact
end
def product_updated
ferret_update
end
after_save do |e|
e.products.each{ |p| p.enterprise_updated(e) }
end
def closed?
true
end
def blocked?
data[:blocked]
end
def block
data[:blocked] = true
save
end
def enable(owner)
return if enabled
affiliate(owner, Profile::Roles.all_roles)
update_attribute(:enabled,true)
if environment.replace_enterprise_template_when_enable
apply_template(template)
end
save_without_validation!
end
def question
if !self.foundation_year.blank?
:foundation_year
elsif !self.cnpj.blank?
:cnpj
else
nil
end
end
after_create :create_activation_task
def create_activation_task
if !self.enabled
EnterpriseActivation.create!(:enterprise => self, :code_length => 7)
end
end
def default_set_of_blocks
blocks = [
[MainBlock],
[ProfileInfoBlock, MembersBlock],
[RecentDocumentsBlock]
]
if !environment.enabled?('disable_products_for_enterprises')
blocks[2].unshift ProductsBlock
end
blocks
end
def template
environment.enterprise_template
end
settings_items :enable_contact_us, :type => :boolean, :default => true
def enable_contact?
enable_contact_us
end
protected
def default_homepage(attrs)
EnterpriseHomepage.new(attrs)
end
end