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 +3 -0
- data/lib/netsuite/actions/get_all.rb +9 -2
- data/lib/netsuite/records/credit_memo.rb +2 -0
- data/lib/netsuite/records/custom_field_list.rb +1 -1
- data/lib/netsuite/records/customer.rb +2 -2
- data/lib/netsuite/records/journal_entry.rb +1 -1
- data/lib/netsuite/records/location.rb +1 -0
- data/lib/netsuite/records/sales_order.rb +5 -3
- data/lib/netsuite/records/sales_order_ship_group_list.rb +11 -0
- data/lib/netsuite/records/serialized_inventory_item.rb +248 -0
- data/lib/netsuite/records/service_resale_item.rb +2 -1
- data/lib/netsuite/records/transaction_ship_group.rb +40 -0
- data/lib/netsuite/records/vendor_credit.rb +1 -1
- data/lib/netsuite/utilities.rb +3 -1
- data/lib/netsuite/version.rb +1 -1
- data/spec/netsuite/records/basic_record_spec.rb +1 -0
- data/spec/netsuite/records/custom_field_list_spec.rb +42 -1
- data/spec/netsuite/records/customer_spec.rb +2 -2
- metadata +5 -2
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 ||=
|
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
|
-
|
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
|
-
:
|
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
|
@@ -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, :
|
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,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, :
|
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,
|
data/lib/netsuite/utilities.rb
CHANGED
@@ -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"
|
data/lib/netsuite/version.rb
CHANGED
@@ -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
|
-
|
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
|
-
:
|
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.
|
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-
|
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
|