From 0f38ce0095e2134023310fc38a6a320e6f97680c Mon Sep 17 00:00:00 2001 From: root Date: Tue, 14 Jul 2026 18:52:02 +0000 Subject: [PATCH] =?UTF-8?q?fix:=20normalizeDateForInput=20=D0=BF=D0=B0?= =?UTF-8?q?=D1=80=D1=81=D0=B8=D1=82=20dd.MM.yyyy=20+=20customerDate=20fall?= =?UTF-8?q?back=20=D0=B4=D0=BB=D1=8F=20=D0=BB=D0=BE=D0=B3=D0=B8=D1=81?= =?UTF-8?q?=D1=82=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/orders/OrderDetailPanel.jsx | 14 ++++++++------ src/components/orders/StatusActionPanel.jsx | 4 +--- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/components/orders/OrderDetailPanel.jsx b/src/components/orders/OrderDetailPanel.jsx index 5a2bf17..cdb8163 100644 --- a/src/components/orders/OrderDetailPanel.jsx +++ b/src/components/orders/OrderDetailPanel.jsx @@ -353,6 +353,12 @@ const normalizeDateForInput = (value) => { return `20${year}-${month}-${day}`; } + const fullDateMatch = normalized.match(/^(\d{2})\.(\d{2})\.(\d{4})$/); + if (fullDateMatch) { + const [, day, month, year] = fullDateMatch; + return `${year}-${month}-${day}`; + } + return ""; }; @@ -654,7 +660,7 @@ export const OrderDetailPanel = ({ }, [order?.id, order?.assignedDriverId]); React.useEffect(() => { - const normalizedDeliveryDate = normalizeDateForInput(order?.deliveryDate); + const normalizedDeliveryDate = normalizeDateForInput(order?.deliveryDate || order?.customerDate); const nextSelectableDateKey = getNextSelectableDateKey(); const canUsePastDate = ["logistician", "admin", "mega_admin", "manager"].includes(userRole); const selectedDateKey = (normalizedDeliveryDate && (canUsePastDate || isFutureDeliveryDate(normalizedDeliveryDate))) @@ -1197,11 +1203,7 @@ export const OrderDetailPanel = ({ return statusOptions.map((statusOption) => { const isSelected = pendingStatus?.value === statusOption.value; const isMismatch = statusOption.mismatch; - const hasDeliveryDate = !!(order?.deliveryDate || order?.customerDate); - const hasDeliverySchedule = hasDeliveryDate && !!(order?.deliveryTime || order?.deliveryHalfDay || order?.delivery_time); - const canSkipHalfDay = ["logistician", "admin", "mega_admin", "manager"].includes(userRole); - const scheduleReady = canSkipHalfDay ? hasDeliveryDate : hasDeliverySchedule; - const blockedBySchedule = statusOption.requiresSchedule && !scheduleReady; + const blockedBySchedule = statusOption.requiresSchedule && !hasDeliverySchedule; return (