From 470270118ba8b1c0f43d0aa03341419fe8a3b90a Mon Sep 17 00:00:00 2001 From: root Date: Wed, 27 May 2026 12:48:48 +0000 Subject: [PATCH] fix: driver_assigned status on assign + driver column in table --- src/components/orders/OrdersTable.jsx | 7 +++++++ src/services/supabase/orderGroupRepository.js | 12 +++++++++--- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/components/orders/OrdersTable.jsx b/src/components/orders/OrdersTable.jsx index 454d9e7..d2ce72c 100644 --- a/src/components/orders/OrdersTable.jsx +++ b/src/components/orders/OrdersTable.jsx @@ -15,6 +15,9 @@ const buildGroupSummary = (group) => { const datePart = group.deliveryTime ? `${group.deliveryDate} · ${group.deliveryTime}` : group.deliveryDate; parts.push(datePart); } + if (group.assignedDriverName) { + parts.push(group.assignedDriverName); + } return parts.join(" · "); }; @@ -105,6 +108,7 @@ export const OrdersTable = ({ Клиент Номера Статус + Водитель Дата доставки Готовность Обновлён @@ -136,6 +140,9 @@ export const OrdersTable = ({ {getOrderGroupDisplayStatusLabel(group)} + + {group.assignedDriverName || } + {group.deliveryDate ? ( {group.deliveryDate}{group.deliveryTime ? · {group.deliveryTime} : ""} diff --git a/src/services/supabase/orderGroupRepository.js b/src/services/supabase/orderGroupRepository.js index 4c91ed6..838a0f5 100644 --- a/src/services/supabase/orderGroupRepository.js +++ b/src/services/supabase/orderGroupRepository.js @@ -232,11 +232,17 @@ export const assignDriverToOrderGroup = async ({ throw fetchCurrentError; } - // If status is 'agreed' or beyond, keep it — don't downgrade to 'driver_assigned' - const keepStatus = ["agreed", "loaded", "on_route", "delivered"].includes(currentGroup.delivery_status); + // When assigning a driver, advance status to driver_assigned if currently agreed. + // For loaded/on_route/delivered, keep existing status (driver reassigned mid-delivery). + // For pending/manual statuses, also set driver_assigned (driver chosen before formal agreement). + const currentStatus = currentGroup.delivery_status; + const ADVANCED_STATUSES = ["loaded", "on_route", "delivered"]; + const newStatus = driverId + ? (ADVANCED_STATUSES.includes(currentStatus) ? undefined : "driver_assigned") + : null; // removing driver → reset to pending const updates = { assigned_driver_id: driverId || null, - delivery_status: driverId && !keepStatus ? "driver_assigned" : undefined, + ...(newStatus !== undefined && { delivery_status: newStatus }), updated_at: new Date().toISOString(), };