zaikio-procurement 0.2.2 → 0.4.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/README.md +6 -1
- data/lib/zaikio/procurement/address.rb +22 -0
- data/lib/zaikio/procurement/article.rb +6 -3
- data/lib/zaikio/procurement/concern/article_type_scoped.rb +21 -0
- data/lib/zaikio/procurement/delivery.rb +4 -3
- data/lib/zaikio/procurement/order_conditions_inquiry.rb +15 -0
- data/lib/zaikio/procurement/sku.rb +3 -7
- data/lib/zaikio/procurement/variant.rb +6 -3
- data/lib/zaikio/procurement/version.rb +1 -1
- data/lib/zaikio/procurement.rb +2 -0
- metadata +6 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 6025b3ec71f3a51029df00184334cd3f90b46c777068d08092eebdcbfae5b047
|
|
4
|
+
data.tar.gz: 585fc195103c24cd304b39a80fdb78996c2cdaecbaf1cfa66138f71261a59f85
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e2339466d3af3150f3c67f4e40f434b374801c2704f985a31bda16a7a2bd2fdf72730405dfe35b05a94fbb87e7920c670701abee502d328ce524652b7c62bd17
|
|
7
|
+
data.tar.gz: 6ed25c344a83987e01a3472fc79ac03252d8b936efb55786e02fa48c9b7210897001de27a1c34cb35f76669cb5371d37c853cd949988a7df597398600c840063
|
data/README.md
CHANGED
|
@@ -68,6 +68,11 @@ Zaikio::Procurement.with_token(token) do
|
|
|
68
68
|
variant = Zaikio::Procurement::Variant.find("845a4d7e-db5a-46a6-9d30-bf2e884cb393")
|
|
69
69
|
variant.line_item_suggestion(amount: 10, unit: "sheet") # Returns a line item suggestion for a specifc variant
|
|
70
70
|
|
|
71
|
+
# in Supplier API one must provide a valid scope when using `Variant` or `Article`:
|
|
72
|
+
# https://docs.zaikio.com/api/procurement_suppliers/procurement.html#/Variants/get__article_type__variants__variant_id_
|
|
73
|
+
variant = Zaikio::Procurement::Variant.substrate.find("845a4d7e-db5a-46a6-9d30-bf2e884cb393")
|
|
74
|
+
variant.skus
|
|
75
|
+
|
|
71
76
|
# https://docs.zaikio.com/api/procurement_consumers/procurement.html#/LineItemSuggestions/post_suppliers__supplier_id__line_item_suggestions
|
|
72
77
|
supplier = Zaikio::Procurement::Supplier.find("b5b14aa0-ae84-452b-9719-a38545365902")
|
|
73
78
|
supplier.line_item_suggestions(
|
|
@@ -137,4 +142,4 @@ Zaikio::Directory.with_token(token) do
|
|
|
137
142
|
Zaikio::Procurement::Article.with_fallback.find("7cbf51bd-35a8-47a1-84a2-57aa63140234") # => nil
|
|
138
143
|
Zaikio::Procurement::Article.with_fallback.all # Automatically uses empty array as fallback
|
|
139
144
|
end
|
|
140
|
-
```
|
|
145
|
+
```
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
module Zaikio
|
|
2
|
+
module Procurement
|
|
3
|
+
class Address < Base
|
|
4
|
+
attributes :addition,
|
|
5
|
+
:addressable,
|
|
6
|
+
:addressee,
|
|
7
|
+
:country_code,
|
|
8
|
+
:county,
|
|
9
|
+
:kind,
|
|
10
|
+
:location,
|
|
11
|
+
:number,
|
|
12
|
+
:state,
|
|
13
|
+
:street,
|
|
14
|
+
:text,
|
|
15
|
+
:town,
|
|
16
|
+
:types,
|
|
17
|
+
:zip_code,
|
|
18
|
+
:created_at,
|
|
19
|
+
:updated_at
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -1,13 +1,16 @@
|
|
|
1
|
+
require_relative "concern/article_type_scoped"
|
|
2
|
+
|
|
1
3
|
module Zaikio
|
|
2
4
|
module Procurement
|
|
3
5
|
class Article < Base
|
|
6
|
+
include ArticleTypeScoped
|
|
4
7
|
include_root_in_json :article
|
|
5
8
|
|
|
6
9
|
# Class methods
|
|
7
10
|
class << self
|
|
8
11
|
# Spyke URI override
|
|
9
12
|
def uri
|
|
10
|
-
Zaikio::Procurement.configuration.flavor == :supplier ? "
|
|
13
|
+
Zaikio::Procurement.configuration.flavor == :supplier ? ":type/articles(/:id)" : "articles(/:id)"
|
|
11
14
|
end
|
|
12
15
|
|
|
13
16
|
def list_by_article_type_or_supplier_slug(type_or_slug)
|
|
@@ -24,8 +27,8 @@ module Zaikio
|
|
|
24
27
|
:kind, :supplier_id, :created_at, :updated_at
|
|
25
28
|
|
|
26
29
|
# Associations
|
|
27
|
-
has_one :supplier,
|
|
28
|
-
|
|
30
|
+
has_one :supplier, class_name: "Zaikio::Procurement::Supplier",
|
|
31
|
+
uri: nil
|
|
29
32
|
# Manually build variants association to work for consumers and suppliers
|
|
30
33
|
def variants
|
|
31
34
|
self.class.request(:get, "#{uri}/variants").data.collect { |v| Zaikio::Procurement::Variant.new(v) }
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
module Zaikio
|
|
2
|
+
module Procurement
|
|
3
|
+
module ArticleTypeScoped
|
|
4
|
+
extend ActiveSupport::Concern
|
|
5
|
+
included do
|
|
6
|
+
scope :substrate, -> { where(type: :substrate) }
|
|
7
|
+
scope :plate, -> { where(type: :plate) }
|
|
8
|
+
end
|
|
9
|
+
module ClassMethods
|
|
10
|
+
def find(id)
|
|
11
|
+
if Zaikio::Procurement.configuration.flavor == :supplier &&
|
|
12
|
+
(current_scope.nil? || current_scope.params[:type].blank?)
|
|
13
|
+
raise ArgumentError, "id and type are required for #{name.demodulize} in Supplier API"
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
super
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -6,11 +6,12 @@ module Zaikio
|
|
|
6
6
|
|
|
7
7
|
# Attributes
|
|
8
8
|
attributes :confirmed_delivery_date, :desired_delivery_date, :references,
|
|
9
|
-
:
|
|
9
|
+
:order_id, :created_at, :updated_at
|
|
10
10
|
|
|
11
11
|
# Associations
|
|
12
|
-
belongs_to :
|
|
13
|
-
|
|
12
|
+
belongs_to :address, class_name: "Zaikio::Procurement::Address", uri: nil
|
|
13
|
+
belongs_to :order, class_name: "Zaikio::Procurement::Order", uri: nil
|
|
14
|
+
|
|
14
15
|
has_many :delivery_line_items, class_name: "Zaikio::Procurement::DeliveryLineItem",
|
|
15
16
|
uri: "deliveries/:delivery_id/delivery_line_items(/:id)"
|
|
16
17
|
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
module Zaikio
|
|
2
|
+
module Procurement
|
|
3
|
+
class OrderConditionsInquiry < Base
|
|
4
|
+
uri "order_conditions_inquiries(/:id)"
|
|
5
|
+
include_root_in_json :order_conditions_inquiry
|
|
6
|
+
|
|
7
|
+
# Attributes
|
|
8
|
+
attributes :contract_id, :currency, :created_at, :updated_at,
|
|
9
|
+
:desired_delivery_date, :verified_at, :expires_at,
|
|
10
|
+
:verified_net_handling_fee, :verified_net_shipping_fee,
|
|
11
|
+
:verified_net_total, :verified_delivery_date, :order_line_items,
|
|
12
|
+
:verified_order_line_items
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -15,13 +15,9 @@ module Zaikio
|
|
|
15
15
|
|
|
16
16
|
# Manually build variant association to work for consumers and suppliers
|
|
17
17
|
def variant
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
"variants/#{variant_id}"
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
Zaikio::Procurement::Variant.new(self.class.request(:get, path).data)
|
|
18
|
+
Zaikio::Procurement::Variant.new(
|
|
19
|
+
self.class.request(:get, attributes.dig("variant", "links", 0, "href")).data
|
|
20
|
+
)
|
|
25
21
|
end
|
|
26
22
|
end
|
|
27
23
|
end
|
|
@@ -1,11 +1,14 @@
|
|
|
1
|
+
require_relative "concern/article_type_scoped"
|
|
2
|
+
|
|
1
3
|
module Zaikio
|
|
2
4
|
module Procurement
|
|
3
5
|
class Variant < Base
|
|
6
|
+
include ArticleTypeScoped
|
|
4
7
|
include_root_in_json :variant
|
|
5
8
|
|
|
6
9
|
# Spyke URI override
|
|
7
10
|
def self.uri
|
|
8
|
-
Zaikio::Procurement.configuration.flavor == :supplier ? "
|
|
11
|
+
Zaikio::Procurement.configuration.flavor == :supplier ? ":type/variants(/:id)" : "variants(/:id)"
|
|
9
12
|
end
|
|
10
13
|
|
|
11
14
|
# Attributes
|
|
@@ -16,8 +19,8 @@ module Zaikio
|
|
|
16
19
|
# Associations
|
|
17
20
|
has_one :article, class_name: "Zaikio::Procurement::Article",
|
|
18
21
|
uri: nil
|
|
19
|
-
has_many :skus,
|
|
20
|
-
|
|
22
|
+
has_many :skus, class_name: "Zaikio::Procurement::Sku",
|
|
23
|
+
uri: "variants/:variant_id/skus"
|
|
21
24
|
|
|
22
25
|
def line_item_suggestion(**attributes)
|
|
23
26
|
self.class.request(
|
data/lib/zaikio/procurement.rb
CHANGED
|
@@ -6,6 +6,7 @@ require "zaikio/procurement/authorization_middleware"
|
|
|
6
6
|
|
|
7
7
|
# Models
|
|
8
8
|
require "zaikio/procurement/base"
|
|
9
|
+
require "zaikio/procurement/address"
|
|
9
10
|
require "zaikio/procurement/article"
|
|
10
11
|
require "zaikio/procurement/variant"
|
|
11
12
|
require "zaikio/procurement/substrate_search"
|
|
@@ -23,6 +24,7 @@ require "zaikio/procurement/delivery_line_item"
|
|
|
23
24
|
require "zaikio/procurement/current_supplier"
|
|
24
25
|
require "zaikio/procurement/material_requirement"
|
|
25
26
|
require "zaikio/procurement/material_availability_check"
|
|
27
|
+
require "zaikio/procurement/order_conditions_inquiry"
|
|
26
28
|
|
|
27
29
|
module Zaikio
|
|
28
30
|
module Procurement
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: zaikio-procurement
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.4.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Zaikio GmbH
|
|
@@ -9,7 +9,7 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2021-
|
|
12
|
+
date: 2021-11-18 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: concurrent-ruby
|
|
@@ -106,9 +106,11 @@ files:
|
|
|
106
106
|
- README.md
|
|
107
107
|
- Rakefile
|
|
108
108
|
- lib/zaikio/procurement.rb
|
|
109
|
+
- lib/zaikio/procurement/address.rb
|
|
109
110
|
- lib/zaikio/procurement/article.rb
|
|
110
111
|
- lib/zaikio/procurement/authorization_middleware.rb
|
|
111
112
|
- lib/zaikio/procurement/base.rb
|
|
113
|
+
- lib/zaikio/procurement/concern/article_type_scoped.rb
|
|
112
114
|
- lib/zaikio/procurement/configuration.rb
|
|
113
115
|
- lib/zaikio/procurement/contract.rb
|
|
114
116
|
- lib/zaikio/procurement/contract_request.rb
|
|
@@ -119,6 +121,7 @@ files:
|
|
|
119
121
|
- lib/zaikio/procurement/material_availability_check.rb
|
|
120
122
|
- lib/zaikio/procurement/material_requirement.rb
|
|
121
123
|
- lib/zaikio/procurement/order.rb
|
|
124
|
+
- lib/zaikio/procurement/order_conditions_inquiry.rb
|
|
122
125
|
- lib/zaikio/procurement/order_line_item.rb
|
|
123
126
|
- lib/zaikio/procurement/price.rb
|
|
124
127
|
- lib/zaikio/procurement/sales_group.rb
|
|
@@ -149,7 +152,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
149
152
|
- !ruby/object:Gem::Version
|
|
150
153
|
version: '0'
|
|
151
154
|
requirements: []
|
|
152
|
-
rubygems_version: 3.
|
|
155
|
+
rubygems_version: 3.2.22
|
|
153
156
|
signing_key:
|
|
154
157
|
specification_version: 4
|
|
155
158
|
summary: Ruby API Client for Zaikio's Procurement Platform
|