Ресурсы: все, что используется в производстве, но не является материалом. Например, работа сотрудников, электроэнергия, оборудование, накладные расходы. Ресурсы входят в состав продукта и учитываются в его себестоимости, остатков на складах у них нет. Через API ресурсы можно создавать, редактировать и удалять, получать список и данные ресурса.

Пути методов указаны относительно базового адреса API, а общие для всех методов правила (авторизация, формат запросов, частичное редактирование, постраничная выдача) описаны в статьях [Обзор API](https://developers.controlata.ru/hc/api-docs/articles/overview) и [Общие правила](https://developers.controlata.ru/hc/api-docs/articles/rules).

## Методы

| Метод | Что делает |
|---|---|
| [v1/resources/add](https://developers.controlata.ru/hc/api-docs/articles/resources-add) | Создает ресурс |
| [v1/resources/edit](https://developers.controlata.ru/hc/api-docs/articles/resources-edit) | Изменяет ресурс |
| [v1/resources/delete](https://developers.controlata.ru/hc/api-docs/articles/resources-delete) | Удаляет ресурс |
| [v1/resources/get_list](https://developers.controlata.ru/hc/api-docs/articles/resources-get-list) | Возвращает ресурсы компании |
| [v1/resources/get_entry](https://developers.controlata.ru/hc/api-docs/articles/resources-get-entry) | Возвращает данные ресурса |

## Поля ресурса

| Поле | Тип | Описание |
|---|---|---|
| id | int | ID ресурса |
| name | string | Название |
| type | string | Тип расчета: «rate», «percent» или «amortized» |
| dynamic | int | 1, если цена или процент указывается в составе продукта |
| base | string | База расчета процентного ресурса: «cost» или «price». У других типов null |
| unit | string | Единица измерения, код из статьи [Единицы измерения](https://developers.controlata.ru/hc/api-docs/articles/units-get-list). Есть только у фиксированной ставки и амортизации, у остальных null |
| price | float | Цена за единицу |
| percent | float | Процент процентного ресурса |
| initial_cost | float | Первоначальная стоимость оборудования |
| useful_life | float | Срок службы в единицах ресурса |
| left_life | float | Остаток срока службы. Уменьшается, когда ресурс списывается в производстве |
| notes | string | Заметки |
| archived | int | 1, если ресурс в архиве |
| categories | array | Категории ресурса: id и name |

## Типы ресурсов

Тип расчета определяет, как считается стоимость ресурса в составе продукта и какие поля нужны при создании.

| Тип | Как считается стоимость | Обязательные поля |
|---|---|---|
| «rate», Фиксированная ставка | Цена за единицу, умноженная на количество в составе. Подходит для оплаты труда, электроэнергии, контрактного производства | unit, price |
| «rate» с dynamic 1, Цена указывается в составе продукта | Сумма задается отдельно в составе каждого продукта | Нет |
| «percent», Процент | Процент от себестоимости или цены продажи продукта. Подходит для накладных расходов, комиссий | base, percent |
| «percent» с dynamic 1, Процент указывается в составе продукта | Процент задается отдельно в составе каждого продукта | base |
| «amortized», Амортизация | Цена за единицу равна первоначальной стоимости, деленной на срок службы. Подходит для оборудования, транспорта, инструментов | unit, initial_cost, useful_life |

База расчета (base) процентного ресурса:

* «cost»: себестоимость продукта без учета процентных ресурсов;
* «price»: цена продажи из карточки продукта.

Поля, которые не относятся к типу, в расчете не участвуют, а часть из них Controlata обнуляет при сохранении:

* у фиксированной ставки base становится null, а percent равен 0;
* у ставки с ценой в составе продукта price равен 1, а unit приходит как null;
* у процентного ресурса price равен 0, а unit приходит как null; если процент указывается в составе продукта, percent тоже равен 0;
* у амортизации price рассчитывается из initial_cost и useful_life, а dynamic всегда 0.

## Единицы измерения

Ресурсу можно назначить любую единицу, в том числе единицы времени и энергии, которые доступны только ресурсам: «ч», «мин», «кВт-ч». Список единиц в статье [Единицы измерения](https://developers.controlata.ru/hc/api-docs/articles/units-get-list).

Срок службы амортизируемого ресурса указывается в его единице. Указывайте время полезной работы, без простоев: если станок прослужит 2 года и за это время отработает около 2000 часов, передайте unit «ч» и useful_life 2000.

## Ресурсы в составе продукта

Ресурсы добавляются в продукт массивом resources в методах [v1/products/add](https://developers.controlata.ru/hc/api-docs/articles/products-add) и [v1/products/edit](https://developers.controlata.ru/hc/api-docs/articles/products-edit). Что передавать в строке для каждого типа, описано в разделе «Состав продукта» статьи [Продукты](https://developers.controlata.ru/hc/api-docs/articles/products).

После изменения или удаления ресурса Controlata пересчитывает себестоимость продуктов, в состав которых он входит.
