Перемещения: перенос материалов или продуктов с одного склада на другой. Через API перемещения можно создавать, редактировать и удалять, менять их статус, получать список и данные перемещения.
Пути методов указаны относительно базового адреса API, а общие для всех методов правила (авторизация, формат запросов, частичное редактирование, строки операций, постраничная выдача) описаны в статьях Обзор API и Общие правила.
Методы
| Метод | Что делает |
|---|---|
| v1/transfers/add | Создает перемещение |
| v1/transfers/edit | Изменяет перемещение |
| v1/transfers/delete | Удаляет перемещение |
| v1/transfers/update_status | Меняет статус перемещения |
| v1/transfers/get_list | Возвращает список перемещений |
| v1/transfers/get_entry | Возвращает перемещение со строками |
Поля перемещения
| Поле | Тип | Описание |
|---|---|---|
| id | int | ID перемещения |
| num | string | Номер |
| date | string | Дата перемещения, YYYY-MM-DD |
| status | int | Статус: 0 План, 1 Отправлено, 2 Получено |
| source_storage_id | int | Склад, с которого перемещаются позиции |
| source_storage_name | string | Название склада-источника |
| target_storage_id | int | Склад, на который перемещаются позиции |
| target_storage_name | string | Название склада-получателя |
| cost | float | Себестоимость перемещенного по FIFO |
| price | float | Стоимость продуктов по цене продажи. У перемещения материалов 0 |
| amount | float | Общее количество. null, если у позиций разные единицы измерения |
| lines | int | Количество строк |
| notes | string | Заметки |
Материалы или продукты
Одно перемещение переносит либо материалы, либо продукты. Поэтому строки передаются только в одном из массивов: materials или products. Чтобы переместить и то и другое, создайте два перемещения.
Оба склада должны хранить позиции этого типа: в настройках склада для материалов (или продуктов) не должно быть выбрано Нет. Какие позиции хранит склад, показывают поля materials и products в v1/storages/get_list. Склад-источник и склад-получатель должны различаться.
Статусы
Каждая строка перемещения состоит из двух движений: расхода на складе-источнике и прихода на складе-получателе. Статус определяет, какие из них уже произошли.
| Код | Статус | Склад-источник | Склад-получатель |
|---|---|---|---|
| 0 | План | Расход запланирован | Приход запланирован |
| 1 | Отправлено | Позиции списаны | Приход запланирован |
| 2 | Получено | Позиции списаны | Позиции поступили |
Запланированное движение не меняет остаток, а учитывается в поле planned остатков. Новое перемещение создается в статусе из настройки Статус нового перемещения по умолчанию. Сменить статус можно методом v1/transfers/update_status.
Себестоимость
Позиции списываются со склада-источника по FIFO и поступают на склад-получатель с той же себестоимостью. Если остатка на источнике не хватает, перемещение все равно проводится, остаток источника уходит в минус.
Номер
Номер перемещения строковый и задается свободно. Если не передать его при создании, Controlata присвоит следующий по порядку: наибольший числовой номер плюс 1. Уникальность номера не проверяется.