zaikio-procurement 0.2.2 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|