Rechtliches: Abloesung am selben Tag, Kartenraster auf schmalen Bildschirmen

Bei zwei gueltigen Versionen mit gleichem Beginn gilt die zuletzt angelegte;
eine am selben Tag abgeloeste Version endet nie vor ihrem Beginn.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
ClaudeandClaude Opus 5.5 committed 2026-09-30 10:24:18 +00:00
1 parent 67b9439145
commit c7c1e338a3
4 files changed
+28 -5

No files matched your search

+14 -3
View File
@@ -81,11 +81,22 @@ export function deadlineTone(result, today) {
return 'normal'
}
/** Aktuell gueltige Version; bei mehreren (z. B. halb gescheiterte Abloesung) die juengste. */
// Tag vor dem neuen Beginn, aber nie vor dem eigenen Beginn (Abloesung am selben Tag).
function dayBeforeOrSame(nextFrom, ownFrom) {
const before = addDays(nextFrom, -1)
return ownFrom && before < ownFrom ? ownFrom : before
}
const newness = (v) => `${v.validFrom || ''}|${v.$createdAt || ''}`
/**
* Aktuell gueltige Version; bei mehreren (z. B. halb gescheiterte Abloesung) die mit dem
* juengsten validFrom, bei gleichem Datum die zuletzt angelegte.
*/
export function currentVersion(versions) {
return versions
.filter((v) => v.status === 'current')
.reduce((best, v) => (!best || v.validFrom > best.validFrom ? v : best), null)
.reduce((best, v) => (!best || newness(v) > newness(best) ? v : best), null)
}
/**
@@ -103,7 +114,7 @@ export function planNewVersion(versions, input) {
const current = currentVersion(siblings)
if (!current || input.validFrom >= current.validFrom) {
const updates = current
? [{ id: current.$id, patch: { status: 'superseded', validTo: addDays(input.validFrom, -1) } }]
? [{ id: current.$id, patch: { status: 'superseded', validTo: dayBeforeOrSame(input.validFrom, current.validFrom) } }]
: []
return { create: { ...input, validTo: null }, updates }
}