+
{getOrderGroupDisplayStatusLabel(group)}
{(group.hasDeliveryProblem || group.has_delivery_problem) && (
⚠ Проблема
diff --git a/src/components/orders/DriverAssignmentPanel.jsx b/src/components/orders/DriverAssignmentPanel.jsx
index 0411476..b1761ef 100644
--- a/src/components/orders/DriverAssignmentPanel.jsx
+++ b/src/components/orders/DriverAssignmentPanel.jsx
@@ -122,7 +122,7 @@ const DriverAssignmentPanel = ({
Водитель назначен
- {order.assignedDriverName || "Неизвестно"}
+ {order.assignedDriverName || "Водитель назначен"}
Назначен
diff --git a/src/components/orders/OrderDetailPanel.jsx b/src/components/orders/OrderDetailPanel.jsx
index 3e68165..68d5827 100644
--- a/src/components/orders/OrderDetailPanel.jsx
+++ b/src/components/orders/OrderDetailPanel.jsx
@@ -2,42 +2,60 @@
const DriverShipmentReport = ({ shipmentData }) => {
if (!Array.isArray(shipmentData) || shipmentData.length === 0) return null;
+ const deliveredItems = shipmentData.filter((i) => i.shipped);
+ const notDeliveredItems = shipmentData.filter((i) => !i.shipped);
+
return (
-
+
-
-
Проблемы с доставкой позиций
+
📋
+
Отчёт об отгрузке
+
0 ? "warning" : "accent"}>
+ {deliveredItems.length}/{shipmentData.length} доставлено
+
-
- Не доставлено {shipmentData.length} {shipmentData.length === 1 ? "позиция" : shipmentData.length < 5 ? "позиции" : "позиций"}. Остальное — доставлено.
-
+
+ {notDeliveredItems.length > 0 && (
+
+ ⚠ Не доставлено {notDeliveredItems.length} {notDeliveredItems.length === 1 ? "позиция" : notDeliveredItems.length < 5 ? "позиции" : "позиций"}
+
+ )}
+
{shipmentData.map((item) => (
-
{item.name}
+
+
+ {item.shipped ? "✓" : "✗"}
+
+
+ {item.name}
+
+
{item.quantity || item.unit ? (
{[item.quantity, item.unit].filter(Boolean).join(" ")}
) : null}
- {item.comment ? (
-
Причина: {item.comment}
- ) : (
-
Причина не указана
+ {!item.shipped && item.comment && (
+
Причина: {item.comment}
)}
))}
-
);
};
+
import React from "react";
import { formatDateTime } from "../../utils/formatters";
import { Badge } from "../UI/Badge";
diff --git a/src/components/orders/SmsStatusCard.jsx b/src/components/orders/SmsStatusCard.jsx
index 7be2971..36ee73e 100644
--- a/src/components/orders/SmsStatusCard.jsx
+++ b/src/components/orders/SmsStatusCard.jsx
@@ -22,7 +22,7 @@ const NOTIF_LABELS = {
paid_storage_sending: "Отправляется…",
paid_storage_sent: "Платное хранение: отправлено",
draft: "Черновик",
- confirmed: "Согласовано",
+ confirmed: "Клиент согласовал дату",
};
const NOTIF_TONES = {
diff --git a/src/components/orders/StatusActionPanel.jsx b/src/components/orders/StatusActionPanel.jsx
index dd7ec90..0a5d122 100644
--- a/src/components/orders/StatusActionPanel.jsx
+++ b/src/components/orders/StatusActionPanel.jsx
@@ -59,7 +59,7 @@ const StatusActionPanel = ({
{allStatuses.map((statusOption) => {
const isCurrent = currentStatus === statusOption.value;
- const isClickable = statusOption.manual !== false && !isCurrent;
+ const isClickable = (statusOption.manual !== false || currentStatus === 'problem') && !isCurrent;
const blockedBySchedule = statusOption.requiresSchedule && !hasDeliverySchedule;
return (