Production route sheet
INFO
Every response arrives in the shared envelope — code, message, messages, status_code, time — with the payload in data. The tables below describe what is inside data.
POST /production/route-sheet/create
This method allows adding production-route-sheet into the account.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
items | object[] | Yes | |
items[].product_id | string | Yes | |
items[].amount | number | Yes | |
items[].type | string | Yes | One of: used, produced |
items[].cost_percentage | number | Yes | |
items[].extra_costs | object[] | Yes | |
items[].extra_costs[].cost_id | string | Yes | |
items[].extra_costs[].amount | number | Yes | |
code | string | No | |
name | string | Yes | |
note | string | No | |
is_active | boolean | No | Default: false |
organization_ids | string[] | Yes | |
additional_costs | object[] | No | |
additional_costs[].cost_id | string | Yes | |
additional_costs[].amount | number | Yes | |
additional_costs[].customer_id | string | No | |
additional_costs[].supplier_id | string | No | |
additional_costs[].employee_id | string | No | |
additional_costs[].person_id | string | No |
{
"items": [
{
"product_id": "646b0c2f3d4e1a001f8b4567",
"amount": 100,
"type": "used",
"cost_percentage": 10,
"extra_costs": []
}
],
"code": "code",
"name": "name",
"note": "note",
"is_active": false,
"organization_ids": [
"646b0c2f3d4e1a001f8b4567"
],
"additional_costs": [
{
"cost_id": "646b0c2f3d4e1a001f8b4567",
"amount": 100,
"customer_id": "646b0c2f3d4e1a001f8b4567",
"supplier_id": "646b0c2f3d4e1a001f8b4567",
"employee_id": "646b0c2f3d4e1a001f8b4567",
"person_id": "646b0c2f3d4e1a001f8b4567"
}
]
}Response
| Field | Type | Description |
|---|---|---|
_id | string | |
product | object | |
product._id | string | |
product.name | string | |
product.box_item | number | Default: 0 |
product.barcodes | object[] | |
product.barcodes[]._id | string | |
product.barcodes[].barcode | string | |
product.barcodes[].is_active | boolean | Default: false |
product.barcode | string | |
product.measure | object | |
product.measure.name | string | |
product.measure.system_code | string | |
product.measure.code | string | |
product.measure.short_name | string | |
product.measure.decimal_count | number | Default: 0 |
product.measure_id | string | |
product.dimension | object | |
product.dimension.shape | string | One of: circular, rectangular, other. Default: "other" |
product.dimension.netto_weight | number | Default: 0 |
product.dimension.gross_weight | number | Default: 0 |
product.dimension.height | number | Default: 0 |
product.dimension.volume | number | Default: 0 |
product.dimension.diameter | number | Default: 0 |
product.dimension.width | number | Default: 0 |
product.dimension.length | number | Default: 0 |
product.is_material | boolean | Default: false |
product.is_product | boolean | Default: false |
product.is_semi_product | boolean | Default: false |
product.is_variant | boolean | Default: false |
product.sku | string | |
warehouse_amount | number | |
type | string | |
measure_id | string | |
measure | object | |
measure.name | string | |
measure.system_code | string | |
measure.code | string | |
measure.short_name | string | |
measure.decimal_count | number | Default: 0 |
amount | number | |
marks | string[] | |
route_sheet_id | string | |
cost_percentage | number | |
extra_costs | object[] | |
extra_costs[]._id | string | |
extra_costs[].cost_id | string | |
extra_costs[].amount | number | |
extra_costs[].employee_id | string | |
extra_costs[].customer_id | string | |
extra_costs[].supplier_id | string | |
extra_costs[].person_id | string |
{
"code": 0,
"message": "Success",
"status_code": 200,
"data": {
"_id": "646b0c2f3d4e1a001f8b4567",
"product": {
"_id": "646b0c2f3d4e1a001f8b4567",
"name": "name",
"box_item": 0,
"barcodes": [
{
"_id": null,
"barcode": null,
"is_active": null
}
],
"barcode": "barcode",
"measure": {
"name": "name",
"system_code": "system_code",
"code": "code",
"short_name": "short_name",
"decimal_count": 0
},
"measure_id": "646b0c2f3d4e1a001f8b4567",
"dimension": {
"shape": "circular",
"netto_weight": 0,
"gross_weight": 0,
"height": 0,
"volume": 0,
"diameter": 0,
"width": 0,
"length": 0
},
"is_material": false,
"is_product": false,
"is_semi_product": false,
"is_variant": false,
"sku": "sku"
},
"warehouse_amount": 0,
"type": "string",
"measure_id": "646b0c2f3d4e1a001f8b4567",
"measure": {
"name": "name",
"system_code": "system_code",
"code": "code",
"short_name": "short_name",
"decimal_count": 0
},
"amount": 100,
"marks": [
"string"
],
"route_sheet_id": "646b0c2f3d4e1a001f8b4567",
"cost_percentage": 10,
"extra_costs": [
{
"_id": "646b0c2f3d4e1a001f8b4567",
"cost_id": "646b0c2f3d4e1a001f8b4567",
"amount": 100,
"employee_id": "646b0c2f3d4e1a001f8b4567",
"customer_id": "646b0c2f3d4e1a001f8b4567",
"supplier_id": "646b0c2f3d4e1a001f8b4567",
"person_id": "646b0c2f3d4e1a001f8b4567"
}
]
},
"time": "2025-05-01T12:00:00Z"
}PUT /production/route-sheet/update
This method allows updating production-route-sheet in the account.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
_id | string | Yes | |
items | object[] | Yes | |
items[]._id | string | No | |
items[].product_id | string | No | |
items[].amount | number | No | |
items[].type | string | No | One of: used, produced |
items[].cost_percentage | number | Yes | |
items[].extra_costs | object[] | Yes | |
items[].extra_costs[].cost_id | string | Yes | |
items[].extra_costs[].amount | number | Yes | |
code | string | No | |
name | string | No | |
note | string | No | |
is_active | boolean | No | Default: false |
organization_ids | string[] | No | |
additional_costs | object[] | No | |
additional_costs[].cost_id | string | Yes | |
additional_costs[].amount | number | Yes | |
additional_costs[].customer_id | string | No | |
additional_costs[].supplier_id | string | No | |
additional_costs[].employee_id | string | No | |
additional_costs[].person_id | string | No |
{
"_id": "646b0c2f3d4e1a001f8b4567",
"items": [
{
"_id": "646b0c2f3d4e1a001f8b4567",
"product_id": "646b0c2f3d4e1a001f8b4567",
"amount": 100,
"type": "used",
"cost_percentage": 10,
"extra_costs": []
}
],
"code": "code",
"name": "name",
"note": "note",
"is_active": false,
"organization_ids": [
"646b0c2f3d4e1a001f8b4567"
],
"additional_costs": [
{
"cost_id": "646b0c2f3d4e1a001f8b4567",
"amount": 100,
"customer_id": "646b0c2f3d4e1a001f8b4567",
"supplier_id": "646b0c2f3d4e1a001f8b4567",
"employee_id": "646b0c2f3d4e1a001f8b4567",
"person_id": "646b0c2f3d4e1a001f8b4567"
}
]
}Response
Same response shape as POST /production/route-sheet/create.
POST /production/route-sheet/get-paging
Get production-route-sheet by paging
Request body
| Field | Type | Required | Description |
|---|---|---|---|
page | number | Yes | Default: 1 |
limit | number | Yes | Default: 20 |
search | string | No | |
organization_id | string | No | |
is_active | boolean | No | Default: false |
{
"page": 1,
"limit": 20,
"search": "string",
"organization_id": "646b0c2f3d4e1a001f8b4567",
"is_active": false
}Response
| Field | Type | Description |
|---|---|---|
code | number | system code of response. Default: 0 |
message | string | |
status_code | number | status code of response. Default: 200 |
messages | object | |
messages.uz | string | |
messages.ru | string | |
messages.en | string | |
time | string (date-time) | time of response |
{
"code": 0,
"message": "Success",
"status_code": 200,
"data": {
"code": 0,
"message": "Success",
"status_code": 200,
"messages": {
"uz": "Muvaffaqiyatli",
"ru": "Успешно",
"en": "Successful"
},
"time": "2025-05-01T12:00:00Z"
},
"time": "2025-05-01T12:00:00Z"
}GET /production/route-sheet/get-by-id/{id}
Get production-route-sheet using its _id
Path parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes |
Request body
No request body.
Response
Same response shape as POST /production/route-sheet/create.
DELETE /production/route-sheet/delete/{id}
Delete a production-route-sheet
Path parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes |
Request body
No request body.
Response
{
"code": 0,
"message": "Success",
"status_code": 200,
"data": "ok",
"time": "2025-05-01T12:00:00Z"
}GET /production/route-sheet/get-deleted
Get deleted production-route-sheet ids
Query parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
deleted_at | string | Yes |
Request body
No request body.
Response
{
"code": 0,
"message": "Success",
"status_code": 200,
"data": [
"string"
],
"time": "2025-05-01T12:00:00Z"
}POST /production/route-sheet/get-with-quantity/{id}
Fetch one route sheet together with live per-warehouse stock for every material it consumes. get-by-id returns the recipe; this returns the recipe plus whether the warehouse can actually cover it — the read to make before launching production. Substitute products are hydrated with their own warehouse balances.
Path parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Production route-sheet ObjectId |
Request body
| Field | Type | Required | Description |
|---|---|---|---|
organization_id | string | No | Scope the returned quantities to this organization ObjectId |
warehouse_id | string | No | Warehouse ObjectId materials would be consumed from |
produced_warehouse_id | string | No | Warehouse ObjectId the output would land in |
{
"organization_id": "string",
"warehouse_id": "string",
"produced_warehouse_id": "string"
}Response
Same response shape as POST /production/route-sheet/create.
GET /production/route-sheet/get-alternatives/{itemId}
List the substitute products registered for a single route-sheet item. Lets you resolve what may be swapped in when the primary material is short, without pulling the whole route sheet. Note the path param is the ITEM ObjectId, not the route sheet's.
Path parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
itemId | string | Yes | Route-sheet item ObjectId (from products[]._id on get-by-id), NOT the route sheet ObjectId |
Request body
No request body.
Response
{
"code": 0,
"message": "Success",
"status_code": 200,
"data": [
{
"_id": "string",
"product_id": "string",
"amount": 0,
"product": {
"_id": "string",
"name": "string",
"_warehouses": []
}
}
],
"time": "2025-05-01T12:00:00Z"
}This page is generated from the OpenAPI spec.