Дмитрий
3b8694cd4c
feat(sales): живой доход по клиентам в списке/карточке/сводке (бэк)
...
Task 3.3a — SalesClientsController наполняет earned_rub через
SalesEarningsService (был null-заглушкой):
- index: доход по каждому клиенту за период по снимку тарифа привязки;
клиент без привязки (начальник видит незакреплённых) → null.
- show (kpi): доход по одному клиенту.
- overview (totals): сумма комиссии по всем привязкам в scope (без оклада).
Тесты Фазы 1 обновлены под реальные значения (percent_oborot 10/20% от
засеянного оборота → 500/5/10000 ₽; привязка без тарифа → 0.0; без
привязки → null). Попутно исправлен ключ params тест-тарифа
(percent→rate, движок читает rate). Sales-набор 132/132, Larastan 0.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-07-02 19:32:00 +03:00
..
2026-06-21 17:15:26 +03:00
2026-06-28 10:14:47 +03:00
2026-06-25 08:19:53 +03:00
2026-06-26 09:39:19 +03:00
2026-06-26 08:43:30 +03:00
2026-06-29 11:25:16 +03:00
2026-06-21 09:15:20 +03:00
2026-06-25 07:39:51 +03:00
2026-06-26 17:15:22 +03:00
2026-05-22 17:43:18 +03:00
2026-05-29 14:14:04 +03:00
2026-06-28 07:32:17 +03:00
2026-06-25 19:08:47 +03:00
2026-06-18 19:33:33 +03:00
2026-06-19 11:43:00 +03:00
2026-05-29 09:11:27 +03:00
2026-05-28 05:48:15 +03:00
2026-06-25 08:19:53 +03:00
2026-06-25 19:21:55 +03:00
2026-06-17 20:43:28 +03:00
2026-06-17 05:17:12 +03:00
2026-05-14 05:29:34 +03:00
2026-06-25 19:03:24 +03:00
2026-06-25 08:19:53 +03:00
2026-06-26 03:34:55 +03:00
2026-06-27 12:47:49 +03:00
2026-06-25 08:19:53 +03:00
2026-06-18 22:25:23 +03:00
2026-06-24 09:31:52 +03:00
2026-06-25 05:20:14 +03:00
2026-06-25 08:19:53 +03:00
2026-05-10 17:05:19 +03:00
2026-07-02 19:32:00 +03:00
2026-05-26 20:39:16 +03:00
2026-05-23 11:48:20 +03:00
2026-05-22 18:53:11 +03:00
2026-06-25 07:39:51 +03:00
2026-07-01 15:51:06 +03:00
2026-06-25 08:19:53 +03:00
2026-05-24 18:51:17 +03:00
2026-06-18 09:05:06 +03:00
2026-06-25 07:39:51 +03:00
2026-06-25 07:39:51 +03:00
2026-06-18 09:05:06 +03:00
2026-05-09 05:33:21 +03:00
2026-05-18 03:42:41 +03:00
2026-06-28 12:05:31 +03:00
2026-05-15 22:06:14 +03:00
2026-06-27 12:47:49 +03:00
2026-05-18 03:42:40 +03:00
2026-05-16 15:18:13 +03:00
2026-06-21 04:45:30 +03:00
2026-06-25 12:11:53 +03:00
2026-05-08 15:24:55 +03:00
2026-05-16 15:18:13 +03:00
2026-06-18 19:33:33 +03:00
2026-05-18 03:42:41 +03:00
2026-05-18 03:42:41 +03:00
2026-05-17 02:23:26 +03:00
2026-05-21 19:15:05 +03:00
2026-05-08 09:37:16 +03:00
2026-06-25 08:19:53 +03:00
2026-05-18 03:42:41 +03:00
2026-05-21 19:15:05 +03:00
2026-05-21 19:15:05 +03:00
2026-06-17 05:17:12 +03:00
2026-05-16 09:57:32 +03:00
2026-05-24 18:51:17 +03:00
2026-06-25 05:19:41 +03:00
2026-05-25 07:35:03 +03:00
2026-06-18 19:33:33 +03:00
2026-05-08 14:29:50 +03:00
2026-05-08 14:29:50 +03:00
2026-05-22 03:25:16 +03:00
2026-05-21 19:15:05 +03:00