diff --git a/src/components/orders/OrderDetailPanel.jsx b/src/components/orders/OrderDetailPanel.jsx index 64fb5ba..ccaac29 100644 --- a/src/components/orders/OrderDetailPanel.jsx +++ b/src/components/orders/OrderDetailPanel.jsx @@ -39,23 +39,39 @@ const renderList = (values) => { const renderValue = (value) => value || "Нет данных"; const parseOrderList = (order) => { - if (!order) return []; + if (!order) return { items: [], debug: "order is null" }; // Try source_orders first (from 1C exchange data) if (order.sourceOrders) { - try { - const parsed = JSON.parse(order.sourceOrders); - if (Array.isArray(parsed) && parsed.length > 0 && parsed[0].orderList) { - return parsed[0].orderList; + let parsed = order.sourceOrders; + let debugInfo = "sourceOrders exists, type: " + typeof parsed; + // If it's a string, try to parse JSON + if (typeof parsed === 'string') { + try { + parsed = JSON.parse(parsed); + debugInfo += ", parsed JSON"; + } catch (e) { + debugInfo += ", JSON parse failed: " + e.message; + return { items: [], debug: debugInfo }; } - if (Array.isArray(parsed)) { - return parsed; - } - } catch { - /* ignore */ } + // Now parsed should be an array + if (Array.isArray(parsed) && parsed.length > 0) { + debugInfo += ", is array, length: " + parsed.length; + debugInfo += ", first keys: " + Object.keys(parsed[0]).join(", "); + // If first item has orderList, return it + if (parsed[0].orderList && Array.isArray(parsed[0].orderList)) { + return { items: parsed[0].orderList, debug: debugInfo + ", returning orderList" }; + } + debugInfo += ", no orderList found"; + return { items: parsed, debug: debugInfo }; + } else { + debugInfo += ", not array or empty"; + } + return { items: [], debug: debugInfo }; } + return { items: [], debug: "sourceOrders is empty" }; }; const getErrorMessage = (error, fallbackMessage) => { @@ -678,9 +694,15 @@ export const OrderDetailPanel = ({ Состав заказа
Нет данных
; + return ( +Нет данных
+{result.debug}
+