From bb22da7aaeecb2c8163221a3929b3fa81411f605 Mon Sep 17 00:00:00 2001 From: seb Date: Sat, 17 Oct 2026 01:48:41 +0200 Subject: [PATCH] u --- src/automats/deliveryAutomat.js | 2 +- src/components/manifest/DeliveryList.jsx | 27 ++++++++++++++++++------ 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/src/automats/deliveryAutomat.js b/src/automats/deliveryAutomat.js index 1fe96ee..e0e91a5 100644 --- a/src/automats/deliveryAutomat.js +++ b/src/automats/deliveryAutomat.js @@ -780,7 +780,7 @@ const actions = { const currentActive = targetFilterKey === getFilterKey(automat.state); if (currentActive) { automat.setState({ - items: entry.items, + items: [...entry.items], total: currentTotal, unfilteredTotal, status: 'ready', diff --git a/src/components/manifest/DeliveryList.jsx b/src/components/manifest/DeliveryList.jsx index d44c523..7d268d3 100644 --- a/src/components/manifest/DeliveryList.jsx +++ b/src/components/manifest/DeliveryList.jsx @@ -1,4 +1,4 @@ -import { PureComponent, createRef } from 'react'; +import { Component, PureComponent, createRef } from 'react'; import Box from '@mui/material/Box'; import Button from '@mui/material/Button'; import Chip from '@mui/material/Chip'; @@ -178,8 +178,9 @@ const rowContext = { }; // MARK: -class DeliveryRow extends PureComponent { - supplierName(supplierId) { +class DeliveryRow extends Component { + supplierName(supplierId, fallbackName) { + if (fallbackName) return fallbackName; if (supplierId == null) return '–'; const supplier = rowContext.suppliersById[supplierId]; return partyDisplayName('delivery', supplier) || `Lieferant #${supplierId}`; @@ -220,9 +221,14 @@ class DeliveryRow extends PureComponent { const { busyId, onOpen, onDelete, onOpenBookDialog } = rowContext; const files = Array.isArray(delivery.files) ? delivery.files : []; - const totalPositions = delivery.ledger?.totalPositions ?? delivery.ledger?.total ?? delivery.positions ?? 0; - const completelyBooked = delivery.ledger?.completelyOnLedgerPositions ?? delivery.ledger?.bookedPositions ?? 0; - const unbooked = delivery.ledger?.unbookedPositions ?? Math.max(0, totalPositions - completelyBooked); + const totalPositions = Number(delivery.positions || delivery.ledger?.totalPositions || delivery.ledger?.total || 0); + const isBooked = Boolean(delivery.ledger?.isBooked || delivery.isBooked); + const completelyBooked = Number(delivery.ledger?.completelyOnLedgerPositions || delivery.ledger?.bookedPositions || (isBooked ? totalPositions : 0)); + const unbooked = isBooked + ? 0 + : (delivery.ledger?.unbookedPositions != null + ? Number(delivery.ledger.unbookedPositions) + : Math.max(0, totalPositions - completelyBooked)); return ( - {this.supplierName(delivery.supplierId)} + {this.supplierName(delivery.supplierId, delivery.supplierName)} @@ -659,6 +665,13 @@ export class DeliveryList extends PureComponent { unfilteredTotal: state.unfilteredTotal ?? 0, filterKey: deliveryAutomat.getFilterKey(state), })); + if (this.state.items !== deliveryAutomat.state.items) { + this.setState({ + items: deliveryAutomat.state.items, + unfilteredTotal: deliveryAutomat.state.unfilteredTotal ?? 0, + filterKey: deliveryAutomat.getFilterKey(deliveryAutomat.state), + }); + } this.unsubNumber = numberAutomat.subscribe(this, () => { this.headerItem = createDummyTestDelivery(); this.forceUpdate();