netsuite 0.7.3 → 0.7.4

Sign up to get free protection for your applications and to get access to all the features.
data/lib/netsuite.rb CHANGED
@@ -198,11 +198,13 @@ module NetSuite
198
198
  autoload :RoleList, 'netsuite/records/role_list'
199
199
  autoload :ReturnAuthorization, 'netsuite/records/return_authorization'
200
200
  autoload :SalesOrder, 'netsuite/records/sales_order'
201
+ autoload :SalesOrderShipGroupList, 'netsuite/records/sales_order_ship_group_list'
201
202
  autoload :SalesOrderItem, 'netsuite/records/sales_order_item'
202
203
  autoload :SalesOrderItemList, 'netsuite/records/sales_order_item_list'
203
204
  autoload :SalesTaxItem, 'netsuite/records/sales_tax_item'
204
205
  autoload :ServiceResaleItem, 'netsuite/records/service_resale_item'
205
206
  autoload :ServiceSaleItem, 'netsuite/records/service_sale_item'
207
+ autoload :SerializedInventoryItem, 'netsuite/records/serialized_inventory_item'
206
208
  autoload :ShipAddress, 'netsuite/records/ship_address'
207
209
  autoload :SiteCategory, 'netsuite/records/site_category'
208
210
  autoload :Subsidiary, 'netsuite/records/subsidiary'
@@ -213,6 +215,7 @@ module NetSuite
213
215
  autoload :Task, 'netsuite/records/task'
214
216
  autoload :Term, 'netsuite/records/term'
215
217
  autoload :TimeBill, 'netsuite/records/time_bill'
218
+ autoload :TransactionShipGroup, 'netsuite/records/transaction_ship_group'
216
219
  autoload :TransferOrder, 'netsuite/records/transfer_order'
217
220
  autoload :TransferOrderItemList, 'netsuite/records/transfer_order_item_list'
218
221
  autoload :TransferOrderItem, 'netsuite/records/transfer_order_item'
@@ -38,7 +38,11 @@ module NetSuite
38
38
  end
39
39
 
40
40
  def response_body
41
- @response_body ||= array_wrap(response_hash[:record_list][:record])
41
+ @response_body ||= if success?
42
+ array_wrap(response_hash[:record_list][:record])
43
+ else
44
+ nil
45
+ end
42
46
  end
43
47
 
44
48
  def response_hash
@@ -54,10 +58,13 @@ module NetSuite
54
58
  module ClassMethods
55
59
  def get_all(credentials = {})
56
60
  response = NetSuite::Actions::GetAll.call([self], credentials)
61
+
62
+ # TODO expose errors to the user
63
+
57
64
  if response.success?
58
65
  response.body.map { |attr| new(attr) }
59
66
  else
60
- raise RecordNotFound, "#{self} with OPTIONS=#{options.inspect} could not be found"
67
+ false
61
68
  end
62
69
  end
63
70
  end
@@ -19,9 +19,11 @@ module NetSuite
19
19
  :to_be_printed, :total_cost_estimate, :tran_date, :tran_id, :tran_is_vsoe_bundle, :vat_reg_num,
20
20
  :vsoe_auto_calc
21
21
 
22
+ field :custom_field_list, CustomFieldList
22
23
  field :transaction_bill_address, BillAddress
23
24
  field :item_list, CreditMemoItemList
24
25
  field :apply_list, CreditMemoApplyList
26
+ field :ship_group_list, SalesOrderShipGroupList
25
27
 
26
28
  read_only_fields :applied, :discount_total, :sub_total, :tax_total, :total, :unapplied
27
29
 
@@ -97,7 +97,7 @@ module NetSuite
97
97
 
98
98
  def extract_custom_field(custom_field_data)
99
99
  # TODO this seems brittle, but might sufficient, watch out for this if something breaks
100
- if custom_field_data[:"@xsi:type"] == "platformCore:SelectCustomFieldRef"
100
+ if (custom_field_data[:"@xsi:type"] || custom_field_data[:type]) == "platformCore:SelectCustomFieldRef"
101
101
  custom_field_data[:value] = CustomRecordRef.new(custom_field_data.delete(:value))
102
102
  end
103
103
 
@@ -24,7 +24,7 @@ module NetSuite
24
24
  :print_transactions, :referrer, :reminder_days, :representing_subsidiary, :require_pwd_change, :resale_number,
25
25
  :sales_group, :sales_readiness, :sales_team_list, :salutation, :send_email, :ship_complete, :shipping_item,
26
26
  :stage, :start_date, :sync_partner_teams, :tax_exempt, :tax_item, :taxable,
27
- :territory, :third_party_acct, :third_party_country, :third_party_zipcode, :title, :url,
27
+ :third_party_acct, :third_party_country, :third_party_zipcode, :title, :url,
28
28
  :vat_reg_number, :visits, :web_lead
29
29
 
30
30
  field :addressbook_list, CustomerAddressbookList
@@ -39,7 +39,7 @@ module NetSuite
39
39
  :consol_overdue_balance, :unbilled_orders, :consol_unbilled_orders
40
40
 
41
41
  record_refs :access_role, :custom_form, :currency, :entity_status, :partner, :category, :lead_source,
42
- :price_level,:sales_rep, :subsidiary, :terms, :parent
42
+ :price_level,:sales_rep, :subsidiary, :terms, :parent, :territory
43
43
 
44
44
  attr_reader :internal_id
45
45
  attr_accessor :external_id
@@ -9,7 +9,7 @@ module NetSuite
9
9
 
10
10
  actions :get, :get_list, :add, :delete, :search, :upsert
11
11
 
12
- fields :approved, :created_date, :exchange_rate, :last_modified_date, :reversal_date, :reversal_defer, :reversal_entry,
12
+ fields :approved, :created_date, :exchange_rate, :last_modified_date, :memo, :reversal_date, :reversal_defer, :reversal_entry,
13
13
  :tran_date, :tran_id
14
14
 
15
15
  field :custom_field_list, CustomFieldList
@@ -28,6 +28,7 @@ module NetSuite
28
28
 
29
29
  attr_reader :internal_id
30
30
  attr_accessor :external_id
31
+ attr_accessor :search_joins
31
32
 
32
33
  def initialize(attributes = {})
33
34
  @internal_id = attributes.delete(:internal_id) || attributes.delete(:@internal_id)
@@ -11,14 +11,14 @@ module NetSuite
11
11
 
12
12
  fields :alt_handling_cost, :alt_shipping_cost, :amount_paid, :amount_remaining, :auto_apply, :balance,
13
13
  :bill_address, :cc_approved, :contrib_pct, :created_date, :currency_name, :deferred_revenue, :discount_rate, :email, :end_date,
14
- :est_gross_profit, :est_gross_profit_percent, :exchange_rate, :exclude_commission, :fax, :gift_cert_applied,
14
+ :est_gross_profit, :exchange_rate, :exclude_commission, :fax, :gift_cert_applied,
15
15
  :gift_cert_available, :gift_cert_total, :handling_cost, :handling_tax1_rate, :handling_tax2_rate, :is_taxable,
16
16
  :last_modified_date, :memo, :message, :on_credit_hold, :order_status, :other_ref_num, :recognized_revenue,
17
17
  :rev_rec_on_rev_commitment, :sales_effective_date, :ship_complete, :ship_date, :shipping_cost, :shipping_tax1_rate, :shipping_tax2_rate, :source,
18
18
  :start_date, :status, :sync_partner_teams, :sync_sales_teams, :tax2_total, :tax_rate, :to_be_emailed, :to_be_faxed,
19
19
  :to_be_printed, :total_cost_estimate, :tran_date, :tran_id, :tran_is_vsoe_bundle, :vat_reg_num,
20
20
  :linked_tracking_numbers, :vsoe_auto_calc, :quantity, :bill_city, :bill_state, :ship_city, :ship_state, :cost_estimate,
21
- :amount, :is_ship_address, :auth_code
21
+ :amount, :is_ship_address, :auth_code, :pn_ref_num, :is_multi_ship_to
22
22
 
23
23
  # NOTE API >= 2014_2 only
24
24
  field :shipping_address, Address
@@ -31,8 +31,10 @@ module NetSuite
31
31
  field :item_list, SalesOrderItemList
32
32
  field :custom_field_list, CustomFieldList
33
33
  field :gift_cert_redemption_list, GiftCertRedemptionList
34
+ field :ship_group_list, SalesOrderShipGroupList
34
35
 
35
- read_only_fields :applied, :discount_total, :sub_total, :tax_total, :total, :unapplied
36
+ read_only_fields :applied, :discount_total, :sub_total, :tax_total, :total, :unapplied,
37
+ :est_gross_profit_percent
36
38
 
37
39
  record_refs :account, :bill_address_list, :created_from, :currency, :custom_form, :department, :discount_item, :entity, :gift_cert,
38
40
  :handling_tax_code, :job, :klass, :lead_source, :location, :message_sel, :opportunity, :partner, :posting_period, :promo_code,
@@ -0,0 +1,11 @@
1
+ module NetSuite
2
+ module Records
3
+ class SalesOrderShipGroupList < Support::Sublist
4
+ include Namespaces::TranSales
5
+
6
+ sublist :ship_group, TransactionShipGroup
7
+
8
+ alias :ship_groups :ship_group
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,248 @@
1
+ module NetSuite
2
+ module Records
3
+ class SerializedInventoryItem
4
+ include Support::Fields
5
+ include Support::RecordRefs
6
+ include Support::Records
7
+ include Support::Actions
8
+ include Namespaces::ListAcct
9
+
10
+ actions :get, :get_list, :add, :delete, :search, :update, :upsert
11
+
12
+ record_refs :soft_descriptor,
13
+ :stock_unit,
14
+ :store_display_image,
15
+ :store_display_thumbnail,
16
+ :store_item_template,
17
+ :supply_lot_sizing_method,
18
+ :supply_replenishment_method,
19
+ :supply_type,
20
+ :tax_schedule,
21
+ :units_type,
22
+ :vendor,
23
+ :alternate_demand_source_item,
24
+ :asset_account,
25
+ :bill_exch_rate_variance_acct,
26
+ :billing_schedule,
27
+ :bill_price_variance_acct,
28
+ :bill_qty_variance_acct,
29
+ :klass,
30
+ :cogs_account,
31
+ :cost_category,
32
+ :custom_form,
33
+ :deferred_revenue_account,
34
+ :demand_source,
35
+ :department,
36
+ :dropship_expense_account,
37
+ :gain_loss_account,
38
+ :income_account,
39
+ :interco_cogs_account,
40
+ :interco_income_account,
41
+ :issue_product,
42
+ :location,
43
+ :parent,
44
+ :preferred_location,
45
+ :pricing_group,
46
+ :purchase_price_variance_acct,
47
+ :purchase_tax_code,
48
+ :purchase_unit,
49
+ :quantity_pricing_schedule,
50
+ :sales_tax_code,
51
+ :sale_unit,
52
+ :ship_package,
53
+ :revenue_allocation_group,
54
+ :revenue_recognition_rule,
55
+ :rev_rec_schedule
56
+
57
+ # bin_number_list InventoryItemBinNumberList
58
+ # custom_field_list CustomFieldList
59
+ # hazmat_packing_group HazmatPackingGroup
60
+ # invt_classification ItemInvtClassification
61
+ # item_carrier ItemCarrier
62
+ # item_number_options_list RecordRefList
63
+ # item_options_list ItemOptionsList
64
+ # item_revenue_category RecordRef
65
+ # item_ship_method_list RecordRefList
66
+ # item_vendor_list ItemVendorList
67
+ # locations_list SerializedInventoryItemLocationsList
68
+ # matrix_option_list MatrixOptionList
69
+ # matrix_type ItemMatrixType
70
+ # numbers_list SerializedInventoryItemNumbersList
71
+ # out_of_stock_behavior ItemOutOfStockBehavior
72
+ # overall_quantity_pricing_type ItemOverallQuantityPricingType
73
+ # periodic_lot_size_type PeriodicLotSizeType
74
+ # preference_criterion ItemPreferenceCriterion
75
+ # presentation_item_list PresentationItemList
76
+ # pricing_matrix PricingMatrix
77
+ # product_feed_list ProductFeedList
78
+ # accounting_book_detail_list ItemAccountingBookDetailList
79
+
80
+ fields :auto_lead_time,
81
+ :auto_preferred_stock_level,
82
+ :auto_reorder_point,
83
+ :available_to_partners,
84
+ :average_cost,
85
+ :backward_consumption_days,
86
+ :copy_description,
87
+ :cost,
88
+ :cost_estimate,
89
+ :costing_method_display,
90
+ :cost_units,
91
+ :created_date,
92
+ :currency,
93
+ :default_item_ship_method,
94
+ :default_return_cost,
95
+ :demand_modifier,
96
+ :demand_time_fence,
97
+ :display_name,
98
+ :dont_show_price,
99
+ :enforce_min_qty_internally,
100
+ :exclude_from_sitemap,
101
+ :featured_description,
102
+ :fixed_lot_size,
103
+ :forward_consumption_days,
104
+ :handling_cost,
105
+ :handling_cost_units,
106
+ :hazmat_hazard_class,
107
+ :hazmat_id,
108
+ :hazmat_item_units,
109
+ :hazmat_item_units_qty,
110
+ :hazmat_shipping_name,
111
+ :include_children,
112
+ :invt_count_interval,
113
+ :is_donation_item,
114
+ :is_drop_ship_item,
115
+ :is_gco_compliant,
116
+ :is_hazmat_item,
117
+ :is_inactive,
118
+ :is_online,
119
+ :is_special_order_item,
120
+ :is_taxable,
121
+ :item_id,
122
+ :last_invt_count_date,
123
+ :last_modified_date,
124
+ :last_purchase_price,
125
+ :lead_time,
126
+ :manufacturer,
127
+ :manufacturer_addr1,
128
+ :manufacturer_city,
129
+ :manufacturer_state,
130
+ :manufacturer_tariff,
131
+ :manufacturer_tax_id,
132
+ :manufacturer_zip,
133
+ :match_bill_to_receipt,
134
+ :max_donation_amount,
135
+ :meta_tag_html,
136
+ :minimum_quantity,
137
+ :minimum_quantity_units,
138
+ :mpn,
139
+ :mult_manufacture_addr,
140
+ :nex_tag_category,
141
+ :next_invt_count_date,
142
+ :no_price_message,
143
+ :offer_support,
144
+ :on_hand_value_mli,
145
+ :on_special,
146
+ :out_of_stock_message,
147
+ :page_title,
148
+ :periodic_lot_size_days,
149
+ :preferred_stock_level,
150
+ :preferred_stock_level_days,
151
+ :preferred_stock_level_units,
152
+ :prices_include_tax,
153
+ :producer,
154
+ :purchase_description,
155
+ :purchase_order_amount,
156
+ :purchase_order_quantity,
157
+ :purchase_order_quantity_diff,
158
+ :quantity_available,
159
+ :quantity_back_ordered,
160
+ :quantity_committed,
161
+ :quantity_on_hand,
162
+ :quantity_on_hand_units,
163
+ :quantity_on_order,
164
+ :quantity_reorder_units,
165
+ :rate,
166
+ :receipt_amount,
167
+ :receipt_quantity,
168
+ :receipt_quantity_diff,
169
+ :related_items_description,
170
+ :reorder_multiple,
171
+ :reorder_point,
172
+ :reorder_point_units,
173
+ :reschedule_in_days,
174
+ :reschedule_out_days,
175
+ :round_up_as_component,
176
+ :safety_stock_level,
177
+ :safety_stock_level_days,
178
+ :safety_stock_level_units,
179
+ :sales_description,
180
+ :schedule_b_code,
181
+ :schedule_b_number,
182
+ :schedule_b_quantity,
183
+ :search_keywords,
184
+ :seasonal_demand,
185
+ :serial_numbers,
186
+ :ship_individually,
187
+ :shipping_cost,
188
+ :shipping_cost_units,
189
+ :shopping_dot_com_category,
190
+ :shopzilla_category_id,
191
+ :show_default_donation_amount,
192
+ :specials_description,
193
+ :stock_description,
194
+ :store_description,
195
+ :store_detailed_description,
196
+ :store_display_name,
197
+ :supply_time_fence,
198
+ :total_value,
199
+ :track_landed_cost,
200
+ :transfer_price,
201
+ :upc_code,
202
+ :url_component,
203
+ :use_bins,
204
+ :use_marginal_rates,
205
+ :vendor_name,
206
+ :vsoe_delivered,
207
+ :vsoe_price,
208
+ :weight,
209
+ :weight_units
210
+
211
+ # cost_estimate_type ItemCostEstimateType
212
+ # costing_method ItemCostingMethod
213
+ # country_of_manufacture Country
214
+ # create_revenue_plans_on ItemCreateRevenuePlansOn
215
+ # site_category_list SiteCategoryList
216
+ # sitemap_priority SitemapPriority
217
+ # subsidiary_list RecordRefList
218
+ # translations_list TranslationList
219
+ # vsoe_deferral VsoeDeferral
220
+ # vsoe_permit_discount VsoePermitDiscount
221
+ # vsoe_sop_group VsoeSopGroup
222
+ # weight_unit ItemWeightUnit
223
+
224
+ field :custom_field_list, CustomFieldList
225
+ field :locations_list, LocationsList
226
+ field :subsidiary_list, RecordRefList
227
+
228
+ # TODO from standard copied item record; may need to be deleted
229
+ # field :pricing_matrix, PricingMatrix
230
+ # field :bin_number_list, BinNumberList
231
+ # field :item_vendor_list, ItemVendorList
232
+ # field :matrix_option_list, MatrixOptionList
233
+
234
+ attr_reader :internal_id
235
+ attr_accessor :external_id
236
+
237
+ def initialize(attributes = {})
238
+ @internal_id = attributes.delete(:internal_id) || attributes.delete(:@internal_id)
239
+ @external_id = attributes.delete(:external_id) || attributes.delete(:@external_id)
240
+ initialize_from_attributes_hash(attributes)
241
+ end
242
+
243
+ def self.search_class_name
244
+ "Item"
245
+ end
246
+ end
247
+ end
248
+ 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, :subsidiary_list, :tax_schedule, :units_type
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
@@ -0,0 +1,40 @@
1
+ module NetSuite
2
+ module Records
3
+ class TransactionShipGroup
4
+ include Support::Fields
5
+ include Support::RecordRefs
6
+ include Support::Records
7
+ include Namespaces::TranSales
8
+
9
+ fields :destination_address,
10
+ :handling_rate,
11
+ :handling_tax2_amt,
12
+ :handling_tax2_rate,
13
+ :handling_tax_amt,
14
+ :handling_tax_rate,
15
+ :id,
16
+ :is_fulfilled,
17
+ :is_handling_taxable,
18
+ :is_shipping_taxable,
19
+ :shipping_method,
20
+ :shipping_rate,
21
+ :shipping_tax2_amt,
22
+ :shipping_tax2_rate,
23
+ :shipping_tax_amt,
24
+ :shipping_tax_rate,
25
+ :source_address,
26
+ :weight
27
+
28
+ record_refs :destination_address_ref,
29
+ :handling_tax_code,
30
+ :shipping_method_ref,
31
+ :shipping_tax_code,
32
+ :source_address_ref
33
+
34
+ def initialize(attributes = {})
35
+ initialize_from_attributes_hash(attributes)
36
+ end
37
+
38
+ end
39
+ end
40
+ end
@@ -7,7 +7,7 @@ module NetSuite
7
7
  include Support::Actions
8
8
  include Namespaces::TranPurch
9
9
 
10
- actions :get, :get_list, :delete, :initialize, :search
10
+ actions :add, :get, :get_list, :update, :delete, :initialize, :search
11
11
 
12
12
  fields :created_date, :un_applied, :last_modified_date,
13
13
  :auto_apply, :applied, :transaction_number,
@@ -33,7 +33,8 @@ module NetSuite
33
33
  yield
34
34
  rescue options[:exception] || Savon::SOAPFault => e
35
35
  if !e.message.include?("Only one request may be made against a session at a time") &&
36
- !e.message.include?('java.util.ConcurrentModificationException')
36
+ !e.message.include?('java.util.ConcurrentModificationException') &&
37
+ !e.message.include?('SuiteTalk concurrent request limit exceeded. Request blocked.')
37
38
  raise e
38
39
  end
39
40
  if count >= (options[:attempts] || 8)
@@ -70,6 +71,7 @@ module NetSuite
70
71
  ns_item ||= NetSuite::Utilities.get_record(NetSuite::Records::ServiceSaleItem, ns_item_internal_id)
71
72
  ns_item ||= NetSuite::Utilities.get_record(NetSuite::Records::GiftCertificateItem, ns_item_internal_id)
72
73
  ns_item ||= NetSuite::Utilities.get_record(NetSuite::Records::KitItem, ns_item_internal_id)
74
+ ns_item ||= NetSuite::Utilities.get_record(NetSuite::Records::SerializedInventoryItem, ns_item_internal_id)
73
75
 
74
76
  if ns_item.nil?
75
77
  fail NetSuite::RecordNotFound, "item with ID #{ns_item_internal_id} not found"
@@ -1,3 +1,3 @@
1
1
  module Netsuite
2
- VERSION = '0.7.3'
2
+ VERSION = '0.7.4'
3
3
  end
@@ -43,6 +43,7 @@ describe 'basic records' do
43
43
  NetSuite::Records::OtherChargeSaleItem,
44
44
  NetSuite::Records::GiftCertificateItem,
45
45
  NetSuite::Records::ReturnAuthorization,
46
+ NetSuite::Records::SerializedInventoryItem,
46
47
  ]
47
48
  }
48
49
 
@@ -102,7 +102,7 @@ describe NetSuite::Records::CustomFieldList do
102
102
 
103
103
  it 'can represent itself as a SOAP record' do
104
104
  record = {
105
- "platformCore:customField" => [
105
+ "platformCore:customField" => [
106
106
  {
107
107
  'platformCore:value' => 'false',
108
108
  "@internalId" => "custentity_registeredonline",
@@ -125,6 +125,47 @@ describe NetSuite::Records::CustomFieldList do
125
125
  expect(list.to_record.length).to eq(1)
126
126
  end
127
127
 
128
+ context "when custom field list is initialised from a hash" do
129
+ let(:attributes) do
130
+ {
131
+ custom_field: [
132
+ {
133
+ script_id: "custentity_registeredonline",
134
+ type: "platformCore:SelectCustomFieldRef",
135
+ value: { internal_id: 200, type_id: 1 },
136
+ },
137
+ {
138
+ script_id: "custbody_salesclassification",
139
+ type: "platformCore:StringCustomFieldRef",
140
+ value: "foobar"
141
+ }
142
+ ]
143
+ }
144
+ end
145
+
146
+ it "can represent itself as a SOAP record" do
147
+ list = NetSuite::Records::CustomFieldList.new(attributes)
148
+
149
+ record = {
150
+ "platformCore:customField" => [
151
+ {
152
+ "@scriptId" => "custentity_registeredonline",
153
+ "@xsi:type" => "platformCore:SelectCustomFieldRef",
154
+ "platformCore:value" => {:@internalId => 200, :@typeId => "1"},
155
+ },
156
+ {
157
+ "@scriptId" => "custbody_salesclassification",
158
+ "@xsi:type" => "platformCore:StringCustomFieldRef",
159
+ "platformCore:value" => "foobar",
160
+ },
161
+ ]
162
+ }
163
+
164
+ expect(list.to_record).to eql(record)
165
+ expect(list.to_record.length).to eq(1)
166
+ end
167
+ end
168
+
128
169
  # https://github.com/NetSweet/netsuite/issues/182
129
170
  it 'handles custom fields without an internalId or scriptId' do
130
171
  custom_list = NetSuite::Records::CustomFieldList.new({custom_field: { '@xsi:type' => 'platformCore:StringCustomFieldRef' }})
@@ -19,7 +19,7 @@ describe NetSuite::Records::Customer do
19
19
  :print_transactions, :referrer, :reminder_days, :representing_subsidiary, :require_pwd_change, :resale_number,
20
20
  :sales_group, :sales_readiness, :sales_team_list, :salutation, :send_email, :ship_complete, :shipping_item,
21
21
  :stage, :start_date, :sync_partner_teams, :tax_exempt, :tax_item, :taxable,
22
- :territory, :third_party_acct, :third_party_country, :third_party_zipcode, :title, :unbilled_orders, :url,
22
+ :third_party_acct, :third_party_country, :third_party_zipcode, :title, :unbilled_orders, :url,
23
23
  :vat_reg_number, :visits, :web_lead
24
24
  ].each do |field|
25
25
  expect(customer).to have_field(field)
@@ -28,7 +28,7 @@ describe NetSuite::Records::Customer do
28
28
 
29
29
  it 'has the right record_refs' do
30
30
  [
31
- :access_role, :currency, :custom_form, :entity_status, :partner, :sales_rep, :terms, :parent
31
+ :access_role, :currency, :custom_form, :entity_status, :partner, :sales_rep, :terms, :parent, :territory
32
32
  ].each do |record_ref|
33
33
  expect(customer).to have_record_ref(record_ref)
34
34
  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.7.3
4
+ version: 0.7.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2016-09-07 00:00:00.000000000 Z
13
+ date: 2016-11-01 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: savon
@@ -236,7 +236,9 @@ files:
236
236
  - lib/netsuite/records/sales_order.rb
237
237
  - lib/netsuite/records/sales_order_item.rb
238
238
  - lib/netsuite/records/sales_order_item_list.rb
239
+ - lib/netsuite/records/sales_order_ship_group_list.rb
239
240
  - lib/netsuite/records/sales_tax_item.rb
241
+ - lib/netsuite/records/serialized_inventory_item.rb
240
242
  - lib/netsuite/records/service_resale_item.rb
241
243
  - lib/netsuite/records/service_sale_item.rb
242
244
  - lib/netsuite/records/ship_address.rb
@@ -249,6 +251,7 @@ files:
249
251
  - lib/netsuite/records/tax_type.rb
250
252
  - lib/netsuite/records/term.rb
251
253
  - lib/netsuite/records/time_bill.rb
254
+ - lib/netsuite/records/transaction_ship_group.rb
252
255
  - lib/netsuite/records/transfer_order.rb
253
256
  - lib/netsuite/records/transfer_order_item.rb
254
257
  - lib/netsuite/records/transfer_order_item_list.rb