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:
1 parent
67b9439145
commit
c7c1e338a3
4 files changed
+28
-5
No files matched your search
+14
-3
@@ -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 }
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user