netsuite 0.4.2 → 0.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +8 -8
- data/README.md +5 -0
- data/lib/netsuite.rb +3 -1
- data/lib/netsuite/actions/search.rb +7 -3
- data/lib/netsuite/configuration.rb +21 -1
- data/lib/netsuite/records/cash_sale.rb +2 -2
- data/lib/netsuite/records/classification.rb +3 -1
- data/lib/netsuite/records/credit_memo_apply_list.rb +5 -13
- data/lib/netsuite/records/currency.rb +30 -0
- data/lib/netsuite/records/custom_record.rb +1 -0
- data/lib/netsuite/records/discount_item.rb +2 -1
- data/lib/netsuite/records/employee.rb +0 -1
- data/lib/netsuite/records/invoice.rb +2 -2
- data/lib/netsuite/records/non_inventory_sale_item.rb +4 -3
- data/lib/netsuite/records/role_list.rb +2 -3
- data/lib/netsuite/records/roles.rb +10 -0
- data/lib/netsuite/records/service_sale_item.rb +2 -1
- data/lib/netsuite/support/country.rb +1 -1
- data/lib/netsuite/support/search_result.rb +4 -3
- data/lib/netsuite/version.rb +1 -1
- data/spec/netsuite/configuration_spec.rb +12 -2
- data/spec/netsuite/records/cash_sale_spec.rb +34 -0
- data/spec/netsuite/records/classification_spec.rb +3 -1
- data/spec/netsuite/records/credit_memo_apply_list_spec.rb +1 -1
- data/spec/netsuite/records/credit_memo_item_list_spec.rb +1 -1
- data/spec/netsuite/records/currency_spec.rb +11 -0
- data/spec/netsuite/records/customer_addressbook_list_spec.rb +3 -3
- data/spec/netsuite/records/customer_addressbook_spec.rb +6 -6
- data/spec/netsuite/records/customer_refund_apply_list_spec.rb +1 -1
- data/spec/netsuite/records/discount_item_spec.rb +2 -1
- data/spec/netsuite/records/inventory_assignment_list_spec.rb +7 -7
- data/spec/netsuite/records/inventory_assignment_spec.rb +2 -2
- data/spec/netsuite/records/inventory_detail_spec.rb +1 -1
- data/spec/netsuite/records/invoice_spec.rb +2 -2
- data/spec/netsuite/records/non_inventory_sale_item_spec.rb +2 -1
- data/spec/netsuite/records/service_sale_item_spec.rb +2 -1
- data/spec/netsuite/records/vendor_spec.rb +21 -21
- metadata +8 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
ZjcyMjQzYWViZjVhMTVhZjJjODQyMzYxYTAwNTYyMDhmMTBjMmJjZA==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
MThjNDBjNzc1MzkwZDhkODhlNmRiMjM5NjlhZDg3ZWIxZDA2NjJlNA==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
MDUwZWUzYmMzNGMxNDJiMDQyODdjNGVjNzRiMTFkY2IxN2JiYTgwM2ZmNDQw
|
10
|
+
MzZiZjUwOGU3NGI5ZTM4MGJiMzg1ODYwOTU0MTQyOWZlY2M4YTQzOWM3ZmU1
|
11
|
+
YWViNDE1MjFlNmQ5OTIwYzFkNDhhMGJjZmY1ZDE1NGQwMTg4MTE=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
MjQxNTlkMmVhODZhMjlkYTRiZTQxNzU5ZDE2NzhiZDk4ZjRlOTQ4OTM3NWU5
|
14
|
+
NWMzY2U3MTc1NTExYjZlZTVmZGI0ZjAwOGY1ZWMzMmU1YTQ4YWJhMGIyZDdh
|
15
|
+
OWU5NDc0MDU5MGQwMDVjN2ZiYTk5NjhiM2ZkNGJlNjY1Y2I5OTM=
|
data/README.md
CHANGED
@@ -48,6 +48,9 @@ NetSuite.configure do
|
|
48
48
|
# optionally specify full wsdl URL (to switch to sandbox, for example)
|
49
49
|
wsdl "https://webservices.sandbox.netsuite.com/wsdl/v#{api_version}_0/netsuite.wsdl"
|
50
50
|
|
51
|
+
# if your datacenter is being switched, you'll have to manually set your wsdl location
|
52
|
+
wsdl "https://webservices.na2.netsuite.com/wsdl/v#{api_version}_0/netsuite.wsdl"
|
53
|
+
|
51
54
|
# or specify the sandbox flag if you don't want to deal with specifying a full URL
|
52
55
|
sandbox true
|
53
56
|
|
@@ -100,6 +103,8 @@ task.add
|
|
100
103
|
|
101
104
|
task.update :message => 'New Message'
|
102
105
|
|
106
|
+
task.delete
|
107
|
+
|
103
108
|
# using get_select_value with a custom record
|
104
109
|
NetSuite::Records::BaseRefList.get_select_value(
|
105
110
|
field: 'custrecord_something',
|
data/lib/netsuite.rb
CHANGED
@@ -108,6 +108,7 @@ module NetSuite
|
|
108
108
|
autoload :Contact, 'netsuite/records/contact'
|
109
109
|
autoload :ContactAccessRoles, 'netsuite/records/contact_access_roles'
|
110
110
|
autoload :ContactAccessRolesList, 'netsuite/records/contact_access_roles_list'
|
111
|
+
autoload :Currency, 'netsuite/records/currency'
|
111
112
|
autoload :Department, 'netsuite/records/department'
|
112
113
|
autoload :Deposit, 'netsuite/records/deposit'
|
113
114
|
autoload :DepositPayment, 'netsuite/records/deposit_payment'
|
@@ -151,6 +152,7 @@ module NetSuite
|
|
151
152
|
autoload :PhoneCall, 'netsuite/records/phone_call'
|
152
153
|
autoload :PricingMatrix, 'netsuite/records/pricing_matrix'
|
153
154
|
autoload :PromotionCode, 'netsuite/records/promotion_code'
|
155
|
+
autoload :Roles, 'netsuite/records/roles'
|
154
156
|
autoload :RecordRef, 'netsuite/records/record_ref'
|
155
157
|
autoload :RecordRefList, 'netsuite/records/record_ref_list'
|
156
158
|
autoload :RevRecTemplate, 'netsuite/records/rev_rec_template'
|
@@ -192,7 +194,7 @@ module NetSuite
|
|
192
194
|
def self.configure_from_env(&block)
|
193
195
|
NetSuite.configure do
|
194
196
|
reset!
|
195
|
-
|
197
|
+
|
196
198
|
email ENV['NETSUITE_EMAIL'] unless ENV['NETSUITE_EMAIL'].nil?
|
197
199
|
password ENV['NETSUITE_PASSWORD'] unless ENV['NETSUITE_PASSWORD'].nil?
|
198
200
|
account ENV['NETSUITE_ACCOUNT'] unless ENV['NETSUITE_ACCOUNT'].nil?
|
@@ -223,10 +223,14 @@ module NetSuite
|
|
223
223
|
@success ||= search_result[:status][:@is_success] == 'true'
|
224
224
|
end
|
225
225
|
|
226
|
-
|
227
|
-
|
228
|
-
|
226
|
+
# TODO need to figure out a way for the user to access this
|
227
|
+
def errors
|
228
|
+
error_obj = response_hash[:status][:status_detail]
|
229
|
+
error_obj = [error_obj] if error_obj.class == Hash
|
230
|
+
error_obj.map do |error|
|
231
|
+
NetSuite::Error.new(error)
|
229
232
|
end
|
233
|
+
end
|
230
234
|
|
231
235
|
module Support
|
232
236
|
def self.included(base)
|
@@ -47,6 +47,10 @@ module NetSuite
|
|
47
47
|
end
|
48
48
|
end
|
49
49
|
|
50
|
+
def sandbox?
|
51
|
+
!!sandbox
|
52
|
+
end
|
53
|
+
|
50
54
|
def wsdl=(wsdl)
|
51
55
|
attributes[:wsdl] = wsdl
|
52
56
|
end
|
@@ -59,13 +63,29 @@ module NetSuite
|
|
59
63
|
wsdl_path = "https://webservices.sandbox.netsuite.com/wsdl/v#{api_version}_0/netsuite.wsdl"
|
60
64
|
else
|
61
65
|
wsdl_path = File.expand_path("../../../wsdl/#{api_version}.wsdl", __FILE__)
|
62
|
-
|
66
|
+
|
67
|
+
unless File.exists? wsdl_path
|
68
|
+
wsdl_path = "https://#{wsdl_domain}/wsdl/v#{api_version}_0/netsuite.wsdl"
|
69
|
+
end
|
63
70
|
end
|
64
71
|
|
65
72
|
attributes[:wsdl] ||= wsdl_path
|
66
73
|
end
|
67
74
|
end
|
68
75
|
|
76
|
+
def wsdl_domain(wsdl_domain = nil)
|
77
|
+
if wsdl_domain
|
78
|
+
self.wsdl_domain = wsdl_domain
|
79
|
+
else
|
80
|
+
# if sandbox, this parameter is ignored
|
81
|
+
attributes[:wsdl_domain] ||= 'webservices.netsuite.com'
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
def wsdl_domain=(wsdl_domain)
|
86
|
+
attributes[:wsdl_domain] = wsdl_domain
|
87
|
+
end
|
88
|
+
|
69
89
|
def soap_header=(headers)
|
70
90
|
attributes[:soap_header] = headers
|
71
91
|
end
|
@@ -12,7 +12,7 @@ module NetSuite
|
|
12
12
|
fields :alt_handling_cost, :alt_shipping_cost, :auth_code, :bill_address, :cc_approved, :cc_expire_date, :cc_is_purchase_card_bin,
|
13
13
|
:cc_name, :cc_number, :cc_process_as_purchas_card, :cc_security_code, :cc_street, :cc_zip_code, :charge_it, :contrib_pct, :created_date,
|
14
14
|
:currency_name, :debit_card_issue_no, :deferred_revenue, :discount_rate, :discount_total, :email, :end_date, :est_gross_profit,
|
15
|
-
:est_gross_profit_percent, :exchange_rate, :exclude_commission, :exp_cost_disc_amount, :
|
15
|
+
:est_gross_profit_percent, :exchange_rate, :exclude_commission, :exp_cost_disc_amount, :exp_cost_discprint,
|
16
16
|
:exp_cost_disc_rate, :exp_cost_disc_tax1_amt, :exp_cost_disc_taxable, :exp_cost_tax_rate1, :exp_cost_tax_rate2, :fax, :fob,
|
17
17
|
:gift_cert_applied, :handling_cost, :handling_tax1_rate, :handling_tax2_rate, :ignore_avs, :is_recurring_payment, :is_taxable,
|
18
18
|
:item_cost_disc_amount, :item_cost_disc_print, :item_cost_disc_rate, :item_cost_disc_tax1_amt, :item_cost_disc_taxable, :item_cost_tax_rate1,
|
@@ -20,7 +20,7 @@ module NetSuite
|
|
20
20
|
:pay_pal_status, :pay_pay_tran_id, :pn_ref_num, :recognized_revenue, :rev_rec_end_date, :rev_rec_on_rev_commitment, :rev_rec_state_date,
|
21
21
|
:sales_effective_date, :ship_address, :ship_date, :shipping_cost, :shipping_tax1_rate, :shipping_tax2_rate, :source, :start_date, :status,
|
22
22
|
:sub_total, :sync_partners_teams, :sync_sales_teams, :tax2_total, :tax_rate, :tax_total, :three_d_status_code, :time_disc_amount, :time_disc_print,
|
23
|
-
:time_disc_rate, :time_disc_tax1_amt, :time_disc_taxable, :time_tax_rate1, :time_tax_rate2, :to_be_emailed, :to_be_faxed, :total,
|
23
|
+
:time_disc_rate, :time_disc_tax1_amt, :time_disc_taxable, :time_tax_rate1, :time_tax_rate2, :to_be_emailed, :to_be_printed, :to_be_faxed, :total,
|
24
24
|
:total_cost_estimate, :tracking_numbers, :tran_date, :tran_id, :tan_is_vsoe_bundle, :undep_funds, :valid_from, :vat_reg_num, :vsoe_auto_calc
|
25
25
|
|
26
26
|
|
@@ -6,7 +6,9 @@ module NetSuite
|
|
6
6
|
|
7
7
|
actions :get, :get_list, :delete, :upsert
|
8
8
|
|
9
|
-
fields :name, :include_children, :is_inactive, :class_translation_list, :
|
9
|
+
fields :name, :include_children, :is_inactive, :class_translation_list, :custom_field_list
|
10
|
+
|
11
|
+
field :subsidiary_list, RecordRefList
|
10
12
|
|
11
13
|
attr_reader :internal_id
|
12
14
|
attr_accessor :external_id
|
@@ -1,24 +1,16 @@
|
|
1
1
|
module NetSuite
|
2
2
|
module Records
|
3
|
-
class CreditMemoApplyList
|
3
|
+
class CreditMemoApplyList < Support::Sublist
|
4
4
|
include Namespaces::TranCust
|
5
5
|
|
6
|
-
|
7
|
-
case attributes[:apply]
|
8
|
-
when Hash
|
9
|
-
applies << CreditMemoApply.new(attributes[:apply])
|
10
|
-
when Array
|
11
|
-
attributes[:apply].each { |apply| applies << CreditMemoApply.new(apply) }
|
12
|
-
end
|
13
|
-
end
|
6
|
+
sublist :apply, CreditMemoApply
|
14
7
|
|
8
|
+
# for backward compatibility
|
15
9
|
def applies
|
16
|
-
|
10
|
+
self.apply
|
17
11
|
end
|
18
12
|
|
19
|
-
def to_record
|
20
|
-
{ "#{record_namespace}:apply" => applies.map(&:to_record) }
|
21
|
-
end
|
22
13
|
end
|
23
14
|
end
|
24
15
|
end
|
16
|
+
\
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module NetSuite
|
2
|
+
module Records
|
3
|
+
class Currency
|
4
|
+
include Support::Records
|
5
|
+
include Support::Fields
|
6
|
+
|
7
|
+
include Support::Actions
|
8
|
+
include Support::RecordRefs
|
9
|
+
include Namespaces::ListAcct
|
10
|
+
|
11
|
+
# https://system.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2014_1/schema/record/currency.html
|
12
|
+
|
13
|
+
actions :get, :get_list, :get_all, :add, :update, :upsert, :upsert_list, :delete
|
14
|
+
|
15
|
+
fields :name, :symbol, :is_base_currency, :is_inactive, :override_currency_format, :display_symbol, :symbol_placement,
|
16
|
+
:locale, :formatSample, :exchangeRate, :fx_rate_update_timezone, :incl_in_fx_rate_updates, :currency_precision
|
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
|
+
|
25
|
+
initialize_from_attributes_hash(attributes)
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -14,9 +14,10 @@ module NetSuite
|
|
14
14
|
|
15
15
|
record_refs :account, :custom_form, :deferred_revenue_account, :department, :expense_account,
|
16
16
|
:income_account, :issue_product, :klass, :location, :parent, :rev_rec_schedule, :sales_tax_code,
|
17
|
-
:
|
17
|
+
:tax_schedule
|
18
18
|
|
19
19
|
field :custom_field_list, CustomFieldList
|
20
|
+
field :subsidiary_list, RecordRefList
|
20
21
|
|
21
22
|
attr_reader :internal_id
|
22
23
|
attr_accessor :external_id
|
@@ -24,7 +24,7 @@ module NetSuite
|
|
24
24
|
:rev_rec_on_rev_commitment, :rev_rec_schedule, :rev_rec_start_date, :revenue_status, :sales_effective_date,
|
25
25
|
:sales_group, :sales_team_list, :ship_address, :ship_date, :ship_group_list,
|
26
26
|
:shipping_cost, :shipping_tax_1_rate, :shipping_tax_2_rate, :shipping_tax_code, :source, :start_date,
|
27
|
-
:status, :
|
27
|
+
:status, :sync_partner_teams, :sync_sales_teams, :tax_2_total,
|
28
28
|
:tax_total, :time_disc_amount, :time_disc_print, :time_disc_rate, :time_disc_tax_1_amt, :time_disc_taxable,
|
29
29
|
:time_discount, :time_list, :time_tax_code, :time_tax_rate_1, :time_tax_rate_2, :to_be_emailed, :to_be_faxed,
|
30
30
|
:to_be_printed, :total_cost_estimate, :tracking_numbers, :tran_date, :tran_id, :tran_is_vsoe_bundle,
|
@@ -40,7 +40,7 @@ module NetSuite
|
|
40
40
|
|
41
41
|
record_refs :account, :bill_address_list, :custom_form, :department, :entity, :klass, :partner,
|
42
42
|
:posting_period, :ship_address_list, :terms, :location, :sales_rep, :tax_item, :created_from,
|
43
|
-
:ship_method, :lead_source, :promo_code
|
43
|
+
:ship_method, :lead_source, :promo_code, :subsidiary
|
44
44
|
|
45
45
|
attr_reader :internal_id
|
46
46
|
attr_accessor :external_id
|
@@ -28,12 +28,13 @@ module NetSuite
|
|
28
28
|
record_refs :billing_schedule, :cost_category, :custom_form, :deferred_revenue_account, :department, :income_account,
|
29
29
|
:issue_product, :item_options_list, :klass, :location, :parent, :pricing_group, :purchase_tax_code,
|
30
30
|
:quantity_pricing_schedule, :rev_rec_schedule, :sale_unit, :sales_tax_code, :ship_package, :store_display_image,
|
31
|
-
:store_display_thumbnail, :store_item_template, :
|
31
|
+
:store_display_thumbnail, :store_item_template, :tax_schedule, :units_type
|
32
32
|
|
33
|
-
field :pricing_matrix, PricingMatrix
|
34
33
|
field :custom_field_list, CustomFieldList
|
35
34
|
field :pricing_matrix, PricingMatrix
|
36
|
-
|
35
|
+
field :subsidiary_list, RecordRefList
|
36
|
+
|
37
|
+
|
37
38
|
attr_reader :internal_id
|
38
39
|
attr_accessor :external_id
|
39
40
|
|
@@ -1,9 +1,9 @@
|
|
1
1
|
module NetSuite
|
2
2
|
module Records
|
3
3
|
class RoleList < Support::Sublist
|
4
|
-
include Namespaces::
|
4
|
+
include Namespaces::ListEmp
|
5
5
|
|
6
|
-
sublist :roles,
|
6
|
+
sublist :roles, Roles
|
7
7
|
|
8
8
|
# role list is undocumented and has pretty funky XML:
|
9
9
|
|
@@ -19,7 +19,6 @@ module NetSuite
|
|
19
19
|
# </listEmp:selectedRole>
|
20
20
|
# </listEmp:roles>
|
21
21
|
# </listEmp:rolesList>
|
22
|
-
|
23
22
|
end
|
24
23
|
end
|
25
24
|
end
|
@@ -26,10 +26,11 @@ module NetSuite
|
|
26
26
|
record_refs :billing_schedule, :cost_category, :custom_form, :deferred_revenue_account, :department, :income_account,
|
27
27
|
:issue_product, :item_options_list, :klass, :location, :parent, :pricing_group, :purchase_tax_code,
|
28
28
|
:quantity_pricing_schedule, :rev_rec_schedule, :sale_unit, :sales_tax_code, :store_display_image,
|
29
|
-
:store_display_thumbnail, :store_item_template, :
|
29
|
+
:store_display_thumbnail, :store_item_template, :tax_schedule, :units_type
|
30
30
|
|
31
31
|
field :pricing_matrix, PricingMatrix
|
32
32
|
field :custom_field_list, CustomFieldList
|
33
|
+
field :subsidiary_list, RecordRefList
|
33
34
|
|
34
35
|
attr_reader :internal_id
|
35
36
|
attr_accessor :external_id
|
@@ -20,7 +20,7 @@ module NetSuite
|
|
20
20
|
def initialize(response, result_class)
|
21
21
|
@result_class = result_class
|
22
22
|
@response = response
|
23
|
-
|
23
|
+
|
24
24
|
@total_records = response.body[:total_records].to_i
|
25
25
|
@total_pages = response.body[:total_pages].to_i
|
26
26
|
@current_page = response.body[:page_index].to_i
|
@@ -48,7 +48,7 @@ module NetSuite
|
|
48
48
|
next if search_group.to_s.start_with?('@')
|
49
49
|
|
50
50
|
record[search_group].each_pair do |k, v|
|
51
|
-
# all return values are wrapped in a <SearchValue/>
|
51
|
+
# all return values of joined searchs are wrapped in a <SearchValue/>
|
52
52
|
# extract the value from <SearchValue/> to make results easier to work with
|
53
53
|
|
54
54
|
if v.is_a?(Hash) && v.has_key?(:search_value)
|
@@ -63,6 +63,7 @@ module NetSuite
|
|
63
63
|
end
|
64
64
|
|
65
65
|
result_wrapper = result_class.new(record.delete(:basic))
|
66
|
+
# TODO if custom record search the type id should be copied over
|
66
67
|
result_wrapper.search_joins = record
|
67
68
|
results << result_wrapper
|
68
69
|
end
|
@@ -97,4 +98,4 @@ module NetSuite
|
|
97
98
|
|
98
99
|
end
|
99
100
|
end
|
100
|
-
end
|
101
|
+
end
|
data/lib/netsuite/version.rb
CHANGED
@@ -51,6 +51,16 @@ describe NetSuite::Configuration do
|
|
51
51
|
expect(config.wsdl).to eql('https://webservices.netsuite.com/wsdl/v2013_1_0/netsuite.wsdl')
|
52
52
|
end
|
53
53
|
end
|
54
|
+
|
55
|
+
context 'when the API and wsdl domain have been set' do
|
56
|
+
it 'should correctly modify the full wsdl path' do
|
57
|
+
config.sandbox = false
|
58
|
+
config.api_version '2014_1'
|
59
|
+
config.wsdl_domain = 'system.na1.netsuite.com'
|
60
|
+
|
61
|
+
expect(config.wsdl).to eql('https://system.na1.netsuite.com/wsdl/v2014_1_0/netsuite.wsdl')
|
62
|
+
end
|
63
|
+
end
|
54
64
|
end
|
55
65
|
|
56
66
|
describe '#auth_header' do
|
@@ -192,13 +202,13 @@ describe NetSuite::Configuration do
|
|
192
202
|
describe "#credentials" do
|
193
203
|
context "when none are defined" do
|
194
204
|
skip "should properly create the auth credentials" do
|
195
|
-
|
205
|
+
|
196
206
|
end
|
197
207
|
end
|
198
208
|
|
199
209
|
context "when they are defined" do
|
200
210
|
it "should properly replace the default auth credentials" do
|
201
|
-
|
211
|
+
|
202
212
|
end
|
203
213
|
end
|
204
214
|
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe NetSuite::Records::CashSale do
|
4
|
+
it 'has all the right fields' do
|
5
|
+
[
|
6
|
+
:alt_handling_cost, :alt_shipping_cost, :auth_code, :bill_address, :cc_approved, :cc_expire_date, :cc_is_purchase_card_bin,
|
7
|
+
:cc_name, :cc_number, :cc_process_as_purchas_card, :cc_security_code, :cc_street, :cc_zip_code, :charge_it, :contrib_pct, :created_date,
|
8
|
+
:currency_name, :debit_card_issue_no, :deferred_revenue, :discount_rate, :discount_total, :email, :end_date, :est_gross_profit,
|
9
|
+
:est_gross_profit_percent, :exchange_rate, :exclude_commission, :exp_cost_disc_amount, :exp_cost_discprint,
|
10
|
+
:exp_cost_disc_rate, :exp_cost_disc_tax1_amt, :exp_cost_disc_taxable, :exp_cost_tax_rate1, :exp_cost_tax_rate2, :fax, :fob,
|
11
|
+
:gift_cert_applied, :handling_cost, :handling_tax1_rate, :handling_tax2_rate, :ignore_avs, :is_recurring_payment, :is_taxable,
|
12
|
+
:item_cost_disc_amount, :item_cost_disc_print, :item_cost_disc_rate, :item_cost_disc_tax1_amt, :item_cost_disc_taxable, :item_cost_tax_rate1,
|
13
|
+
:item_cost_tax_rate2, :last_modified_date, :linked_tracking_numbers, :memo, :message, :other_ref_num, :paypal_auth_id, :paypal_process,
|
14
|
+
:pay_pal_status, :pay_pay_tran_id, :pn_ref_num, :recognized_revenue, :rev_rec_end_date, :rev_rec_on_rev_commitment, :rev_rec_state_date,
|
15
|
+
:sales_effective_date, :ship_address, :ship_date, :shipping_cost, :shipping_tax1_rate, :shipping_tax2_rate, :source, :start_date, :status,
|
16
|
+
:sub_total, :sync_partners_teams, :sync_sales_teams, :tax2_total, :tax_rate, :tax_total, :three_d_status_code, :time_disc_amount, :time_disc_print,
|
17
|
+
:time_disc_rate, :time_disc_tax1_amt, :time_disc_taxable, :time_tax_rate1, :time_tax_rate2, :to_be_emailed, :to_be_printed, :to_be_faxed, :total,
|
18
|
+
:total_cost_estimate, :tracking_numbers, :tran_date, :tran_id, :tan_is_vsoe_bundle, :undep_funds, :valid_from, :vat_reg_num, :vsoe_auto_calc
|
19
|
+
].each do |field|
|
20
|
+
expect(subject).to have_field(field)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'has all the right record refs' do
|
25
|
+
[
|
26
|
+
:account, :bill_address_list, :billing_schedule, :created_from, :credit_card, :credit_card_processor, :currency, :custom_form,
|
27
|
+
:department, :discount_item, :entity, :exp_cost_discount, :exp_cost_tax_code, :handling_tax_code, :item_cost_discount, :item_cost_tax_code,
|
28
|
+
:job, :klass, :lead_source, :location, :message_sel, :opportunity, :partner, :payment_method, :posting_period, :promo_code, :rev_rec_schedule,
|
29
|
+
:sales_group, :sales_rep, :ship_address_list, :ship_method, :shipping_tax_code, :subsidiary, :tax_item, :time_discount, :time_tax_code
|
30
|
+
].each do |record_ref|
|
31
|
+
expect(subject).to have_record_ref(record_ref)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -5,10 +5,12 @@ describe NetSuite::Records::Classification do
|
|
5
5
|
|
6
6
|
it 'has all the right fields' do
|
7
7
|
[
|
8
|
-
:name, :include_children, :is_inactive, :class_translation_list, :
|
8
|
+
:name, :include_children, :is_inactive, :class_translation_list, :custom_field_list
|
9
9
|
].each do |field|
|
10
10
|
expect(classification).to have_field(field)
|
11
11
|
end
|
12
|
+
|
13
|
+
expect(classification.subsidiary_list.class).to eq(NetSuite::Records::RecordRefList)
|
12
14
|
end
|
13
15
|
|
14
16
|
describe '.get' do
|
@@ -0,0 +1,11 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe NetSuite::Records::Account do
|
4
|
+
let(:currency) { NetSuite::Records::Currency.new }
|
5
|
+
|
6
|
+
it 'can be initialized and has fields' do
|
7
|
+
expect(currency.class.fields.size).to be > 0
|
8
|
+
|
9
|
+
currency.class.fields.each { |f| expect(currency).to have_field(f) }
|
10
|
+
end
|
11
|
+
end
|
@@ -19,18 +19,18 @@ describe NetSuite::Records::CustomerAddressbookList do
|
|
19
19
|
|
20
20
|
describe "#replace_all" do
|
21
21
|
it "returns true by default" do
|
22
|
-
list.replace_all.
|
22
|
+
expect(list.replace_all).to eql(true)
|
23
23
|
end
|
24
24
|
|
25
25
|
it "can be changed via accessor" do
|
26
26
|
list.replace_all = false
|
27
27
|
|
28
|
-
list.replace_all.
|
28
|
+
expect(list.replace_all).to eql(false)
|
29
29
|
end
|
30
30
|
|
31
31
|
it "coerces to a boolean" do
|
32
32
|
list.replace_all = "goober"
|
33
|
-
list.replace_all.
|
33
|
+
expect(list.replace_all).to eql(true)
|
34
34
|
end
|
35
35
|
end
|
36
36
|
|
@@ -99,30 +99,30 @@ describe NetSuite::Records::CustomerAddressbook do
|
|
99
99
|
context "when it's specified as a 2 character ISO code" do
|
100
100
|
it "is converted to the appropriate NetSuite enum value" do
|
101
101
|
addressbook = NetSuite::Records::CustomerAddressbook.new country: "US"
|
102
|
-
addressbook.to_record["listRel:country"].
|
102
|
+
expect(addressbook.to_record["listRel:country"]).to eql "_unitedStates"
|
103
103
|
end
|
104
104
|
end
|
105
105
|
|
106
106
|
context "when the country code is a YAML reserved word (NO)" do
|
107
107
|
it "is converted to the appropriate NetSuite enum value" do
|
108
108
|
addressbook = NetSuite::Records::CustomerAddressbook.new country: "NO"
|
109
|
-
addressbook.to_record["listRel:country"].
|
109
|
+
expect(addressbook.to_record["listRel:country"]).to eql "_norway"
|
110
110
|
end
|
111
111
|
end
|
112
112
|
|
113
113
|
it "can be specified as the NetSuite enum value" do
|
114
114
|
addressbook = NetSuite::Records::CustomerAddressbook.new country: "_unitedStates"
|
115
|
-
addressbook.to_record["listRel:country"].
|
115
|
+
expect(addressbook.to_record["listRel:country"]).to eql "_unitedStates"
|
116
116
|
|
117
117
|
# country with two uppercase letters (looks like ISO2)
|
118
118
|
addressbook = NetSuite::Records::CustomerAddressbook.new country: "_unitedKingdomGB"
|
119
|
-
addressbook.to_record["listRel:country"].
|
119
|
+
expect(addressbook.to_record["listRel:country"]).to eql "_unitedKingdomGB"
|
120
120
|
end
|
121
121
|
|
122
122
|
it "can be unspecified" do
|
123
123
|
addressbook = NetSuite::Records::CustomerAddressbook.new country: ''
|
124
|
-
addressbook.country.to_record.
|
125
|
-
addressbook.to_record["listRel:country"].
|
124
|
+
expect(addressbook.country.to_record).to eql ""
|
125
|
+
expect(addressbook.to_record["listRel:country"]).to eql ""
|
126
126
|
end
|
127
127
|
end
|
128
128
|
|
@@ -13,13 +13,14 @@ describe NetSuite::Records::DiscountItem do
|
|
13
13
|
|
14
14
|
# TODO there is a probably a more robust way to test this
|
15
15
|
expect(item.custom_field_list.class).to eq(NetSuite::Records::CustomFieldList)
|
16
|
+
expect(item.subsidiary_list.class).to eq(NetSuite::Records::RecordRefList)
|
16
17
|
end
|
17
18
|
|
18
19
|
it 'has the right record_refs' do
|
19
20
|
[
|
20
21
|
:account, :custom_form, :deferred_revenue_account, :department, :expense_account,
|
21
22
|
:income_account, :issue_product, :klass, :location, :parent, :rev_rec_schedule, :sales_tax_code,
|
22
|
-
:
|
23
|
+
:tax_schedule
|
23
24
|
].each do |record_ref|
|
24
25
|
expect(item).to have_record_ref(record_ref)
|
25
26
|
end
|
@@ -4,7 +4,7 @@ describe NetSuite::Records::InventoryAssignmentList do
|
|
4
4
|
let(:list) { NetSuite::Records::InventoryAssignmentList.new }
|
5
5
|
|
6
6
|
it 'has an assignments attribute' do
|
7
|
-
list.inventory_assignment.
|
7
|
+
expect(list.inventory_assignment).to be_kind_of(Array)
|
8
8
|
end
|
9
9
|
|
10
10
|
describe '#to_record' do
|
@@ -17,24 +17,24 @@ describe NetSuite::Records::InventoryAssignmentList do
|
|
17
17
|
it 'can represent itself as a SOAP record' do
|
18
18
|
|
19
19
|
record = {
|
20
|
-
'
|
20
|
+
'platformCommon:inventoryAssignment' => [{
|
21
21
|
'platformCommon:quantity' => 1
|
22
22
|
}]
|
23
23
|
}
|
24
|
-
list.to_record.
|
24
|
+
expect(list.to_record).to eql(record)
|
25
25
|
end
|
26
26
|
|
27
27
|
it 'can represent replacing all' do
|
28
28
|
list.replace_all = true
|
29
29
|
|
30
30
|
record = {
|
31
|
-
'
|
31
|
+
'platformCommon:inventoryAssignment' => [{
|
32
32
|
'platformCommon:quantity' => 1
|
33
33
|
}],
|
34
34
|
:@replaceAll => true,
|
35
35
|
}
|
36
36
|
|
37
|
-
list.to_record.
|
37
|
+
expect(list.to_record).to eql(record)
|
38
38
|
end
|
39
39
|
|
40
40
|
it 'accepts a false replacing all' do
|
@@ -47,13 +47,13 @@ describe NetSuite::Records::InventoryAssignmentList do
|
|
47
47
|
list.replace_all = false
|
48
48
|
|
49
49
|
record = {
|
50
|
-
'
|
50
|
+
'platformCommon:inventoryAssignment' => [{
|
51
51
|
'platformCommon:quantity' => 1
|
52
52
|
}],
|
53
53
|
:@replaceAll => false,
|
54
54
|
}
|
55
55
|
|
56
|
-
list.to_record.
|
56
|
+
expect(list.to_record).to eql(record)
|
57
57
|
end
|
58
58
|
end
|
59
59
|
end
|
@@ -7,7 +7,7 @@ describe NetSuite::Records::InventoryAssignment do
|
|
7
7
|
[
|
8
8
|
:expiration_date, :quantity, :quantity_available, :receipt_inventory_number
|
9
9
|
].each do |field|
|
10
|
-
item.
|
10
|
+
expect(item).to have_field(field)
|
11
11
|
end
|
12
12
|
end
|
13
13
|
|
@@ -15,7 +15,7 @@ describe NetSuite::Records::InventoryAssignment do
|
|
15
15
|
[
|
16
16
|
:bin_number, :issue_inventory_number, :to_bin_number
|
17
17
|
].each do |record_ref|
|
18
|
-
item.
|
18
|
+
expect(item).to have_record_ref(record_ref)
|
19
19
|
end
|
20
20
|
end
|
21
21
|
end
|
@@ -22,7 +22,7 @@ describe NetSuite::Records::Invoice do
|
|
22
22
|
:rev_rec_on_rev_commitment, :rev_rec_schedule, :rev_rec_start_date, :revenue_status, :sales_effective_date,
|
23
23
|
:sales_group, :sales_team_list, :ship_address, :ship_date, :ship_group_list,
|
24
24
|
:shipping_cost, :shipping_tax_1_rate, :shipping_tax_2_rate, :shipping_tax_code, :source, :start_date,
|
25
|
-
:status, :
|
25
|
+
:status, :sync_partner_teams, :sync_sales_teams, :tax_2_total,
|
26
26
|
:tax_total, :time_disc_amount, :time_disc_print, :time_disc_rate, :time_disc_tax_1_amt, :time_disc_taxable,
|
27
27
|
:time_discount, :time_list, :time_tax_code, :time_tax_rate_1, :time_tax_rate_2, :to_be_emailed, :to_be_faxed,
|
28
28
|
:to_be_printed, :total_cost_estimate, :tracking_numbers, :tran_date, :tran_id, :tran_is_vsoe_bundle,
|
@@ -44,7 +44,7 @@ describe NetSuite::Records::Invoice do
|
|
44
44
|
it 'has the right record_refs' do
|
45
45
|
[
|
46
46
|
:account, :bill_address_list, :custom_form, :department, :entity, :klass, :posting_period, :ship_address_list, :terms,
|
47
|
-
:created_from, :location, :sales_rep, :ship_method, :tax_item, :partner, :lead_source, :promo_code
|
47
|
+
:created_from, :location, :sales_rep, :ship_method, :tax_item, :partner, :lead_source, :promo_code, :subsidiary
|
48
48
|
].each do |record_ref|
|
49
49
|
expect(invoice).to have_record_ref(record_ref)
|
50
50
|
end
|
@@ -26,6 +26,7 @@ describe NetSuite::Records::NonInventorySaleItem do
|
|
26
26
|
# TODO there is a probably a more robust way to test this
|
27
27
|
expect(item.custom_field_list.class).to eq(NetSuite::Records::CustomFieldList)
|
28
28
|
expect(item.pricing_matrix.class).to eq(NetSuite::Records::PricingMatrix)
|
29
|
+
expect(item.subsidiary_list.class).to eq(NetSuite::Records::RecordRefList)
|
29
30
|
end
|
30
31
|
|
31
32
|
it 'has the right record_refs' do
|
@@ -33,7 +34,7 @@ describe NetSuite::Records::NonInventorySaleItem do
|
|
33
34
|
:billing_schedule, :cost_category, :custom_form, :deferred_revenue_account, :department, :income_account, :issue_product,
|
34
35
|
:item_options_list, :klass, :location, :parent, :pricing_group, :purchase_tax_code, :quantity_pricing_schedule,
|
35
36
|
:rev_rec_schedule, :sale_unit, :sales_tax_code, :ship_package, :store_display_image, :store_display_thumbnail,
|
36
|
-
:store_item_template, :
|
37
|
+
:store_item_template, :tax_schedule, :units_type
|
37
38
|
].each do |record_ref|
|
38
39
|
expect(item).to have_record_ref(record_ref)
|
39
40
|
end
|
@@ -22,6 +22,7 @@ describe NetSuite::Records::ServiceSaleItem do
|
|
22
22
|
# TODO there is a probably a more robust way to test this
|
23
23
|
expect(item.custom_field_list.class).to eq(NetSuite::Records::CustomFieldList)
|
24
24
|
expect(item.pricing_matrix.class).to eq(NetSuite::Records::PricingMatrix)
|
25
|
+
expect(item.subsidiary_list.class).to eq(NetSuite::Records::RecordRefList)
|
25
26
|
end
|
26
27
|
|
27
28
|
it 'has the right record_refs' do
|
@@ -29,7 +30,7 @@ describe NetSuite::Records::ServiceSaleItem do
|
|
29
30
|
:billing_schedule, :cost_category, :custom_form, :deferred_revenue_account, :department, :income_account,
|
30
31
|
:issue_product, :item_options_list, :klass, :location, :parent, :pricing_group, :purchase_tax_code,
|
31
32
|
:quantity_pricing_schedule, :rev_rec_schedule, :sale_unit, :sales_tax_code, :store_display_image,
|
32
|
-
:store_display_thumbnail, :store_item_template, :
|
33
|
+
:store_display_thumbnail, :store_item_template, :tax_schedule, :units_type
|
33
34
|
].each do |record_ref|
|
34
35
|
expect(item).to have_record_ref(record_ref)
|
35
36
|
end
|
@@ -17,7 +17,7 @@ describe NetSuite::Records::Vendor do
|
|
17
17
|
:send_email, :subscriptions_list, :tax_id_num, :title, :unbilled_orders, :unbilled_orders_primary,
|
18
18
|
:url, :vat_reg_number
|
19
19
|
].each do |field|
|
20
|
-
vendor.
|
20
|
+
expect(vendor).to have_field(field)
|
21
21
|
end
|
22
22
|
end
|
23
23
|
|
@@ -27,7 +27,7 @@ describe NetSuite::Records::Vendor do
|
|
27
27
|
:expense_account, :payables_account, :terms, :opening_balance_account, :currency, :work_calendar,
|
28
28
|
:tax_item
|
29
29
|
].each do |record_ref|
|
30
|
-
vendor.
|
30
|
+
expect(vendor).to have_record_ref(record_ref)
|
31
31
|
end
|
32
32
|
end
|
33
33
|
|
@@ -40,14 +40,14 @@ describe NetSuite::Records::Vendor do
|
|
40
40
|
}
|
41
41
|
}
|
42
42
|
vendor.custom_field_list = attributes
|
43
|
-
vendor.custom_field_list.
|
44
|
-
vendor.custom_field_list.custom_fields.length.
|
43
|
+
expect(vendor.custom_field_list).to be_kind_of(NetSuite::Records::CustomFieldList)
|
44
|
+
expect(vendor.custom_field_list.custom_fields.length).to eql(1)
|
45
45
|
end
|
46
46
|
|
47
47
|
it 'can be set from a CustomFieldList object' do
|
48
48
|
custom_field_list = NetSuite::Records::CustomFieldList.new
|
49
49
|
vendor.custom_field_list = custom_field_list
|
50
|
-
vendor.custom_field_list.
|
50
|
+
expect(vendor.custom_field_list).to eql(custom_field_list)
|
51
51
|
end
|
52
52
|
end
|
53
53
|
|
@@ -56,10 +56,10 @@ describe NetSuite::Records::Vendor do
|
|
56
56
|
let(:response) { NetSuite::Response.new(:success => true, :body => { :is_person => true }) }
|
57
57
|
|
58
58
|
it 'returns a Vendor instance populated with the data from the response object' do
|
59
|
-
NetSuite::Actions::Get.
|
59
|
+
expect(NetSuite::Actions::Get).to receive(:call).with([NetSuite::Records::Vendor, { :external_id => 1 }], {}).and_return(response)
|
60
60
|
vendor = NetSuite::Records::Vendor.get(:external_id => 1)
|
61
|
-
vendor.
|
62
|
-
vendor.is_person.
|
61
|
+
expect(vendor).to be_kind_of(NetSuite::Records::Vendor)
|
62
|
+
expect(vendor.is_person).to be_truthy
|
63
63
|
end
|
64
64
|
end
|
65
65
|
|
@@ -67,10 +67,10 @@ describe NetSuite::Records::Vendor do
|
|
67
67
|
let(:response) { NetSuite::Response.new(:success => false, :body => {}) }
|
68
68
|
|
69
69
|
it 'raises a RecordNotFound exception' do
|
70
|
-
NetSuite::Actions::Get.
|
71
|
-
lambda {
|
70
|
+
expect(NetSuite::Actions::Get).to receive(:call).with([NetSuite::Records::Vendor, { :external_id => 1 }], {}).and_return(response)
|
71
|
+
expect(lambda {
|
72
72
|
NetSuite::Records::Vendor.get(:external_id => 1)
|
73
|
-
}.
|
73
|
+
}).to raise_error(NetSuite::RecordNotFound,
|
74
74
|
/NetSuite::Records::Vendor with OPTIONS=(.*) could not be found/)
|
75
75
|
end
|
76
76
|
end
|
@@ -83,10 +83,10 @@ describe NetSuite::Records::Vendor do
|
|
83
83
|
let(:response) { NetSuite::Response.new(:success => true, :body => { :internal_id => '1' }) }
|
84
84
|
|
85
85
|
it 'returns true' do
|
86
|
-
NetSuite::Actions::Add.
|
86
|
+
expect(NetSuite::Actions::Add).to receive(:call).
|
87
87
|
with([vendor], {}).
|
88
88
|
and_return(response)
|
89
|
-
vendor.add.
|
89
|
+
expect(vendor.add).to be_truthy
|
90
90
|
end
|
91
91
|
end
|
92
92
|
|
@@ -94,10 +94,10 @@ describe NetSuite::Records::Vendor do
|
|
94
94
|
let(:response) { NetSuite::Response.new(:success => false, :body => {}) }
|
95
95
|
|
96
96
|
it 'returns false' do
|
97
|
-
NetSuite::Actions::Add.
|
97
|
+
expect(NetSuite::Actions::Add).to receive(:call).
|
98
98
|
with([vendor], {}).
|
99
99
|
and_return(response)
|
100
|
-
vendor.add.
|
100
|
+
expect(vendor.add).to be_falsey
|
101
101
|
end
|
102
102
|
end
|
103
103
|
end
|
@@ -107,10 +107,10 @@ describe NetSuite::Records::Vendor do
|
|
107
107
|
let(:response) { NetSuite::Response.new(:success => true, :body => { :internal_id => '1' }) }
|
108
108
|
|
109
109
|
it 'returns true' do
|
110
|
-
NetSuite::Actions::Delete.
|
110
|
+
expect(NetSuite::Actions::Delete).to receive(:call).
|
111
111
|
with([vendor], {}).
|
112
112
|
and_return(response)
|
113
|
-
vendor.delete.
|
113
|
+
expect(vendor.delete).to be_truthy
|
114
114
|
end
|
115
115
|
end
|
116
116
|
|
@@ -118,10 +118,10 @@ describe NetSuite::Records::Vendor do
|
|
118
118
|
let(:response) { NetSuite::Response.new(:success => false, :body => {}) }
|
119
119
|
|
120
120
|
it 'returns false' do
|
121
|
-
NetSuite::Actions::Delete.
|
121
|
+
expect(NetSuite::Actions::Delete).to receive(:call).
|
122
122
|
with([vendor], {}).
|
123
123
|
and_return(response)
|
124
|
-
vendor.delete.
|
124
|
+
expect(vendor.delete).to be_falsey
|
125
125
|
end
|
126
126
|
end
|
127
127
|
end
|
@@ -130,7 +130,7 @@ describe NetSuite::Records::Vendor do
|
|
130
130
|
let(:vendor) { NetSuite::Records::Vendor.new(:entity_id => 'TEST VENDOR', :is_person => true) }
|
131
131
|
|
132
132
|
it 'returns a hash of attributes that can be used in a SOAP request' do
|
133
|
-
vendor.to_record.
|
133
|
+
expect(vendor.to_record).to eql({
|
134
134
|
'listRel:entityId' => 'TEST VENDOR',
|
135
135
|
'listRel:isPerson' => true
|
136
136
|
})
|
@@ -139,7 +139,7 @@ describe NetSuite::Records::Vendor do
|
|
139
139
|
|
140
140
|
describe '#record_type' do
|
141
141
|
it 'returns a string type for the record to be used in a SOAP request' do
|
142
|
-
vendor.record_type.
|
142
|
+
expect(vendor.record_type).to eql('listRel:Vendor')
|
143
143
|
end
|
144
144
|
end
|
145
145
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: netsuite
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Moran
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-
|
12
|
+
date: 2015-08-12 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: savon
|
@@ -117,6 +117,7 @@ files:
|
|
117
117
|
- lib/netsuite/records/credit_memo_apply_list.rb
|
118
118
|
- lib/netsuite/records/credit_memo_item.rb
|
119
119
|
- lib/netsuite/records/credit_memo_item_list.rb
|
120
|
+
- lib/netsuite/records/currency.rb
|
120
121
|
- lib/netsuite/records/custom_field.rb
|
121
122
|
- lib/netsuite/records/custom_field_list.rb
|
122
123
|
- lib/netsuite/records/custom_list.rb
|
@@ -184,6 +185,7 @@ files:
|
|
184
185
|
- lib/netsuite/records/record_ref_list.rb
|
185
186
|
- lib/netsuite/records/rev_rec_template.rb
|
186
187
|
- lib/netsuite/records/role_list.rb
|
188
|
+
- lib/netsuite/records/roles.rb
|
187
189
|
- lib/netsuite/records/sales_order.rb
|
188
190
|
- lib/netsuite/records/sales_order_item.rb
|
189
191
|
- lib/netsuite/records/sales_order_item_list.rb
|
@@ -253,12 +255,14 @@ files:
|
|
253
255
|
- spec/netsuite/records/cash_refund_spec.rb
|
254
256
|
- spec/netsuite/records/cash_sale_item_list_spec.rb
|
255
257
|
- spec/netsuite/records/cash_sale_item_spec.rb
|
258
|
+
- spec/netsuite/records/cash_sale_spec.rb
|
256
259
|
- spec/netsuite/records/classification_spec.rb
|
257
260
|
- spec/netsuite/records/credit_memo_apply_list_spec.rb
|
258
261
|
- spec/netsuite/records/credit_memo_apply_spec.rb
|
259
262
|
- spec/netsuite/records/credit_memo_item_list_spec.rb
|
260
263
|
- spec/netsuite/records/credit_memo_item_spec.rb
|
261
264
|
- spec/netsuite/records/credit_memo_spec.rb
|
265
|
+
- spec/netsuite/records/currency_spec.rb
|
262
266
|
- spec/netsuite/records/custom_field_list_spec.rb
|
263
267
|
- spec/netsuite/records/custom_field_spec.rb
|
264
268
|
- spec/netsuite/records/custom_list_spec.rb
|
@@ -420,12 +424,14 @@ test_files:
|
|
420
424
|
- spec/netsuite/records/cash_refund_spec.rb
|
421
425
|
- spec/netsuite/records/cash_sale_item_list_spec.rb
|
422
426
|
- spec/netsuite/records/cash_sale_item_spec.rb
|
427
|
+
- spec/netsuite/records/cash_sale_spec.rb
|
423
428
|
- spec/netsuite/records/classification_spec.rb
|
424
429
|
- spec/netsuite/records/credit_memo_apply_list_spec.rb
|
425
430
|
- spec/netsuite/records/credit_memo_apply_spec.rb
|
426
431
|
- spec/netsuite/records/credit_memo_item_list_spec.rb
|
427
432
|
- spec/netsuite/records/credit_memo_item_spec.rb
|
428
433
|
- spec/netsuite/records/credit_memo_spec.rb
|
434
|
+
- spec/netsuite/records/currency_spec.rb
|
429
435
|
- spec/netsuite/records/custom_field_list_spec.rb
|
430
436
|
- spec/netsuite/records/custom_field_spec.rb
|
431
437
|
- spec/netsuite/records/custom_list_spec.rb
|