sk_api_schema 0.8.8 → 0.9.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.
- data/CHANGELOG.md +10 -0
- data/json/v1.0/credit_note.json +15 -0
- data/json/v1.0/estimate.json +15 -0
- data/json/v1.0/invoice.json +15 -0
- data/json/v1.0/line_item.json +23 -8
- data/json/v1.0/order.json +15 -0
- data/json/v1.0/product.json +1 -1
- data/json/v1.0/recurring.json +15 -0
- data/lib/sk_api_schema/version.rb +1 -1
- metadata +20 -20
data/CHANGELOG.md
CHANGED
@@ -3,6 +3,16 @@
|
|
3
3
|
See [commit messages](https://github.com/salesking/sk_api_schema/commits/) for details.
|
4
4
|
Also sign up to our [Developer Newsletter](http://www.salesking.eu/dev/newsletter/) to stay up-to-date !!!
|
5
5
|
|
6
|
+
##2013-12
|
7
|
+
|
8
|
+
* add cost_total, gross_margin to documents
|
9
|
+
* rename product.cost_price to cost
|
10
|
+
|
11
|
+
line_item:
|
12
|
+
* remove use_product switch. Now copy product fields into item whenever a product_id is set.
|
13
|
+
* remove required quantity and position, now defaulting to 1
|
14
|
+
* add cost, cost_total, gross_margin
|
15
|
+
|
6
16
|
##2013-10
|
7
17
|
|
8
18
|
* add net_total, gross_total to line item
|
data/json/v1.0/credit_note.json
CHANGED
@@ -185,6 +185,21 @@
|
|
185
185
|
"description": "Net total, 6 decimal places incl. discount",
|
186
186
|
"readonly":true,
|
187
187
|
"type":"number"
|
188
|
+
},
|
189
|
+
"cost_total":{
|
190
|
+
"description": "Cost total of all line items, 2 decimals places in document currency.",
|
191
|
+
"readonly":true,
|
192
|
+
"type":"number"
|
193
|
+
},
|
194
|
+
"gross_margin_total":{
|
195
|
+
"description": "Total gross margin across all line items. Calculated from net_total-cost_total.",
|
196
|
+
"readonly":true,
|
197
|
+
"type":"number"
|
198
|
+
},
|
199
|
+
"gross_margin_pct":{
|
200
|
+
"description": "Percentage of gross profit to cost of items sold. Calculated from gross_margin_total/net_total*100",
|
201
|
+
"readonly":true,
|
202
|
+
"type":"number"
|
188
203
|
}
|
189
204
|
},
|
190
205
|
"links":[
|
data/json/v1.0/estimate.json
CHANGED
@@ -170,6 +170,21 @@
|
|
170
170
|
"description": "Net total, 6 decimal places incl. discount",
|
171
171
|
"readonly":true,
|
172
172
|
"type":"number"
|
173
|
+
},
|
174
|
+
"cost_total":{
|
175
|
+
"description": "Cost total of all line items, 2 decimals places in document currency.",
|
176
|
+
"readonly":true,
|
177
|
+
"type":"number"
|
178
|
+
},
|
179
|
+
"gross_margin_total":{
|
180
|
+
"description": "Total gross margin across all line items. Calculated from net_total-cost_total.",
|
181
|
+
"readonly":true,
|
182
|
+
"type":"number"
|
183
|
+
},
|
184
|
+
"gross_margin_pct":{
|
185
|
+
"description": "Percentage of gross profit to cost of items sold. Calculated from gross_margin_total/net_total*100",
|
186
|
+
"readonly":true,
|
187
|
+
"type":"number"
|
173
188
|
}
|
174
189
|
},
|
175
190
|
"links":[
|
data/json/v1.0/invoice.json
CHANGED
@@ -186,6 +186,21 @@
|
|
186
186
|
"readonly":true,
|
187
187
|
"type":"number"
|
188
188
|
},
|
189
|
+
"cost_total":{
|
190
|
+
"description": "Cost total of all line items, 2 decimals places in document currency.",
|
191
|
+
"readonly":true,
|
192
|
+
"type":"number"
|
193
|
+
},
|
194
|
+
"gross_margin_total":{
|
195
|
+
"description": "Total gross margin across all line items. Calculated from net_total-cost_total.",
|
196
|
+
"readonly":true,
|
197
|
+
"type":"number"
|
198
|
+
},
|
199
|
+
"gross_margin_pct":{
|
200
|
+
"description": "Percentage of gross profit to cost of items sold. Calculated from gross_margin_total/net_total*100",
|
201
|
+
"readonly":true,
|
202
|
+
"type":"number"
|
203
|
+
},
|
189
204
|
"recurring_id":{
|
190
205
|
"description":"Recurring document ID, if the invoice was created from a recurring.",
|
191
206
|
"readonly":true,
|
data/json/v1.0/line_item.json
CHANGED
@@ -12,9 +12,9 @@
|
|
12
12
|
"minLength":22
|
13
13
|
},
|
14
14
|
"position":{
|
15
|
-
"description": "
|
15
|
+
"description": "Position by which the items are sorted. Two items can have the same position(if you dont care) and numbers dont need to continuous",
|
16
16
|
"type":"integer",
|
17
|
-
"
|
17
|
+
"default": 1
|
18
18
|
},
|
19
19
|
"name":{
|
20
20
|
"description": "The name of an item",
|
@@ -40,6 +40,25 @@
|
|
40
40
|
"description": "Net price of a single item",
|
41
41
|
"type":"number"
|
42
42
|
},
|
43
|
+
"cost":{
|
44
|
+
"description": "Cost price for a single item. Used to calculate the gross margin",
|
45
|
+
"type":"number"
|
46
|
+
},
|
47
|
+
"cost_total":{
|
48
|
+
"description": "Total costs. Calculated from cost_single * quantity",
|
49
|
+
"readonly":true,
|
50
|
+
"type":"number"
|
51
|
+
},
|
52
|
+
"gross_margin_total":{
|
53
|
+
"description": "Gross margin, the difference between revenue and cost before accounting for certain other costs. Calculated from net_total - cost_total",
|
54
|
+
"readonly":true,
|
55
|
+
"type":"number"
|
56
|
+
},
|
57
|
+
"gross_margin_pct":{
|
58
|
+
"description": "Gross margin percentage. Calculated from gross_margin_total/cost_total",
|
59
|
+
"readonly":true,
|
60
|
+
"type":"number"
|
61
|
+
},
|
43
62
|
"net_total":{
|
44
63
|
"description": "Net price of a single item. Calculated from price_single * quantity * discount",
|
45
64
|
"readonly":true,
|
@@ -67,18 +86,14 @@
|
|
67
86
|
"description": "Quantity of the item. Must be >= 0",
|
68
87
|
"type":"number",
|
69
88
|
"minimum":0,
|
70
|
-
"
|
89
|
+
"default": 1
|
71
90
|
},
|
72
91
|
"product_id":{
|
73
|
-
"description": "A uuid of a product,
|
92
|
+
"description": "A uuid of a product, used by this item. If set or changed, the product fields (name, description, quantity, unit, price, cost price) are copied if the according item fields are missing/blank. Besides this product link makes it possible to track a products turnover and find the documents it is used on.",
|
74
93
|
"type":"string",
|
75
94
|
"maxLength": 22,
|
76
95
|
"minLength":22
|
77
96
|
},
|
78
|
-
"use_product":{
|
79
|
-
"description": "If set and product_id is present, the products name, description, quantity, unit, price are copied if the according item fields are missing.",
|
80
|
-
"type":"boolean"
|
81
|
-
},
|
82
97
|
"created_at":{
|
83
98
|
"description": "Date the object was created in SK. Never changes afterwards",
|
84
99
|
"format":"date-time",
|
data/json/v1.0/order.json
CHANGED
@@ -175,6 +175,21 @@
|
|
175
175
|
"description": "Net total, 6 decimal places incl. discount",
|
176
176
|
"readonly":true,
|
177
177
|
"type":"number"
|
178
|
+
},
|
179
|
+
"cost_total":{
|
180
|
+
"description": "Cost total of all line items, 2 decimals places in document currency.",
|
181
|
+
"readonly":true,
|
182
|
+
"type":"number"
|
183
|
+
},
|
184
|
+
"gross_margin_total":{
|
185
|
+
"description": "Total gross margin across all line items. Calculated from net_total-cost_total.",
|
186
|
+
"readonly":true,
|
187
|
+
"type":"number"
|
188
|
+
},
|
189
|
+
"gross_margin_pct":{
|
190
|
+
"description": "Percentage of gross profit to cost of items sold. Calculated from gross_margin_total/net_total*100",
|
191
|
+
"readonly":true,
|
192
|
+
"type":"number"
|
178
193
|
}
|
179
194
|
},
|
180
195
|
"links":[
|
data/json/v1.0/product.json
CHANGED
data/json/v1.0/recurring.json
CHANGED
@@ -163,6 +163,21 @@
|
|
163
163
|
"readonly":true,
|
164
164
|
"type":"number"
|
165
165
|
},
|
166
|
+
"cost_total":{
|
167
|
+
"description": "Cost total of all line items, 2 decimals places in document currency.",
|
168
|
+
"readonly":true,
|
169
|
+
"type":"number"
|
170
|
+
},
|
171
|
+
"gross_margin_total":{
|
172
|
+
"description": "Total gross margin across all line items. Calculated from net_total-cost_total.",
|
173
|
+
"readonly":true,
|
174
|
+
"type":"number"
|
175
|
+
},
|
176
|
+
"gross_margin_pct":{
|
177
|
+
"description": "Percentage of gross profit to cost of items sold. Calculated from gross_margin_total/net_total*100",
|
178
|
+
"readonly":true,
|
179
|
+
"type":"number"
|
180
|
+
},
|
166
181
|
"pdf_template_id":{
|
167
182
|
"description": "The PDF template used for printing the invoice when auto sending. Required when auto_send'ing is enabled.",
|
168
183
|
"type":"string",
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sk_api_schema
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 59
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 0.
|
8
|
+
- 9
|
9
|
+
- 0
|
10
|
+
version: 0.9.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Georg Leciejewski
|
@@ -15,10 +15,11 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2013-
|
18
|
+
date: 2013-12-20 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
|
-
|
21
|
+
name: activesupport
|
22
|
+
prerelease: false
|
22
23
|
requirement: &id001 !ruby/object:Gem::Requirement
|
23
24
|
none: false
|
24
25
|
requirements:
|
@@ -28,11 +29,11 @@ dependencies:
|
|
28
29
|
segments:
|
29
30
|
- 0
|
30
31
|
version: "0"
|
32
|
+
type: :runtime
|
31
33
|
version_requirements: *id001
|
32
|
-
prerelease: false
|
33
|
-
name: activesupport
|
34
34
|
- !ruby/object:Gem::Dependency
|
35
|
-
|
35
|
+
name: rdoc
|
36
|
+
prerelease: false
|
36
37
|
requirement: &id002 !ruby/object:Gem::Requirement
|
37
38
|
none: false
|
38
39
|
requirements:
|
@@ -42,11 +43,11 @@ dependencies:
|
|
42
43
|
segments:
|
43
44
|
- 0
|
44
45
|
version: "0"
|
46
|
+
type: :development
|
45
47
|
version_requirements: *id002
|
46
|
-
prerelease: false
|
47
|
-
name: rdoc
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
|
-
|
49
|
+
name: rspec
|
50
|
+
prerelease: false
|
50
51
|
requirement: &id003 !ruby/object:Gem::Requirement
|
51
52
|
none: false
|
52
53
|
requirements:
|
@@ -56,11 +57,11 @@ dependencies:
|
|
56
57
|
segments:
|
57
58
|
- 0
|
58
59
|
version: "0"
|
60
|
+
type: :development
|
59
61
|
version_requirements: *id003
|
60
|
-
prerelease: false
|
61
|
-
name: rspec
|
62
62
|
- !ruby/object:Gem::Dependency
|
63
|
-
|
63
|
+
name: simplecov
|
64
|
+
prerelease: false
|
64
65
|
requirement: &id004 !ruby/object:Gem::Requirement
|
65
66
|
none: false
|
66
67
|
requirements:
|
@@ -70,11 +71,11 @@ dependencies:
|
|
70
71
|
segments:
|
71
72
|
- 0
|
72
73
|
version: "0"
|
74
|
+
type: :development
|
73
75
|
version_requirements: *id004
|
74
|
-
prerelease: false
|
75
|
-
name: simplecov
|
76
76
|
- !ruby/object:Gem::Dependency
|
77
|
-
|
77
|
+
name: rake
|
78
|
+
prerelease: false
|
78
79
|
requirement: &id005 !ruby/object:Gem::Requirement
|
79
80
|
none: false
|
80
81
|
requirements:
|
@@ -86,9 +87,8 @@ dependencies:
|
|
86
87
|
- 9
|
87
88
|
- 2
|
88
89
|
version: 0.9.2
|
90
|
+
type: :development
|
89
91
|
version_requirements: *id005
|
90
|
-
prerelease: false
|
91
|
-
name: rake
|
92
92
|
description: |-
|
93
93
|
The SalesKing JSON Schema describes our business API in terms of available objects, their fields and links to url endpoints with related objects.
|
94
94
|
Besides ruby users can use a small lib with utility methods to load and test the schema files.
|