Изменяет ресурс. Меняются только переданные поля, остальные остаются прежними. Подробнее о частичном редактировании в статье Общие правила.
v1/resources/edit.php
Параметры
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
| resource_id | int | Да | ID ресурса |
| name | string | Нет | Название |
| type | string | Нет | Тип расчета: «rate», «percent» или «amortized» |
| dynamic | int | Нет | 1: цена или процент указывается в составе продукта |
| unit | string | Нет | Единица измерения. Учитывается только у фиксированной ставки и амортизации |
| price | float | Нет | Цена за единицу, 0 или больше |
| base | string | Нет | База расчета: «cost» или «price» |
| percent | float | Нет | Процент, больше 0 и не больше 100 |
| initial_cost | float | Нет | Первоначальная стоимость, 0 или больше |
| useful_life | float | Нет | Срок службы в единицах ресурса, больше 0 |
| notes | string | Нет | Заметки |
| categories | array | Нет | ID категорий. Заменяют текущие целиком |
Чтобы очистить заметки, передайте пустую строку, чтобы снять все категории, передайте пустой массив. Какие поля нужны каждому типу, описано в статье Ресурсы.
Как работает
- Себестоимость. После изменения Controlata пересчитывает себестоимость продуктов, в состав которых входит ресурс. Уже созданные производства не пересчитываются.
- Процент. Если у процентного ресурса процент задан в самом ресурсе, новый процент записывается в состав всех продуктов с этим ресурсом.
- Смена типа. Передайте вместе с type поля, которых у ресурса еще нет: unit для фиксированной ставки и амортизации, base и percent для процента, initial_cost и useful_life для амортизации. Количество ресурса в составе продуктов при смене типа не пересчитывается, проверьте его после изменения.
- Ставка с ценой в составе продукта. У такой ставки сохранены единица «шт» и цена 1. Если переводите ее в обычную фиксированную ставку (dynamic 0), передайте unit и price.
- Единица измерения. Если новая единица из той же группы (например, «мин» вместо «ч»), Controlata пересчитывает историю использования ресурса. Цена при этом не пересчитывается: передайте цену за новую единицу. Сменить группу (например, «ч» на «кВт-ч») нельзя, если ресурс входит в состав продукта.
- Ресурс уже использован в производстве. У такого ресурса нельзя менять тип расчета, первоначальную стоимость, срок службы и единицу амортизируемого ресурса. Название, заметки, цену, процент, базу расчета и категории менять можно.
Пример запроса
{
"resource_id": 57,
"price": 650
}
Пример ответа
{
"success": true
}
Ошибки
| Ошибка | Причина |
|---|---|
| No resource_id in input | Не передан resource_id |
| Resource not found or access denied | Ресурс не найден или удален |
| Name must not be empty | Передано пустое название |
| Name must be a string | Название передано не строкой, например массивом |
| Invalid type value. Must be one of: rate, percent, amortized | Неверный type |
| No unit in input | Тип сменился на фиксированную ставку или амортизацию, а единицы у ресурса нет |
| Unit not set | Передана пустая единица измерения |
| Unit not found | Неизвестная единица измерения |
| Unit cannot be changed to another unit group: the resource is used in components of products | Смена группы единицы у ресурса из состава продукта |
| Invalid price value. Must be a number, 0 or greater | Цена не число или меньше 0 (так же для initial_cost) |
| Invalid base value. Must be one of: cost, price | Неверная база расчета или она не передана при смене типа на процент |
| Percent must be greater than 0 and not exceed 100 | Процент вне диапазона или не передан при смене типа на процент |
| Useful life must be greater than 0 | Срок службы 0 или меньше, или не передан при смене типа на амортизацию |
| The resource is already used in production, so these fields cannot be changed: type, useful_life | Ресурс уже списывался в производстве. В конце перечислены поля, которые нельзя менять: type, initial_cost, useful_life, unit |
| Category 12 not found | Категория не найдена |