diff --git a/app/app/Http/Controllers/Api/DashboardController.php b/app/app/Http/Controllers/Api/DashboardController.php index 9025d537..9023daec 100644 --- a/app/app/Http/Controllers/Api/DashboardController.php +++ b/app/app/Http/Controllers/Api/DashboardController.php @@ -63,10 +63,10 @@ class DashboardController extends Controller $curLeads = (clone $base())->whereBetween('received_at', [$windowStart, $now])->count(); $prevLeads = (clone $base())->whereBetween('received_at', [$prevStart, $windowStart])->count(); - // --- conversion: % статуса 'paid' в окне --- - $curPaid = (clone $base())->where('status', 'paid') + // --- conversion: % статуса 'won' в окне --- + $curPaid = (clone $base())->where('status', 'won') ->whereBetween('received_at', [$windowStart, $now])->count(); - $prevPaid = (clone $base())->where('status', 'paid') + $prevPaid = (clone $base())->where('status', 'won') ->whereBetween('received_at', [$prevStart, $windowStart])->count(); $curConv = $curLeads > 0 ? round($curPaid / $curLeads * 100, 1) : 0.0; $prevConv = $prevLeads > 0 ? round($prevPaid / $prevLeads * 100, 1) : 0.0; diff --git a/app/app/Services/Reports/Providers/ManagersSummaryProvider.php b/app/app/Services/Reports/Providers/ManagersSummaryProvider.php index f71179ec..20dc3fc3 100644 --- a/app/app/Services/Reports/Providers/ManagersSummaryProvider.php +++ b/app/app/Services/Reports/Providers/ManagersSummaryProvider.php @@ -12,8 +12,8 @@ use Illuminate\Support\Facades\DB; * managers_summary — агрегат сделок по менеджерам за период (audit F1). * * Группировка по deals.manager_id; неназначенные (manager_id IS NULL) сводятся - * в строку «Не назначен». «Оплачено» = status='paid' (won-статус воронки, как - * в DashboardController). Конверсия = paid / total * 100, округление до 0.1. + * в строку «Не назначен». «Оплачено» = status='won' (won-статус воронки, как + * в DashboardController). Конверсия = won / total * 100, округление до 0.1. * * parameters: date_from, date_to (Y-m-d). Исключаются soft-deleted * (deleted_at IS NULL) и тестовые (is_test=false) сделки. RLS-обёртка @@ -48,7 +48,7 @@ class ManagersSummaryProvider implements ReportDataProvider "deals.manager_id, users.first_name, users.last_name, users.email, COUNT(*) AS total, - COUNT(*) FILTER (WHERE deals.status = 'paid') AS paid" + COUNT(*) FILTER (WHERE deals.status = 'won') AS paid" ) ->get(); diff --git a/app/app/Services/Reports/Providers/SourcesSummaryProvider.php b/app/app/Services/Reports/Providers/SourcesSummaryProvider.php index 3eab73e1..8d27a458 100644 --- a/app/app/Services/Reports/Providers/SourcesSummaryProvider.php +++ b/app/app/Services/Reports/Providers/SourcesSummaryProvider.php @@ -12,8 +12,8 @@ use Illuminate\Support\Facades\DB; * sources_summary — агрегат сделок по источнику (utm_source) за период (audit F1). * * Группировка по deals.utm_source; сделки без метки (NULL/пусто) сводятся в - * строку «Прямые / без метки». «Оплачено» = status='paid'. Конверсия = - * paid / total * 100, округление до 0.1. + * строку «Прямые / без метки». «Оплачено» = status='won'. Конверсия = + * won / total * 100, округление до 0.1. * * parameters: date_from, date_to (Y-m-d). Исключаются soft-deleted и тестовые * сделки. RLS-обёртка SET LOCAL app.current_tenant_id — паттерн DealsExportProvider. @@ -45,7 +45,7 @@ class SourcesSummaryProvider implements ReportDataProvider ->selectRaw( "utm_source, COUNT(*) AS total, - COUNT(*) FILTER (WHERE status = 'paid') AS paid" + COUNT(*) FILTER (WHERE status = 'won') AS paid" ) ->get(); diff --git a/app/resources/js/components/charts/FunnelChart.story.vue b/app/resources/js/components/charts/FunnelChart.story.vue index 7e181a2b..31ba4d21 100644 --- a/app/resources/js/components/charts/FunnelChart.story.vue +++ b/app/resources/js/components/charts/FunnelChart.story.vue @@ -24,11 +24,11 @@ import FunnelChart from './FunnelChart.vue'; - + - + diff --git a/app/resources/js/components/charts/FunnelChart.vue b/app/resources/js/components/charts/FunnelChart.vue index 6c597197..06302713 100644 --- a/app/resources/js/components/charts/FunnelChart.vue +++ b/app/resources/js/components/charts/FunnelChart.vue @@ -1,6 +1,6 @@