From 2f946442c8a0cd766c23f8a542ed479cabb7e4e9 Mon Sep 17 00:00:00 2001 From: seb Date: Sat, 24 Oct 2026 01:24:11 +0200 Subject: [PATCH] u --- src/automats/manifestDraftAutomat.js | 8 ++++ src/components/manifest/ManifestForm.jsx | 6 +++ src/components/manifest/ManifestHeader.jsx | 20 ++++++++++ .../manifest/OrderDocumentsTiles.jsx | 38 +++++++++++-------- .../manifest/ShipmentDetailDialog.jsx | 6 ++- src/components/manifest/manifestConfig.js | 13 +++++++ 6 files changed, 74 insertions(+), 17 deletions(-) diff --git a/src/automats/manifestDraftAutomat.js b/src/automats/manifestDraftAutomat.js index 573028c..49e01e2 100644 --- a/src/automats/manifestDraftAutomat.js +++ b/src/automats/manifestDraftAutomat.js @@ -423,6 +423,7 @@ export function createManifestEditAutomat({ kind, name }) { const actions = { loadDoc(id, doc) { const date = dateInputValue(doc.date); + const createdAt = doc.createdAt ?? doc.created_at ?? null; const partyId = doc.partyId ?? null; const number = doc.number ?? ''; const externalNumber = doc.externalNumber != null ? String(doc.externalNumber) : ''; @@ -431,6 +432,7 @@ export function createManifestEditAutomat({ kind, name }) { const baseline = { date, + createdAt, partyId, number, externalNumber, @@ -443,6 +445,7 @@ export function createManifestEditAutomat({ kind, name }) { mode: 'edit', id, date, + createdAt, partyId, number, externalNumber, @@ -508,6 +511,7 @@ export function createManifestEditAutomat({ kind, name }) { commitSaved(savedDoc) { const date = dateInputValue(savedDoc.date); + const createdAt = savedDoc.createdAt ?? savedDoc.created_at ?? automat.state.createdAt ?? null; const partyId = savedDoc.partyId ?? null; const number = savedDoc.number ?? automat.state.number; const externalNumber = savedDoc.externalNumber != null ? String(savedDoc.externalNumber) : ''; @@ -516,6 +520,7 @@ export function createManifestEditAutomat({ kind, name }) { const baseline = { date, + createdAt, partyId, number, externalNumber, @@ -525,6 +530,7 @@ export function createManifestEditAutomat({ kind, name }) { automat.setState({ date, + createdAt, partyId, number, externalNumber, @@ -545,6 +551,7 @@ export function createManifestEditAutomat({ kind, name }) { mode: 'edit', id: null, date: '', + createdAt: null, partyId: null, number: '', externalNumber: '', @@ -566,6 +573,7 @@ export function createManifestEditAutomat({ kind, name }) { mode: 'edit', id: null, date: '', + createdAt: null, partyId: null, number: '', externalNumber: '', diff --git a/src/components/manifest/ManifestForm.jsx b/src/components/manifest/ManifestForm.jsx index 49ba58e..77a44ac 100644 --- a/src/components/manifest/ManifestForm.jsx +++ b/src/components/manifest/ManifestForm.jsx @@ -94,6 +94,7 @@ class ManifestForm extends PureComponent { parties: initialParties, partiesLoading: !partiesReady, date: initialDate, + createdAt: initialDoc?.createdAt || initialEdit?.createdAt || null, partyId: initialDoc?.partyId ?? null, number: initialDoc?.number || '', externalNumber: initialDoc?.externalNumber || '', @@ -256,6 +257,7 @@ class ManifestForm extends PureComponent { if (String(state.id) === String(this.props.docId)) { return { date: state.date || '', + createdAt: state.createdAt ?? null, partyId: state.partyId, externalNumber: state.externalNumber || '', lines: state.lines || [], @@ -449,6 +451,7 @@ class ManifestForm extends PureComponent { dirtyLineFields: this.editAutomat.state.dirtyLineFields, dirtySummary: this.editAutomat.state.dirtySummary, date: this.editAutomat.state.date, + createdAt: this.editAutomat.state.createdAt ?? null, partyId: this.editAutomat.state.partyId, number: this.editAutomat.state.number, externalNumber: this.editAutomat.state.externalNumber, @@ -511,6 +514,7 @@ class ManifestForm extends PureComponent { const loadedDoc = { date: dateInputValue(doc.date), + createdAt: doc.createdAt ?? doc.created_at ?? null, partyId: doc[cfg.partyField], number: doc.number ?? '', externalNumber: @@ -1302,6 +1306,7 @@ class ManifestForm extends PureComponent { const apiLines = requireArray(doc.lines, `${cfg.docField}.lines`); const savedDoc = { date: dateInputValue(doc.date), + createdAt: doc.createdAt ?? doc.created_at ?? this.state.createdAt ?? null, partyId: doc[cfg.partyField], number: doc.number ?? '', externalNumber: @@ -1407,6 +1412,7 @@ class ManifestForm extends PureComponent { partyId={partyId} partyError={this.state.partyError} date={date} + createdAt={this.state.createdAt} number={number} externalNumber={externalNumber} saving={saving} diff --git a/src/components/manifest/ManifestHeader.jsx b/src/components/manifest/ManifestHeader.jsx index 0127a23..d4eddcd 100644 --- a/src/components/manifest/ManifestHeader.jsx +++ b/src/components/manifest/ManifestHeader.jsx @@ -21,6 +21,7 @@ import { manifestConfig, partyDisplayName, getLowestSortNonSupplierCustomerGroup, + formatDateTime, } from './manifestConfig'; import { notifyError, notifyErrorMessage } from '../../utils/notify'; import entityAutomat from '../../automats/entityAutomat'; @@ -303,6 +304,7 @@ class ManifestHeader extends PureComponent { partiesLoading, partyId, date, + createdAt, number, externalNumber, saving, @@ -512,6 +514,24 @@ class ManifestHeader extends PureComponent { }} /> ) : null} + {isEdit && createdAt ? ( + + ) : null} - {sh.date ? formatDate(sh.date) : '–'} + {shDate ? formatDateTime(shDate) : '–'} {navigate && ( {payments.map((pay) => { const pType = pay.type || pay.paymentType || pay.payment_type; + const payDate = pay.date || pay.createdAt || pay.created_at || pay.timestamp; return ( - - {pay.date ? ( - - {formatDate(pay.date)} - - ) : null} - - +{formatPrice(pay.amount)} - - + + +{formatPrice(pay.amount)} + + + {payDate ? ( + + {pay.id != null ? ( + + #{pay.id} + + ) : } + + {formatDateTime(payDate)} + + + ) : null} ); })} diff --git a/src/components/manifest/ShipmentDetailDialog.jsx b/src/components/manifest/ShipmentDetailDialog.jsx index 050d0a5..f784c43 100644 --- a/src/components/manifest/ShipmentDetailDialog.jsx +++ b/src/components/manifest/ShipmentDetailDialog.jsx @@ -29,7 +29,7 @@ import { enqueueSnackbar } from 'notistack'; import AppDialog from '../AppDialog'; import { shipment as shipmentApi, shipping as shippingApi, stock as stockApi } from '../../api'; import { notifyError } from '../../utils/notify'; -import { formatDate } from './manifestConfig'; +import { formatDate, formatDateTime } from './manifestConfig'; import orderAutomat from '../../automats/orderAutomat'; import shipmentAutomat from '../../automats/shipmentAutomat'; import carrierAutomat from '../../automats/carrierAutomat'; @@ -433,7 +433,9 @@ export default class ShipmentDetailDialog extends PureComponent { {shipment.number || 'Lieferschein'} - {shipment.date ? `Datum: ${formatDate(shipment.date)}` : ''} + {(shipment.date || shipment.createdAt || shipment.created_at) + ? `Datum: ${formatDateTime(shipment.date || shipment.createdAt || shipment.created_at)}` + : ''} {shipment.externalNumber ? ( <> {' • Ref: '} diff --git a/src/components/manifest/manifestConfig.js b/src/components/manifest/manifestConfig.js index 57a87be..b227299 100644 --- a/src/components/manifest/manifestConfig.js +++ b/src/components/manifest/manifestConfig.js @@ -96,6 +96,19 @@ export function formatDate(iso) { return d.toLocaleDateString('de-DE'); } +export function formatDateTime(iso) { + if (!iso) return '–'; + const d = new Date(iso); + if (Number.isNaN(d.getTime())) return String(iso); + return d.toLocaleString('de-DE', { + day: '2-digit', + month: '2-digit', + year: 'numeric', + hour: '2-digit', + minute: '2-digit', + }); +} + /** * Delivery documents have a server-allocated, read-only `number` plus an * optional user-entered `externalNumber`. Returns the display value for a