Модуль «Производство» подключается отдельно
Сырьё, рецептуры, производственные задания, история движений и инвентаризация появляются в меню только после подключения модуля «Производство». Заведению, которое ничего не производит, а просто перепродаёт, достаточно включить один раздел «Закупки».
Сырьё
Реестр сырья, из которого производится продукция, — в отличие от «Меню и товаров», где лежит готовая продукция для клиента. По каждой позиции видно текущий остаток, дату последнего пересчёта и того, кто считал. Если с последнего пересчёта прошло больше 30 дней, строка подсвечивается жёлтым.
Остаток может уйти в минус, и это нормально
Система не требует, чтобы остаток был не меньше нуля: если продали больше, чем было, число станет отрицательным и выведется как «минус — продано больше остатка» со ссылкой на операции, которые к этому привели. Честный минус лучше, чем лживый ноль.
Среднюю себестоимость единицы видит только тот, у кого есть право factory.costs. Без этого права поле себестоимости остаётся пустым — не «0» и не поддельный прочерк.
Рецептуры
Состав производимой продукции: какое сырьё и в каком количестве уходит на одну единицу. У каждой рецептуры есть состояние (действующая, черновик, в архиве) и собственная версия. Правка действующей рецептуры создаёт новую версию, а не перезаписывает прежнюю, — чтобы старые производственные задания по-прежнему ссылались на ту рецептуру, по которой их делали.
Производственные задания
Реальный выпуск продукции по заданной рецептуре: после выполнения система сама списывает сырьё со склада по составу. Если сырья не хватает, она перечислит, чего именно недостаёт (short_material), и даст ссылку на страницу приёмки сырья, а не ограничится сообщением «не удалось».
Отклонение от рецептуры — если на деле ушло больше или меньше сырья, чем заложено, разница сохраняется и называется именно «отклонением от рецептуры», а не «браком»: ошибаться может и рецептура, не только человек за столом.
История движений
Хронология прихода и расхода сырья и товаров по всему заведению: что и когда поступило или ушло и кто это записал. В каждой строке всегда указан человек, потому что автоматических весов и сканеров у заведения нет — все цифры вводят руками.
Инвентаризация
Пересчёт фактического остатка и сверка с системой с последующей корректировкой недостачи или излишка. Корректировка без указания причины не сохраняется (variance_reason_required): объяснение расхождения обязательно всегда.
Закупки
Заявка на покупку, согласование и заказ товара для заведения — в отличие от «Заявок сотрудников на возмещение», где человек возвращает свои личные траты. Полный путь: заявка → согласование → заказ поставщику → приёмка на склад → долг перед поставщиком.
Шаг за шагом
- Заявка на покупку — создать её может любой сотрудник, указав позиции и количество
- Согласование — утверждает или отклоняет тот, у кого есть право purchase.approve. Правила, с какой суммы какое право требуется, задаются в разделе «Правила согласования» (если ничего не задано, по умолчанию любая сумма требует purchase.approve)
- Заказ поставщику — заказ выписывает обладатель права purchase.order, выбирая поставщика из справочника
- Приёмка на склад — обладатель права purchase.receive подтверждает, что товар пришёл, и принимает его как имущество или как сырьё, в зависимости от заказа
- Долг и оплата — дальше работает обладатель права purchase.payables в разделе «Долг перед поставщиками»
Эти три права владелец выдаёт вручную каждому: автоматически их не получает никто
purchase.approve, purchase.order и purchase.payables не входят ни в одну роль автоматически, включая «управляющего». Свободно проходит только владелец с полными правами (*). Выдайте эти права сотрудникам на странице «Роли и права», иначе каждый шаг будет стоять в ожидании одного человека — владельца.
Поставщики
Справочник поставщиков, у которых заведение закупается: из него выбирают контрагента при выписке заказа, и к нему же привязан долг по каждому из них.
Долг перед поставщиками
Суммы, которые заведение ещё не оплатило, — продолжение заказов, по которым товар уже принят. Записать платёж или закрыть долг может только обладатель права purchase.payables. Цифры на этой странице всегда привязаны к реальным заказам, а не вводятся отдельно руками.