netsuite 0.7.3 → 0.7.4
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/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
|