erp_integration 0.39.0 → 0.41.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: 709cbaf0b59e08e696e7f05fb8671b544f69219f8cf0644610fd98080ffe3f7f
4
- data.tar.gz: 2dc9273ef654f8438e26ee303f558ceca15272a7996ab22eadfe25eaf46648b8
3
+ metadata.gz: 3364aa85a9b1d3b5c6fdf8085e91b8727020772f979331448e8b31ae918e52d8
4
+ data.tar.gz: 2222316cc1daedb2866a69f9dffbce135b5531bcadd3e4efdb3eb5737ade6263
5
5
  SHA512:
6
- metadata.gz: 3417589709fbe3b803a12bf06f25fb2a0f01434d5d8bac0cef9f802a8f675b486f2bb8eb8cb93168a974d43d5917b5917a8b045bdffac4ac49433ac7813f418e
7
- data.tar.gz: 54509ad8bf29d1bbc8e4a1441dc75de1e78e33546047c64eacb321d7c8e72fd8d4753f2809d6667f6b3742c03b9f224f0fc8aac58ce47dde21b237d32e56acbc
6
+ metadata.gz: 463e2af9f9c6748f5e38555dce0bf51e25991b9c565a3edb4cb6f7bbf873d9fc72a5a97a725a568a47a623fd917985c3e3a0c1c14d612b850b2420e579878886
7
+ data.tar.gz: 5c37a546111331bf5db94c5f0ce57349461724ff2ea4d91f458b5c1505115c0a4cd899c7f706c44c57a245cf5acc2d06028e88251ce7f73994a6b077fd5a8990
@@ -15,4 +15,4 @@ jobs:
15
15
  steps:
16
16
  - uses: seferov/pr-lint-action@master
17
17
  with:
18
- title-regex: '^\[RELEASE|NO-TICKET|DL|UDL|AD|DU|AR|IN|CON|DIS|AS|MT|SCR|RO|DEL-\d*\](\ )'
18
+ title-regex: '^\[RELEASE|NO-TICKET|DL|UDL|AD|DU|AR|IN|CON|DIS|AS|MT|SCR|RO|DEL|BE|SBE-\d*\](\ )'
@@ -52,6 +52,11 @@ module ErpIntegration
52
52
  # @return [Symbol] The configured adapter for the customer shipment.
53
53
  attr_writer :customer_shipment_return_adapter
54
54
 
55
+ # Allows configuring an adapter for the `InternalShipment` resource.
56
+ # When none is configured, it will default to Fulfil.
57
+ # @return [Symbol] The configured adapter for the internal shipment.
58
+ attr_writer :internal_shipment_adapter
59
+
55
60
  # Allows configuring an adapter for the `Location` resource. When
56
61
  # none is configured, it will default to Fulfil.
57
62
  # @return [Symbol] The configured adapter for the location.
@@ -183,6 +188,10 @@ module ErpIntegration
183
188
  @customer_shipment_return_adapter || :fulfil
184
189
  end
185
190
 
191
+ def internal_shipment_adapter
192
+ @internal_shipment_adapter || :fulfil
193
+ end
194
+
186
195
  def location_adapter
187
196
  @location_adapter || :fulfil
188
197
  end
@@ -129,6 +129,17 @@ module ErpIntegration
129
129
  end
130
130
  end
131
131
 
132
+ # Finds a list of resources by using query params to filter the results.
133
+ # This method is not compatible with the `where` method since it uses
134
+ # the GET HTTP method to fetch the results.
135
+ #
136
+ # @return [Array] An enumerable collection object with all API results.
137
+ def find_with_query
138
+ client.get(
139
+ "model/#{model_name}?#{query_params}"
140
+ ).map { |item| resource_klass.new(item) }
141
+ end
142
+
132
143
  private
133
144
 
134
145
  # Builds the relative resource path and adds the context if needed.
@@ -7,7 +7,7 @@ require_relative 'or_clause'
7
7
  module ErpIntegration
8
8
  module Fulfil
9
9
  module QueryMethods
10
- attr_accessor :selected_fields, :where_clauses, :or_clauses
10
+ attr_accessor :selected_fields, :where_clauses, :or_clauses, :query_params
11
11
 
12
12
  # The `QueryMethods#select` works in two unique ways
13
13
  #
@@ -143,6 +143,19 @@ module ErpIntegration
143
143
  where(args.merge!(domain: domain))
144
144
  end
145
145
 
146
+ # The `with_url_options` method provides an interface for querying resources
147
+ # in Fulfil by using URL query parameters
148
+ #
149
+ # @example
150
+ # $ ErpIntegration::SupplierShipment.with_url_options(created_at_min: Time.zone.now.iso8601).find_with_query
151
+ # # => <ErpIntegration::Fulfil::Collection @items=[<ErpIntegration::SupplierShipment @id=100 />] />
152
+ #
153
+ def with_url_options(args)
154
+ self.query_params = args.to_query
155
+
156
+ self
157
+ end
158
+
146
159
  def where_ilike(args)
147
160
  where(args.merge(comparison_operator: 'ilike'))
148
161
  end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../api_resource'
4
+
5
+ module ErpIntegration
6
+ module Fulfil
7
+ module Resources
8
+ class InternalShipment < ApiResource
9
+ self.model_name = 'stock.shipment.internal'
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ErpIntegration
4
+ # The `ErpIntegration::InternalShipment` exposes an uniformed API for interaction with
5
+ # third-party ERP vendors.
6
+ class InternalShipment < Resource
7
+ attr_accessor :acknowledged_by_receiving_3pl_at, :acknowledged_by_shipping_3pl_at, :aes_itn, :attachments, :carrier,
8
+ :carrier_cost_method, :carrier_service, :company, :contents_explanation, :contents_type, :cost,
9
+ :cost_currency, :create_date, :create_uid, :customs_items, :eel_pfc, :effective_date,
10
+ :effective_start_date, :from_location, :from_warehouse, :id, :incoming_moves, :incoterm,
11
+ :is_inter_warehouse, :is_international_shipping, :metadata, :number, :outgoing_moves, :packer,
12
+ :picked_at, :picker, :picking_status, :planned_date, :planned_start_date, :quantity_received,
13
+ :quantity_to_be_received, :quantity_total, :received_by, :reference, :request_confirmation,
14
+ :sent_to_3pl_at, :sent_to_receiving_3pl_at, :shipped_at, :shipped_by, :shipping_instructions,
15
+ :shipping_label_date, :shipping_manifest, :sscc_code, :state, :to_location, :to_warehouse,
16
+ :total_quantity, :tracking_number, :weight, :write_date, :write_uid
17
+ end
18
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ErpIntegration
4
- VERSION = '0.39.0'
4
+ VERSION = '0.41.0'
5
5
  end
@@ -4,6 +4,7 @@ require 'active_support'
4
4
  require 'active_support/core_ext/string/inflections'
5
5
  require 'active_support/core_ext/module/delegation' # Allows using `delegate`
6
6
  require 'active_support/core_ext/object/blank'
7
+ require 'active_support/core_ext/object/to_query'
7
8
  require 'faraday'
8
9
  require 'faraday_middleware'
9
10
  require 'json'
@@ -30,6 +31,7 @@ module ErpIntegration
30
31
  autoload :ChannelListing, 'erp_integration/channel_listing'
31
32
  autoload :CustomerShipment, 'erp_integration/customer_shipment'
32
33
  autoload :CustomerShipmentReturn, 'erp_integration/customer_shipment_return'
34
+ autoload :InternalShipment, 'erp_integration/internal_shipment'
33
35
  autoload :Location, 'erp_integration/location'
34
36
  autoload :Product, 'erp_integration/product'
35
37
  autoload :ProductCategory, 'erp_integration/product_category'
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.39.0
4
+ version: 0.41.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: 2024-01-19 00:00:00.000000000 Z
11
+ date: 2024-02-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -289,6 +289,7 @@ files:
289
289
  - lib/erp_integration/fulfil/resources/customer_shipment.rb
290
290
  - lib/erp_integration/fulfil/resources/customer_shipment_return.rb
291
291
  - lib/erp_integration/fulfil/resources/gift_card.rb
292
+ - lib/erp_integration/fulfil/resources/internal_shipment.rb
292
293
  - lib/erp_integration/fulfil/resources/location.rb
293
294
  - lib/erp_integration/fulfil/resources/product.rb
294
295
  - lib/erp_integration/fulfil/resources/product_category.rb
@@ -308,6 +309,7 @@ files:
308
309
  - lib/erp_integration/fulfil/resources/webhook.rb
309
310
  - lib/erp_integration/fulfil/where_clause.rb
310
311
  - lib/erp_integration/gift_card.rb
312
+ - lib/erp_integration/internal_shipment.rb
311
313
  - lib/erp_integration/location.rb
312
314
  - lib/erp_integration/middleware/error_handling.rb
313
315
  - lib/erp_integration/product.rb
@@ -355,7 +357,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
355
357
  - !ruby/object:Gem::Version
356
358
  version: '0'
357
359
  requirements: []
358
- rubygems_version: 3.3.7
360
+ rubygems_version: 3.4.10
359
361
  signing_key:
360
362
  specification_version: 4
361
363
  summary: Connects Mejuri with third-party ERP vendors