This commit is contained in:
seb
2026-10-15 10:38:56 +02:00
parent 40bf70a41c
commit 7114258a96
2 changed files with 14 additions and 2 deletions

View File

@@ -580,6 +580,12 @@ export const quoteEditAutomat = createManifestEditAutomat({
name: 'quote-edit', name: 'quote-edit',
}); });
/** Shared singleton automat for the single last edited order. */
export const orderEditAutomat = createManifestEditAutomat({
kind: 'order',
name: 'order-edit',
});
/** /**
* Returns the edit automat for a given manifest kind. * Returns the edit automat for a given manifest kind.
* @param {'quote'|'order'} kind * @param {'quote'|'order'} kind
@@ -587,5 +593,6 @@ export const quoteEditAutomat = createManifestEditAutomat({
*/ */
export function getManifestEditAutomat(kind) { export function getManifestEditAutomat(kind) {
if (kind === 'quote') return quoteEditAutomat; if (kind === 'quote') return quoteEditAutomat;
if (kind === 'order') return orderEditAutomat;
return null; return null;
} }

View File

@@ -459,11 +459,12 @@ export async function buildManifestBody(
const date = form.date; const date = form.date;
if (!date) throw new Error('Datum fehlt.'); if (!date) throw new Error('Datum fehlt.');
const externalNumber = String(form.externalNumber ?? '').trim();
let body; let body;
if (useExternalNumber) { if (kind === 'delivery') {
// Delivery: number is server-allocated/read-only. The caller-supplied // Delivery: number is server-allocated/read-only. The caller-supplied
// reference goes in externalNumber (nullable; empty string → null). // reference goes in externalNumber (nullable; empty string → null).
const externalNumber = String(form.externalNumber ?? '').trim();
body = { body = {
externalNumber: externalNumber || null, externalNumber: externalNumber || null,
date, date,
@@ -480,6 +481,9 @@ export async function buildManifestBody(
date, date,
lines: buildLines(form.lines, { requireAtLeastOne }), lines: buildLines(form.lines, { requireAtLeastOne }),
}; };
if (useExternalNumber || form.externalNumber != null) {
body.externalNumber = externalNumber || null;
}
} }
if (form.partyId != null && form.partyId !== '') { if (form.partyId != null && form.partyId !== '') {
const pid = Number(form.partyId); const pid = Number(form.partyId);
@@ -696,6 +700,7 @@ export function manifestConfig(cfgOrKind) {
listAutomat: orderAutomat, listAutomat: orderAutomat,
partiesByIdFromList: (parties) => partiesByIdFromList: (parties) =>
Object.fromEntries(parties.map((row) => [row.id, row])), Object.fromEntries(parties.map((row) => [row.id, row])),
externalNumber: true,
columns: ORDER_LINE_COLUMNS, columns: ORDER_LINE_COLUMNS,
}; };
} }