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
|
# File 'lib/netsuite_rails/spec/query_helpers.rb', line 17
def get_last_netsuite_object(record)
if record.is_a?(Class)
record_class = record
is_custom_record = false
else
record_class = record.netsuite_record_class
is_custom_record = record.netsuite_custom_record?
end
search = record_class.search({
criteria: {
basic:
(
if is_custom_record
[
{
field: 'recType',
operator: 'is',
value: NetSuite::Records::CustomRecordRef.new(internal_id: record.class.netsuite_custom_record_type_id)
},
{
field: 'lastModified',
operator: 'after',
value: netsuite_timestamp
}
]
else
[
{
field: 'lastModifiedDate',
operator: 'after',
value: netsuite_timestamp
}
]
end +
if [ NetSuite::Records::SalesOrder, NetSuite::Records::ItemFulfillment, NetSuite::Records::Invoice ].include?(record_class)
[
{
field: 'type',
operator: 'anyOf',
value: [ '_' + record_class.name.demodulize.lower_camelcase ]
}
]
else
[]
end
)
}
})
return nil if search.results.blank?
if is_custom_record
NetSuite::Records::CustomRecord.get(
internal_id: search.results.first.internal_id.to_i,
type_id: record.class.netsuite_custom_record_type_id
)
else
record_class.get(search.results.first.internal_id.to_i)
end
end
|