Skip to main content
Полный перечень полей — в глоссарии смен сотрудников.

Что показывает отчёт

Отчёт «Смены сотрудников» показывает список рабочих смен персонала на точках проката и подробную детализацию по каждой смене: сколько аренд оформил сотрудник, сколько принял оплат, сколько сделал возвратов, сколько оказал дополнительных услуг и сколько было штрафов. Отчёт read-only в том смысле, что сам не открывает и не закрывает смены — открытие/закрытие смены происходит в другом функционале; однако при открытии детализации одной смены отчёт пересчитывает её итоговые показатели и сохраняет их заново, если пересчёт дал другой результат (см. ниже). Отчёт состоит из двух экранов:
  • Список смен — таблица со сроками смены, сотрудником, точкой проката и краткими итогами.
  • Детализация смены — при открытии одной смены отчёт досчитывает и показывает разбивку оплат, возвратов и услуг по каждой позиции.
Доступ к обоим экранам проверяется правом на просмотр рабочих смен. Если у роли сотрудника нет права на просмотр смен, оба запроса будут отклонены.

Список смен

Что возвращает список

По каждой смене в списке отдаются: начало смены, конец смены, сотрудник, точка проката и «Итоги смены» — тот же агрегированный JSON, что хранится в самой смене (см. раздел «Ключи итогов смены» ниже). Разбивка по способам оплаты, возвратам и услугам в списке не считается — она доступна только в детализации конкретной смены. Итоги в списке берутся как есть из сохранённых данных смены и не пересчитываются при каждом запросе списка. Список не ограничен точкой проката или сотрудником по умолчанию — отдаются все смены компании, доступные фильтрам и правам пользователя.

Фильтрация

Фильтр по окончанию смены («от» и «до») никогда не отбрасывает ещё не закрытые смены: смена без даты окончания проходит фильтр независимо от заданного диапазона дат. То есть если задан период «конец смены с 1 по 10 числа», в выдачу всё равно попадут все текущие (не закрытые) смены сотрудников — это сделано, чтобы открытые смены не «пропадали» из отчёта при фильтрации по дате закрытия.
Поиск по тексту ищет только по имени пользователя (логину), фамилии и имени сотрудника, который вёл смену; по названию точки проката текстовый поиск не работает (доступен только точный фильтр).

Сортировка

Список можно сортировать по началу смены, концу смены, точке проката и сотруднику. Сортировка по умолчанию (если параметр сортировки не передан) — от самой новой смены по дате начала к самой старой.

Детализация смены

Что происходит при открытии одной смены

В отличие от списка, при запросе детализации одной смены отчёт не просто читает сохранённые данные — он пересчитывает «Итоги смены» заново и одновременно составляет три дополнительных разреза: «Оплаты за смену», «Возвраты за смену» и «Услуги за смену». Эти три разреза не хранятся в базе — они существуют только в рамках одного запроса детализации и строятся на лету. А пересчитанные «Итоги смены» сохраняются обратно в саму смену, но только если пересчёт дал другой результат: если содержимое итогов совпало с тем, что уже записано, запись не выполняется.
Пересчёт итогов может выполняться при каждом открытии детализации, поэтому для точки проката с большим числом операций за смену открытие детализации — не бесплатная операция. Но само сохранение теперь происходит только при реальном изменении цифр: повторные просмотры одной и той же смены больше не переписывают её итоги одним и тем же значением.
Закрытая смена по-прежнему может обновиться: если задним числом изменили аренду, оплату или услугу, попавшую в её период, следующее открытие детализации пересчитает и перезапишет её итоги. Полной «заморозки» закрытых смен нет — если итоги смены используются как основание для расчёта зарплаты, стоит фиксировать их отдельно, вне этого отчёта.

Как определяется «конец смены» для расчётов

Все расчёты внутри смены (аренды, оплаты, возвраты, услуги) используют не поле «Конец смены» напрямую, а вычисляемое поле «Конец смены (эффективный)»:
  • если смена закрыта — используется фактическое время закрытия;
  • если смена ещё открыта (конец смены не проставлен) — используется текущий момент времени на момент запроса.
Благодаря этому у открытой смены итоги и детализация всегда считаются «по текущее время», а не оказываются пустыми до момента закрытия. Обратная сторона этого: повторные запросы детализации по одной и той же ещё не закрытой смене могут показывать разные (растущие) итоги, даже если между запросами ничего вручную не менялось.

Расчёт «Оплаты за смену» и «Возвраты за смену»

Берутся успешные оплаты, которые:
  • приняты сотрудником, ведущим смену (по полю «кто создал операцию»);
  • совершены в промежутке от начала смены до эффективного конца смены;
  • ещё не включены ни в один финансовый акт сверки (взаиморасчёт/стейтмент);
  • относятся к аренде той же точки проката, что и смена, либо не привязаны к аренде вовсе.
Эти оплаты группируются по способу оплаты — для каждого способа считается количество операций и сумма. Отдельно тем же способом собираются возвраты: из того же набора оплат отбираются те, у которых есть связанный возврат, и группируются по способу оплаты аналогично.
Оплата по аренде другой точки проката в детализацию смены больше не попадает. А вот оплата, не привязанная ни к одной аренде (например, оплата продажи или свободный приход в кассу), учитывается независимо от точки — у неё просто нет точки проката, по которой её можно было бы отсеять.
Оплаты, которые уже привязаны к акту сверки (закрыты в рамках взаиморасчёта), из расчёта детализации смены исключаются полностью — они не попадут ни в «Оплаты за смену», ни в пересчитанные итоги оплат/возвратов смены, даже если фактически были приняты в её период.

Расчёт «Услуги за смену»

Берутся оказанные дополнительные услуги по аренде, которые сотрудник либо сам оформил, либо участвовал в их обработке (см. ниже «Отбор аренд»), за период с начала смены до эффективного конца смены. Из выборки исключаются услуги по арендам в статусе «отменена» и «черновик/заявка». Услуги группируются по конкретной услуге: считается суммарная стоимость и количество оказаний.
Точка проката проверяется в обоих путях отбора — и когда аренду создал сотрудник смены, и когда он лишь совершил над ней действие. Услуга по аренде другой точки проката в детализацию услуг этой смены не попадает.

Пересчёт «Итогов смены»

При открытии детализации заново пересчитываются все восемь стандартных показателей блока «Итоги смены» (количество и сумма аренд, количество и сумма штрафов, количество и сумма успешных оплат, количество и сумма возвратов), плюс дополнительные числовые пользовательские поля аренды компании (если в настройках компании определены собственные числовые поля для аренд — они суммируются точно так же, по такому же периоду и правилам отбора аренд). Пересчитанные значения сохраняются в саму смену только при их фактическом изменении: если новый результат совпал с сохранённым, запись в базу не выполняется.

Отбор аренд для «Количества аренд» и «Суммы аренд»

Считаются аренды, которые не находятся в статусе «отменена» или «черновик/заявка», относятся к точке проката этой смены и связаны с ней одним из двух способов:
  • аренда была создана сотрудником смены в период смены; или
  • сотрудник смены совершил хотя бы одно действие (любое фиксируемое действие по заявке — например, обработку, изменение статуса и т.п.) над арендой в период смены.
«Сумма аренд» считается по цене аренды со скидкой, а не по базовой цене.
Точка проката проверяется в обоих случаях, поэтому аренда другой точки в итоги смены не попадёт, даже если сотрудник что-то с ней делал в свою смену. То же правило действует и при отборе услуг для детализации (см. выше).

Отбор штрафов

«Количество штрафов» считает аренды из того же отбора, у которых размер штрафа больше нуля. «Сумма штрафов» — сумма штрафов по этим арендам.

Отбор оплат и возвратов для итогов

«Количество оплат» и «Сумма оплат» в итогах смены берутся из того же набора успешных, ещё не сверенных оплат, что и в разделе «Оплаты за смену» — то есть это агрегат по всем способам оплаты вместе. Аналогично «Количество возвратов» и «Сумма возвратов» — агрегат по всем способам из раздела «Возвраты за смену».

Дополнительные пользовательские числовые поля

Если у компании настроены собственные числовые поля аренды (целочисленные или дробные), каждое такое поле суммируется отдельно по тому же набору аренд, что и «Сумма аренд». При этом для каждой аренды берётся значение поля только если оно похоже на корректное неотрицательное число (просто число, возможно с дробной частью, без знака минуса) — иначе для этой аренды вклад поля в сумму считается нулём, а не приводит к ошибке.

Ключи итогов смены (extra)

Отдельного ключа «Услуги» в «Итогах смены» нет: услуги видны только в детализации смены как отдельный список — суммарная сумма и количество услуг в json-итогах смены не сохраняются.

Уведомление о закрытии смены

Когда смена закрывается (в основном модуле смен, вне этого отчёта), в фоне формируется и отправляется в Telegram сообщение-отчёт сотруднику, который вёл смену: точка проката, начало и конец смены, значения дополнительных числовых полей, кассир, а также показатели, аналогичные «Итогам смены» (аренды, оплаты по способам, возвраты по способам, услуги по позициям, штрафы). Это использует тот же пересчёт, что и детализация смены в отчёте метрик, поэтому цифры по арендам, оплатам, возвратам и штрафам в уведомлении и в детализации совпадают.
Строка с общей суммой и количеством услуг в этом уведомлении читается из «Итогов смены», а там, как указано выше, такого ключа нет — поэтому в этой конкретной строке уведомления сумма и количество услуг всегда показываются нулевыми. Список услуг построчно (по каждой оказанной услуге) при этом формируется корректно и показывает реальные данные.
Уведомление отправляется только если у сотрудника есть привязанный Telegram-аккаунт в компании.

Как это используется

Отчёт нужен, чтобы:
  • контролировать, сколько аренд, оплат и услуг фактически прошло через конкретного сотрудника за смену;
  • сверять кассу смены — сумму принятых оплат по способам оплаты и сумму возвратов;
  • видеть штрафы, начисленные в течение смены;
  • оценивать нагрузку и результативность сотрудников по точкам проката и периодам.
Отчёт не выполняет открытие/закрытие смены и не меняет расписание сотрудников — просмотр списка не изменяет данные, а открытие детализации перезаписывает сохранённые итоги смены только тогда, когда они действительно изменились.

Особенности поведения

  • Все временные сравнения внутри смены используют не сохранённое поле конца смены, а вычисляемый «эффективный конец»: для ещё не закрытой смены это текущее время на момент запроса, поэтому повторные запросы к одной и той же открытой смене могут давать разные (растущие) итоги.
  • Оплаты, уже включённые в акт финансовой сверки, полностью исключаются из расчёта детализации смены — они не отражаются ни в оплатах/возвратах смены, ни в её итогах, даже если фактически были приняты в её период.
  • Аренды, услуги и оплаты по арендам отбираются строго по точке проката смены. Оплата без привязки к аренде точки проката не имеет, поэтому попадает в смену независимо от того, где она была принята.
  • Итоги смены записываются в базу только при фактическом изменении содержимого, поэтому повторные открытия детализации не создают лишних записей; закрытая смена при этом не «заморожена» и обновится, если задним числом изменить попавшие в её период данные.
  • Дополнительные пользовательские числовые поля аренды суммируются в итогах смены только если значение поля похоже на неотрицательное число; для аренд с нечисловым, отрицательным или отсутствующим значением поля вклад в сумму по этому полю считается нулём без ошибки.
  • В списке смен (в отличие от детализации) итоги смены берутся как есть из сохранённого поля и не пересчитываются — значения могут быть устаревшими, если смена не открывалась через детализацию заново после изменений в связанных данных.
  • В фоновом уведомлении о закрытии смены итоговая строка по сумме и количеству услуг всегда показывает ноль из-за отсутствующего ключа в итогах смены; при этом построчный список оказанных услуг в том же сообщении формируется отдельно и отображается корректно.
  • Доступ к обоим экранам отчёта (список и детализация) даёт любое право из общего набора прав аналитики у штатного сотрудника компании — отдельного права именно на смены, которое можно выдать независимо от прочих отчётов раздела, нет.
  • Поиск в списке смен ищет только по логину, фамилии и имени сотрудника, который вёл смену — по названию точки проката текстовый поиск не работает (только точный фильтр).

Связанные страницы

Глоссарий: Смены сотрудников

Полный перечень полей смены, итогов и разрезов детализации.

Метрики и аналитика

Общий обзор модуля метрик и ссылки на все отчёты аналитики.

Обзор и общая сводка

Дневная сводка по компании: доход, заявки и детализация — точка входа в аналитику.

Финансы: список, PnL, движение денег

Финансовые отчёты компании: список операций, прибыли и убытки, движение денег.

Транзакции

Сводка транзакций: разбивка по видам оплаты и постраничный список операций.

Штрафы

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

Скидки

История применения скидок к арендам и сводная группировка по каждой скидке из справочника.

Депозиты

Залоги по аренде: денежные и предметные, статусы и фактические платежи.

Услуги

Метрики дополнительных услуг: общая сводка, список по видам, по исполнителям и история.

Зарплаты и субаренда сотрудников

Расчёт зарплат по выполненным действиям и учёт субаренды инвентаря сотрудникам.

Амортизация и окупаемость инвентаря

Амортизация единиц инвентаря и накопленная окупаемость дохода по группам и единицам.

Эффективность инвентаря

Загрузка и простой инвентаря по комплектам, группам и отдельным единицам.

Рефералы и клиенты

Реферальная программа (агенты и начисления) и клиентская аналитика: рост, отток, LTV.

Модули: доставки, мастерская, воронки, склад, инвентаризации

Отчётность прикладных модулей: доставки, мастерская, воронки продаж, продажи и инвентаризации.

Бонусы сотрудников

Баланс, история и общая сводка бонусных начислений клиентам.