netsuite 0.8.10 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (151) hide show
  1. checksums.yaml +4 -4
  2. data/.github/FUNDING.yml +1 -0
  3. data/.github/dependabot.yml +14 -0
  4. data/.github/workflows/codeql-analysis.yml +70 -0
  5. data/.github/workflows/main.yml +7 -4
  6. data/Gemfile +5 -3
  7. data/HISTORY.md +56 -2
  8. data/README.md +94 -38
  9. data/lib/netsuite/actions/add.rb +7 -2
  10. data/lib/netsuite/actions/attach_file.rb +87 -0
  11. data/lib/netsuite/actions/delete.rb +18 -1
  12. data/lib/netsuite/actions/delete_list.rb +1 -1
  13. data/lib/netsuite/actions/get.rb +1 -1
  14. data/lib/netsuite/actions/get_deleted.rb +1 -1
  15. data/lib/netsuite/actions/get_list.rb +1 -1
  16. data/lib/netsuite/actions/initialize.rb +2 -2
  17. data/lib/netsuite/actions/search.rb +20 -7
  18. data/lib/netsuite/configuration.rb +16 -3
  19. data/lib/netsuite/records/account.rb +0 -1
  20. data/lib/netsuite/records/accounting_period.rb +1 -1
  21. data/lib/netsuite/records/assembly_component.rb +0 -2
  22. data/lib/netsuite/records/assembly_item.rb +2 -2
  23. data/lib/netsuite/records/assembly_unbuild.rb +0 -1
  24. data/lib/netsuite/records/cash_refund.rb +0 -1
  25. data/lib/netsuite/records/cash_refund_item.rb +1 -1
  26. data/lib/netsuite/records/cash_sale.rb +1 -2
  27. data/lib/netsuite/records/contact.rb +0 -1
  28. data/lib/netsuite/records/credit_memo.rb +1 -1
  29. data/lib/netsuite/records/currency_rate.rb +0 -1
  30. data/lib/netsuite/records/custom_record.rb +1 -1
  31. data/lib/netsuite/records/customer.rb +224 -23
  32. data/lib/netsuite/records/customer_deposit.rb +0 -1
  33. data/lib/netsuite/records/customer_payment.rb +0 -1
  34. data/lib/netsuite/records/customer_refund.rb +1 -2
  35. data/lib/netsuite/records/deposit.rb +0 -1
  36. data/lib/netsuite/records/deposit_application.rb +0 -1
  37. data/lib/netsuite/records/description_item.rb +3 -3
  38. data/lib/netsuite/records/discount_item.rb +1 -1
  39. data/lib/netsuite/records/employee.rb +1 -1
  40. data/lib/netsuite/records/estimate.rb +0 -1
  41. data/lib/netsuite/records/file.rb +1 -1
  42. data/lib/netsuite/records/gift_certificate_item.rb +1 -1
  43. data/lib/netsuite/records/inbound_shipment.rb +0 -1
  44. data/lib/netsuite/records/inventory_item.rb +237 -38
  45. data/lib/netsuite/records/inventory_number.rb +0 -1
  46. data/lib/netsuite/records/invoice.rb +2 -2
  47. data/lib/netsuite/records/item_availability.rb +46 -0
  48. data/lib/netsuite/records/item_fulfillment.rb +4 -2
  49. data/lib/netsuite/records/item_fulfillment_package_fed_ex.rb +28 -0
  50. data/lib/netsuite/records/item_fulfillment_package_fed_ex_list.rb +32 -0
  51. data/lib/netsuite/records/item_fulfillment_package_ups.rb +27 -0
  52. data/lib/netsuite/records/item_fulfillment_package_ups_list.rb +32 -0
  53. data/lib/netsuite/records/item_fulfillment_package_usps.rb +26 -0
  54. data/lib/netsuite/records/item_fulfillment_package_usps_list.rb +32 -0
  55. data/lib/netsuite/records/item_group.rb +3 -3
  56. data/lib/netsuite/records/item_option_custom_field.rb +52 -0
  57. data/lib/netsuite/records/item_receipt.rb +0 -1
  58. data/lib/netsuite/records/item_vendor.rb +10 -1
  59. data/lib/netsuite/records/job.rb +0 -1
  60. data/lib/netsuite/records/kit_item.rb +2 -2
  61. data/lib/netsuite/records/location.rb +0 -1
  62. data/lib/netsuite/records/lot_numbered_assembly_item.rb +1 -1
  63. data/lib/netsuite/records/lot_numbered_inventory_item.rb +226 -82
  64. data/lib/netsuite/records/matrix_option_list.rb +16 -0
  65. data/lib/netsuite/records/non_inventory_purchase_item.rb +1 -1
  66. data/lib/netsuite/records/non_inventory_resale_item.rb +157 -21
  67. data/lib/netsuite/records/non_inventory_sale_item.rb +134 -22
  68. data/lib/netsuite/records/null_field_list.rb +15 -0
  69. data/lib/netsuite/records/opportunity.rb +0 -1
  70. data/lib/netsuite/records/other_charge_sale_item.rb +2 -2
  71. data/lib/netsuite/records/payment_item.rb +3 -3
  72. data/lib/netsuite/records/payroll_item.rb +0 -1
  73. data/lib/netsuite/records/purchase_order.rb +0 -1
  74. data/lib/netsuite/records/record_ref.rb +1 -1
  75. data/lib/netsuite/records/return_authorization.rb +1 -0
  76. data/lib/netsuite/records/sales_order.rb +2 -2
  77. data/lib/netsuite/records/sales_order_item.rb +2 -1
  78. data/lib/netsuite/records/serialized_assembly_item.rb +1 -1
  79. data/lib/netsuite/records/serialized_inventory_item.rb +2 -2
  80. data/lib/netsuite/records/serialized_inventory_item_location.rb +0 -1
  81. data/lib/netsuite/records/service_resale_item.rb +125 -21
  82. data/lib/netsuite/records/service_sale_item.rb +1 -2
  83. data/lib/netsuite/records/{customer_subscription.rb → subscription.rb} +1 -1
  84. data/lib/netsuite/records/subscriptions_list.rb +10 -0
  85. data/lib/netsuite/records/subsidiary.rb +0 -1
  86. data/lib/netsuite/records/subtotal_item.rb +3 -4
  87. data/lib/netsuite/records/transfer_order.rb +0 -1
  88. data/lib/netsuite/records/translation.rb +17 -0
  89. data/lib/netsuite/records/translation_list.rb +11 -0
  90. data/lib/netsuite/records/vendor.rb +0 -1
  91. data/lib/netsuite/records/vendor_bill.rb +0 -1
  92. data/lib/netsuite/records/work_order.rb +0 -1
  93. data/lib/netsuite/records/work_order_item.rb +0 -1
  94. data/lib/netsuite/support/actions.rb +2 -0
  95. data/lib/netsuite/support/fields.rb +2 -0
  96. data/lib/netsuite/support/records.rb +22 -5
  97. data/lib/netsuite/support/sublist.rb +2 -2
  98. data/lib/netsuite/utilities/strings.rb +15 -0
  99. data/lib/netsuite/utilities.rb +25 -13
  100. data/lib/netsuite/version.rb +1 -1
  101. data/lib/netsuite.rb +15 -3
  102. data/netsuite.gemspec +5 -2
  103. data/spec/netsuite/actions/add_spec.rb +39 -1
  104. data/spec/netsuite/actions/attach_file_spec.rb +59 -0
  105. data/spec/netsuite/actions/delete_spec.rb +74 -14
  106. data/spec/netsuite/actions/get_select_value_spec.rb +43 -0
  107. data/spec/netsuite/actions/search_spec.rb +205 -0
  108. data/spec/netsuite/configuration_spec.rb +35 -0
  109. data/spec/netsuite/records/cash_refund_item_spec.rb +1 -1
  110. data/spec/netsuite/records/credit_memo_spec.rb +14 -0
  111. data/spec/netsuite/records/customer_spec.rb +287 -20
  112. data/spec/netsuite/records/inventory_item_spec.rb +239 -22
  113. data/spec/netsuite/records/invoice_spec.rb +43 -0
  114. data/spec/netsuite/records/item_availability_spec.rb +59 -0
  115. data/spec/netsuite/records/item_fulfillment_package_fed_ex_list_spec.rb +27 -0
  116. data/spec/netsuite/records/item_fulfillment_package_ups_list_spec.rb +27 -0
  117. data/spec/netsuite/records/item_fulfillment_package_usps_list_spec.rb +27 -0
  118. data/spec/netsuite/records/item_option_custom_field_spec.rb +27 -0
  119. data/spec/netsuite/records/item_vendor_list_spec.rb +2 -5
  120. data/spec/netsuite/records/item_vendor_spec.rb +14 -2
  121. data/spec/netsuite/records/lot_numbered_inventory_item_spec.rb +247 -0
  122. data/spec/netsuite/records/matrix_option_list_spec.rb +26 -0
  123. data/spec/netsuite/records/non_inventory_resale_item_spec.rb +159 -24
  124. data/spec/netsuite/records/non_inventory_sale_item_spec.rb +135 -22
  125. data/spec/netsuite/records/null_field_list_spec.rb +30 -0
  126. data/spec/netsuite/records/return_authorization_spec.rb +62 -0
  127. data/spec/netsuite/records/sales_order_item_spec.rb +4 -3
  128. data/spec/netsuite/records/sales_order_spec.rb +46 -0
  129. data/spec/netsuite/records/service_resale_item_spec.rb +122 -17
  130. data/spec/netsuite/records/{customer_subscription_spec.rb → subscription_spec.rb} +2 -2
  131. data/spec/netsuite/records/{customer_subscriptions_list_spec.rb → subscriptions_list_spec.rb} +2 -2
  132. data/spec/netsuite/records/translation_list_spec.rb +34 -0
  133. data/spec/netsuite/records/translation_spec.rb +28 -0
  134. data/spec/netsuite/support/fields_spec.rb +16 -4
  135. data/spec/netsuite/support/records_spec.rb +33 -7
  136. data/spec/netsuite/support/search_result_spec.rb +12 -0
  137. data/spec/netsuite/utilities_spec.rb +10 -2
  138. data/spec/support/fixtures/add/add_file.xml +20 -0
  139. data/spec/support/fixtures/add/add_invoice.xml +9 -5
  140. data/spec/support/fixtures/attach/attach_file_to_sales_order.xml +16 -0
  141. data/spec/support/fixtures/attach/attach_file_to_sales_order_error.xml +20 -0
  142. data/spec/support/fixtures/delete/delete_customer_error.xml +21 -0
  143. data/spec/support/fixtures/delete/delete_customer_multiple_errors.xml +25 -0
  144. data/spec/support/fixtures/get_item_availability/get_item_availability.xml +46 -0
  145. data/spec/support/fixtures/get_select_value/empty_result.xml +22 -0
  146. data/spec/support/fixtures/get_select_value/item_fulfillment_ship_method.xml +43 -0
  147. data/spec/support/fixtures/search/basic_search_contact.xml +39 -0
  148. data/spec/support/fixtures/search/single_search_result.xml +46 -0
  149. metadata +78 -17
  150. data/lib/netsuite/core_ext/string/lower_camelcase.rb +0 -9
  151. data/lib/netsuite/records/customer_subscriptions_list.rb +0 -10
@@ -2,10 +2,19 @@ module NetSuite
2
2
  module Records
3
3
  class ItemVendor
4
4
  include Support::Fields
5
+ include Support::RecordRefs
5
6
  include Support::Records
6
7
  include Namespaces::ListAcct
7
8
 
8
- fields :vendor, :purchase_price, :preferred_vendor
9
+ fields :purchase_price,
10
+ :preferred_vendor,
11
+ :vendor_code,
12
+ :vendor_currency_name
13
+
14
+ record_refs :schedule,
15
+ :subsidiary,
16
+ :vendor,
17
+ :vendor_currency
9
18
 
10
19
  def initialize(attributes = {})
11
20
  initialize_from_attributes_hash(attributes)
@@ -29,7 +29,6 @@ module NetSuite
29
29
 
30
30
  attr_reader :internal_id
31
31
  attr_accessor :external_id
32
- attr_accessor :search_joins
33
32
 
34
33
  def initialize(attributes = {})
35
34
  @internal_id = attributes.delete(:internal_id) || attributes.delete(:@internal_id)
@@ -7,7 +7,7 @@ module NetSuite
7
7
  include Support::Actions
8
8
  include Namespaces::ListAcct
9
9
 
10
- actions :get, :get_list, :add, :delete, :search, :update, :upsert
10
+ actions :get, :get_deleted, :get_list, :add, :delete, :search, :update, :update_list, :upsert
11
11
 
12
12
  fields :available_to_partners, :cost_estimate, :created_date, :defer_rev_rec, :description, :display_name,
13
13
  :dont_show_price, :enforce_min_qty_internally, :exclude_from_sitemap, :featured_description, :handling_cost,
@@ -49,7 +49,7 @@ module NetSuite
49
49
  # field :product_feed_list, ProductFeedList
50
50
  # field :site_category_list, SiteCategoryList
51
51
  # field :sitemap_priority, SitemapPriority
52
- # field :translations_list, TranslationList
52
+ field :translations_list, TranslationList
53
53
  # field :vsoe_deferral, VsoeDeferral
54
54
  # field :vsoe_permit_discount, VsoePermitDiscount
55
55
  # field :vsoe_sop_group, VsoeSopGroup
@@ -28,7 +28,6 @@ module NetSuite
28
28
 
29
29
  attr_reader :internal_id
30
30
  attr_accessor :external_id
31
- attr_accessor :search_joins
32
31
 
33
32
  def initialize(attributes = {})
34
33
  @internal_id = attributes.delete(:internal_id) || attributes.delete(:@internal_id)
@@ -7,7 +7,7 @@ module NetSuite
7
7
  include Support::Actions
8
8
  include Namespaces::ListAcct
9
9
 
10
- actions :get, :get_list, :get_select_value, :add, :delete, :update, :upsert, :upsert_list, :search
10
+ actions :get, :get_deleted, :get_list, :get_select_value, :add, :delete, :update, :update_list, :upsert, :upsert_list, :search
11
11
 
12
12
  fields :auto_lead_time, :auto_preferred_stock_level, :auto_reorder_point, :available_to_partners, :average_cost, :build_entire_assembly,
13
13
  :copy_description, :cost, :cost_estimate, :cost_estimate_type, :cost_estimate_units, :cost_units, :costing_method,
@@ -9,97 +9,241 @@ module NetSuite
9
9
 
10
10
  # http://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2018_2/schema/record/lotnumberedinventoryitem.html
11
11
 
12
- # TODO
13
- # countryOfManufacture Country
14
- # hazmatPackingGroup HazmatPackingGroup
15
- # accountingBookDetailList ItemAccountingBookDetailList
16
- # costEstimateType ItemCostEstimateType
17
- # costingMethod ItemCostingMethod
18
- # invtClassification ItemInvtClassification
19
- # matrixType ItemMatrixType
20
- # itemOptionsList ItemOptionsList
21
- # outOfStockBehavior ItemOutOfStockBehavior
22
- # overallQuantityPricingType ItemOverallQuantityPricingType
23
- # preferenceCriterion ItemPreferenceCriterion
24
- # itemVendorList ItemVendorList
25
- # weightUnit ItemWeightUnit
26
- # hierarchyVersionsList LotNumberedInventoryItemHierarchyVersionsList
27
- # numbersList LotNumberedInventoryItemNumbersList
28
- # periodicLotSizeType PeriodicLotSizeType
29
- # presentationItemList PresentationItemList
30
- # productFeedList ProductFeedList
31
-
32
- field :pricing_matrix, PricingMatrix
33
- field :custom_field_list, CustomFieldList
34
12
  field :bin_number_list, BinNumberList
35
- field :locations_list, LocationsList
13
+ field :custom_field_list, CustomFieldList
14
+ field :item_number_options_list, RecordRefList
15
+ field :item_ship_method_list, RecordRefList
36
16
  field :item_vendor_list, ItemVendorList
17
+ field :locations_list, LocationsList
37
18
  field :matrix_option_list, MatrixOptionList
19
+ field :pricing_matrix, PricingMatrix
38
20
  field :subsidiary_list, RecordRefList
21
+ # TODO: field :accounting_book_detail_list, ItemAccountingBookDetailList
22
+ # TODO: field :hierarchy_versions_list, LotNumberedInventoryItemHierarchyVersionsList
23
+ # TODO: field :item_options_list, ItemOptionsList
24
+ # TODO: field :numbers_list, LotNumberedInventoryItemNumbersList
25
+ # TODO: field :presentation_item_list, PresentationItemList
26
+ # TODO: field :product_feed_list, ProductFeedList
27
+ # TODO: field :site_category_list, SiteCategoryList
28
+ field :translations_list, TranslationList
39
29
 
40
- actions :get, :get_list, :add, :delete, :search, :update, :upsert, :update_list
41
-
42
- record_refs :alternate_demand_source_item, :asset_account, :bill_exch_rate_variance_acct,
43
- :billing_schedule, :bill_price_variance_acct, :bill_qty_variance_acct,
44
- :klass, :cogs_account, :cost_category, :create_revenue_plans_on,
45
- :custom_form, :default_item_ship_method, :deferred_revenue_account,
46
- :demand_source, :department, :dropship_expense_account, :gain_loss_account,
47
- :income_account, :interco_cogs_account, :interco_income_account,
48
- :issue_product, :item_revenue_category, :location, :parent, :preferred_location,
49
- :pricing_group, :purchase_price_variance_acct, :purchase_tax_code, :purchase_unit,
50
- :quantity_pricing_schedule, :revenue_allocation_group, :revenue_recognition_rule,
51
- :rev_rec_forecast_rule, :rev_rec_schedule, :sales_tax_code, :sale_unit,
52
- :ship_package, :soft_descriptor, :stock_unit, :store_display_image,
53
- :store_display_thumbnail, :store_item_template, :supply_lot_sizing_method,
54
- :supply_replenishment_method, :supply_type, :tax_schedule, :units_type, :vendor
55
-
56
- # TODO
57
- # itemNumberOptionsList RecordRefList
58
- # itemShipMethodList RecordRefList
59
- # subsidiaryList RecordRefList
60
- # scheduleBCode ScheduleBCode
61
- # itemCarrier ShippingCarrier
62
- # siteCategoryList SiteCategoryList
63
- # sitemapPriority SitemapPriority
64
- # translationsList TranslationList
65
- # vsoeDeferral VsoeDeferral
66
- # vsoePermitDiscount VsoePermitDiscount
67
- # vsoeSopGroup VsoeSopGroup
30
+ actions :get, :get_deleted, :get_list, :add, :delete, :search, :update, :upsert, :update_list
68
31
 
69
- fields :auto_lead_time, :auto_preferred_stock_level, :auto_reorder_point, :available_to_partners,
70
- :copy_description, :direct_revenue_posting, :dont_show_price, :enforce_min_qty_internally,
71
- :exclude_from_sitemap, :include_children, :is_donation_item, :is_drop_ship_item, :is_gco_compliant,
72
- :is_hazmat_item, :is_inactive, :is_online, :is_special_order_item, :is_store_pickup_allowed,
73
- :is_taxable, :match_bill_to_receipt, :mult_manufacture_addr, :offer_support, :on_special,
74
- :prices_include_tax, :producer, :round_up_as_component, :seasonal_demand, :ship_individually,
75
- :show_default_donation_amount, :track_landed_cost, :use_bins, :use_marginal_rates, :vsoe_delivered,
76
- :created_date, :expiration_date, :last_invt_count_date, :last_modified_date, :next_invt_count_date,
77
- :average_cost, :cost, :cost_estimate, :default_return_cost, :demand_modifier, :fixed_lot_size,
78
- :handling_cost, :hazmat_item_units_qty, :last_purchase_price, :max_donation_amount,
79
- :on_hand_value_mli, :preferred_stock_level, :preferred_stock_level_days, :purchase_order_amount,
80
- :purchase_order_quantity, :purchase_order_quantity_diff, :quantity_available,
81
- :quantity_back_ordered, :quantity_committed, :quantity_on_hand, :quantity_on_order,
82
- :rate, :receipt_amount, :receipt_quantity, :receipt_quantity_diff, :reorder_point,
83
- :safety_stock_level, :shipping_cost, :total_value, :transfer_price, :vsoe_price,
84
- :weight, :backward_consumption_days, :demand_time_fence, :forward_consumption_days,
85
- :invt_count_interval, :lead_time, :maximum_quantity, :minimum_quantity, :periodic_lot_size_days,
86
- :reorder_multiple, :reschedule_in_days, :reschedule_out_days, :safety_stock_level_days,
87
- :schedule_b_quantity, :shopzilla_category_id, :supply_time_fence, :costing_method_display,
88
- :cost_units, :currency, :display_name, :featured_description, :handling_cost_units,
89
- :hazmat_hazard_class, :hazmat_id, :hazmat_item_units, :hazmat_shipping_name, :item_id,
90
- :manufacturer, :manufacturer_addr1, :manufacturer_city, :manufacturer_state,
91
- :manufacturer_tariff, :manufacturer_tax_id, :manufacturer_zip, :matrix_item_name_template,
92
- :meta_tag_html, :minimum_quantity_units, :mpn, :nex_tag_category, :no_price_message,
93
- :out_of_stock_message, :page_title, :preferred_stock_level_units, :purchase_description,
94
- :quantity_on_hand_units, :quantity_reorder_units, :related_items_description,
95
- :reorder_point_units, :safety_stock_level_units, :sales_description, :schedule_b_number,
96
- :search_keywords, :serial_numbers, :shipping_cost_units, :shopping_dot_com_category,
97
- :specials_description, :stock_description, :store_description, :store_detailed_description,
98
- :store_display_name, :upc_code, :url_component, :vendor_name, :weight_units
32
+ record_refs :alternate_demand_source_item,
33
+ :asset_account,
34
+ :bill_exch_rate_variance_acct,
35
+ :billing_schedule,
36
+ :bill_price_variance_acct,
37
+ :bill_qty_variance_acct,
38
+ :klass,
39
+ :cogs_account,
40
+ :consumption_unit,
41
+ :cost_category,
42
+ :create_revenue_plans_on,
43
+ :custom_form,
44
+ :default_item_ship_method,
45
+ :deferred_revenue_account,
46
+ :demand_source,
47
+ :department,
48
+ :dropship_expense_account,
49
+ :gain_loss_account,
50
+ :income_account,
51
+ :interco_cogs_account,
52
+ :interco_income_account,
53
+ :issue_product,
54
+ :item_revenue_category,
55
+ :location,
56
+ :parent,
57
+ :planning_item_category,
58
+ :preferred_location,
59
+ :pricing_group,
60
+ :purchase_price_variance_acct,
61
+ :purchase_tax_code,
62
+ :purchase_unit,
63
+ :quantity_pricing_schedule,
64
+ :revenue_allocation_group,
65
+ :revenue_recognition_rule,
66
+ :rev_rec_forecast_rule,
67
+ :rev_rec_schedule,
68
+ :sales_tax_code,
69
+ :sale_unit,
70
+ :secondary_base_unit,
71
+ :secondary_consumption_unit,
72
+ :secondary_purchase_unit,
73
+ :secondary_sale_unit,
74
+ :secondary_stock_unit,
75
+ :secondary_units_type,
76
+ :ship_package,
77
+ :soft_descriptor,
78
+ :stock_unit,
79
+ :store_display_image,
80
+ :store_display_thumbnail,
81
+ :store_item_template,
82
+ :supply_lot_sizing_method,
83
+ :supply_replenishment_method,
84
+ :supply_type,
85
+ :tax_schedule,
86
+ :units_type,
87
+ :vendor
99
88
 
89
+ fields :auto_lead_time,
90
+ :auto_preferred_stock_level,
91
+ :auto_reorder_point,
92
+ :available_to_partners,
93
+ :average_cost,
94
+ :backward_consumption_days,
95
+ :conversion_rate,
96
+ :copy_description,
97
+ :cost,
98
+ :cost_estimate,
99
+ :cost_estimate_type,
100
+ :costing_method,
101
+ :costing_method_display,
102
+ :cost_units,
103
+ :country_of_manufacture,
104
+ :created_date,
105
+ :currency,
106
+ :default_return_cost,
107
+ :demand_modifier,
108
+ :demand_time_fence,
109
+ :direct_revenue_posting,
110
+ :display_name,
111
+ :dont_show_price,
112
+ :enable_catch_weight,
113
+ :enforce_min_qty_internally,
114
+ :exclude_from_sitemap,
115
+ :expiration_date,
116
+ :featured_description,
117
+ :fixed_lot_size,
118
+ :forward_consumption_days,
119
+ :future_horizon,
120
+ :handling_cost,
121
+ :handling_cost_units,
122
+ :hazmat_hazard_class,
123
+ :hazmat_id,
124
+ :hazmat_item_units,
125
+ :hazmat_item_units_qty,
126
+ :hazmat_packing_group,
127
+ :hazmat_shipping_name,
128
+ :include_children,
129
+ :invt_classification,
130
+ :invt_count_interval,
131
+ :is_donation_item,
132
+ :is_drop_ship_item,
133
+ :is_gco_compliant,
134
+ :is_hazmat_item,
135
+ :is_inactive,
136
+ :is_online,
137
+ :is_special_order_item,
138
+ :is_store_pickup_allowed,
139
+ :is_taxable,
140
+ :item_carrier,
141
+ :item_id,
142
+ :last_invt_count_date,
143
+ :last_modified_date,
144
+ :last_purchase_price,
145
+ :lead_time,
146
+ :lower_warning_limit,
147
+ :manufacturer,
148
+ :manufacturer_addr1,
149
+ :manufacturer_city,
150
+ :manufacturer_state,
151
+ :manufacturer_tariff,
152
+ :manufacturer_tax_id,
153
+ :manufacturer_zip,
154
+ :match_bill_to_receipt,
155
+ :matrix_item_name_template,
156
+ :matrix_type,
157
+ :max_donation_amount,
158
+ :maximum_quantity,
159
+ :meta_tag_html,
160
+ :minimum_quantity,
161
+ :minimum_quantity_units,
162
+ :mpn,
163
+ :mult_manufacture_addr,
164
+ :nex_tag_category,
165
+ :next_invt_count_date,
166
+ :no_price_message,
167
+ :offer_support,
168
+ :on_hand_value_mli,
169
+ :on_special,
170
+ :out_of_stock_behavior,
171
+ :out_of_stock_message,
172
+ :overall_quantity_pricing_type,
173
+ :page_title,
174
+ :periodic_lot_size_days,
175
+ :periodic_lot_size_type,
176
+ :preference_criterion,
177
+ :preferred_stock_level,
178
+ :preferred_stock_level_days,
179
+ :preferred_stock_level_units,
180
+ :prices_include_tax,
181
+ :producer,
182
+ :purchase_description,
183
+ :purchase_order_amount,
184
+ :purchase_order_quantity,
185
+ :purchase_order_quantity_diff,
186
+ :quantity_available,
187
+ :quantity_back_ordered,
188
+ :quantity_committed,
189
+ :quantity_on_hand,
190
+ :quantity_on_hand_units,
191
+ :quantity_on_order,
192
+ :quantity_reorder_units,
193
+ :rate,
194
+ :receipt_amount,
195
+ :receipt_quantity,
196
+ :receipt_quantity_diff,
197
+ :related_items_description,
198
+ :reorder_multiple,
199
+ :reorder_point,
200
+ :reorder_point_units,
201
+ :reschedule_in_days,
202
+ :reschedule_out_days,
203
+ :round_up_as_component,
204
+ :safety_stock_level,
205
+ :safety_stock_level_days,
206
+ :safety_stock_level_units,
207
+ :sales_description,
208
+ :schedule_b_code,
209
+ :schedule_b_number,
210
+ :schedule_b_quantity,
211
+ :search_keywords,
212
+ :seasonal_demand,
213
+ :serial_numbers,
214
+ :ship_individually,
215
+ :shipping_cost,
216
+ :shipping_cost_units,
217
+ :shopping_dot_com_category,
218
+ :shopzilla_category_id,
219
+ :show_default_donation_amount,
220
+ :sitemap_priority,
221
+ :specials_description,
222
+ :stock_description,
223
+ :store_description,
224
+ :store_detailed_description,
225
+ :store_display_name,
226
+ :supply_time_fence,
227
+ :total_value,
228
+ :track_landed_cost,
229
+ :transfer_price,
230
+ :upc_code,
231
+ :upper_warning_limit,
232
+ :url_component,
233
+ :use_bins,
234
+ :use_marginal_rates,
235
+ :vendor_name,
236
+ :vsoe_deferral,
237
+ :vsoe_delivered,
238
+ :vsoe_permit_discount,
239
+ :vsoe_price,
240
+ :vsoe_sop_group,
241
+ :weight,
242
+ :weight_unit,
243
+ :weight_units
100
244
 
101
245
  attr_reader :internal_id
102
- attr_accessor :external_id, :search_joins
246
+ attr_accessor :external_id
103
247
 
104
248
  def initialize(attributes = {})
105
249
  @internal_id = attributes.delete(:internal_id) || attributes.delete(:@internal_id)
@@ -1,6 +1,8 @@
1
1
  module NetSuite
2
2
  module Records
3
3
  class MatrixOptionList
4
+ include Namespaces::ListAcct
5
+
4
6
  # Deals with both hash and arrays of attributes[:matrix_option_list]
5
7
  #
6
8
  # Hash:
@@ -50,6 +52,20 @@ module NetSuite
50
52
  def options
51
53
  @options ||= []
52
54
  end
55
+
56
+ def to_record
57
+ {
58
+ "#{record_namespace}:matrixOption" => options.map do |option|
59
+ {
60
+ 'platformCore:value' => {
61
+ '@internalId' => option.value_id,
62
+ '@typeId' => option.type_id,
63
+ },
64
+ '@scriptId' => option.script_id
65
+ }
66
+ end
67
+ }
68
+ end
53
69
  end
54
70
  end
55
71
  end
@@ -7,7 +7,7 @@ module NetSuite
7
7
  include Support::Actions
8
8
  include Namespaces::ListAcct
9
9
 
10
- actions :get, :get_list, :add, :delete, :search, :upsert
10
+ actions :get, :get_deleted, :get_list, :add, :delete, :search, :update_list, :upsert
11
11
 
12
12
  fields :available_to_partners, :cost_estimate, :cost_estimate_type, :cost_estimate_units, :country_of_manufacture,
13
13
  :created_date, :display_name, :dont_show_price, :enforce_min_qty_internally, :exclude_from_sitemap,
@@ -7,34 +7,170 @@ module NetSuite
7
7
  include Support::Actions
8
8
  include Namespaces::ListAcct
9
9
 
10
- actions :get, :get_list, :add, :delete, :search, :upsert, :update
10
+ actions :get, :get_deleted, :get_list, :add, :delete, :search, :upsert, :update, :update_list
11
11
 
12
- fields :available_to_partners, :cost_estimate, :cost_estimate_type, :cost_estimate_units, :country_of_manufacture,
13
- :created_date, :display_name, :dont_show_price, :enforce_min_qty_internally, :exclude_from_sitemap,
14
- :featured_description, :handling_cost, :handling_cost_units, :include_children, :is_donation_item, :is_fulfillable,
15
- :is_gco_compliant, :is_inactive, :is_online, :is_taxable, :item_id, :last_modified_date, :manufacturer,
16
- :manufacturer_addr1, :manufacturer_city, :manufacturer_state, :manufacturer_tariff, :manufacturer_tax_id,
17
- :manufacturer_zip, :matrix_option_list, :matrix_type, :max_donation_amount, :meta_tag_html, :minimum_quantity,
18
- :minimum_quantity_units, :mpn, :mult_manufacture_addr, :nex_tag_category, :no_price_message, :offer_support,
19
- :on_special, :out_of_stock_behavior, :out_of_stock_message, :overall_quantity_pricing_type, :page_title,
20
- :preference_criterion, :presentation_item_list, :prices_include_tax, :producer, :product_feed_list,
21
- :rate, :related_items_description, :sales_description, :schedule_b_code, :schedule_b_number, :schedule_b_quantity,
22
- :search_keywords, :ship_individually, :shipping_cost, :shipping_cost_units, :shopping_dot_com_category,
23
- :shopzilla_category_id, :show_default_donation_amount, :site_category_list, :sitemap_priority, :soft_descriptor,
24
- :specials_description, :stock_description, :store_description, :store_detailed_description, :store_display_name,
25
- :translations_list, :upc_code, :url_component, :use_marginal_rates, :vsoe_deferral, :vsoe_delivered,
26
- :vsoe_permit_discount, :vsoe_price, :weight, :weight_unit, :weight_units
12
+ fields :amortization_period,
13
+ :available_to_partners,
14
+ :copy_description,
15
+ :cost,
16
+ :cost_estimate,
17
+ :cost_estimate_type,
18
+ :cost_estimate_units,
19
+ :cost_units,
20
+ :country_of_manufacture,
21
+ :created_date,
22
+ :currency,
23
+ :defer_rev_rec,
24
+ :direct_revenue_posting,
25
+ :display_name,
26
+ :dont_show_price,
27
+ :enforce_min_qty_internally,
28
+ :exclude_from_sitemap,
29
+ :featured_description,
30
+ :generate_accruals,
31
+ :handling_cost,
32
+ :handling_cost_units,
33
+ :hazmat_hazard_class,
34
+ :hazmat_id,
35
+ :hazmat_item_units,
36
+ :hazmat_item_units_qty,
37
+ :hazmat_packing_group,
38
+ :hazmat_shipping_name,
39
+ :include_children,
40
+ :is_donation_item,
41
+ :is_drop_ship_item,
42
+ :is_fulfillable,
43
+ :is_gco_compliant,
44
+ :is_hazmat_item,
45
+ :is_inactive,
46
+ :is_online,
47
+ :is_special_order_item,
48
+ :is_taxable,
49
+ :item_carrier,
50
+ :item_id,
51
+ :last_modified_date,
52
+ :manufacturer,
53
+ :manufacturer_addr1,
54
+ :manufacturer_city,
55
+ :manufacturer_state,
56
+ :manufacturer_tariff,
57
+ :manufacturer_tax_id,
58
+ :manufacturer_zip,
59
+ :matrix_item_name_template,
60
+ :matrix_type,
61
+ :max_donation_amount,
62
+ :maximum_quantity,
63
+ :meta_tag_html,
64
+ :minimum_quantity,
65
+ :minimum_quantity_units,
66
+ :mpn,
67
+ :mult_manufacture_addr,
68
+ :nex_tag_category,
69
+ :no_price_message,
70
+ :offer_support,
71
+ :on_special,
72
+ :out_of_stock_behavior,
73
+ :out_of_stock_message,
74
+ :overall_quantity_pricing_type,
75
+ :page_title,
76
+ :preference_criterion,
77
+ :prices_include_tax,
78
+ :producer,
79
+ :purchase_description,
80
+ :purchase_order_amount,
81
+ :purchase_order_quantity,
82
+ :purchase_order_quantity_diff,
83
+ :rate,
84
+ :receipt_amount,
85
+ :receipt_quantity,
86
+ :receipt_quantity_diff,
87
+ :related_items_description,
88
+ :residual,
89
+ :sales_description,
90
+ :schedule_b_code,
91
+ :schedule_b_number,
92
+ :schedule_b_quantity,
93
+ :search_keywords,
94
+ :ship_individually,
95
+ :shipping_cost,
96
+ :shipping_cost_units,
97
+ :shopping_dot_com_category,
98
+ :shopzilla_category_id,
99
+ :show_default_donation_amount,
100
+ :sitemap_priority,
101
+ :soft_descriptor,
102
+ :specials_description,
103
+ :stock_description,
104
+ :store_description,
105
+ :store_detailed_description,
106
+ :store_display_name,
107
+ :upc_code,
108
+ :url_component,
109
+ :use_marginal_rates,
110
+ :vendor_name,
111
+ :vsoe_deferral,
112
+ :vsoe_delivered,
113
+ :vsoe_permit_discount,
114
+ :vsoe_price,
115
+ :vsoe_sop_group,
116
+ :weight,
117
+ :weight_unit,
118
+ :weight_units
27
119
 
28
- record_refs :billing_schedule, :cost_category, :custom_form, :deferred_revenue_account, :department, :income_account,
29
- :issue_product, :item_options_list, :klass, :location, :parent, :pricing_group, :purchase_tax_code,
30
- :quantity_pricing_schedule, :rev_rec_schedule, :sale_unit, :sales_tax_code, :ship_package, :store_display_image,
31
- :store_display_thumbnail, :store_item_template, :tax_schedule, :units_type, :expense_account
120
+ record_refs :amortization_template,
121
+ :bill_exch_rate_variance_acct,
122
+ :billing_schedule,
123
+ :bill_price_variance_acct,
124
+ :bill_qty_variance_acct,
125
+ :klass,
126
+ :consumption_unit,
127
+ :cost_category,
128
+ :create_revenue_plans_on,
129
+ :custom_form,
130
+ :default_item_ship_method,
131
+ :deferral_account,
132
+ :deferred_revenue_account,
133
+ :department,
134
+ :dropship_expense_account,
135
+ :expense_account,
136
+ :income_account,
137
+ :interco_expense_account,
138
+ :interco_income_account,
139
+ :issue_product,
140
+ :item_revenue_category,
141
+ :location,
142
+ :parent,
143
+ :pricing_group,
144
+ :purchase_tax_code,
145
+ :purchase_unit,
146
+ :quantity_pricing_schedule,
147
+ :revenue_allocation_group,
148
+ :revenue_recognition_rule,
149
+ :rev_rec_forecast_rule,
150
+ :rev_rec_schedule,
151
+ :sales_tax_code,
152
+ :sale_unit,
153
+ :ship_package,
154
+ :store_display_image,
155
+ :store_display_thumbnail,
156
+ :store_item_template,
157
+ :tax_schedule,
158
+ :units_type,
159
+ :vendor
32
160
 
33
161
  field :custom_field_list, CustomFieldList
162
+ field :item_ship_method_list, RecordRefList
163
+ field :matrix_option_list, MatrixOptionList
34
164
  field :pricing_matrix, PricingMatrix
35
165
  field :subsidiary_list, RecordRefList
36
166
  field :item_vendor_list, ItemVendorList
37
-
167
+ # TODO: field :accounting_book_detail_list, ItemAccountingBookDetailList
168
+ # TODO: field :hierarchy_versions_list, NonInventoryResaleItemHierarchyVersionsList
169
+ # TODO: field :item_options_list, ItemOptionsList
170
+ # TODO: field :presentation_item_list, PresentationItemList
171
+ # TODO: field :product_feed_list, ProductFeedList
172
+ # TODO: field :site_category_list, SiteCategoryList
173
+ field :translations_list, TranslationList
38
174
 
39
175
  attr_reader :internal_id
40
176
  attr_accessor :external_id