Add unit API and article unitamount/unitSi patch.
Units use the selected company; article PATCH accepts name/unitamount/unitSi.
This commit is contained in:
@@ -5,8 +5,8 @@ Protected. Requires a valid session cookie (`credentials: 'include'`).
|
||||
Replace POS prices by SKU
|
||||
|
||||
Replace-all prices for the company POS customer group.
|
||||
Each entry: `price` (gross), `tax` (rate %, ensured via tax.ensure), optional `minmultiplier` (default 1).
|
||||
Stored as net = gross / (1 + tax/100). Empty `prices` clears all POS prices. Returns the same shape as GET by SKU.
|
||||
Each entry: `price` (net), `tax` (rate, ensured via tax.ensure), optional `minmultiplier` (default 1).
|
||||
Empty `prices` clears all POS prices. Returns the same shape as GET by SKU.
|
||||
|
||||
|
||||
## Path parameters
|
||||
@@ -21,11 +21,11 @@ Stored as net = gross / (1 + tax/100). Empty `prices` clears all POS prices. Ret
|
||||
{
|
||||
"prices": [
|
||||
{
|
||||
"price": 11.9,
|
||||
"price": 10.5,
|
||||
"tax": 19
|
||||
},
|
||||
{
|
||||
"price": 99,
|
||||
"price": 9.9,
|
||||
"tax": 19,
|
||||
"minmultiplier": 10
|
||||
}
|
||||
|
||||
@@ -4,7 +4,9 @@ Protected. Requires a valid session cookie (`credentials: 'include'`).
|
||||
|
||||
Update article by SKU
|
||||
|
||||
Updates an article name by SKU; returns the same detail shape as GET.
|
||||
Patches article fields. At least one of `name`, `unitamount`, `unitSi` required.
|
||||
`unitSi` must already exist for the company. Returns the same detail shape as GET.
|
||||
|
||||
|
||||
## Path parameters
|
||||
|
||||
@@ -16,7 +18,8 @@ Updates an article name by SKU; returns the same detail shape as GET.
|
||||
|
||||
```json
|
||||
{
|
||||
"name": "Updated name"
|
||||
"unitamount": 0.24,
|
||||
"unitSi": "l"
|
||||
}
|
||||
```
|
||||
|
||||
@@ -34,10 +37,10 @@ Updated article detail
|
||||
|
||||
| Status | Description |
|
||||
|--------|-------------|
|
||||
| 400 | Validation error — `{"error":"…"}` |
|
||||
| 400 | Validation error (Name required / Invalid unitamount) — `{"error":"…"}` |
|
||||
| 401 | Unauthorized — `{"error":"…"}` |
|
||||
| 403 | Not authorized — `{"error":"…"}` |
|
||||
| 404 | Article not found — `{"error":"…"}` |
|
||||
| 404 | Article or unit not found — `{"error":"…"}` |
|
||||
|
||||
---
|
||||
|
||||
|
||||
33
docs/api/routes/unit/delete.md
Normal file
33
docs/api/routes/unit/delete.md
Normal file
@@ -0,0 +1,33 @@
|
||||
# `DELETE /unit`
|
||||
|
||||
Protected. Requires a valid session cookie (`credentials: 'include'`).
|
||||
|
||||
Delete unit
|
||||
|
||||
Deletes `si` for the selected company. Fails with `Unit in use` if articles still reference it.
|
||||
|
||||
## Query parameters
|
||||
|
||||
| Param | Required | Type | Description |
|
||||
|-------|----------|------|-------------|
|
||||
| `si` | yes | string | |
|
||||
|
||||
## Response `204`
|
||||
|
||||
Deleted
|
||||
|
||||
_No content_
|
||||
|
||||
## Errors
|
||||
|
||||
| Status | Description |
|
||||
|--------|-------------|
|
||||
| 400 | Missing si or no company selected — `{"error":"…"}` |
|
||||
| 401 | Unauthorized — `{"error":"…"}` |
|
||||
| 403 | Not authorized — `{"error":"…"}` |
|
||||
| 404 | Company or unit not found — `{"error":"…"}` |
|
||||
| 409 | Unit in use — `{"error":"…"}` |
|
||||
|
||||
---
|
||||
|
||||
_Generated from `@openapi` JSDoc. Do not edit by hand — run `npm run docs:api`._
|
||||
30
docs/api/routes/unit/list.md
Normal file
30
docs/api/routes/unit/list.md
Normal file
@@ -0,0 +1,30 @@
|
||||
# `GET /unit`
|
||||
|
||||
Protected. Requires a valid session cookie (`credentials: 'include'`).
|
||||
|
||||
List units
|
||||
|
||||
Lists units for the authenticated user's selected company (default-language symbol/name).
|
||||
|
||||
## Response `200`
|
||||
|
||||
Unit list
|
||||
|
||||
```json
|
||||
{
|
||||
"units": []
|
||||
}
|
||||
```
|
||||
|
||||
## Errors
|
||||
|
||||
| Status | Description |
|
||||
|--------|-------------|
|
||||
| 400 | No company selected — `{"error":"…"}` |
|
||||
| 401 | Unauthorized — `{"error":"…"}` |
|
||||
| 403 | Not authorized — `{"error":"…"}` |
|
||||
| 404 | Company not found — `{"error":"…"}` |
|
||||
|
||||
---
|
||||
|
||||
_Generated from `@openapi` JSDoc. Do not edit by hand — run `npm run docs:api`._
|
||||
44
docs/api/routes/unit/upsert.md
Normal file
44
docs/api/routes/unit/upsert.md
Normal file
@@ -0,0 +1,44 @@
|
||||
# `PUT /unit`
|
||||
|
||||
Protected. Requires a valid session cookie (`credentials: 'include'`).
|
||||
|
||||
Upsert unit
|
||||
|
||||
Insert or update unit by `si` for the selected company. Upserts `unittext` for the company language.
|
||||
`basesifactor` must be finite and `> 0`.
|
||||
|
||||
|
||||
## Body (JSON)
|
||||
|
||||
```json
|
||||
{
|
||||
"si": "l",
|
||||
"basesi": "l",
|
||||
"basesifactor": 1,
|
||||
"symbol": "L",
|
||||
"name": "Liter"
|
||||
}
|
||||
```
|
||||
|
||||
## Response `200`
|
||||
|
||||
Upserted unit
|
||||
|
||||
```json
|
||||
{
|
||||
"unit": { … }
|
||||
}
|
||||
```
|
||||
|
||||
## Errors
|
||||
|
||||
| Status | Description |
|
||||
|--------|-------------|
|
||||
| 400 | Invalid unit or no company selected — `{"error":"…"}` |
|
||||
| 401 | Unauthorized — `{"error":"…"}` |
|
||||
| 403 | Not authorized — `{"error":"…"}` |
|
||||
| 404 | Company not found — `{"error":"…"}` |
|
||||
|
||||
---
|
||||
|
||||
_Generated from `@openapi` JSDoc. Do not edit by hand — run `npm run docs:api`._
|
||||
Reference in New Issue
Block a user