Перейти к содержимому

Расчёт комиссионных менеджеров

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

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

Начинают обычно с одного плана мотивации и ручной выгрузки сделок, чтобы сверить расчёт сервиса с таблицей финансов за прошлый период.

  • Показывает выполнение плана. Менеджер видит план, фактическое выполнение и начисленную сумму за период; цифры меняются по мере закрытия сделок, а не в конце месяца.
  • Применяет правила мотивации автоматически. Ставки, ступени, повышающие коэффициенты и разовые бонусы хранятся как настраиваемые правила, привязанные к плану и роли.
  • Объясняет каждую строку выплаты. У начисления есть ссылка на сделку и правило, которое его породило, поэтому спор решается открытием карточки.
  • Учитывает возвраты. Если сделка отменена после выплаты, сервис удерживает сумму в следующем периоде и показывает, из-за какой сделки произошла корректировка.
  • Проводит согласование. Финансы и руководитель продаж утверждают расчёт параллельно, после чего утверждённые суммы выгружаются для начисления зарплаты.
  • Ставки не зашивают в код. Ставки и ступени хранятся в отдельной таблице правил. Изменение плана — это новая версия правил с датой вступления в силу, а не правка программы.
  • Закрытые периоды неизменны. При смене плана посреди квартала пересчитываются только периоды после даты вступления в силу; утверждённые периоды заблокированы и остаются по старым правилам.
  • Граничные случаи проверяют заранее. Выполнение ровно 100%, переход через порог повышающего коэффициента, сделка с возвратом, перевод менеджера между командами — для каждого случая нужен тестовый сценарий до первого реального расчёта.
  • Разные планы для разных ролей. Менеджеры по привлечению, по работе с клиентами и руководители получают разные таблицы ставок; каждый сотрудник привязан к своему плану на период.
  • Доступ ограничивают на сервере. Менеджер видит только свои начисления и сделки, руководитель — команду, финансы — всё. Ограничение действует в таблицах, виджетах и выгрузках.
  • Это не зарплатная система. Сервис рассчитывает и утверждает суммы, а начисление, налоги и выплату делает бухгалтерская или зарплатная программа. Он заменяет таблицы между закрытием сделки и расчётом зарплаты.
  • Источник сделок — существующая CRM. Закрытые сделки подтягиваются из CRM через API или read-only подключение к её базе; переносить воронку в новое приложение не нужно. Если команда небольшая, а план простой, может хватить отчёта в CRM или модуля мотивации в учётной системе.

Промпты рассчитаны на AI-агента (Claude Code, Cursor и аналоги) в Laravel-проекте с установленным Filament 4.x. Отправляйте их по одному и проверяйте результат каждого шага.

Создай модели и миграции для расчёта комиссионных: CompPlan (название,
роль, период действия), CompRule (план, тип: ставка, ступень, повышающий
коэффициент, разовый бонус; порог, ставка, дата вступления в силу, версия),
PlanAssignment (сотрудник, план, период, план продаж), Deal (внешний id,
менеджер, сумма, дата закрытия, статус, признак возврата), CommissionLine
(сотрудник, сделка, правило, период, сумма, тип: начисление или удержание),
Payout (сотрудник, период, итог, статус согласования). Добавь фабрики.

Проверьте, что у каждой строки начисления есть ссылка и на сделку, и на правило.

Реализуй сервис расчёта комиссионных за период: для каждого сотрудника
возьми действующий план и версию правил на дату сделки, посчитай ступени
и повышающие коэффициенты, для возвратов создай удержание в текущем
периоде. Утверждённые периоды не пересчитывай. Напиши тесты: выполнение
ровно 100%, переход через порог, возврат после выплаты, смена плана
посреди квартала.
Сгенерируй Filament-ресурсы для планов и правил и страницу «Мои
комиссионные»: выполнение плана, начисленная сумма и таблица строк
с переходом к сделке и правилу. Для финансов — таблицу выплат по периодам
с фильтрами по команде, статусу и сумме удержаний.
Добавь фоновую задачу по расписанию, которая загружает закрытые
и отменённые сделки из CRM по API, обновляет Deal без дублей по внешнему
id и запускает пересчёт открытого периода. Пиши журнал загрузок с ошибками.

Проверьте, что повторная загрузка той же сделки не удваивает начисление.

Добавь согласование выплаты в два параллельных шага: финансы и руководитель
продаж; после обоих утверждений период блокируется. Настрой доступ:
менеджер видит только себя, руководитель — команду, финансы — всех.
Добавь экспорт утверждённых сумм в CSV для зарплатной системы.

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