Изменяет списание. Меняются только переданные поля, остальные остаются прежними. Подробнее о частичном редактировании в статье Общие правила.
v1/writeoffs/edit.php
Параметры
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
| writeoff_id | int | Да | ID списания |
| materials | array | Нет | Списываемые материалы: id или sku и amount |
| products | array | Нет | Списываемые продукты: id или sku и amount |
| num | string | Нет | Номер |
| date | string | Нет | Дата списания, YYYY-MM-DD |
| materials_storage_id | int | Нет | Склад, с которого списываются материалы |
| products_storage_id | int | Нет | Склад, с которого списываются продукты |
| production_id | int | Нет | ID производства. 0 снимает привязку |
| notes | string | Нет | Заметки |
Если передан хотя бы один из массивов materials и products, строки заменяются целиком, а непереданный массив считается пустым. Если не передан ни один, строки остаются прежними. Статус этим методом не меняется, для него есть v1/writeoffs/update_status.
Как работает
- Списание проводится заново: прежние движения отменяются, строки списываются по FIFO с текущими остатками. Статус сохраняется.
- Переданный склад должен существовать, 0 не принимается.
- Если списание было привязано к производству, его прежняя стоимость вычитается из себестоимости производства, а новая добавляется к производству из production_id.
Пример запроса
{
"writeoff_id": 19291,
"materials": [
{
"id": 2051,
"amount": 0.2
}
],
"production_id": 39978
}
В этом примере передан только materials, поэтому продукт из списания удаляется.
Пример ответа
{
"success": true
}
Ошибки
| Ошибка | Причина |
|---|---|
| No writeoff_id in input | Не передан writeoff_id |
| Write-off not found or access denied | Списание не найдено или удалено |
| No products or materials in input | Массивы строк переданы, но пустые |
| Material with id 2051 not found | Материал не найден или удален |
| Amount must be greater than 0 for material with id 2051 | Количество не число или не больше 0 после округления |
| Storage ID is not set | Передан склад, равный 0 или пустой |
| Storage ID not found | Склад не найден или удален |
| Production not found or access denied | Производство из production_id не найдено |
| Date is not a valid date in format YYYY-MM-DD | Неверный формат даты |
Остальные ошибки строк такие же, как в v1/writeoffs/add.