netsuite 0.0.19 → 0.0.20
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.
- data/lib/netsuite.rb +3 -0
- data/lib/netsuite/actions/add.rb +1 -0
- data/lib/netsuite/actions/initialize.rb +6 -5
- data/lib/netsuite/namespaces/tran_cust.rb +11 -0
- data/lib/netsuite/records/customer_payment.rb +51 -0
- data/lib/netsuite/records/invoice.rb +3 -3
- data/lib/netsuite/records/job.rb +5 -0
- data/lib/netsuite/records/payment_method.rb +32 -0
- data/lib/netsuite/version.rb +1 -1
- data/spec/netsuite/actions/initialize_spec.rb +2 -2
- data/spec/netsuite/records/customer_payment_spec.rb +136 -0
- data/spec/netsuite/records/invoice_spec.rb +1 -1
- data/spec/netsuite/records/payment_method_spec.rb +50 -0
- metadata +10 -3
data/lib/netsuite.rb
CHANGED
@@ -12,6 +12,7 @@ require 'netsuite/namespaces/list_acct'
|
|
12
12
|
require 'netsuite/namespaces/list_rel'
|
13
13
|
require 'netsuite/namespaces/tran_sales'
|
14
14
|
require 'netsuite/namespaces/setup_custom'
|
15
|
+
require 'netsuite/namespaces/tran_cust'
|
15
16
|
|
16
17
|
# SUPPORT
|
17
18
|
require 'netsuite/support/attributes'
|
@@ -47,6 +48,8 @@ require 'netsuite/records/classification'
|
|
47
48
|
require 'netsuite/records/custom_record'
|
48
49
|
require 'netsuite/records/custom_record_type'
|
49
50
|
require 'netsuite/records/job'
|
51
|
+
require 'netsuite/records/customer_payment'
|
52
|
+
require 'netsuite/records/payment_method'
|
50
53
|
|
51
54
|
module NetSuite
|
52
55
|
|
data/lib/netsuite/actions/add.rb
CHANGED
@@ -17,6 +17,7 @@ module NetSuite
|
|
17
17
|
soap.namespaces['xmlns:tranSales'] = 'urn:sales_2011_2.transactions.webservices.netsuite.com'
|
18
18
|
soap.namespaces['xmlns:platformCommon'] = 'urn:common_2011_2.platform.webservices.netsuite.com'
|
19
19
|
soap.namespaces['xmlns:listAcct'] = 'urn:accounting_2011_2.lists.webservices.netsuite.com'
|
20
|
+
soap.namespaces['xmlns:tranCust'] = 'urn:customers_2011_2.transactions.webservices.netsuite.com'
|
20
21
|
soap.header = auth_header
|
21
22
|
soap.body = request_body
|
22
23
|
end
|
@@ -3,8 +3,9 @@ module NetSuite
|
|
3
3
|
class Initialize
|
4
4
|
include Support::Requests
|
5
5
|
|
6
|
-
def initialize(
|
7
|
-
@
|
6
|
+
def initialize(klass, object)
|
7
|
+
@klass = klass
|
8
|
+
@object = object
|
8
9
|
end
|
9
10
|
|
10
11
|
def request
|
@@ -26,12 +27,12 @@ module NetSuite
|
|
26
27
|
def request_body
|
27
28
|
{
|
28
29
|
'platformMsgs:initializeRecord' => {
|
29
|
-
'platformCore:type' => '
|
30
|
+
'platformCore:type' => @klass.to_s.split('::').last.lower_camelcase,
|
30
31
|
'platformCore:reference' => {},
|
31
32
|
:attributes! => {
|
32
33
|
'platformCore:reference' => {
|
33
|
-
'internalId' => @
|
34
|
-
:type => @
|
34
|
+
'internalId' => @object.internal_id,
|
35
|
+
:type => @object.class.to_s.split('::').last.lower_camelcase
|
35
36
|
}
|
36
37
|
}
|
37
38
|
}
|
@@ -0,0 +1,51 @@
|
|
1
|
+
module NetSuite
|
2
|
+
module Records
|
3
|
+
class CustomerPayment
|
4
|
+
include Support::Fields
|
5
|
+
include Support::RecordRefs
|
6
|
+
include Support::Records
|
7
|
+
include Namespaces::TranCust
|
8
|
+
|
9
|
+
fields :auth_code, :auto_apply, :balance, :cc_approved, :cc_avs_street_match, :cc_avs_zip_match,
|
10
|
+
:cc_expire_date, :cc_name, :cc_number, :cc_security_code, :cc_security_code_match, :cc_street, :cc_zip_code,
|
11
|
+
:charge_it, :check_num, :created_date, :currency_name, :debit_card_issue_no, :exchange_rate, :ignore_avs,
|
12
|
+
:last_modified_date, :memo, :payment, :pending, :pn_ref_num, :status, :three_d_status_code, :tran_date,
|
13
|
+
:undep_funds, :valid_from
|
14
|
+
|
15
|
+
field :custom_field_list, CustomFieldList
|
16
|
+
|
17
|
+
read_only_fields :applied, :total, :unapplied
|
18
|
+
|
19
|
+
record_refs :account, :ar_acct, :credit_card, :credit_card_processor, :custom_form, :customer, :department, :klass,
|
20
|
+
:location, :payment_method, :posting_period, :subsidiary
|
21
|
+
|
22
|
+
def initialize(attributes = {})
|
23
|
+
initialize_from_attributes_hash(attributes)
|
24
|
+
end
|
25
|
+
|
26
|
+
def self.get(options = {})
|
27
|
+
response = Actions::Get.call(self, options)
|
28
|
+
if response.success?
|
29
|
+
new(response.body)
|
30
|
+
else
|
31
|
+
raise RecordNotFound, "#{self} with OPTIONS=#{options.inspect} could not be found"
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def self.initialize(object)
|
36
|
+
response = Actions::Initialize.call(self, object)
|
37
|
+
if response.success?
|
38
|
+
new(response.body)
|
39
|
+
else
|
40
|
+
raise InitializationError, "#{self}.initialize with #{object} failed."
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
def add
|
45
|
+
response = Actions::Add.call(self)
|
46
|
+
response.success?
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -54,12 +54,12 @@ module NetSuite
|
|
54
54
|
end
|
55
55
|
end
|
56
56
|
|
57
|
-
def self.initialize(
|
58
|
-
response = Actions::Initialize.call(
|
57
|
+
def self.initialize(object)
|
58
|
+
response = Actions::Initialize.call(self, object)
|
59
59
|
if response.success?
|
60
60
|
new(response.body)
|
61
61
|
else
|
62
|
-
raise InitializationError, "#{self}.initialize with #{
|
62
|
+
raise InitializationError, "#{self}.initialize with #{object} failed."
|
63
63
|
end
|
64
64
|
end
|
65
65
|
|
data/lib/netsuite/records/job.rb
CHANGED
@@ -23,7 +23,12 @@ module NetSuite
|
|
23
23
|
record_refs :billing_schedule, :category, :currency, :custom_form, :entity_status, :estimate_rev_rec_template, :job_item,
|
24
24
|
:job_type, :language, :parent, :subsidiary, :workplace
|
25
25
|
|
26
|
+
attr_reader :internal_id
|
27
|
+
attr_accessor :external_id
|
28
|
+
|
26
29
|
def initialize(attributes = {})
|
30
|
+
@internal_id = attributes.delete(:internal_id) || attributes.delete(:@internal_id)
|
31
|
+
@external_id = attributes.delete(:external_id) || attributes.delete(:@external_id)
|
27
32
|
initialize_from_attributes_hash(attributes)
|
28
33
|
end
|
29
34
|
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module NetSuite
|
2
|
+
module Records
|
3
|
+
class PaymentMethod
|
4
|
+
include Support::Fields
|
5
|
+
include Support::RecordRefs
|
6
|
+
|
7
|
+
fields :credit_card, :express_checkout_arrangement, :is_debit_card, :is_inactive, :is_online, :name,
|
8
|
+
:pay_pal_email_address, :undep_funds, :use_express_checkout
|
9
|
+
|
10
|
+
record_ref :account
|
11
|
+
|
12
|
+
attr_reader :internal_id
|
13
|
+
attr_accessor :external_id
|
14
|
+
|
15
|
+
def initialize(attributes = {})
|
16
|
+
@internal_id = attributes.delete(:internal_id) || attributes.delete(:@internal_id)
|
17
|
+
@external_id = attributes.delete(:external_id) || attributes.delete(:@external_id)
|
18
|
+
initialize_from_attributes_hash(attributes)
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.get(options = {})
|
22
|
+
response = Actions::Get.call(self, options)
|
23
|
+
if response.success?
|
24
|
+
new(response.body)
|
25
|
+
else
|
26
|
+
raise RecordNotFound, "#{self} with OPTIONS=#{options.inspect} could not be found"
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
data/lib/netsuite/version.rb
CHANGED
@@ -21,11 +21,11 @@ describe NetSuite::Actions::Initialize do
|
|
21
21
|
end
|
22
22
|
|
23
23
|
it 'makes a valid request to the NetSuite API' do
|
24
|
-
NetSuite::Actions::Initialize.call(customer)
|
24
|
+
NetSuite::Actions::Initialize.call(NetSuite::Records::Customer, customer)
|
25
25
|
end
|
26
26
|
|
27
27
|
it 'returns a valid Response object' do
|
28
|
-
response = NetSuite::Actions::Initialize.call(customer)
|
28
|
+
response = NetSuite::Actions::Initialize.call(NetSuite::Records::Customer, customer)
|
29
29
|
response.should be_kind_of(NetSuite::Response)
|
30
30
|
response.should be_success
|
31
31
|
end
|
@@ -0,0 +1,136 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe NetSuite::Records::CustomerPayment do
|
4
|
+
let(:payment) { NetSuite::Records::CustomerPayment.new }
|
5
|
+
let(:invoice) { NetSuite::Records::Invoice.new }
|
6
|
+
let(:response) { NetSuite::Response.new(:success => true, :body => { :internal_id => '1' }) }
|
7
|
+
|
8
|
+
# <element name="applyList" type="tranCust:CustomerPaymentApplyList" minOccurs="0"/>
|
9
|
+
# <element name="creditList" type="tranCust:CustomerPaymentCreditList" minOccurs="0"/>
|
10
|
+
# <element name="depositList" type="tranCust:CustomerPaymentDepositList" minOccurs="0"/>
|
11
|
+
it 'has all the right fields' do
|
12
|
+
[
|
13
|
+
:applied, :auth_code, :auto_apply, :balance, :cc_approved, :cc_avs_street_match, :cc_avs_zip_match, :cc_expire_date,
|
14
|
+
:cc_name, :cc_number, :cc_security_code, :cc_security_code_match, :cc_street, :cc_zip_code, :charge_it, :check_num,
|
15
|
+
:created_date, :currency_name, :debit_card_issue_no, :exchange_rate, :ignore_avs, :last_modified_date, :memo, :payment,
|
16
|
+
:pending, :pn_ref_num, :status, :three_d_status_code, :total, :tran_date, :unapplied, :undep_funds, :valid_from
|
17
|
+
].each do |field|
|
18
|
+
payment.should have_field(field)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
it 'has all the right record refs' do
|
23
|
+
[
|
24
|
+
:account, :ar_acct, :credit_card, :credit_card_processor, :custom_form, :customer, :department, :klass, :location, :payment_method, :posting_period, :subsidiary
|
25
|
+
].each do |record_ref|
|
26
|
+
payment.should have_record_ref(record_ref)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
describe '#custom_field_list' do
|
31
|
+
it 'can be set from attributes' do
|
32
|
+
attributes = {
|
33
|
+
:custom_field => {
|
34
|
+
:amount => 10
|
35
|
+
}
|
36
|
+
}
|
37
|
+
payment.custom_field_list = attributes
|
38
|
+
payment.custom_field_list.should be_kind_of(NetSuite::Records::CustomFieldList)
|
39
|
+
payment.custom_field_list.custom_fields.length.should eql(1)
|
40
|
+
end
|
41
|
+
|
42
|
+
it 'can be set from a CustomFieldList object' do
|
43
|
+
custom_field_list = NetSuite::Records::CustomFieldList.new
|
44
|
+
payment.custom_field_list = custom_field_list
|
45
|
+
payment.custom_field_list.should eql(custom_field_list)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
describe '.get' do
|
50
|
+
context 'when the response is successful' do
|
51
|
+
let(:response) { NetSuite::Response.new(:success => true, :body => { :memo => 'This is a memo' }) }
|
52
|
+
|
53
|
+
it 'returns an CustomerPayment instance populated with the data from the response object' do
|
54
|
+
NetSuite::Actions::Get.should_receive(:call).with(NetSuite::Records::CustomerPayment, :external_id => 7).and_return(response)
|
55
|
+
payment = NetSuite::Records::CustomerPayment.get(:external_id => 7)
|
56
|
+
payment.should be_kind_of(NetSuite::Records::CustomerPayment)
|
57
|
+
payment.memo.should eql('This is a memo')
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
context 'when the response is unsuccessful' do
|
62
|
+
let(:response) { NetSuite::Response.new(:success => false, :body => {}) }
|
63
|
+
|
64
|
+
it 'raises a RecordNotFound exception' do
|
65
|
+
NetSuite::Actions::Get.should_receive(:call).with(NetSuite::Records::CustomerPayment, :external_id => 8).and_return(response)
|
66
|
+
lambda {
|
67
|
+
NetSuite::Records::CustomerPayment.get(:external_id => 8)
|
68
|
+
}.should raise_error(NetSuite::RecordNotFound,
|
69
|
+
/NetSuite::Records::CustomerPayment with OPTIONS=(.*) could not be found/)
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
describe '.initialize' do
|
75
|
+
context 'when the request is successful' do
|
76
|
+
it 'returns an initialized invoice from the customer entity' do
|
77
|
+
NetSuite::Actions::Initialize.should_receive(:call).with(NetSuite::Records::CustomerPayment, invoice).and_return(response)
|
78
|
+
payment = NetSuite::Records::CustomerPayment.initialize(invoice)
|
79
|
+
payment.should be_kind_of(NetSuite::Records::CustomerPayment)
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
context 'when the response is unsuccessful' do
|
84
|
+
pending
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
describe '#add' do
|
89
|
+
let(:test_data) { { :cc_name => 'Ryan Moran', :cc_number => '1234567890123456' } }
|
90
|
+
|
91
|
+
context 'when the response is successful' do
|
92
|
+
let(:response) { NetSuite::Response.new(:success => true, :body => { :internal_id => '1' }) }
|
93
|
+
|
94
|
+
it 'returns true' do
|
95
|
+
payment = NetSuite::Records::CustomerPayment.new(test_data)
|
96
|
+
NetSuite::Actions::Add.should_receive(:call).
|
97
|
+
with(payment).
|
98
|
+
and_return(response)
|
99
|
+
payment.add.should be_true
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
103
|
+
context 'when the response is unsuccessful' do
|
104
|
+
let(:response) { NetSuite::Response.new(:success => false, :body => {}) }
|
105
|
+
|
106
|
+
it 'returns false' do
|
107
|
+
pyament = NetSuite::Records::CustomerPayment.new(test_data)
|
108
|
+
NetSuite::Actions::Add.should_receive(:call).
|
109
|
+
with(payment).
|
110
|
+
and_return(response)
|
111
|
+
payment.add.should be_false
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
116
|
+
describe '#to_record' do
|
117
|
+
before do
|
118
|
+
payment.cc_name = 'Ryan Moran'
|
119
|
+
payment.cc_number = '1234567890123456'
|
120
|
+
end
|
121
|
+
it 'can represent itself as a SOAP record' do
|
122
|
+
record = {
|
123
|
+
'tranCust:ccName' => 'Ryan Moran',
|
124
|
+
'tranCust:ccNumber' => '1234567890123456'
|
125
|
+
}
|
126
|
+
payment.to_record.should eql(record)
|
127
|
+
end
|
128
|
+
end
|
129
|
+
|
130
|
+
describe '#record_type' do
|
131
|
+
it 'returns a string representation of the SOAP type' do
|
132
|
+
payment.record_type.should eql('tranCust:CustomerPayment')
|
133
|
+
end
|
134
|
+
end
|
135
|
+
|
136
|
+
end
|
@@ -156,7 +156,7 @@ describe NetSuite::Records::Invoice do
|
|
156
156
|
describe '.initialize' do
|
157
157
|
context 'when the request is successful' do
|
158
158
|
it 'returns an initialized invoice from the customer entity' do
|
159
|
-
NetSuite::Actions::Initialize.should_receive(:call).with(customer).and_return(response)
|
159
|
+
NetSuite::Actions::Initialize.should_receive(:call).with(NetSuite::Records::Invoice, customer).and_return(response)
|
160
160
|
invoice = NetSuite::Records::Invoice.initialize(customer)
|
161
161
|
invoice.should be_kind_of(NetSuite::Records::Invoice)
|
162
162
|
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe NetSuite::Records::PaymentMethod do
|
4
|
+
let(:payment_method) { NetSuite::Records::PaymentMethod.new }
|
5
|
+
|
6
|
+
# <element name="merchantAccountsList" type="platformCore:RecordRefList" minOccurs="0"/>
|
7
|
+
|
8
|
+
it 'has all the right fields' do
|
9
|
+
[
|
10
|
+
:credit_card, :express_checkout_arrangement, :is_debit_card, :is_inactive, :is_online, :name, :pay_pal_email_address,
|
11
|
+
:undep_funds, :use_express_checkout
|
12
|
+
].each do |field|
|
13
|
+
payment_method.should have_field(field)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'has all thr right record refs' do
|
18
|
+
[
|
19
|
+
:account
|
20
|
+
].each do |record_ref|
|
21
|
+
payment_method.should have_record_ref(record_ref)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
describe '.get' do
|
26
|
+
context 'when the response is successful' do
|
27
|
+
let(:response) { NetSuite::Response.new(:success => true, :body => { :is_debit_card => true }) }
|
28
|
+
|
29
|
+
it 'returns an PaymentMethod instance populated with the data from the response object' do
|
30
|
+
NetSuite::Actions::Get.should_receive(:call).with(NetSuite::Records::PaymentMethod, :external_id => 10).and_return(response)
|
31
|
+
payment_method = NetSuite::Records::PaymentMethod.get(:external_id => 10)
|
32
|
+
payment_method.should be_kind_of(NetSuite::Records::PaymentMethod)
|
33
|
+
payment_method.is_debit_card.should be_true
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
context 'when the response is unsuccessful' do
|
38
|
+
let(:response) { NetSuite::Response.new(:success => false, :body => {}) }
|
39
|
+
|
40
|
+
it 'raises a RecordNotFound exception' do
|
41
|
+
NetSuite::Actions::Get.should_receive(:call).with(NetSuite::Records::PaymentMethod, :external_id => 10).and_return(response)
|
42
|
+
lambda {
|
43
|
+
NetSuite::Records::PaymentMethod.get(:external_id => 10)
|
44
|
+
}.should raise_error(NetSuite::RecordNotFound,
|
45
|
+
/NetSuite::Records::PaymentMethod with OPTIONS=(.*) could not be found/)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: netsuite
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 55
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 20
|
10
|
+
version: 0.0.20
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Ryan Moran
|
@@ -111,6 +111,7 @@ files:
|
|
111
111
|
- lib/netsuite/namespaces/platform_common.rb
|
112
112
|
- lib/netsuite/namespaces/platform_core.rb
|
113
113
|
- lib/netsuite/namespaces/setup_custom.rb
|
114
|
+
- lib/netsuite/namespaces/tran_cust.rb
|
114
115
|
- lib/netsuite/namespaces/tran_sales.rb
|
115
116
|
- lib/netsuite/records/bill_address.rb
|
116
117
|
- lib/netsuite/records/classification.rb
|
@@ -122,12 +123,14 @@ files:
|
|
122
123
|
- lib/netsuite/records/customer.rb
|
123
124
|
- lib/netsuite/records/customer_addressbook.rb
|
124
125
|
- lib/netsuite/records/customer_addressbook_list.rb
|
126
|
+
- lib/netsuite/records/customer_payment.rb
|
125
127
|
- lib/netsuite/records/duration.rb
|
126
128
|
- lib/netsuite/records/invoice.rb
|
127
129
|
- lib/netsuite/records/invoice_item.rb
|
128
130
|
- lib/netsuite/records/invoice_item_list.rb
|
129
131
|
- lib/netsuite/records/job.rb
|
130
132
|
- lib/netsuite/records/non_inventory_sale_item.rb
|
133
|
+
- lib/netsuite/records/payment_method.rb
|
131
134
|
- lib/netsuite/records/record_ref.rb
|
132
135
|
- lib/netsuite/records/ship_address.rb
|
133
136
|
- lib/netsuite/response.rb
|
@@ -152,6 +155,7 @@ files:
|
|
152
155
|
- spec/netsuite/records/custom_record_type_spec.rb
|
153
156
|
- spec/netsuite/records/customer_addressbook_list_spec.rb
|
154
157
|
- spec/netsuite/records/customer_addressbook_spec.rb
|
158
|
+
- spec/netsuite/records/customer_payment_spec.rb
|
155
159
|
- spec/netsuite/records/customer_spec.rb
|
156
160
|
- spec/netsuite/records/duration_spec.rb
|
157
161
|
- spec/netsuite/records/invoice_item_list_spec.rb
|
@@ -159,6 +163,7 @@ files:
|
|
159
163
|
- spec/netsuite/records/invoice_spec.rb
|
160
164
|
- spec/netsuite/records/job_spec.rb
|
161
165
|
- spec/netsuite/records/non_inventory_sale_item_spec.rb
|
166
|
+
- spec/netsuite/records/payment_method_spec.rb
|
162
167
|
- spec/netsuite/records/record_ref_spec.rb
|
163
168
|
- spec/netsuite/records/ship_address_spec.rb
|
164
169
|
- spec/netsuite/response_spec.rb
|
@@ -230,6 +235,7 @@ test_files:
|
|
230
235
|
- spec/netsuite/records/custom_record_type_spec.rb
|
231
236
|
- spec/netsuite/records/customer_addressbook_list_spec.rb
|
232
237
|
- spec/netsuite/records/customer_addressbook_spec.rb
|
238
|
+
- spec/netsuite/records/customer_payment_spec.rb
|
233
239
|
- spec/netsuite/records/customer_spec.rb
|
234
240
|
- spec/netsuite/records/duration_spec.rb
|
235
241
|
- spec/netsuite/records/invoice_item_list_spec.rb
|
@@ -237,6 +243,7 @@ test_files:
|
|
237
243
|
- spec/netsuite/records/invoice_spec.rb
|
238
244
|
- spec/netsuite/records/job_spec.rb
|
239
245
|
- spec/netsuite/records/non_inventory_sale_item_spec.rb
|
246
|
+
- spec/netsuite/records/payment_method_spec.rb
|
240
247
|
- spec/netsuite/records/record_ref_spec.rb
|
241
248
|
- spec/netsuite/records/ship_address_spec.rb
|
242
249
|
- spec/netsuite/response_spec.rb
|