Производство: выпуск продуктов по их составу. Вы передаете только продукты и количество, а Controlata сама рассчитывает расход материалов, использованных продуктов и ресурсов по составам продуктов и себестоимость по FIFO. Через API производство можно создавать, редактировать и удалять, менять его статус, получать список и данные производства.
Пути методов указаны относительно базового адреса API, а общие для всех методов правила (авторизация, формат запросов, частичное редактирование, строки операций, постраничная выдача) описаны в статьях Обзор API и Общие правила.
Методы
| Метод | Что делает |
|---|---|
| v1/production/get_statuses | Возвращает статусы производства компании |
| v1/production/add | Создает производство |
| v1/production/edit | Изменяет производство |
| v1/production/delete | Удаляет производство |
| v1/production/update_status | Меняет статус производства |
| v1/production/get_list | Возвращает список производств |
| v1/production/get_entry | Возвращает производство с продуктами и расходом |
Поля производства
| Поле | Тип | Описание |
|---|---|---|
| id | int | ID производства |
| num | int | Номер. Присваивается автоматически: следующий по порядку |
| name | string | Название |
| date | string | Дата производства, YYYY-MM-DD |
| status | int | Код статуса из v1/production/get_statuses |
| order_id | int | ID заказа, под который создано производство. 0, если производство не связано с заказом |
| produce_subproducts | int | 1, если заготовки производятся вместе с продуктами |
| materials_storage_id | int | Склад, с которого списываются материалы. 0, если склад выбирается автоматически |
| materials_storage_name | string | Название склада материалов |
| products_storage_id | int | Склад, на который поступают произведенные продукты |
| products_storage_name | string | Название склада произведенных продуктов |
| subproducts_storage_id | int | Склад, с которого списываются использованные продукты. 0, если склад выбирается автоматически |
| subproducts_storage_name | string | Название склада использованных продуктов |
| cost | float | Себестоимость всего производства, включая стоимость привязанных списаний |
| price | float | Стоимость произведенных продуктов по их цене продажи |
| amount | float | Общее количество продуктов. null, если у продуктов разные единицы измерения |
| lines | int | Количество строк продуктов |
| bom_changed | int | 1, если составы продуктов изменились после последнего расчета производства |
| notes | string | Заметки |
Статусы
Статусы производства настраиваются в каждой компании: их число, названия и порядок задаются в Controlata в разделе Настройки → Статусы производства. По умолчанию их три: План, В процессе и Сделано. Не зашивайте коды статусов в интеграцию, получайте их методом v1/production/get_statuses. Коды идут по порядку статусов, начиная с 0.
Статус определяет, что уже произошло на складе. У каждого статуса есть четыре флага:
| Флаг | Что значит 1 |
|---|---|
| materials_fact | Материалы списаны со склада |
| subproducts_fact | Использованные продукты списаны со склада |
| resources_fact | Ресурсы учтены как использованные. У амортизируемых ресурсов уменьшается оставшийся срок службы |
| products_fact | Произведенные продукты поступили на склад |
Если флаг равен 0, движение только запланировано: остаток не меняется, а количество попадает в поле planned остатков (см. Материалы). Флаги отражают общие правила статусов. Если в настройках статусов заданы условные правила для категорий, позиции этих категорий списываются или поступают уже в более раннем статусе.
Новое производство создается в статусе из настройки Статус нового производства по умолчанию. Сменить статус можно методом v1/production/update_status.
Склады
У производства три склада:
- materials_storage_id: откуда списываются материалы. По умолчанию это Склад по умолчанию для списания материалов при производстве.
- subproducts_storage_id: откуда списываются продукты, которые входят в состав выпускаемых (использованные продукты). По умолчанию это Склад по умолчанию для списания продуктов при производстве.
- products_storage_id: куда поступают произведенные продукты. По умолчанию это Склад по умолчанию для произведенных продуктов.
Склады по умолчанию задаются в Controlata на странице Склады. Если там для списания выбрано Автоматически, каждый материал или продукт списывается со склада, где его остаток больше всего, и в поле склада производства хранится 0. Явно выбрать автоматический склад через API нельзя: он применяется, только если выбран в складах по умолчанию, а склад не передан при создании производства.
Расход и себестоимость
Расход рассчитывается по составу каждого продукта на момент создания или редактирования производства. Материалы и использованные продукты списываются по FIFO, их себестоимость вместе с ресурсами составляет себестоимость производства. Если остатка не хватает, производство все равно проводится, а недостающее количество оценивается по цене последней партии.
Расход можно уточнить вручную только в Controlata (кнопка Уточнить расход в карточке производства). Ручные уточнения сохраняются при редактировании производства через API.
Если составы продуктов изменились после расчета, у производства появляется флаг bom_changed. Производство при этом не пересчитывается само: расход обновится при следующем вызове v1/production/edit.
Заготовки
Заготовки: продукты, которые входят в состав других продуктов. Поле produce_subproducts определяет, что с ними происходит:
- 0: заготовки берутся готовыми, списываются со склада subproducts_storage_id;
- 1: заготовки производятся вместе с основными продуктами. Вместо них списываются материалы и ресурсы из их состава, на любой глубине вложенности.
Производство под заказ
Если в заказе включено производство, Controlata создает производство «Под заказ <номер>» и связывает его с заказом (поле order_id). Подробнее в статье Заказы.
- Продукты такого производства задает заказ. Изменить их через v1/production/edit нельзя, а название, дату, заметки, склады и produce_subproducts можно.
- Удалить такое производство нельзя: оно удаляется вместе с заказом или при отключении производства в заказе.
- Произведенные продукты не поступают на склад, а сразу уходят в заказ. Поэтому products_storage_id на остатки не влияет.
Привязанные списания
К производству можно привязать списание (поле production_id списания). Стоимость списания добавляется к себестоимости производства и распределяется между произведенными продуктами. Подробнее в статье Списания.