﻿---
title: Расчёт комиссионных менеджеров
description: "Сервис на Laravel + Filament: планы мотивации, выполнение плана, расчёт комиссионных по сделкам, согласование и выгрузка в зарплату."
---

## Что это за сервис

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

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

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

## Что он делает

- **Показывает выполнение плана.** Менеджер видит план, фактическое выполнение и начисленную сумму за период; цифры меняются по мере закрытия сделок, а не в конце месяца.
- **Применяет правила мотивации автоматически.** Ставки, ступени, повышающие коэффициенты и разовые бонусы хранятся как настраиваемые правила, привязанные к плану и роли.
- **Объясняет каждую строку выплаты.** У начисления есть ссылка на сделку и правило, которое его породило, поэтому спор решается открытием карточки.
- **Учитывает возвраты.** Если сделка отменена после выплаты, сервис удерживает сумму в следующем периоде и показывает, из-за какой сделки произошла корректировка.
- **Проводит согласование.** Финансы и руководитель продаж утверждают расчёт параллельно, после чего утверждённые суммы выгружаются для начисления зарплаты.

## Нюансы и особенности

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

## Как сгенерировать через ИИ-агентов

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

### 1. Данные и модели

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

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

### 2. Расчёт и тесты граничных случаев

```text
Реализуй сервис расчёта комиссионных за период: для каждого сотрудника
возьми действующий план и версию правил на дату сделки, посчитай ступени
и повышающие коэффициенты, для возвратов создай удержание в текущем
периоде. Утверждённые периоды не пересчитывай. Напиши тесты: выполнение
ровно 100%, переход через порог, возврат после выплаты, смена плана
посреди квартала.
```

### 3. Экраны для менеджера и финансов

```text
Сгенерируй Filament-ресурсы для планов и правил и страницу «Мои
комиссионные»: выполнение плана, начисленная сумма и таблица строк
с переходом к сделке и правилу. Для финансов — таблицу выплат по периодам
с фильтрами по команде, статусу и сумме удержаний.
```

### 4. Синхронизация сделок

```text
Добавь фоновую задачу по расписанию, которая загружает закрытые
и отменённые сделки из CRM по API, обновляет Deal без дублей по внешнему
id и запускает пересчёт открытого периода. Пиши журнал загрузок с ошибками.
```

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

### 5. Согласование, доступ и выгрузка

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

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

## Похожие сценарии

- [Дашборд воронки продаж](https://wpcraft.ru/kb/stacks/filament/use-cases/sales/pipeline-dashboard.md) — сделки, из которых складывается выполнение плана.
- [Результативность территорий](https://wpcraft.ru/kb/stacks/filament/use-cases/sales/territory-performance-dashboard.md) — планы и выполнение по регионам и командам.
- [Дашборд выручки](https://wpcraft.ru/kb/stacks/filament/use-cases/finance/revenue-dashboard.md) — финансовая картина, с которой сверяются выплаты.

## Материалы и источники

- [Refine: Commission Tracker](https://refine.dev/use-cases/sales/commission-tracker/)
- [Filament 4.x: ресурсы и авторизация](https://filamentphp.com/docs/4.x/resources/overview)
- [Filament 4.x: действия](https://filamentphp.com/docs/4.x/actions/overview)
- [Filament 4.x: экспорт](https://filamentphp.com/docs/4.x/actions/export)