erp_integration 0.34.0 → 0.36.0
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.
- checksums.yaml +4 -4
- data/.rubocop.yml +2 -0
- data/lib/erp_integration/configuration.rb +27 -0
- data/lib/erp_integration/fulfil/resources/product_category.rb +13 -0
- data/lib/erp_integration/fulfil/resources/product_template.rb +13 -0
- data/lib/erp_integration/fulfil/resources/stock_bin_transfer.rb +59 -0
- data/lib/erp_integration/product_category.rb +9 -0
- data/lib/erp_integration/product_template.rb +9 -0
- data/lib/erp_integration/stock_bin_transfer.rb +20 -0
- data/lib/erp_integration/version.rb +1 -1
- data/lib/erp_integration.rb +3 -0
- metadata +9 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 60981ef82d7fc4ee99a747def31bb01d5bac2c6596e258e1025f11a52b60be09
|
4
|
+
data.tar.gz: 2bd4161b4acd66ef8878d4736a0909948e22b066c93de4c218a7f49246c887d4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b9f9d08096d1856a28b219d80a375a67d1e6b442785e531ee40e79148af2ea95d4cba9af23d4a20d9b6c15c6a818707cb7b2a3790140e57dfa1e9a4ba878a760
|
7
|
+
data.tar.gz: a48d617a9e48b83d015ce237e6c5a4e11cbfd0b132f0eb76a557a3c8cb9b42c6608ff1fff0ce253a766796be1451b59e2a9e864d3d29b4fa8230ecf568a28953
|
data/.rubocop.yml
CHANGED
@@ -57,6 +57,16 @@ module ErpIntegration
|
|
57
57
|
# @return [Symbol] The configured adapter for the products.
|
58
58
|
attr_writer :product_adapter
|
59
59
|
|
60
|
+
# Allows configuring an adapter for the `ProductCategory` resource. When none is
|
61
|
+
# configured, it will default to Fulfil.
|
62
|
+
# @return [Symbol] The configured adapter for the product category.
|
63
|
+
attr_writer :product_category_adapter
|
64
|
+
|
65
|
+
# Allows configuring an adapter for the `ProductTemplate` resource. When none is
|
66
|
+
# configured, it will default to Fulfil.
|
67
|
+
# @return [Symbol] The configured adapter for the product templates.
|
68
|
+
attr_writer :product_template_adapter
|
69
|
+
|
60
70
|
# Allows configuring an adapter for the `ProductionOrder` resource. When
|
61
71
|
# none is configured, it will default to Fulfil.
|
62
72
|
# @return [Symbol] The configured adapter for the production_order.
|
@@ -97,6 +107,11 @@ module ErpIntegration
|
|
97
107
|
# @return [Symbol] The configured adapter for the supplier shipment.
|
98
108
|
attr_writer :supplier_shipment_adapter
|
99
109
|
|
110
|
+
# Allows configuring an adapter for the `StockBinTransfer` resource. When
|
111
|
+
# none is configured, it will default to Fulfil.
|
112
|
+
# @return [Symbol] The configured adapter for the stock bin transfer.
|
113
|
+
attr_writer :stock_bin_transfer_adapter
|
114
|
+
|
100
115
|
# Allows configuring an adapter for the `StockMove` resource. When
|
101
116
|
# none is configured, it will default to Fulfil.
|
102
117
|
# @return [Symbol] The configured adapter for the stock move.
|
@@ -167,6 +182,14 @@ module ErpIntegration
|
|
167
182
|
@product_adapter || :fulfil
|
168
183
|
end
|
169
184
|
|
185
|
+
def product_category_adapter
|
186
|
+
@product_category_adapter || :fulfil
|
187
|
+
end
|
188
|
+
|
189
|
+
def product_template_adapter
|
190
|
+
@product_template_adapter || :fulfil
|
191
|
+
end
|
192
|
+
|
170
193
|
def production_order_adapter
|
171
194
|
@production_order_adapter || :fulfil
|
172
195
|
end
|
@@ -199,6 +222,10 @@ module ErpIntegration
|
|
199
222
|
@supplier_shipment_adapter || :fulfil
|
200
223
|
end
|
201
224
|
|
225
|
+
def stock_bin_transfer_adapter
|
226
|
+
@stock_bin_transfer_adapter || :fulfil
|
227
|
+
end
|
228
|
+
|
202
229
|
def stock_move_adapter
|
203
230
|
@stock_move_adapter || :fulfil
|
204
231
|
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative '../api_resource'
|
4
|
+
|
5
|
+
module ErpIntegration
|
6
|
+
module Fulfil
|
7
|
+
module Resources
|
8
|
+
class StockBinTransfer < ApiResource
|
9
|
+
self.model_name = 'stock.bin_transfer'
|
10
|
+
|
11
|
+
# Allows bulk force assign bin transfers over the API to move assigned
|
12
|
+
# inventory to the new bin location.
|
13
|
+
# @param id [Integer|String] The ID of the stock bin transfer.
|
14
|
+
# @return [boolean] Whether the stock bin transfer was assigned force successfully or not.
|
15
|
+
def assign_force(id)
|
16
|
+
client.put("model/stock.bin_transfer/#{id}/assign_force")
|
17
|
+
true
|
18
|
+
|
19
|
+
# Fulfil will return an 400 (a.k.a. "Bad Request") status code when a bin trasfer couldn't
|
20
|
+
# be done. If a bit trasfer isn't assignable by design, no exception should be raised.
|
21
|
+
#
|
22
|
+
# See the Fulfil's documentation for more information:
|
23
|
+
# https://developers.fulfil.io/rest_api/model/stock.bin_transfer/#force-allocate-inventory-to-the-transfer
|
24
|
+
rescue ErpIntegration::HttpError::BadRequest
|
25
|
+
false
|
26
|
+
# Workaround: Fulfil api does not return a json when status code is 200 (a.k.a. "Ok")
|
27
|
+
# and faraday is having an error when trying to parse it. Let's skip the parse error
|
28
|
+
# and move on.
|
29
|
+
rescue Faraday::ParsingError
|
30
|
+
true
|
31
|
+
end
|
32
|
+
|
33
|
+
# Allows bulk mark the bin transfers as done over the API to finish
|
34
|
+
# moving the inventory to the new bin location.
|
35
|
+
# It is better practice for inventory accuracy to mark the bin transfer
|
36
|
+
# as done once the inventory is physically moved to the new location.
|
37
|
+
# @param id [Integer|String] The ID of the stock bin transfer.
|
38
|
+
# @return [boolean] Whether the stock bin transfer was mark as done successfully or not.
|
39
|
+
def done(id)
|
40
|
+
client.put("model/stock.bin_transfer/#{id}/done")
|
41
|
+
true
|
42
|
+
|
43
|
+
# Fulfil will return an 400 (a.k.a. "Bad Request") status code when a bin trasfer couldn't
|
44
|
+
# be done. If a bit trasfer isn't doneable by design, no exception should be raised.
|
45
|
+
#
|
46
|
+
# See the Fulfil's documentation for more information:
|
47
|
+
# https://developers.fulfil.io/rest_api/model/stock.bin_transfer/#mark-transfer-as-done
|
48
|
+
rescue ErpIntegration::HttpError::BadRequest
|
49
|
+
false
|
50
|
+
# Workaround: Fulfil api does not return a json when status code is 200 (a.k.a. "Ok")
|
51
|
+
# and faraday is having an error when trying to parse it. Let's skip the parse error
|
52
|
+
# and move on.
|
53
|
+
rescue Faraday::ParsingError
|
54
|
+
true
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
@@ -0,0 +1,9 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module ErpIntegration
|
4
|
+
# The `ErpIntegration::ProductTemplate` exposes an uniformed API for interaction with
|
5
|
+
# third-party ERP vendors.
|
6
|
+
class ProductTemplate < Resource
|
7
|
+
attr_accessor :id, :name, :account_category
|
8
|
+
end
|
9
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module ErpIntegration
|
4
|
+
class StockBinTransfer < Resource
|
5
|
+
attr_accessor :id, :attachments, :company, :create_date, :create_uid,
|
6
|
+
:description, :effective_date, :messages, :metadata,
|
7
|
+
:metafields, :moves, :number, :origin, :picker, :priority,
|
8
|
+
:picking_status, :planned_date, :private_notes, :public_notes,
|
9
|
+
:quantity_total, :rec_blurb, :rec_name, :reference, :state,
|
10
|
+
:storage_zone, :warehouse, :write_date, :write_uid
|
11
|
+
|
12
|
+
def assign_force
|
13
|
+
self.class.adapter.assign_force(id)
|
14
|
+
end
|
15
|
+
|
16
|
+
def done
|
17
|
+
self.class.adapter.done(id)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
data/lib/erp_integration.rb
CHANGED
@@ -31,6 +31,8 @@ module ErpIntegration
|
|
31
31
|
autoload :CustomerShipment, 'erp_integration/customer_shipment'
|
32
32
|
autoload :CustomerShipmentReturn, 'erp_integration/customer_shipment_return'
|
33
33
|
autoload :Product, 'erp_integration/product'
|
34
|
+
autoload :ProductCategory, 'erp_integration/product_category'
|
35
|
+
autoload :ProductTemplate, 'erp_integration/product_template'
|
34
36
|
autoload :ProductionOrder, 'erp_integration/production_order'
|
35
37
|
autoload :PurchaseOrder, 'erp_integration/purchase_order'
|
36
38
|
autoload :PurchaseOrderLine, 'erp_integration/purchase_order_line'
|
@@ -39,6 +41,7 @@ module ErpIntegration
|
|
39
41
|
autoload :SalesOrder, 'erp_integration/sales_order'
|
40
42
|
autoload :SalesOrderLine, 'erp_integration/sales_order_line'
|
41
43
|
autoload :SalesReturnReason, 'erp_integration/sales_return_reason'
|
44
|
+
autoload :StockBinTransfer, 'erp_integration/stock_bin_transfer'
|
42
45
|
autoload :StockMove, 'erp_integration/stock_move'
|
43
46
|
autoload :SupplierShipment, 'erp_integration/supplier_shipment'
|
44
47
|
autoload :Task, 'erp_integration/task'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: erp_integration
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.36.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stefan Vermaas
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-08-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -290,6 +290,8 @@ files:
|
|
290
290
|
- lib/erp_integration/fulfil/resources/customer_shipment_return.rb
|
291
291
|
- lib/erp_integration/fulfil/resources/gift_card.rb
|
292
292
|
- lib/erp_integration/fulfil/resources/product.rb
|
293
|
+
- lib/erp_integration/fulfil/resources/product_category.rb
|
294
|
+
- lib/erp_integration/fulfil/resources/product_template.rb
|
293
295
|
- lib/erp_integration/fulfil/resources/production_order.rb
|
294
296
|
- lib/erp_integration/fulfil/resources/purchase_order.rb
|
295
297
|
- lib/erp_integration/fulfil/resources/purchase_order_line.rb
|
@@ -297,6 +299,7 @@ files:
|
|
297
299
|
- lib/erp_integration/fulfil/resources/sales_order.rb
|
298
300
|
- lib/erp_integration/fulfil/resources/sales_order_line.rb
|
299
301
|
- lib/erp_integration/fulfil/resources/sales_return_reason.rb
|
302
|
+
- lib/erp_integration/fulfil/resources/stock_bin_transfer.rb
|
300
303
|
- lib/erp_integration/fulfil/resources/stock_move.rb
|
301
304
|
- lib/erp_integration/fulfil/resources/supplier_shipment.rb
|
302
305
|
- lib/erp_integration/fulfil/resources/task.rb
|
@@ -306,6 +309,8 @@ files:
|
|
306
309
|
- lib/erp_integration/gift_card.rb
|
307
310
|
- lib/erp_integration/middleware/error_handling.rb
|
308
311
|
- lib/erp_integration/product.rb
|
312
|
+
- lib/erp_integration/product_category.rb
|
313
|
+
- lib/erp_integration/product_template.rb
|
309
314
|
- lib/erp_integration/production_order.rb
|
310
315
|
- lib/erp_integration/purchase_order.rb
|
311
316
|
- lib/erp_integration/purchase_order_line.rb
|
@@ -317,6 +322,7 @@ files:
|
|
317
322
|
- lib/erp_integration/sales_order.rb
|
318
323
|
- lib/erp_integration/sales_order_line.rb
|
319
324
|
- lib/erp_integration/sales_return_reason.rb
|
325
|
+
- lib/erp_integration/stock_bin_transfer.rb
|
320
326
|
- lib/erp_integration/stock_move.rb
|
321
327
|
- lib/erp_integration/supplier_shipment.rb
|
322
328
|
- lib/erp_integration/task.rb
|
@@ -347,7 +353,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
347
353
|
- !ruby/object:Gem::Version
|
348
354
|
version: '0'
|
349
355
|
requirements: []
|
350
|
-
rubygems_version: 3.
|
356
|
+
rubygems_version: 3.3.7
|
351
357
|
signing_key:
|
352
358
|
specification_version: 4
|
353
359
|
summary: Connects Mejuri with third-party ERP vendors
|