erp_integration 0.61.0 → 0.63.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/.github/workflows/main.yml +1 -1
- data/.rubocop.yml +6 -1
- data/.ruby-version +1 -1
- data/README.md +1 -1
- data/erp_integration.gemspec +3 -3
- data/lib/erp_integration/configuration.rb +9 -0
- data/lib/erp_integration/fulfil/api_resource.rb +3 -2
- data/lib/erp_integration/fulfil/query.rb +1 -1
- data/lib/erp_integration/fulfil/resources/purchase_product_supplier.rb +13 -0
- data/lib/erp_integration/logger.rb +2 -2
- data/lib/erp_integration/purchase_product_supplier.rb +12 -0
- data/lib/erp_integration/resource.rb +5 -17
- data/lib/erp_integration/version.rb +1 -1
- data/lib/erp_integration.rb +2 -0
- metadata +15 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cb75aaf6e64d6ef01f00956f20fb796669477fd7c627e747f97980bff5ddb5da
|
4
|
+
data.tar.gz: '098968ee5bc648abc6dbc410d623d5561ddd692954b5b12f5e2abb5c6e955d0c'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 82785e30614943d05dc3385bd11baf281cf306b7fcdd8723575dc8f1a4533abc05b4919accf6b346d29c03f1ab9719d411bd66ca8f727fa9ca416cab557ef812
|
7
|
+
data.tar.gz: c20e9376d1f3b151568d987a1626dee8bb4cb360eae8c7d011ea6e4b92e6ab1e20214f1f40565726d4c30f627b003b099b33783df66b8853ca04185f08548ae5
|
data/.github/workflows/main.yml
CHANGED
data/.rubocop.yml
CHANGED
@@ -16,7 +16,7 @@ Metrics/BlockLength:
|
|
16
16
|
# 1. Specs tend to include big blocks (e.g. `RSpec.describe` or `it`).
|
17
17
|
# 2. `mejuri-web` also has disabled the `Metrics/BlockLength` for specs.
|
18
18
|
- spec/**/*
|
19
|
-
|
19
|
+
AllowedMethods: ['class_eval']
|
20
20
|
|
21
21
|
Lint/AmbiguousBlockAssociation:
|
22
22
|
Enabled: true
|
@@ -88,3 +88,8 @@ Metrics/ClassLength:
|
|
88
88
|
|
89
89
|
Style/AndOr:
|
90
90
|
EnforcedStyle: conditionals
|
91
|
+
|
92
|
+
Lint/ConstantDefinitionInBlock:
|
93
|
+
Exclude:
|
94
|
+
- spec/**/*
|
95
|
+
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
3.
|
1
|
+
3.3.6
|
data/README.md
CHANGED
@@ -155,7 +155,7 @@ $ ErpIntegration::SalesOrder.select(:id, :reference).find_by(reference: 'MT1000S
|
|
155
155
|
|
156
156
|
## Development
|
157
157
|
|
158
|
-
After checking out the repo, run `bin/setup` to install dependencies. Then, run `
|
158
|
+
After checking out the repo, run `bin/setup` to install dependencies. Then, run `bundle exec rspec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
159
159
|
|
160
160
|
### Releasing
|
161
161
|
|
data/erp_integration.gemspec
CHANGED
@@ -39,10 +39,10 @@ Gem::Specification.new do |spec|
|
|
39
39
|
spec.add_development_dependency 'byebug', '~> 11.0'
|
40
40
|
spec.add_development_dependency 'flay', '~> 2.12', '>= 2.12.1'
|
41
41
|
spec.add_development_dependency 'github_changelog_generator', '~> 1.15.2'
|
42
|
-
spec.add_development_dependency 'rake', '
|
43
|
-
spec.add_development_dependency 'reek', '
|
42
|
+
spec.add_development_dependency 'rake', '>= 13.0'
|
43
|
+
spec.add_development_dependency 'reek', '<= 6.4.0'
|
44
44
|
spec.add_development_dependency 'rspec', '~> 3.10'
|
45
|
-
spec.add_development_dependency 'rubocop', '
|
45
|
+
spec.add_development_dependency 'rubocop', '~> 1.71'
|
46
46
|
spec.add_development_dependency 'rubocop-rake', '~> 0.5'
|
47
47
|
spec.add_development_dependency 'rubocop-rspec', '< 1.39.0'
|
48
48
|
spec.add_development_dependency 'webmock', '~> 3.18.1'
|
@@ -103,6 +103,11 @@ module ErpIntegration
|
|
103
103
|
# @return [Symbol] The configured adapter for the purchase order lines.
|
104
104
|
attr_writer :purchase_order_line_adapter
|
105
105
|
|
106
|
+
# Allows configuring an adapter for the `PurchaseProductSupplier` resource. When
|
107
|
+
# none is configured, it will default to Fulfil.
|
108
|
+
# @return [Symbol] The configured adapter for the purchase order lines.
|
109
|
+
attr_writer :purchase_product_supplier_adapter
|
110
|
+
|
106
111
|
# Allows configuring an adapter for the `PurchaseRequest` resource. When
|
107
112
|
# none is configured, it will default to Fulfil.
|
108
113
|
# @return [Symbol] The configured adapter for the purchase request.
|
@@ -250,6 +255,10 @@ module ErpIntegration
|
|
250
255
|
@purchase_order_line_adapter || :fulfil
|
251
256
|
end
|
252
257
|
|
258
|
+
def purchase_product_supplier_adapter
|
259
|
+
@purchase_product_supplier_adapter || :fulfil
|
260
|
+
end
|
261
|
+
|
253
262
|
def purchase_request_adapter
|
254
263
|
@purchase_request_adapter || :fulfil
|
255
264
|
end
|
@@ -17,6 +17,7 @@ module ErpIntegration
|
|
17
17
|
include QueryMethods
|
18
18
|
|
19
19
|
attr_accessor :resource_klass
|
20
|
+
|
20
21
|
delegate :api_keys_pool=, :client, :model_name, to: 'self.class'
|
21
22
|
|
22
23
|
def initialize(resource_klass)
|
@@ -72,9 +73,9 @@ module ErpIntegration
|
|
72
73
|
# be executed and the results will be fetched.
|
73
74
|
# @return [Array] An enumerable collection object with all API results.
|
74
75
|
def all
|
75
|
-
return @
|
76
|
+
return @all if defined?(@all)
|
76
77
|
|
77
|
-
@
|
78
|
+
@all =
|
78
79
|
client.put(
|
79
80
|
api_resource_path,
|
80
81
|
Query.new(
|
@@ -29,7 +29,7 @@ module ErpIntegration
|
|
29
29
|
# @param alternative_filters [Array<OrClause>] A list of or clauses for Fulfil.
|
30
30
|
# @param offset [Integer] Offset for pagination.
|
31
31
|
# @param limit [Integer] Limit for pagination.
|
32
|
-
def initialize(fields:, filters:, alternative_filters: [], offset: nil, limit: nil)
|
32
|
+
def initialize(fields:, filters:, alternative_filters: [], offset: nil, limit: nil) # rubocop:disable Metrics/CyclomaticComplexity
|
33
33
|
@fields = (fields || DEFAULT_FIELDS).map(&:to_s).uniq
|
34
34
|
@filters = (filters || []).map(&:to_filter).uniq
|
35
35
|
@filters += alternative_filters.map(&:to_filter).uniq if alternative_filters&.any?
|
@@ -11,11 +11,11 @@ module ErpIntegration
|
|
11
11
|
|
12
12
|
# Logs the given tags if the logger is present.
|
13
13
|
# If the logger does not respond to `tagged`, it logs the tags as an info message.
|
14
|
-
def with_tags(*tags)
|
14
|
+
def with_tags(*tags, &block)
|
15
15
|
return yield unless logger
|
16
16
|
|
17
17
|
if logger.respond_to?(:tagged)
|
18
|
-
logger.tagged(*tags) {
|
18
|
+
logger.tagged(*tags) { block.call }
|
19
19
|
else
|
20
20
|
logger.info("Requested ERP with #{tags.join(', ')}")
|
21
21
|
yield
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module ErpIntegration
|
4
|
+
# The `ErpIntegration::PurchaseProductSupplier` exposes an uniformed API for interaction with
|
5
|
+
# third-party ERP vendors.
|
6
|
+
class PurchaseProductSupplier < Resource
|
7
|
+
attr_accessor :id, :active, :code, :company, :create_date, :create_uid,
|
8
|
+
:currency, :drop_shipment, :lead_time, :metadata, :moq, :name,
|
9
|
+
:party, :prices, :product, :quantity_available, :quantity_available_updated,
|
10
|
+
:sequence
|
11
|
+
end
|
12
|
+
end
|
@@ -105,25 +105,13 @@ module ErpIntegration
|
|
105
105
|
# @param kwargs [Hash] The list of arguments for the missing method.
|
106
106
|
# @param block [Proc] Any block given to the missing method.
|
107
107
|
#
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
else
|
114
|
-
super
|
115
|
-
end
|
116
|
-
end
|
117
|
-
else
|
118
|
-
def method_missing(method_name, *args, **kwargs, &block)
|
119
|
-
if adapter.respond_to?(method_name)
|
120
|
-
adapter.send(method_name, *args, **kwargs, &block)
|
121
|
-
else
|
122
|
-
super
|
123
|
-
end
|
108
|
+
def method_missing(method_name, *args, **kwargs, &block)
|
109
|
+
if adapter.respond_to?(method_name)
|
110
|
+
adapter.send(method_name, *args, **kwargs, &block)
|
111
|
+
else
|
112
|
+
super
|
124
113
|
end
|
125
114
|
end
|
126
|
-
# rubocop:enable Style/MissingRespondToMissing
|
127
115
|
|
128
116
|
# The `respond_to_missing?` complements the `method_missing` method.
|
129
117
|
# @param method_name [Symbol] The name of the missing method.
|
data/lib/erp_integration.rb
CHANGED
@@ -47,6 +47,7 @@ module ErpIntegration
|
|
47
47
|
autoload :ProductionOrder, 'erp_integration/production_order'
|
48
48
|
autoload :PurchaseOrder, 'erp_integration/purchase_order'
|
49
49
|
autoload :PurchaseOrderLine, 'erp_integration/purchase_order_line'
|
50
|
+
autoload :PurchaseProductSupplier, 'erp_integration/purchase_product_supplier'
|
50
51
|
autoload :PurchaseRequest, 'erp_integration/purchase_request'
|
51
52
|
autoload :Resource, 'erp_integration/resource'
|
52
53
|
autoload :SalesLineOption, 'erp_integration/sales_line_option'
|
@@ -65,6 +66,7 @@ module ErpIntegration
|
|
65
66
|
autoload :Persistence, 'erp_integration/resources/persistence'
|
66
67
|
autoload :Validations, 'erp_integration/resources/validations'
|
67
68
|
end
|
69
|
+
|
68
70
|
module Types
|
69
71
|
autoload :Decimal, 'erp_integration/types/decimal'
|
70
72
|
end
|
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.63.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: 2025-
|
11
|
+
date: 2025-02-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -116,30 +116,30 @@ dependencies:
|
|
116
116
|
name: rake
|
117
117
|
requirement: !ruby/object:Gem::Requirement
|
118
118
|
requirements:
|
119
|
-
- - "
|
119
|
+
- - ">="
|
120
120
|
- !ruby/object:Gem::Version
|
121
121
|
version: '13.0'
|
122
122
|
type: :development
|
123
123
|
prerelease: false
|
124
124
|
version_requirements: !ruby/object:Gem::Requirement
|
125
125
|
requirements:
|
126
|
-
- - "
|
126
|
+
- - ">="
|
127
127
|
- !ruby/object:Gem::Version
|
128
128
|
version: '13.0'
|
129
129
|
- !ruby/object:Gem::Dependency
|
130
130
|
name: reek
|
131
131
|
requirement: !ruby/object:Gem::Requirement
|
132
132
|
requirements:
|
133
|
-
- - "
|
133
|
+
- - "<="
|
134
134
|
- !ruby/object:Gem::Version
|
135
|
-
version:
|
135
|
+
version: 6.4.0
|
136
136
|
type: :development
|
137
137
|
prerelease: false
|
138
138
|
version_requirements: !ruby/object:Gem::Requirement
|
139
139
|
requirements:
|
140
|
-
- - "
|
140
|
+
- - "<="
|
141
141
|
- !ruby/object:Gem::Version
|
142
|
-
version:
|
142
|
+
version: 6.4.0
|
143
143
|
- !ruby/object:Gem::Dependency
|
144
144
|
name: rspec
|
145
145
|
requirement: !ruby/object:Gem::Requirement
|
@@ -158,16 +158,16 @@ dependencies:
|
|
158
158
|
name: rubocop
|
159
159
|
requirement: !ruby/object:Gem::Requirement
|
160
160
|
requirements:
|
161
|
-
- - "
|
161
|
+
- - "~>"
|
162
162
|
- !ruby/object:Gem::Version
|
163
|
-
version:
|
163
|
+
version: '1.71'
|
164
164
|
type: :development
|
165
165
|
prerelease: false
|
166
166
|
version_requirements: !ruby/object:Gem::Requirement
|
167
167
|
requirements:
|
168
|
-
- - "
|
168
|
+
- - "~>"
|
169
169
|
- !ruby/object:Gem::Version
|
170
|
-
version:
|
170
|
+
version: '1.71'
|
171
171
|
- !ruby/object:Gem::Dependency
|
172
172
|
name: rubocop-rake
|
173
173
|
requirement: !ruby/object:Gem::Requirement
|
@@ -302,6 +302,7 @@ files:
|
|
302
302
|
- lib/erp_integration/fulfil/resources/production_order.rb
|
303
303
|
- lib/erp_integration/fulfil/resources/purchase_order.rb
|
304
304
|
- lib/erp_integration/fulfil/resources/purchase_order_line.rb
|
305
|
+
- lib/erp_integration/fulfil/resources/purchase_product_supplier.rb
|
305
306
|
- lib/erp_integration/fulfil/resources/purchase_request.rb
|
306
307
|
- lib/erp_integration/fulfil/resources/sales_line_option.rb
|
307
308
|
- lib/erp_integration/fulfil/resources/sales_order.rb
|
@@ -330,6 +331,7 @@ files:
|
|
330
331
|
- lib/erp_integration/production_order.rb
|
331
332
|
- lib/erp_integration/purchase_order.rb
|
332
333
|
- lib/erp_integration/purchase_order_line.rb
|
334
|
+
- lib/erp_integration/purchase_product_supplier.rb
|
333
335
|
- lib/erp_integration/purchase_request.rb
|
334
336
|
- lib/erp_integration/rate_limiter.rb
|
335
337
|
- lib/erp_integration/resource.rb
|
@@ -371,7 +373,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
371
373
|
- !ruby/object:Gem::Version
|
372
374
|
version: '0'
|
373
375
|
requirements: []
|
374
|
-
rubygems_version: 3.
|
376
|
+
rubygems_version: 3.5.22
|
375
377
|
signing_key:
|
376
378
|
specification_version: 4
|
377
379
|
summary: Connects Mejuri with third-party ERP vendors
|