остатки
May 20, 2021

Интеграция Айко. Отчет по остаткам на складе и на кухне.

Задача

Есть фабрика-кухня, которая готовит полуфабрикаты. Есть кафе, где из этих полуфабрикатов готовят блюда для гостей. Нужно контролировать остатки полуфабрикатов и там, и там.

Требуется сделать отчет для контроля остатков полуфабрикатов со следующим функционалом:

  1. Отчет должен быть доступен онлайн на платформе Fudov Smart, в веб-интерфейсе.
  2. Задаётся список контролируемых полуфабрикатов.
  3. Для кафе нужно показать текущие остатки полуфабрикатов, рассчитать средний расход полуфабрикатов за последние 7 дней и спрогнозировать, на сколько дней хватит запасов кафе.
  4. Для фабрики-кухни нужно показать остатки на текущую дату, минимальные допустимые остатки (задаются вручную или автоматически по средним данным), на основании среднего расхода кафе спрогнозировать, на сколько дней хватит запасов фабрики-кухни.

Да, всё это можно найти и в интерфейсе Айко. Но вот показать все данные в одном окне, добавить произвольную формулу расчета минимальных остатков (скажем, установить минимальный остаток равным расходу полуфабриката за последнюю неделю), сделать индивидуальную раскраску полей, требующих внимания администратора, — тут поможет Семён Фудов.

Мы занимаемся разработкой интеграций Айко и подобных отчётов, если заинтересовались — заходите на наш сайт fudov.ru, там все подробности и демо-кабинет.

Решение. Отчёт по остаткам Айко.

Итоговый отчет выглядит в виде двух таблиц, для кафе и фабрики-кухни.

Контроль остатков полуфабрикатов в кафе
Контроль остатков полуфабрикатов на фабрике-кухне

Технические требования

Нам как разработчикам требуется получить от Заказчика один аккаунт iikoServerAPI для подключения к серверу Айко.

Всё, больше ничего не требуется, дальше работаем мы 💪

Алгоритм работы отчета

  1. Подключение к iikoServerAPI. На время выгрузки данных занимается один слот лицензии.
  2. Выгрузка остатков складов. Одним вызовом получаем остатки фабрики-кухни и кафе. /api/v2/reports/balance/stores
  3. Выгрузка расходов полуфабрикатов для расчета средних значений. /api/reports/productExpense
  4. Освобождение слота лицензии.

Выполнение пункта 3 занимает у Заказчика около 5 секунд на один день. Весь отчет строится около 40 секунд (считаем средние значения за последние 7 дней).

Особенность выгрузки остатков складов — нужно учитывать время формирования акта реализации, об этом ниже.

Особенности акта реализации

Данные о продажах регистрируются в Айко актом реализации.

На основании данных о продажах в течение учетного дня, зарегистрированных через iikoFront, формируется автоматический акт реализации. Есть нюансы, открываем официальную документацию: https://ru.iiko.help/articles/#!iikooffice-7-6/topic-215

Нас интересует вот это:

Акт реализации проводится временем, заданным в общесистемных настройках, по умолчанию это 23:00. В нем содержится список проданных блюд и информация об их количестве и цене продажи на основании распечатанных чеков.

На практике это означает следующее. Допустим, утром внутренним перемещением 30 кг лапши было передано с фабрики-кухни в кафе. В течение дня кафе готовило блюда и передавало готовые заказы клиентам. Соответственно, остаток лапши в кафе постепенно уменьшался.

Чтобы узнать текущий остаток полуфабриката, iikoServerAPI предлагает использовать метод /api/v2/reports/balance/stores. Но нужно помнить, как правильно задать параметр timestamp. В примере на официальном сайте вот так: timestamp=2016-10-18T23:10:10

Чтобы был учтен автоматический акт реализации, время должно быть позже 23:00, в примере — 23:10:10.