u
This commit is contained in:
@@ -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: '',
|
||||
|
||||
@@ -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}
|
||||
|
||||
@@ -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 ? (
|
||||
<SingleLineTextEdit
|
||||
size="small"
|
||||
label="Erstellt am"
|
||||
value={formatDateTime(createdAt)}
|
||||
disabled
|
||||
slotProps={{
|
||||
inputLabel: { shrink: true },
|
||||
}}
|
||||
sx={{
|
||||
flex: { xs: '1 1 100%', sm: '1 1 150px' },
|
||||
minWidth: { sm: 130 },
|
||||
'& .MuiInputBase-input': {
|
||||
fontVariantNumeric: 'tabular-nums',
|
||||
},
|
||||
}}
|
||||
/>
|
||||
) : null}
|
||||
</Box>
|
||||
<AttachmentList
|
||||
kind={kind}
|
||||
|
||||
@@ -12,7 +12,7 @@ import PaymentsOutlinedIcon from '@mui/icons-material/PaymentsOutlined';
|
||||
import AddIcon from '@mui/icons-material/Add';
|
||||
import OpenInNewIcon from '@mui/icons-material/OpenInNew';
|
||||
import { PanelTile } from 'dashgui/panels';
|
||||
import { formatDate } from './manifestConfig';
|
||||
import { formatDate, formatDateTime } from './manifestConfig';
|
||||
import { formatPrice } from '../../utils/price';
|
||||
import { typeLabel, typeIcon } from './OrderPaymentList';
|
||||
import ShipmentDetailDialog from './ShipmentDetailDialog';
|
||||
@@ -91,6 +91,7 @@ export class OrderDocumentsTiles extends PureComponent {
|
||||
const carrier = sh.shippings?.[0]?.carrier;
|
||||
const tracking = sh.shippings?.[0]?.trackingCode;
|
||||
const posCount = sh.lineCount ?? sh.lines?.length ?? 0;
|
||||
const shDate = sh.date || sh.createdAt || sh.created_at;
|
||||
|
||||
return (
|
||||
<Card
|
||||
@@ -114,7 +115,7 @@ export class OrderDocumentsTiles extends PureComponent {
|
||||
</Typography>
|
||||
<Stack direction="row" spacing={0.5} sx={{ alignItems: 'center' }}>
|
||||
<Typography variant="caption" color="text.secondary">
|
||||
{sh.date ? formatDate(sh.date) : '–'}
|
||||
{shDate ? formatDateTime(shDate) : '–'}
|
||||
</Typography>
|
||||
{navigate && (
|
||||
<IconButton
|
||||
@@ -231,6 +232,7 @@ export class OrderDocumentsTiles extends PureComponent {
|
||||
<Stack spacing={1}>
|
||||
{payments.map((pay) => {
|
||||
const pType = pay.type || pay.paymentType || pay.payment_type;
|
||||
const payDate = pay.date || pay.createdAt || pay.created_at || pay.timestamp;
|
||||
return (
|
||||
<Card
|
||||
key={pay.id}
|
||||
@@ -257,20 +259,26 @@ export class OrderDocumentsTiles extends PureComponent {
|
||||
</Typography>
|
||||
</Stack>
|
||||
|
||||
<Stack direction="row" spacing={1} sx={{ alignItems: 'center', flexShrink: 0, ml: 1 }}>
|
||||
{pay.date ? (
|
||||
<Typography variant="caption" color="text.secondary">
|
||||
{formatDate(pay.date)}
|
||||
</Typography>
|
||||
) : null}
|
||||
<Typography
|
||||
variant="subtitle2"
|
||||
sx={{ fontWeight: 700, color: 'success.dark', fontVariantNumeric: 'tabular-nums' }}
|
||||
>
|
||||
+{formatPrice(pay.amount)}
|
||||
</Typography>
|
||||
</Stack>
|
||||
<Typography
|
||||
variant="subtitle2"
|
||||
sx={{ fontWeight: 700, color: 'success.dark', fontVariantNumeric: 'tabular-nums', flexShrink: 0, ml: 1 }}
|
||||
>
|
||||
+{formatPrice(pay.amount)}
|
||||
</Typography>
|
||||
</Box>
|
||||
|
||||
{payDate ? (
|
||||
<Box sx={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center', mt: 0.5 }}>
|
||||
{pay.id != null ? (
|
||||
<Typography variant="caption" color="text.secondary" sx={{ fontFamily: 'monospace' }}>
|
||||
#{pay.id}
|
||||
</Typography>
|
||||
) : <span />}
|
||||
<Typography variant="caption" color="text.secondary">
|
||||
{formatDateTime(payDate)}
|
||||
</Typography>
|
||||
</Box>
|
||||
) : null}
|
||||
</Card>
|
||||
);
|
||||
})}
|
||||
|
||||
@@ -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'}
|
||||
</Typography>
|
||||
<Typography variant="caption" color="text.secondary">
|
||||
{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: '}
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user