diff --git a/src/components/orders/OrderDetailPanel.jsx b/src/components/orders/OrderDetailPanel.jsx index 53c1fa5..8caa321 100644 --- a/src/components/orders/OrderDetailPanel.jsx +++ b/src/components/orders/OrderDetailPanel.jsx @@ -38,6 +38,33 @@ const renderList = (values) => { const renderValue = (value) => value || "Нет данных"; +const parseOrderList = (order) => { + if (!order) return []; + + if (order.order_list_structured) { + try { + const parsed = JSON.parse(order.order_list_structured); + if (parsed && Array.isArray(parsed.orders)) { + return parsed.orders; + } + } catch { + /* ignore */ + } + } + + if (order.order_list) { + try { + const parsed = JSON.parse(order.order_list); + if (Array.isArray(parsed)) { + return parsed; + } + } catch { + /* ignore */ + } + } + + return []; +}; const getErrorMessage = (error, fallbackMessage) => { if (!error) { return fallbackMessage; @@ -331,19 +358,19 @@ export const OrderDetailPanel = ({
Дата доставки
-{formatDeliveryDateDisplay(order.deliveryDate)}
+{formatDeliveryDateDisplay(order.deliveryDate)}
Время доставки
-{renderValue(order.deliveryTime || order.deliveryHalfDay)}
+{renderValue(order.deliveryTime || order.deliveryHalfDay)}
Водитель
-{order.assignedDriverId ? renderValue(order.assignedDriverName) : "Не назначен"}
+{order.assignedDriverId ? renderValue(order.assignedDriverName) : "Не назначен"}
@@ -351,7 +378,7 @@ export const OrderDetailPanel = ({
{renderValue(order.customerPhone)} @@ -360,42 +387,42 @@ export const OrderDetailPanel = ({Адрес доставки
-{renderValue(order.deliveryAddress)}
+{renderValue(order.deliveryAddress)}
Номер счёта
-{renderValue(order.orderNumberSummary)}
+{renderValue(order.orderNumberSummary)}
Клиент
-{renderValue(order.customerName)}
+{renderValue(order.customerName)}
Дата счёта
-{renderValue(order.customerDate)}
+{renderValue(order.customerDate)}
Всего заказов
-{order.ordersCount ?? 0}
+{order.ordersCount ?? 0}
Готово
-{order.readyCount ?? 0}
+{order.readyCount ?? 0}
Не готово
-{order.notReadyCount ?? 0}
+{order.notReadyCount ?? 0}
Обновлена
-{formatDateTime(order.updatedAt)}
+{formatDateTime(order.updatedAt)}
Статус доставки
-{getOrderGroupDeliveryStatusLabel(order.deliveryStatus || order.delivery_status)}
+{getOrderGroupDeliveryStatusLabel(order.deliveryStatus || order.delivery_status)}
@@ -511,7 +538,7 @@ export const OrderDetailPanel = ({ type="button" aria-label="Дата доставки" aria-expanded={isCalendarOpen} - className="flex min-h-[54px] w-full items-center justify-between rounded-2xl border border-[var(--color-border)] bg-[var(--color-surface)] px-4 text-left text-sm font-medium text-[var(--color-text)] transition hover:border-[var(--color-accent)] focus:border-[var(--color-accent)] focus:outline-none" + className="flex min-h-[54px] w-full items-center justify-between rounded-2xl border border-[var(--color-border)] bg-[var(--color-surface)] px-4 text-left text-sm font-medium !text-[var(--color-text)] transition hover:border-[var(--color-accent)] focus:border-[var(--color-accent)] focus:outline-none" onClick={() => setIsCalendarOpen((current) => !current)} > {formatDateForDisplay(deliveryDate)} @@ -536,7 +563,7 @@ export const OrderDetailPanel = ({ type="button" disabled={!canGoBack} aria-label="Предыдущий месяц" - className="flex h-9 w-9 items-center justify-center rounded-full border border-[var(--color-border)] text-sm text-[var(--color-text-muted)] transition hover:border-[var(--color-accent)] hover:text-[var(--color-text)] disabled:cursor-not-allowed disabled:opacity-40" + className="flex h-9 w-9 items-center justify-center rounded-full border border-[var(--color-border)] text-sm text-[var(--color-text-muted)] transition hover:border-[var(--color-accent)] hover:!text-[var(--color-text)] disabled:cursor-not-allowed disabled:opacity-40" onClick={() => setCurrentMonth((month) => addMonths(month, -1))} > ‹ @@ -544,7 +571,7 @@ export const OrderDetailPanel = ({