diff --git a/src/components/admin/AdminDashboard.jsx b/src/components/admin/AdminDashboard.jsx index 9777602..94c2d49 100644 --- a/src/components/admin/AdminDashboard.jsx +++ b/src/components/admin/AdminDashboard.jsx @@ -185,16 +185,20 @@ export const AdminDashboard = () => { total: d.total || 0, delivered: d.delivered || 0, picked_up: d.picked_up || 0, problems: d.problems || 0, })); - // ── Funnel: Real order path ──────────────────────────────────────────────── - // Each step shows how many orders reached that stage + // ── Funnel: Real order path with bypass detection ───────────────────────── + const completedTotal = (econ.full_chain_client || 0) + (econ.client_date_no_driver || 0) + + (econ.manager_date_completed || 0) + (econ.no_date_completed || 0) + (econ.no_sms_completed || 0); + const funnelSteps = [ { label: 'Всего заказов', value: econ.total_groups || 0, color: '#94a3b8' }, { label: 'SMS отправлено', value: econ.sms_sent || 0, color: '#3b82f6' }, - { label: 'Авто-завершено', value: econ.completed_auto || 0, color: '#22c55e' }, - { label: 'Завершено вручную', value: econ.completed_manual || 0, color: '#14b8a6' }, + { label: 'Полная цепочка', value: econ.full_chain_client || 0, color: '#22c55e' }, + { label: 'Клиент выбрал дату', value: econ.client_date_no_driver || 0, color: '#14b8a6' }, + { label: 'Менеджер назначил дату', value: econ.manager_date_completed || 0, color: '#8b5cf6' }, + { label: 'В обход (по телефону)', value: econ.no_date_completed || 0, color: '#f97316' }, + { label: 'Без SMS (импорт)', value: econ.no_sms_completed || 0, color: '#6366f1' }, { label: 'Застряло в ручном', value: econ.stuck_in_manual || 0, color: '#eab308' }, - { label: 'Без SMS завершено', value: econ.no_sms_completed || 0, color: '#6366f1' }, - { label: 'Платное хранение', value: econ.paid_storage_count || 0, color: '#06b6d4' }, + { label: 'В работе', value: econ.in_progress || 0, color: '#3b82f6' }, { label: 'Отменено', value: econ.cancelled_count || 0, color: '#ef4444' }, ]; @@ -357,16 +361,16 @@ export const AdminDashboard = () => { marginTop: '0.75rem', paddingTop: '0.6rem', borderTop: '1px solid var(--color-border)', }}>
-
Автоматизация
-
{econ.automation_pct ?? 0}%
+
Полная цепочка
+
{econ.full_chain_pct ?? 0}%
-
Ручное вмешательство
-
{econ.manual_intervention_pct ?? 0}%
+
В обход
+
{econ.bypassed_pct ?? 0}%
-
Завершено всего
-
{(econ.completed_auto || 0) + (econ.completed_manual || 0) + (econ.no_sms_completed || 0)}
+
Завершено
+
{completedTotal}