netsuite 0.8.3 → 0.8.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +3 -0
- data/README.md +3 -2
- data/circle.yml +3 -2
- data/lib/netsuite.rb +17 -0
- data/lib/netsuite/actions/login.rb +11 -0
- data/lib/netsuite/actions/update.rb +6 -2
- data/lib/netsuite/errors.rb +1 -0
- data/lib/netsuite/records/assembly_build.rb +4 -1
- data/lib/netsuite/records/assembly_item.rb +1 -0
- data/lib/netsuite/records/assembly_unbuild.rb +3 -0
- data/lib/netsuite/records/bin_number.rb +18 -0
- data/lib/netsuite/records/bin_number_list.rb +1 -20
- data/lib/netsuite/records/classification.rb +1 -1
- data/lib/netsuite/records/custom_field_list.rb +10 -2
- data/lib/netsuite/records/custom_record.rb +2 -2
- data/lib/netsuite/records/custom_record_ref.rb +1 -0
- data/lib/netsuite/records/customer.rb +3 -3
- data/lib/netsuite/records/customer_deposit.rb +5 -2
- data/lib/netsuite/records/customer_sales_team.rb +24 -0
- data/lib/netsuite/records/customer_sales_team_list.rb +9 -0
- data/lib/netsuite/records/customer_status.rb +29 -0
- data/lib/netsuite/records/customer_subscription.rb +18 -0
- data/lib/netsuite/records/customer_subscriptions_list.rb +10 -0
- data/lib/netsuite/records/entity_custom_field.rb +53 -0
- data/lib/netsuite/records/non_inventory_resale_item.rb +2 -2
- data/lib/netsuite/records/price.rb +17 -0
- data/lib/netsuite/records/price_list.rb +9 -0
- data/lib/netsuite/records/pricing.rb +20 -0
- data/lib/netsuite/records/pricing_matrix.rb +2 -2
- data/lib/netsuite/records/promotions.rb +26 -0
- data/lib/netsuite/records/promotions_list.rb +9 -0
- data/lib/netsuite/records/sales_order.rb +1 -0
- data/lib/netsuite/records/sales_role.rb +26 -0
- data/lib/netsuite/records/sales_tax_item.rb +3 -1
- data/lib/netsuite/records/serialized_assembly_item.rb +239 -0
- data/lib/netsuite/records/service_sale_item.rb +1 -1
- data/lib/netsuite/records/tax_group.rb +2 -2
- data/lib/netsuite/records/transaction_body_custom_field.rb +61 -0
- data/lib/netsuite/records/transaction_column_custom_field.rb +59 -0
- data/lib/netsuite/records/vendor_credit.rb +2 -0
- data/lib/netsuite/records/work_order.rb +8 -0
- data/lib/netsuite/support/country.rb +27 -15
- data/lib/netsuite/utilities.rb +45 -20
- data/lib/netsuite/version.rb +1 -1
- data/spec/netsuite/actions/login_spec.rb +23 -0
- data/spec/netsuite/actions/update_spec.rb +42 -0
- data/spec/netsuite/records/address_spec.rb +10 -0
- data/spec/netsuite/records/basic_record_spec.rb +6 -1
- data/spec/netsuite/records/bin_number_spec.rb +23 -0
- data/spec/netsuite/records/custom_field_list_spec.rb +33 -0
- data/spec/netsuite/records/customer_sales_team_list_spec.rb +41 -0
- data/spec/netsuite/records/customer_spec.rb +22 -1
- data/spec/netsuite/records/customer_subscription_spec.rb +41 -0
- data/spec/netsuite/records/customer_subscriptions_list_spec.rb +19 -0
- data/spec/netsuite/records/entity_custom_field_spec.rb +34 -0
- data/spec/netsuite/records/pricing_matrix_spec.rb +15 -13
- data/spec/netsuite/records/transaction_body_custom_field_spec.rb +32 -0
- data/spec/netsuite/records/transaction_column_custom_field_spec.rb +32 -0
- data/spec/netsuite/records/vendor_credit_spec.rb +29 -0
- data/spec/netsuite/utilities_spec.rb +15 -3
- data/spec/spec_helper.rb +5 -4
- metadata +34 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4706d84cf53e7897cc7f420a4af5c22230f764d0
|
4
|
+
data.tar.gz: a0e4db30c9a0288633a73988b7bd74916a3dbc20
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2afc60b0287c25b4a9cb4d271a363da58c5089ee0eb60d10d6f2334b06ac1bd1bbd902fce592034f53f0fe0a600147184a51668b3bf7c903513d3a1c1e310069
|
7
|
+
data.tar.gz: 5dadd1b9eae507ff201e01f3ab7f2d49e6e6a930d5ec1825fcc7ee2dd8087b71025a9e66700aa491b598a61606085b2c37a1f2f6f29457ade3693fe2809db925
|
data/Gemfile
CHANGED
@@ -6,6 +6,9 @@ gem 'simplecov', :require => false
|
|
6
6
|
gem 'pry-nav'
|
7
7
|
gem 'pry-rescue'
|
8
8
|
|
9
|
+
# optional dependency for more accurate timezone conversion
|
10
|
+
gem 'tzinfo'
|
11
|
+
|
9
12
|
# required for CircleCI to build properly with ruby 1.9.3
|
10
13
|
gem 'json', '~> 1.8.3'
|
11
14
|
gem 'rack', '~> 1.6.4'
|
data/README.md
CHANGED
@@ -20,7 +20,6 @@
|
|
20
20
|
[![Circle CI](https://circleci.com/gh/NetSweet/netsuite/tree/master.svg?style=svg)](https://circleci.com/gh/NetSweet/netsuite/tree/master)
|
21
21
|
[![Slack Status](https://opensuite-slackin.herokuapp.com/badge.svg)](http://opensuite-slackin.herokuapp.com)
|
22
22
|
[![Gem Version](https://badge.fury.io/rb/netsuite.svg)](http://badge.fury.io/rb/netsuite)
|
23
|
-
[![Dependency Status](https://gemnasium.com/roidrage/lograge.svg)](https://gemnasium.com/netsweet/netsuite)
|
24
23
|
|
25
24
|
# NetSuite SuiteTalk API Ruby Gem
|
26
25
|
|
@@ -55,6 +54,8 @@ Add this line to your application's Gemfile:
|
|
55
54
|
gem 'netsuite'
|
56
55
|
```
|
57
56
|
|
57
|
+
If you'd like more accurate time conversion support, include the `tzinfo` gem.
|
58
|
+
|
58
59
|
This gem is built for ruby 1.9.x+, checkout the [1-8-stable](https://github.com/NetSweet/netsuite/tree/1-8-stable) branch for ruby 1.8.x support.
|
59
60
|
|
60
61
|
## Configuration
|
@@ -570,4 +571,4 @@ states.to_array.first[:get_all_response][:get_all_result][:record_list][:record]
|
|
570
571
|
|
571
572
|
# About SuiteSync
|
572
573
|
|
573
|
-
[SuiteSync, the Stripe-NetSuite integration](http://suitesync.io) uses this gem and funds the majority of it's development and maintenance.
|
574
|
+
[SuiteSync, the Stripe-NetSuite integration](http://suitesync.io) uses this gem and funds the majority of it's development and maintenance.
|
data/circle.yml
CHANGED
@@ -2,13 +2,14 @@
|
|
2
2
|
|
3
3
|
machine:
|
4
4
|
environment:
|
5
|
-
RUBY_VERSIONS: 2.0.0,2.1.10,2.2.
|
5
|
+
RUBY_VERSIONS: 2.0.0,2.1.10,2.2.9,2.3.7,2.4.4,2.5.1,2.6.1
|
6
6
|
|
7
7
|
dependencies:
|
8
8
|
override:
|
9
|
+
- gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
|
9
10
|
- rvm get head
|
10
11
|
- rvm install $RUBY_VERSIONS
|
11
|
-
- rvm $RUBY_VERSIONS --verbose do gem install bundler
|
12
|
+
- rvm $RUBY_VERSIONS --verbose do gem install bundler -v 1.17.3
|
12
13
|
- rvm $RUBY_VERSIONS --verbose do bundle install
|
13
14
|
|
14
15
|
test:
|
data/lib/netsuite.rb
CHANGED
@@ -82,6 +82,7 @@ module NetSuite
|
|
82
82
|
autoload :BillingScheduleRecurrence, 'netsuite/records/billing_schedule_recurrence'
|
83
83
|
autoload :BillingScheduleRecurrenceList, 'netsuite/records/billing_schedule_recurrence_list'
|
84
84
|
autoload :Bin, 'netsuite/records/bin'
|
85
|
+
autoload :BinNumber, 'netsuite/records/bin_number'
|
85
86
|
autoload :BinNumberList, 'netsuite/records/bin_number_list'
|
86
87
|
autoload :BinTransfer, 'netsuite/records/bin_transfer'
|
87
88
|
autoload :BinTransferInventory, 'netsuite/records/bin_transfer_inventory'
|
@@ -120,12 +121,18 @@ module NetSuite
|
|
120
121
|
autoload :CustomerPayment, 'netsuite/records/customer_payment'
|
121
122
|
autoload :CustomerPaymentApply, 'netsuite/records/customer_payment_apply'
|
122
123
|
autoload :CustomerPaymentApplyList, 'netsuite/records/customer_payment_apply_list'
|
124
|
+
autoload :CustomerPartner, 'netsuite/records/customer_partner'
|
123
125
|
autoload :CustomerRefund, 'netsuite/records/customer_refund'
|
124
126
|
autoload :CustomerRefundApply, 'netsuite/records/customer_refund_apply'
|
125
127
|
autoload :CustomerRefundApplyList, 'netsuite/records/customer_refund_apply_list'
|
126
128
|
autoload :CustomerRefundDeposit, 'netsuite/records/customer_refund_deposit'
|
127
129
|
autoload :CustomerRefundDepositList, 'netsuite/records/customer_refund_deposit_list'
|
130
|
+
autoload :CustomerSubscription, 'netsuite/records/customer_subscription'
|
131
|
+
autoload :CustomerSubscriptionsList, 'netsuite/records/customer_subscriptions_list'
|
132
|
+
autoload :CustomerStatus, 'netsuite/records/customer_status'
|
128
133
|
autoload :CustomerPartner, 'netsuite/records/customer_partner'
|
134
|
+
autoload :CustomerSalesTeam, 'netsuite/records/customer_sales_team'
|
135
|
+
autoload :CustomerSalesTeamList, 'netsuite/records/customer_sales_team_list'
|
129
136
|
autoload :ContactList, 'netsuite/records/contact_list'
|
130
137
|
autoload :Contact, 'netsuite/records/contact'
|
131
138
|
autoload :ContactAddressbook, 'netsuite/records/contact_addressbook'
|
@@ -148,6 +155,7 @@ module NetSuite
|
|
148
155
|
autoload :DiscountItem, 'netsuite/records/discount_item'
|
149
156
|
autoload :Duration, 'netsuite/records/duration'
|
150
157
|
autoload :Employee, 'netsuite/records/employee'
|
158
|
+
autoload :EntityCustomField, 'netsuite/records/entity_custom_field'
|
151
159
|
autoload :File, 'netsuite/records/file'
|
152
160
|
autoload :GiftCertificate, 'netsuite/records/gift_certificate'
|
153
161
|
autoload :GiftCertificateItem, 'netsuite/records/gift_certificate_item'
|
@@ -214,9 +222,14 @@ module NetSuite
|
|
214
222
|
autoload :PaymentMethod, 'netsuite/records/payment_method'
|
215
223
|
autoload :PayrollItem, 'netsuite/records/payroll_item'
|
216
224
|
autoload :PhoneCall, 'netsuite/records/phone_call'
|
225
|
+
autoload :Price, 'netsuite/records/price'
|
217
226
|
autoload :PriceLevel, 'netsuite/records/price_level'
|
227
|
+
autoload :PriceList, 'netsuite/records/price_list'
|
228
|
+
autoload :Pricing, 'netsuite/records/pricing'
|
218
229
|
autoload :PricingMatrix, 'netsuite/records/pricing_matrix'
|
219
230
|
autoload :PromotionCode, 'netsuite/records/promotion_code'
|
231
|
+
autoload :PromotionsList, 'netsuite/records/promotions_list'
|
232
|
+
autoload :Promotions, 'netsuite/records/promotions'
|
220
233
|
autoload :PurchaseOrder, 'netsuite/records/purchase_order'
|
221
234
|
autoload :PurchaseOrderItemList, 'netsuite/records/purchase_order_item_list'
|
222
235
|
autoload :PurchaseOrderItem, 'netsuite/records/purchase_order_item'
|
@@ -233,9 +246,11 @@ module NetSuite
|
|
233
246
|
autoload :SalesOrderShipGroupList, 'netsuite/records/sales_order_ship_group_list'
|
234
247
|
autoload :SalesOrderItem, 'netsuite/records/sales_order_item'
|
235
248
|
autoload :SalesOrderItemList, 'netsuite/records/sales_order_item_list'
|
249
|
+
autoload :SalesRole, 'netsuite/records/sales_role'
|
236
250
|
autoload :SalesTaxItem, 'netsuite/records/sales_tax_item'
|
237
251
|
autoload :ServiceResaleItem, 'netsuite/records/service_resale_item'
|
238
252
|
autoload :ServiceSaleItem, 'netsuite/records/service_sale_item'
|
253
|
+
autoload :SerializedAssemblyItem, 'netsuite/records/serialized_assembly_item'
|
239
254
|
autoload :SerializedInventoryItem, 'netsuite/records/serialized_inventory_item'
|
240
255
|
autoload :SerializedInventoryItemNumbers, 'netsuite/records/serialized_inventory_item_numbers'
|
241
256
|
autoload :SerializedInventoryItemNumbersList, 'netsuite/records/serialized_inventory_item_numbers_list'
|
@@ -251,6 +266,8 @@ module NetSuite
|
|
251
266
|
autoload :Task, 'netsuite/records/task'
|
252
267
|
autoload :Term, 'netsuite/records/term'
|
253
268
|
autoload :TimeBill, 'netsuite/records/time_bill'
|
269
|
+
autoload :TransactionBodyCustomField, 'netsuite/records/transaction_body_custom_field'
|
270
|
+
autoload :TransactionColumnCustomField, 'netsuite/records/transaction_column_custom_field'
|
254
271
|
autoload :TransactionShipGroup, 'netsuite/records/transaction_ship_group'
|
255
272
|
autoload :TransferOrder, 'netsuite/records/transfer_order'
|
256
273
|
autoload :TransferOrderItemList, 'netsuite/records/transfer_order_item_list'
|
@@ -1,5 +1,6 @@
|
|
1
1
|
# https://system.netsuite.com/help/helpcenter/en_US/Output/Help/SuiteCloudCustomizationScriptingWebServices/SuiteTalkWebServices/login.html
|
2
2
|
|
3
|
+
|
3
4
|
module NetSuite
|
4
5
|
module Actions
|
5
6
|
class Login
|
@@ -28,11 +29,21 @@ module NetSuite
|
|
28
29
|
|
29
30
|
def self.call(credentials)
|
30
31
|
passport = NetSuite::Configuration.auth_header.dup
|
32
|
+
|
33
|
+
|
34
|
+
passport['platformMsgs:passport'] ||= {}
|
31
35
|
passport['platformMsgs:passport']['platformCore:email'] = credentials[:email] || ''
|
32
36
|
passport['platformMsgs:passport']['platformCore:password'] = credentials[:password] || ''
|
33
37
|
passport['platformMsgs:passport']['platformCore:role'] = credentials[:role] || ''
|
38
|
+
|
39
|
+
if passport['platformMsgs:tokenPassport']
|
40
|
+
passport['platformMsgs:passport']['platformCore:account'] ||= passport['platformMsgs:tokenPassport']['platformCore:account']
|
41
|
+
end
|
42
|
+
|
34
43
|
passport['platformMsgs:passport']['platformCore:account'] = credentials[:account] if !credentials[:account].nil?
|
35
44
|
|
45
|
+
passport.delete('platformMsgs:tokenPassport')
|
46
|
+
|
36
47
|
begin
|
37
48
|
response = NetSuite::Configuration.connection(soap_header: {}).call :login, message: passport
|
38
49
|
rescue Savon::SOAPFault => e
|
@@ -71,8 +71,12 @@ module NetSuite
|
|
71
71
|
|
72
72
|
module Support
|
73
73
|
def update(options = {}, credentials={})
|
74
|
-
options
|
75
|
-
|
74
|
+
options[:internal_id] = internal_id if respond_to?(:internal_id) && internal_id
|
75
|
+
|
76
|
+
if !options.include?(:external_id) && (respond_to?(:external_id) && external_id)
|
77
|
+
options[:external_id] = external_id
|
78
|
+
end
|
79
|
+
|
76
80
|
response = NetSuite::Actions::Update.call([self.class, options], credentials)
|
77
81
|
@errors = response.errors
|
78
82
|
response.success?
|
data/lib/netsuite/errors.rb
CHANGED
@@ -5,15 +5,18 @@ module NetSuite
|
|
5
5
|
include Support::RecordRefs
|
6
6
|
include Support::Actions
|
7
7
|
include Support::Records
|
8
|
+
include Support::Fields
|
8
9
|
include Namespaces::TranInvt
|
9
10
|
|
10
11
|
actions :get, :add, :initialize, :delete, :update, :upsert, :upsert_list,
|
11
12
|
:search
|
12
13
|
|
13
14
|
fields :bin_numbers, :buildable, :created_date, :expiration_date,
|
14
|
-
:last_modified_date, :memo, :quantity, :serial_numbers,
|
15
|
+
:last_modified_date, :memo, :quantity, :serial_numbers,
|
15
16
|
:tran_date, :tran_id
|
16
17
|
|
18
|
+
read_only_fields :total
|
19
|
+
|
17
20
|
record_refs :klass, :created_from, :item, :custom_form,
|
18
21
|
:department, :job, :location, :posting_period, :revision,
|
19
22
|
:subsidiary, :units
|
@@ -5,6 +5,7 @@ module NetSuite
|
|
5
5
|
include Support::RecordRefs
|
6
6
|
include Support::Records
|
7
7
|
include Support::Actions
|
8
|
+
include Support::Fields
|
8
9
|
include Namespaces::TranInvt
|
9
10
|
|
10
11
|
actions :get, :add, :initialize, :delete, :update, :upsert, :upsert_list,
|
@@ -14,6 +15,8 @@ module NetSuite
|
|
14
15
|
:last_modified_date, :memo, :quantity, :serial_numbers, :total,
|
15
16
|
:tran_date, :tran_id
|
16
17
|
|
18
|
+
read_only_fields :total
|
19
|
+
|
17
20
|
field :component_list, AssemblyComponentList
|
18
21
|
field :inventory_detail, InventoryDetail
|
19
22
|
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module NetSuite
|
2
|
+
module Records
|
3
|
+
class BinNumber
|
4
|
+
include Support::Fields
|
5
|
+
include Support::Records
|
6
|
+
include Support::RecordRefs
|
7
|
+
include Namespaces::ListAcct
|
8
|
+
|
9
|
+
record_ref :bin_number
|
10
|
+
|
11
|
+
fields :preferred_bin, :location
|
12
|
+
|
13
|
+
def initialize(attributes = {})
|
14
|
+
initialize_from_attributes_hash(attributes)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -1,30 +1,11 @@
|
|
1
1
|
module NetSuite
|
2
2
|
module Records
|
3
|
-
# TODO this is fairly messy: shouldn't mix multiple classes in one file
|
4
|
-
# might be possible to trash the GenericField as well
|
5
|
-
|
6
|
-
class GenericField
|
7
|
-
include Support::Attributes
|
8
|
-
include Support::Fields
|
9
|
-
|
10
|
-
def initialize(attributes = {})
|
11
|
-
self.attributes = attributes
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
class BinNumber < GenericField
|
16
|
-
include Support::Records
|
17
|
-
|
18
|
-
end
|
19
|
-
|
20
3
|
class BinNumberList < Support::Sublist
|
21
|
-
include Namespaces::
|
22
|
-
# include Namespaces::ListAcct
|
4
|
+
include Namespaces::ListAcct
|
23
5
|
|
24
6
|
sublist :bin_number, BinNumber
|
25
7
|
|
26
8
|
alias :bin_numbers :bin_number
|
27
|
-
|
28
9
|
end
|
29
10
|
end
|
30
11
|
end
|
@@ -7,7 +7,7 @@ module NetSuite
|
|
7
7
|
include Support::Actions
|
8
8
|
include Namespaces::ListAcct
|
9
9
|
|
10
|
-
actions :get, :get_list, :delete, :upsert, :search
|
10
|
+
actions :add, :get, :get_list, :delete, :upsert, :search
|
11
11
|
|
12
12
|
fields :name, :include_children, :is_inactive, :class_translation_list, :custom_field_list, :parent
|
13
13
|
|
@@ -13,7 +13,9 @@ module NetSuite
|
|
13
13
|
|
14
14
|
@custom_fields_assoc = Hash.new
|
15
15
|
custom_fields.each do |custom_field|
|
16
|
-
# not all custom fields have an id
|
16
|
+
# not all custom fields have an id
|
17
|
+
# https://github.com/NetSweet/netsuite/issues/182
|
18
|
+
|
17
19
|
if reference_id = custom_field.send(reference_id_type)
|
18
20
|
@custom_fields_assoc[reference_id.to_sym] = custom_field
|
19
21
|
end
|
@@ -96,6 +98,7 @@ module NetSuite
|
|
96
98
|
end
|
97
99
|
|
98
100
|
private
|
101
|
+
|
99
102
|
def reference_id_type
|
100
103
|
@reference_id_type ||= Configuration.api_version >= '2013_2' ? :script_id : :internal_id
|
101
104
|
end
|
@@ -105,9 +108,14 @@ module NetSuite
|
|
105
108
|
custom_fields << custom_field_data
|
106
109
|
else
|
107
110
|
attrs = custom_field_data.clone
|
111
|
+
type = (custom_field_data[:"@xsi:type"] || custom_field_data[:type])
|
108
112
|
|
109
|
-
if
|
113
|
+
if type == "platformCore:SelectCustomFieldRef"
|
110
114
|
attrs[:value] = CustomRecordRef.new(custom_field_data[:value])
|
115
|
+
elsif type == 'platformCore:MultiSelectCustomFieldRef'
|
116
|
+
attrs[:value] = custom_field_data[:value].map do |entry|
|
117
|
+
CustomRecordRef.new(entry)
|
118
|
+
end
|
111
119
|
end
|
112
120
|
|
113
121
|
custom_fields << CustomField.new(attrs)
|
@@ -9,8 +9,8 @@ module NetSuite
|
|
9
9
|
|
10
10
|
actions :get, :update, :get_list, :add, :delete, :search, :upsert
|
11
11
|
|
12
|
-
fields :allow_attachments, :allow_inline_editing, :allow_numbering_override, :allow_quick_search, :
|
13
|
-
:custom_record_id, :description, :disclaimer, :enabl_email_merge, :enable_numbering, :include_name,
|
12
|
+
fields :allow_attachments, :allow_inline_editing, :allow_numbering_override, :allow_quick_search, :alt_name, :auto_name,
|
13
|
+
:created, :custom_record_id, :description, :disclaimer, :enabl_email_merge, :enable_numbering, :include_name,
|
14
14
|
:is_available_offline, :is_inactive, :is_numbering_updateable, :is_ordered, :last_modified, :name,
|
15
15
|
:numbering_current_number, :numbering_init, :numbering_min_digits, :numbering_prefix, :numbering_suffix,
|
16
16
|
:record_name, :script_id, :show_creation_date, :show_creation_date_on_list, :show_id, :show_last_modified_on_list,
|
@@ -22,7 +22,7 @@ module NetSuite
|
|
22
22
|
:opening_balance, :opening_balance_account, :opening_balance_date,
|
23
23
|
:password, :password2, :phone, :phonetic_name, :pref_cc_processor, :print_on_check_as,
|
24
24
|
:print_transactions, :referrer, :reminder_days, :representing_subsidiary, :require_pwd_change, :resale_number,
|
25
|
-
:sales_group, :sales_readiness, :
|
25
|
+
:sales_group, :sales_readiness, :salutation, :send_email, :ship_complete,
|
26
26
|
:stage, :start_date, :sync_partner_teams, :tax_exempt, :taxable,
|
27
27
|
:third_party_acct, :third_party_country, :third_party_zipcode, :title, :url,
|
28
28
|
:vat_reg_number, :visits, :web_lead
|
@@ -32,8 +32,8 @@ module NetSuite
|
|
32
32
|
field :contact_roles_list, ContactAccessRolesList
|
33
33
|
field :currency_list, CustomerCurrencyList
|
34
34
|
field :partners_list, CustomerPartnersList
|
35
|
-
|
36
|
-
|
35
|
+
field :subscriptions_list, CustomerSubscriptionsList
|
36
|
+
field :sales_team_list, CustomerSalesTeamList
|
37
37
|
|
38
38
|
read_only_fields :balance, :consol_balance, :deposit_balance, :consol_deposit_balance, :overdue_balance,
|
39
39
|
:consol_overdue_balance, :unbilled_orders, :consol_unbilled_orders
|
@@ -13,13 +13,16 @@ module NetSuite
|
|
13
13
|
actions :get, :get_list, :initialize, :add, :delete, :update, :upsert, :search
|
14
14
|
|
15
15
|
fields :created_date, :last_modified_date, :status, :payment, :tran_date, :exchange_rate, :undep_funds, :memo,
|
16
|
-
:check_num, :klass, :currency_name, :is_recurring_payment, :
|
16
|
+
:check_num, :klass, :currency_name, :is_recurring_payment, :tran_id, :auth_code,
|
17
|
+
:cc_approved, :cc_avs_street_match, :cc_avs_zip_match, :cc_expire_date, :cc_is_purchase_card_bin, :cc_name, :cc_number,
|
18
|
+
:cc_process_as_purchase_card, :cc_security_code, :cc_security_code_match, :cc_street, :cc_zip_code, :charge_it
|
17
19
|
|
18
20
|
field :custom_field_list, CustomFieldList
|
19
21
|
field :apply_list, CustomerDepositApplyList
|
22
|
+
# accountingBookDetailList
|
20
23
|
|
21
24
|
record_refs :customer, :sales_order, :account, :department, :payment_method,
|
22
|
-
:custom_form, :currency, :posting_period, :subsidiary,
|
25
|
+
:custom_form, :currency, :posting_period, :subsidiary, :location,
|
23
26
|
|
24
27
|
# only available in an advanced search result
|
25
28
|
:deposit_transaction
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module NetSuite
|
2
|
+
module Records
|
3
|
+
class CustomerSalesTeam
|
4
|
+
include Support::Fields
|
5
|
+
include Support::RecordRefs
|
6
|
+
include Support::Records
|
7
|
+
include Namespaces::ListRel
|
8
|
+
|
9
|
+
fields :is_primary, :contribution
|
10
|
+
|
11
|
+
record_refs :sales_role, :employee
|
12
|
+
|
13
|
+
def initialize(attributes_or_record = {})
|
14
|
+
case attributes_or_record
|
15
|
+
when Hash
|
16
|
+
initialize_from_attributes_hash(attributes_or_record)
|
17
|
+
when self.class
|
18
|
+
initialize_from_record(attributes_or_record)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# http://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2016_2/schema/record/customerstatus.html
|
2
|
+
|
3
|
+
module NetSuite
|
4
|
+
module Records
|
5
|
+
|
6
|
+
class CustomerStatus
|
7
|
+
include Support::Records
|
8
|
+
include Support::Fields
|
9
|
+
include Support::RecordRefs
|
10
|
+
include Support::Actions
|
11
|
+
include Namespaces::ListRel
|
12
|
+
|
13
|
+
actions :get, :add, :delete, :search, :update, :upsert
|
14
|
+
|
15
|
+
fields :description, :include_in_lead_reports, :is_inactive, :name,
|
16
|
+
:probability, :stage
|
17
|
+
|
18
|
+
attr_reader :internal_id
|
19
|
+
attr_accessor :external_id
|
20
|
+
|
21
|
+
def initialize(attributes = {})
|
22
|
+
@internal_id = attributes.delete(:internal_id) || attributes.delete(:@internal_id)
|
23
|
+
@external_id = attributes.delete(:external_id) || attributes.delete(:@external_id)
|
24
|
+
initialize_from_attributes_hash(attributes)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
end
|