erp_integration 0.34.0 → 0.35.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 +9 -0
- data/lib/erp_integration/fulfil/resources/stock_bin_transfer.rb +59 -0
- data/lib/erp_integration/stock_bin_transfer.rb +20 -0
- data/lib/erp_integration/version.rb +1 -1
- data/lib/erp_integration.rb +1 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4bf1b8a88038684ef2a0192d9980e29c13fa8c5b2ea5078478d47db28fe6d050
|
4
|
+
data.tar.gz: e5e37d4c3c39647d1a1118a946f0e1808eaffa2a60b373e4a681f5942f48afce
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d23ae16ce5d712adf1ecb1ae6af31feaf29d773214281546902cc641496e89894fbac35ce3a6da05cd2248ca1b674e589ea3be62114112d32b77933dc3df3465
|
7
|
+
data.tar.gz: 6990bf1cacbf87418692ca4ed5b2b63b16e181f4e35b94de5843a5c3b661a5cad55603809318098c23aaada1ba778bb0e5009d49e443a31ea5fff3a9d58ed858
|
data/.rubocop.yml
CHANGED
@@ -97,6 +97,11 @@ module ErpIntegration
|
|
97
97
|
# @return [Symbol] The configured adapter for the supplier shipment.
|
98
98
|
attr_writer :supplier_shipment_adapter
|
99
99
|
|
100
|
+
# Allows configuring an adapter for the `StockBinTransfer` resource. When
|
101
|
+
# none is configured, it will default to Fulfil.
|
102
|
+
# @return [Symbol] The configured adapter for the stock bin transfer.
|
103
|
+
attr_writer :stock_bin_transfer_adapter
|
104
|
+
|
100
105
|
# Allows configuring an adapter for the `StockMove` resource. When
|
101
106
|
# none is configured, it will default to Fulfil.
|
102
107
|
# @return [Symbol] The configured adapter for the stock move.
|
@@ -199,6 +204,10 @@ module ErpIntegration
|
|
199
204
|
@supplier_shipment_adapter || :fulfil
|
200
205
|
end
|
201
206
|
|
207
|
+
def stock_bin_transfer_adapter
|
208
|
+
@stock_bin_transfer_adapter || :fulfil
|
209
|
+
end
|
210
|
+
|
202
211
|
def stock_move_adapter
|
203
212
|
@stock_move_adapter || :fulfil
|
204
213
|
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,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
@@ -39,6 +39,7 @@ module ErpIntegration
|
|
39
39
|
autoload :SalesOrder, 'erp_integration/sales_order'
|
40
40
|
autoload :SalesOrderLine, 'erp_integration/sales_order_line'
|
41
41
|
autoload :SalesReturnReason, 'erp_integration/sales_return_reason'
|
42
|
+
autoload :StockBinTransfer, 'erp_integration/stock_bin_transfer'
|
42
43
|
autoload :StockMove, 'erp_integration/stock_move'
|
43
44
|
autoload :SupplierShipment, 'erp_integration/supplier_shipment'
|
44
45
|
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.35.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-06-
|
11
|
+
date: 2023-06-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -297,6 +297,7 @@ files:
|
|
297
297
|
- lib/erp_integration/fulfil/resources/sales_order.rb
|
298
298
|
- lib/erp_integration/fulfil/resources/sales_order_line.rb
|
299
299
|
- lib/erp_integration/fulfil/resources/sales_return_reason.rb
|
300
|
+
- lib/erp_integration/fulfil/resources/stock_bin_transfer.rb
|
300
301
|
- lib/erp_integration/fulfil/resources/stock_move.rb
|
301
302
|
- lib/erp_integration/fulfil/resources/supplier_shipment.rb
|
302
303
|
- lib/erp_integration/fulfil/resources/task.rb
|
@@ -317,6 +318,7 @@ files:
|
|
317
318
|
- lib/erp_integration/sales_order.rb
|
318
319
|
- lib/erp_integration/sales_order_line.rb
|
319
320
|
- lib/erp_integration/sales_return_reason.rb
|
321
|
+
- lib/erp_integration/stock_bin_transfer.rb
|
320
322
|
- lib/erp_integration/stock_move.rb
|
321
323
|
- lib/erp_integration/supplier_shipment.rb
|
322
324
|
- lib/erp_integration/task.rb
|