Class: ActiveNetsuite::Record
- Inherits:
-
Object
- Object
- ActiveNetsuite::Record
show all
- Extended by:
- Forwardable
- Includes:
- MethodInflector
- Defined in:
- lib/activenetsuite/core/record.rb
Class Method Summary
collapse
Instance Method Summary
collapse
included, #method_missing
Class Method Details
.all ⇒ Object
50
51
52
|
# File 'lib/activenetsuite/core/record.rb', line 50
def all
search.response
end
|
.basic_search_class ⇒ Object
39
40
41
|
# File 'lib/activenetsuite/core/record.rb', line 39
def basic_search_class
"::#{to_s}SearchBasic".constantize
end
|
.client ⇒ Object
9
10
11
|
# File 'lib/activenetsuite/core/record.rb', line 9
def client
@@client ||= nil
end
|
.client=(client) ⇒ Object
13
14
15
|
# File 'lib/activenetsuite/core/record.rb', line 13
def client=(client)
@@client = client
end
|
.delete(objects) ⇒ Object
54
55
56
57
|
# File 'lib/activenetsuite/core/record.rb', line 54
def delete(objects)
objects = [objects] unless objects.respond_to?(:map)
client.delete_list(refs(objects))
end
|
.deleted(op, val) ⇒ Object
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
# File 'lib/activenetsuite/core/record.rb', line 64
def deleted(op, val)
op = ('ActiveNetsuite::SearchDateFieldOperator::' + op.to_s.camelize).constantize
val = ('ActiveNetsuite::SearchDate::' + val.to_s.camelize).constantize
search_value = SearchDateField.new
search_value.xmlattr_operator = op
search_value.predefinedSearchValue = val
search_type = SearchEnumMultiSelectField.new
search_type.xmlattr_operator = SearchEnumMultiSelectFieldOperator::AnyOf
search_type.searchValue = type
get_deleted_filter = GetDeletedFilter.new(search_value, search_type)
client.get_deleted(get_deleted_filter)
end
|
.find(id) ⇒ Object
Also known as:
get
26
27
28
|
# File 'lib/activenetsuite/core/record.rb', line 26
def find(id)
find_by_id(internal_id: id) or raise_not_found_error(internal_id: id)
end
|
.find_by_external_id(id) ⇒ Object
31
32
33
|
# File 'lib/activenetsuite/core/record.rb', line 31
def find_by_external_id(id)
find_by_id(external_id: id)
end
|
.find_by_id(args) ⇒ Object
35
36
37
|
# File 'lib/activenetsuite/core/record.rb', line 35
def find_by_id(args)
client.get(ref(args)).record
end
|
.find_by_internal_id(id) ⇒ Object
22
23
24
|
# File 'lib/activenetsuite/core/record.rb', line 22
def find_by_internal_id(id)
find_by_id(internal_id: id)
end
|
.list(objects) ⇒ Object
45
46
47
48
|
# File 'lib/activenetsuite/core/record.rb', line 45
def list(objects)
objects = [objects] unless objects.respond_to?(:map)
client.get_list(refs(objects))
end
|
.raise_not_found_error(arg) ⇒ Object
104
105
106
|
# File 'lib/activenetsuite/core/record.rb', line 104
def raise_not_found_error(arg)
raise NotFoundError, not_found_error_message(ref(arg))
end
|
.ref(internal_id) ⇒ Object
.ref(hash) ⇒ Object
95
96
97
98
99
100
101
102
|
# File 'lib/activenetsuite/core/record.rb', line 95
def ref(arg)
ref = RecordRef.new
ref.type = type
arg = {internal_id: arg} unless arg.is_a?(Hash)
ref.internal_id = arg[:internal_id]
ref.external_id = arg[:external_id]
ref
end
|
.type ⇒ Object
17
18
19
20
|
# File 'lib/activenetsuite/core/record.rb', line 17
def type
type = to_s.split('::').last
type[0,1].downcase + type[1..-1]
end
|
.update(records) ⇒ Object
59
60
61
62
|
# File 'lib/activenetsuite/core/record.rb', line 59
def update(records)
records = [records] unless records.respond_to?(:map)
client.update_list(records)
end
|
Instance Method Details
#active=(value) ⇒ Object
214
215
216
|
# File 'lib/activenetsuite/core/record.rb', line 214
def active=(value)
self.is_inactive = !value
end
|
#active? ⇒ Boolean
206
207
208
|
# File 'lib/activenetsuite/core/record.rb', line 206
def active?
!is_inactive
end
|
#add ⇒ Object
135
136
137
138
139
140
141
|
# File 'lib/activenetsuite/core/record.rb', line 135
def add
res = client.add(self)
if res.success?
self.internal_id = res.internal_id
end
res
end
|
#add! ⇒ Object
143
144
145
|
# File 'lib/activenetsuite/core/record.rb', line 143
def add!
raise_on_fail(:add)
end
|
#client ⇒ Object
187
188
189
|
# File 'lib/activenetsuite/core/record.rb', line 187
def client
self.class.client
end
|
#delete ⇒ Object
175
176
177
178
179
180
181
|
# File 'lib/activenetsuite/core/record.rb', line 175
def delete
res = client.delete(ref)
if res.success?
self.internal_id = nil
end
res
end
|
#delete! ⇒ Object
183
184
185
|
# File 'lib/activenetsuite/core/record.rb', line 183
def delete!
raise_on_error(:delete)
end
|
#getters ⇒ Object
230
231
232
|
# File 'lib/activenetsuite/core/record.rb', line 230
def getters
setters.map(&:to_s).map(&:chop).map(&:to_sym)
end
|
#inactive=(value) ⇒ Object
218
219
220
|
# File 'lib/activenetsuite/core/record.rb', line 218
def inactive=(value)
self.is_inactive = !!value
end
|
#inactive? ⇒ Boolean
210
211
212
|
# File 'lib/activenetsuite/core/record.rb', line 210
def inactive?
!active?
end
|
#load ⇒ Object
191
192
193
194
195
196
197
198
199
200
|
# File 'lib/activenetsuite/core/record.rb', line 191
def load
return self if loaded?
result = find_by_id
result.getters.each do |getter|
send :"#{getter}=", result.send(getter)
end
@loaded = true
self
end
|
#loaded? ⇒ Boolean
202
203
204
|
# File 'lib/activenetsuite/core/record.rb', line 202
def loaded?
!!@loaded
end
|
#new? ⇒ Boolean
171
172
173
|
# File 'lib/activenetsuite/core/record.rb', line 171
def new?
!internal_id
end
|
#ref ⇒ Object
222
223
224
|
# File 'lib/activenetsuite/core/record.rb', line 222
def ref
self.class.ref(internal_id)
end
|
#save ⇒ Object
155
156
157
158
159
160
161
|
# File 'lib/activenetsuite/core/record.rb', line 155
def save
if new?
add
else
update
end
end
|
#save! ⇒ Object
163
164
165
166
167
168
169
|
# File 'lib/activenetsuite/core/record.rb', line 163
def save!
if new?
add!
else
update!
end
end
|
#setters ⇒ Object
226
227
228
|
# File 'lib/activenetsuite/core/record.rb', line 226
def setters
public_methods(false).grep(/=$/)
end
|
#update ⇒ Object
147
148
149
|
# File 'lib/activenetsuite/core/record.rb', line 147
def update
client.update(self)
end
|
#update! ⇒ Object
151
152
153
|
# File 'lib/activenetsuite/core/record.rb', line 151
def update!
raise_on_fail(:update)
end
|