u
This commit is contained in:
@@ -199,22 +199,42 @@ class ManifestLines extends PureComponent {
|
||||
);
|
||||
})()}
|
||||
{(() => {
|
||||
const hasShippedLines = kind === 'order' && Array.isArray(shipments) && shipments.some((sh) => (sh.lines?.length || 0) > 0);
|
||||
const hasLedgeredLines = kind === 'delivery' && Array.isArray(lines) && lines.some((line) => {
|
||||
const ledgerLine = line?.id != null ? ledgerLinesById?.[line.id] : null;
|
||||
return Boolean(
|
||||
ledgerLine?.isBooked ||
|
||||
(ledgerLine && ledgerLine.targetAmount > 0 && ledgerLine.remainingAmount <= 0) ||
|
||||
(ledgerLine && ledgerLine.bookedAmount > 0) ||
|
||||
line?.isBooked ||
|
||||
line?.is_booked
|
||||
);
|
||||
});
|
||||
const disabled = saving || !lines || lines.length === 0 || hasShippedLines || hasLedgeredLines;
|
||||
const title = hasLedgeredLines
|
||||
? 'Lieferung enthält bereits im Ledger verbuchte Positionen'
|
||||
: hasShippedLines
|
||||
? 'Auftrag enthält bereits ausgelieferte Positionen'
|
||||
const shippedSkus = new Set();
|
||||
if (kind === 'order' && Array.isArray(shipments)) {
|
||||
for (const sh of shipments) {
|
||||
for (const sl of sh.lines || []) {
|
||||
if (sl.sku) shippedSkus.add(String(sl.sku).trim().toLowerCase());
|
||||
}
|
||||
}
|
||||
}
|
||||
const allLinesShipped =
|
||||
kind === 'order' &&
|
||||
shippedSkus.size > 0 &&
|
||||
Array.isArray(lines) &&
|
||||
lines.length > 0 &&
|
||||
lines.every((l) => {
|
||||
const raw = l?.sku != null ? String(l.sku).trim().toLowerCase() : '';
|
||||
return raw && shippedSkus.has(raw);
|
||||
});
|
||||
const allLinesLedgered =
|
||||
kind === 'delivery' &&
|
||||
Array.isArray(lines) &&
|
||||
lines.length > 0 &&
|
||||
lines.every((line) => {
|
||||
const ledgerLine = line?.id != null ? ledgerLinesById?.[line.id] : null;
|
||||
return Boolean(
|
||||
ledgerLine?.isBooked ||
|
||||
(ledgerLine && ledgerLine.targetAmount > 0 && ledgerLine.remainingAmount <= 0) ||
|
||||
(ledgerLine && ledgerLine.bookedAmount > 0) ||
|
||||
line?.isBooked ||
|
||||
line?.is_booked
|
||||
);
|
||||
});
|
||||
const disabled = saving || !lines || lines.length === 0 || allLinesShipped || allLinesLedgered;
|
||||
const title = allLinesLedgered
|
||||
? 'Alle Positionen der Lieferung sind bereits im Ledger verbucht'
|
||||
: allLinesShipped
|
||||
? 'Alle Positionen des Auftrags sind bereits ausgeliefert'
|
||||
: 'Alle Zeilen entfernen';
|
||||
return (
|
||||
<Button
|
||||
|
||||
Reference in New Issue
Block a user