Production route sheet
INFO
Каждый ответ приходит в общем конверте — code, message, messages, status_code, time — а полезная нагрузка лежит в data. Таблицы ниже описывают содержимое data.
POST /production/route-sheet/create
This method allows adding production-route-sheet into the account.
Тело запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
items | object[] | Да | |
items[].product_id | string | Да | |
items[].amount | number | Да | |
items[].type | string | Да | Допустимые значения: used, produced |
items[].cost_percentage | number | Да | |
items[].extra_costs | object[] | Да | |
items[].extra_costs[].cost_id | string | Да | |
items[].extra_costs[].amount | number | Да | |
code | string | Нет | |
name | string | Да | |
note | string | Нет | |
is_active | boolean | Нет | По умолчанию: false |
organization_ids | string[] | Да | |
additional_costs | object[] | Нет | |
additional_costs[].cost_id | string | Да | |
additional_costs[].amount | number | Да | |
additional_costs[].customer_id | string | Нет | |
additional_costs[].supplier_id | string | Нет | |
additional_costs[].employee_id | string | Нет | |
additional_costs[].person_id | string | Нет |
{
"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"
}
]
}Ответ
| Поле | Тип | Описание |
|---|---|---|
_id | string | |
product | object | |
product._id | string | |
product.name | string | |
product.box_item | number | По умолчанию: 0 |
product.barcodes | object[] | |
product.barcodes[]._id | string | |
product.barcodes[].barcode | string | |
product.barcodes[].is_active | boolean | По умолчанию: 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 | По умолчанию: 0 |
product.measure_id | string | |
product.dimension | object | |
product.dimension.shape | string | Допустимые значения: circular, rectangular, other. По умолчанию: "other" |
product.dimension.netto_weight | number | По умолчанию: 0 |
product.dimension.gross_weight | number | По умолчанию: 0 |
product.dimension.height | number | По умолчанию: 0 |
product.dimension.volume | number | По умолчанию: 0 |
product.dimension.diameter | number | По умолчанию: 0 |
product.dimension.width | number | По умолчанию: 0 |
product.dimension.length | number | По умолчанию: 0 |
product.is_material | boolean | По умолчанию: false |
product.is_product | boolean | По умолчанию: false |
product.is_semi_product | boolean | По умолчанию: false |
product.is_variant | boolean | По умолчанию: 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 | По умолчанию: 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.
Тело запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
_id | string | Да | |
items | object[] | Да | |
items[]._id | string | Нет | |
items[].product_id | string | Нет | |
items[].amount | number | Нет | |
items[].type | string | Нет | Допустимые значения: used, produced |
items[].cost_percentage | number | Да | |
items[].extra_costs | object[] | Да | |
items[].extra_costs[].cost_id | string | Да | |
items[].extra_costs[].amount | number | Да | |
code | string | Нет | |
name | string | Нет | |
note | string | Нет | |
is_active | boolean | Нет | По умолчанию: false |
organization_ids | string[] | Нет | |
additional_costs | object[] | Нет | |
additional_costs[].cost_id | string | Да | |
additional_costs[].amount | number | Да | |
additional_costs[].customer_id | string | Нет | |
additional_costs[].supplier_id | string | Нет | |
additional_costs[].employee_id | string | Нет | |
additional_costs[].person_id | string | Нет |
{
"_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"
}
]
}Ответ
Структура ответа совпадает с POST /production/route-sheet/create.
POST /production/route-sheet/get-paging
Get production-route-sheet by paging
Тело запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
page | number | Да | По умолчанию: 1 |
limit | number | Да | По умолчанию: 20 |
search | string | Нет | |
organization_id | string | Нет | |
is_active | boolean | Нет | По умолчанию: false |
{
"page": 1,
"limit": 20,
"search": "string",
"organization_id": "646b0c2f3d4e1a001f8b4567",
"is_active": false
}Ответ
| Поле | Тип | Описание |
|---|---|---|
code | number | system code of response. По умолчанию: 0 |
message | string | |
status_code | number | status code of response. По умолчанию: 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
Параметры пути
| Параметр | Тип | Обязательно | Описание |
|---|---|---|---|
id | string | Да |
Тело запроса
Тело запроса не требуется.
Ответ
Структура ответа совпадает с POST /production/route-sheet/create.
DELETE /production/route-sheet/delete/{id}
Delete a production-route-sheet
Параметры пути
| Параметр | Тип | Обязательно | Описание |
|---|---|---|---|
id | string | Да |
Тело запроса
Тело запроса не требуется.
Ответ
{
"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
Параметры запроса
| Параметр | Тип | Обязательно | Описание |
|---|---|---|---|
deleted_at | string | Да |
Тело запроса
Тело запроса не требуется.
Ответ
{
"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.
Параметры пути
| Параметр | Тип | Обязательно | Описание |
|---|---|---|---|
id | string | Да | Production route-sheet ObjectId |
Тело запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
organization_id | string | Нет | Scope the returned quantities to this organization ObjectId |
warehouse_id | string | Нет | Warehouse ObjectId materials would be consumed from |
produced_warehouse_id | string | Нет | Warehouse ObjectId the output would land in |
{
"organization_id": "string",
"warehouse_id": "string",
"produced_warehouse_id": "string"
}Ответ
Структура ответа совпадает с 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.
Параметры пути
| Параметр | Тип | Обязательно | Описание |
|---|---|---|---|
itemId | string | Да | Route-sheet item ObjectId (from products[]._id on get-by-id), NOT the route sheet ObjectId |
Тело запроса
Тело запроса не требуется.
Ответ
{
"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"
}Эта страница сгенерирована из спецификации OpenAPI.