diff --git a/src/components/orders/OrderFilters.jsx b/src/components/orders/OrderFilters.jsx index 261db11..05356bc 100644 --- a/src/components/orders/OrderFilters.jsx +++ b/src/components/orders/OrderFilters.jsx @@ -105,6 +105,16 @@ export const OrderFilters = ({ filters, setFilters, statusOptions = [], cities = )} + + { return `${visible.join(", ")} +${remaining}`; }; +const getDeliveryTypeLabel = (deliveryType) => { + if (deliveryType === "pickup") return "Самовывоз"; + if (deliveryType === "delivery") return "Доставка"; + return "—"; +}; + const renderMobileOrderNumbers = (group) => { const numbers = group.allBillNumbers || group.orderNumbers; if (!Array.isArray(numbers) || !numbers.length) { @@ -111,47 +117,56 @@ export const OrdersTable = ({ Группы не найдены. Попробуйте изменить поиск или статус. ) : null} - {orderGroups.map((group) => ( - - ))} + +
{buildGroupSummary(group)}
+
{renderMobileOrderNumbers(group)}
+
Тип: {getDeliveryTypeLabel(group.deliveryType)}
+ {group.hasDeliveryProblem && ( +
+ ⚠ Проблема с доставкой + {group.deliveryProblemNote && ( +
{group.deliveryProblemNote}
+ )} +
+ )} + {!group.hasDeliveryProblem && Array.isArray(group?.driverShipmentData) && group.driverShipmentData.length > 0 && ( +
✓ Доставка без проблем
+ )} +
+ {formatDateTime(group.updatedAt)} +
+ + ); + })}
@@ -167,16 +182,24 @@ export const OrdersTable = ({
Статус
Водитель
Дата доставки
-
Проблема
+
Тип
Обновлён
- {orderGroups.map((group) => ( - - ))} - + ); + })} + )} diff --git a/src/hooks/useOrderGroups.js b/src/hooks/useOrderGroups.js index 3ce9998..1cecf6c 100644 --- a/src/hooks/useOrderGroups.js +++ b/src/hooks/useOrderGroups.js @@ -14,6 +14,7 @@ export const useOrderGroups = () => { const [filters, setFilters] = React.useState({ query: "", displayStatus: "all", + deliveryType: "", }); const [selectedOrderGroupId, setSelectedOrderGroupId] = React.useState(null); const [isLoading, setIsLoading] = React.useState(true); diff --git a/src/services/orderGroupViews.js b/src/services/orderGroupViews.js index 3633176..89034a3 100644 --- a/src/services/orderGroupViews.js +++ b/src/services/orderGroupViews.js @@ -305,6 +305,11 @@ export const filterOrderGroups = (groups, filters = {}) => { } } + const deliveryTypeFilter = (filters.deliveryType || "").trim().toLowerCase(); + if (deliveryTypeFilter && group.deliveryType !== deliveryTypeFilter) { + return false; + } + if (!query) { return true; } @@ -333,8 +338,6 @@ export const ORDER_GROUP_DISPLAY_STATUS_OPTIONS = [ { value: "delivery:paid_storage", label: DELIVERY_GROUP_STATUS_LABELS.paid_storage }, { value: "delivery:cancelled", label: DELIVERY_GROUP_STATUS_LABELS.cancelled }, { value: "status:manual_required", label: "Требует ручной обработки" }, - { value: "status:second_sms_sent", label: "Повторное SMS" }, - { value: "status:sms_sent", label: "SMS отправлены" }, { value: "status:ready_for_notification", label: "Готово к уведомлению" }, ];