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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 46c2613fa4d588241f06f9a130cdc5fece97ba69c5e732d66d4ff141adabb080
4
- data.tar.gz: 71e0908f8b3fbfcf89a28d15445cd8d3b170a19ba81182c0af03be0933a64631
3
+ metadata.gz: 4bf1b8a88038684ef2a0192d9980e29c13fa8c5b2ea5078478d47db28fe6d050
4
+ data.tar.gz: e5e37d4c3c39647d1a1118a946f0e1808eaffa2a60b373e4a681f5942f48afce
5
5
  SHA512:
6
- metadata.gz: 273b05cc0dbf4030cb6a0a39788614165aba29392795e196228987300a74043a81760ded720d8ba548f0c74708293bb0e845add3b4f3ecef7d69e3939fb5a558
7
- data.tar.gz: 0e8969487347f3a661ffaa5c789b65fae4da98f1c2e117f19aef0286e86a8856b70f70e71b095c48d5698f39112fea808ef28620935308f268fb74574b211a69
6
+ metadata.gz: d23ae16ce5d712adf1ecb1ae6af31feaf29d773214281546902cc641496e89894fbac35ce3a6da05cd2248ca1b674e589ea3be62114112d32b77933dc3df3465
7
+ data.tar.gz: 6990bf1cacbf87418692ca4ed5b2b63b16e181f4e35b94de5843a5c3b661a5cad55603809318098c23aaada1ba778bb0e5009d49e443a31ea5fff3a9d58ed858
data/.rubocop.yml CHANGED
@@ -82,6 +82,8 @@ Naming/PredicateName:
82
82
  Enabled: true
83
83
 
84
84
  Metrics/ClassLength:
85
+ Exclude:
86
+ - lib/erp_integration/configuration.rb
85
87
  Enabled: true
86
88
 
87
89
  Style/AndOr:
@@ -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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ErpIntegration
4
- VERSION = '0.34.0'
4
+ VERSION = '0.35.0'
5
5
  end
@@ -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.34.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-23 00:00:00.000000000 Z
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