iiko
November 5, 2023

Отчёт для Айко: "Продукты на сотрудника в час"

На платформе Fudov Smart появился новый отчёт: "Продукты на сотрудника в час". Для точного определения часов пик, контроля производительности сотрудников и построения более эффективного расписания.

Преимущества отчёта

Этот отчёт помогает детально и точно проанализировать "производственную" нагрузку сотрудников в единицах "продуктов в час" (~"блюд в час") за выбранный период времени (например, за последние пять пятниц, в интенсивный предпраздничный день, за последнюю неделю и т.п.). И точно определить пиковые часы.

В паре с отчётностью по производительности сотрудников в единицах "рублей в час" (к примеру, ориентир требуемой производительности — 2000 рублей в час на сотрудника) руководство предприятия может строить более эффективные расписания для сотрудников. Снижая риски нехватки в пиковые часы и переизбытка в "тихие" часы.

Отчёт помогает найти баланс нагрузки сотрудников и пропорционально соблюдать экономику предприятия, поддерживать качество/скорость на высоком уровне.

Отчёт "Продукты на сотрудника в час"

Как работает отчёт

Продуктами в этом отчёте считаются блюда и модификаторы (не все, об этом ниже). По-другому отчёт можно назвать и "Приготовленные блюда на сотрудника в час", и "Производительность сотрудников в час".

Итак, алгоритм построения отчёта "Продукты на сотрудника в час":

  1. Выгрузить должности -> /resto/api/employees/roles. В этом отчёте нам нужны будут должности, для которых задан тип смены scheduleType = 'HOURS'.
  2. Выгрузить сотрудников -> /resto/api/employees. Чтобы составить справочник идентификаторов сотрудников и ФИО.
  3. Выгрузить OLAP отчёт со всеми блюдами за выбранные дни.
  4. Выгрузить явки сотрудников за выбранные дни -> /resto/api/employees/attendance. Явки связаны с сотрудниками и должностями соответствующими внешними ключами.
  5. Рассчитать для каждого часа: сколько работало сотрудников, сколько продуктов было реализовано, какая выручка получена.

Остаётся добавить удобства для пользователей: сделать фильтр по подразделениям, по дням недели, по продуктам (блюдо "Бутылка газировки" продуктом не будем считать), по должностям (курьеров не учитываем в отчете).

Подробности и тонкие настройки

Для получения OLAP отчёта вызывается метод iikoServer API /resto/api/v2/reports/olap со следующими параметрами:

{
  "reportType": "SALES",
  "buildSummary": "false",
  "groupByRowFields": [
    "Department.Id",
    "DishName",
    "DishCode",
    "DishCategory",
    "DishCategory.Id",
    "DishGroup",
    "DishGroup.Id",
    "DishType",
    "Delivery.Number",
    "OpenTime",
    "OrderNum"
  ],
  "groupByColFields": [
  ],
  "aggregateFields": [
    "DishDiscountSumInt",
    "DishAmountInt"
  ],
  "filters": {
    "OpenDate.Typed": {
      "filterType": "DateRange",
      "periodType": "CUSTOM",
      "from": "...",
      "to": "...",
      "includeLow": "true",
      "includeHigh": "true"
    },     
    "DishType": {
      "filterType": "IncludeValues",
      "values": ["DISH", "MODIFIER"]
    },
    "Department.Id": {
      "filterType": "IncludeValues",
      "values": [...]
    },
    "DeletedWithWriteoff": {
      "filterType": "ExcludeValues",
      "values": ["DELETED_WITHOUT_WRITEOFF"]
    }
  }
}

Для каждого блюда из OLAP отчёта далее определяется час и количество долей продукта. Например, блюдо "Половина пиццы" будет учтено с долей продукта 0.5. А блюдо "Один кусочек пиццы Пепперони" будет учтено с долей 1/8, или 1/10 (в зависимости от того, на сколько кусочков делится пицца при производстве).

Модификаторы учитываются так: они не увеличивают долю продукта, но увеличивают сумму.

В режиме отладки можно проверить по шагам, как накапливаются и усредняются итоговые значения:

Час с 10:00.
Всего человекочасов: 04:00.
Всего продуктов: 28.75.
Всего сумма со скидкой: 11807₽.
Сумма на человека в час: 2951.75₽.

Сотрудники и учтённое количество человекочасов:
1. Менеджер Иванов Иван,
явка с 04.11.2023 09:06:00 по 04.11.2023 18:34:00, 01:00
2. Пиццамейкер Петров Пётр,
явка с 04.11.2023 09:57:00 по 04.11.2023 21:11:00, 01:00
3. Менеджер Сидоров Сидор,
явка с 04.11.2023 08:45:00 по 04.11.2023 20:43:00, 01:00
4. Стажер Алексеев Алексей,
явка с 04.11.2023 08:35:00 по 04.11.2023 16:42:00, 01:00

Заказы:
Заказ 11, открыт 2023-11-04T10:09:48,
продукт #00381 [Питстоп Мясной],
в штуках блюд 1, в долях продукта 1,
категория [Питстопы], группа [Закуски],
сумма со скидкой 186₽
...
Отчёт "Продукты на сотрудника в час"

На каких условиях разрабатываются такие интеграции Айко?

С предложением разработать отчёт "Продукты на сотрудника в час" к нам обратился наш партнёр — Лоло Пицца lolopizza.ru. Поскольку идея на миллион (мы уверены, что отчёт будет полезен многим пользователям платформы Fudov Smart), разработка за наш счёт.

Подготовка первого черновика заняла около месяца, тонкая настройка совместно с партнёром — ещё месяц. За это время мы разобрались, как учитывать модификаторы и комбо, какие блюда считать продуктами, как учитывать явки, переходящие в следующие сутки.

Сегодня отчёт подключен к демо-кабинету и доступен для всех пользователей платформы Fudov Smart по подписке.

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

Мы уже более 5 лет занимаемся разработкой интеграций Айко и подобных отчётов. А ещё у нас своё курьерское приложение и telegram боты, которые беспощадно истребляют рутину и поднимают автоматизацию ресторана и доставки на новый уровень. Если заинтересовались — пишите на почту hello@fudov.ru.