# Viento API
###### tags: `Viento`
- **Endpoints:**
- **staging:** https://viento.syberland.ru/api/1s
- **production:** `todo`
- **API key:**
- **staging:** abcde12345
- **production:** `todo`
> Передаем ключ как get параметер `api_key`
:::danger
цены передаются целыми числами (в копейках)
:::
:::warning
:warning: стандартные коды ошибок (401 и т.п.) тут не описываем
:::
## Информация о пользователе
- **Path:** /user/{uuid}
- **Method:** GET
- **Parameters:**
- uuid `string` _uuid пользователя_
- **Request body:** null
- **Responces:**
- 200: информация о пользователе
- uuid `string` _uuid пользователя_
- role `string` _роль пользователя_
- 404: пользователь с данным uuid не найден
## Создание нового заказа
- **Path:** /order
- **Method:** POST
- **Request body:**
- uuid `string` uuid заказа
- number `string` номер заказа
- comment `text` комментарий
- user `object`
- uuid `string` _uuid пользователя, создающего заказ_
- name `string` _ФИО пользователя_
- client `object`
- uuid `string` _uuid клиента_
- inn `string` _ИНН клиента_
- ogrn `string` _ОГРН клиента_
- name `string` _Наименование клиента_
- manager_uuid `string` _uuid менеджера клиента_
- goods `array`
- good `object`
- uuid `string` _uuid товара_
- article `string` _Артикул товара_
- name `string` _Наименование товара_
- qty `integer` _Количество товара_
- for_assembly_qty `integer` _Количество товара на сборку_ *****
- stock_qty `integer` _Количество товара на складе_
- reserved_qty `integer` _Зарезервированное количество товара на складе под этот заказ_
- reserved_qty_total `integer` _Зарезервированное количество товара на складе_
- price_per_item `integer` _Цена за штуку_
- price_total `integer` _Стоимость_
- nesting `string` _Вложимость_ уточнить формат
- **Responces:**
- 201: заказ создан
- 403: у данного пользователя нет прав на создание заказа
- 422: ошибка при валидации входных параметров
::: spoiler
### Примеры ###
***Url для теста***: https://viento.syberland.ru/api/order?api_key=abcde12345
***JSON для request body***:
```
{
"uuid": "e5308e14-cbe6-11ea-8435-fa83dbaf764d",
"number": "223",
"user": {
"uuid": "06257aec-571c-3c4a-a238-ebfda5e259ef",
"name": "Иванов И.П."
},
"client": {
"inn": "6230112711",
"name": "ТД Инструментальные технологии ООО"
},
"goods": [
{
"uuid": "d03efaf0-f506-11e7-88a9-00155d000a00",
"name": "DB130-05-00.400U0-WJ30UU",
"qty": 5,
"stock_qty": 5,
"price_per_item": 100,
"price_total": 500,
"nesting": 4
},
...
{
"uuid": "64ace21c-efc3-11e3-b3a1-14dae9b74559",
"name": "Рулон нетканного волокна NTR115x10MT Gr.AM-I",
"qty": 2,
"stock_qty": 1,
"price_per_item": 350,
"price_total": 700,
"nesting": 4
}
]
}
```
:::
## Список текущих заказов
- **Path:** /order
- **Method:** GET
- **Request body:** null
- **Responces:**
- 200: список заказов
- `array`
- order `object`
- uuid `string` _uuid заказа_
- status `string` _Статус заказа_
::: spoiler
### Примеры ###
***Url для теста***: https://viento.syberland.ru/api/order?api_key=abcde12345
***Response body JSON***:
```
{
"data": [
{
"uuid": "06257aec-571c-3c4a-a238-ebfda5e259ef",
"status": "готов к отгрузке",
},
{
"uuid": "a344a51d-12be-3b7e-87cc-38314411c4f4",
"status": "ожидание доукомплектации",
},
{
"uuid": "4f6b227c-20d3-3834-9553-11669bcac123",
"status": "сборка завершена",
}
]
}
```
:::
## Информация по заказу
- **Path:** /order/{uuid}
- **Method:** GET
- **Parameters:**
- uuid `string` _uuid заказа_
- **Request body:** null
- **Responces:**
- 200: информация о заказе
- uuid `string` _uuid заказа_
- status `string` _Статус заказа_
- goods `array`
- good `object`
- uuid `string` _uuid товара_
- qty `integer` _Количество товара_
- collected_qty `integer` _Собранное количество товара_
- 404: заказ с данным uuid не найден
::: spoiler
### Примеры ###
***Url для теста***: https://viento.syberland.ru/api/order/e5308e14-cbe6-11ea-8435-fa83d7baf768i7678/order?api_key=abcde12345
***Response body JSON***:
```
{
"data": {
"uuid": "8a7949e7-4971-3a86-83b4-4c2fdd4ec3a4",
"status": "не хватает позиций",
"goods": [
{
"uuid": "2a713b18-7c03-32bb-9be0-2a668de9286f",
"qty": "13",
"collected_qty": "7"
},
{
"uuid": "2f77baac-788e-3f98-b391-d60ff4a3ecce",
"qty": "531",
"collected_qty": "360"
},
{
"uuid": "1e1e0139-2593-35c0-883e-6f8e128562e0",
"qty": "304",
"collected_qty": "195"
}
]
}
}
```
:::
## Загрузка документа
Загружаем PDF-файл (УПД, ТТН) сервер
- **Path:** /upload
- **Method:** POST
- **Request body:**
- file `file` pdf файл
- **Responces:**
- 201: загружен
- file `string` _имя файла на сервере_
- 422: ошибка при загрузке файла
::: spoiler
### Пример ответа при корректной загрузке
***Response body JSON***:
```
{
"data": {
"file": "docs\/svgndJ2JhqgArmFbxy8z8x2WZFEXDrjZdByfdi9U.pdf"
}
}
```
:::
## Перевод заказа в статус "Ожидание доукомплектации"
- **Path:** /wait
- **Method:** POST
- **Request body:**
- uuid `string` uuid заказа
- user `object`
- uuid `string` _uuid пользователя, редактирующего заказ_
- name `string` _ФИО пользователя_
- **Responces:**
- 204: статус заказа изменен
- 403: у данного пользователя нет прав на изменение данного заказа
- 409: неверный статус заказа _(должен быть 'Сборка некомплектна')_
- 422: ошибка при валидации входных параметров
## Перевод заказа в статус "Согласовано к отгрузке"
- **Path:** /ready
- **Method:** POST
- **Request body:**
- uuid `string` uuid заказа
- user `object`
- uuid `string` _uuid пользователя, редактирующего заказ_
- name `string` _ФИО пользователя_
- goods `array`
- good `object`
- uuid `string` _uuid товара_
- name `string` _Наименование товара_
- qty `integer` _Количество товара_
- price_per_item `integer` _Цена за штуку_
- price_total `integer` _Стоимость_
- files `array` _файлы должны быть предварительно загружены на сервер!_
- upd `string` _имя файла УПД на сервере_
- ttn `string` _имя файла ТТН на сервере_
- **Responces:**
- 204: статус заказа изменен
- 403: у данного пользователя нет прав на изменение данного заказа
- 409: неверный статус заказа _(должен быть 'Заказ собран')_
- 422: ошибка при валидации входных параметров
## Перевод заказа в статус "Согласовано к отгрузке некомплект"
- **Path:** /ready_incomplete
- **Method:** POST
- **Request body:**
- uuid `string` uuid заказа
- user `object`
- uuid `string` _uuid пользователя, редактирующего заказ_
- name `string` _ФИО пользователя_
- goods `array`
- good `object`
- uuid `string` _uuid товара_
- name `string` _Наименование товара_
- qty `integer` _Количество товара_
- price_per_item `integer` _Цена за штуку_
- price_total `integer` _Стоимость_
- files `array` _файлы должны быть предварительно загружены на сервер!_
- upd `string` _имя файла УПД на сервере_
- ttn `string` _имя файла ТТН на сервере_
- **Responces:**
- 204: статус заказа изменен
- 403: у данного пользователя нет прав на изменение данного заказа
- 409: неверный статус заказа _(должен быть 'Сборка некомплектна')_
- 422: ошибка при валидации входных параметров