KI-AGENT: Datumswerte in Beleg-Relationen bereinigen

This commit is contained in:
2026-05-19 16:48:22 +02:00
parent 48d101e139
commit 9cde630562

View File

@@ -230,11 +230,37 @@ function isDateLikeField(key: string) {
return /(^|_|-)date($|_|-)/i.test(key) return /(^|_|-)date($|_|-)/i.test(key)
} }
function isDateValue(value: any) {
if (value instanceof Date) return !Number.isNaN(value.getTime())
if (typeof value !== "string") return false
const normalized = value.trim()
if (/^\d+$/.test(normalized)) return false
return !Number.isNaN(new Date(normalized).getTime())
}
function normalizeCreatedDocumentPayload(payload: Record<string, any>) { function normalizeCreatedDocumentPayload(payload: Record<string, any>) {
const numberRelationFields = [
"customer",
"contact",
"project",
"createddocument",
"letterhead",
"plant",
"contract",
"outgoingsepamandate",
]
for (const field of numberRelationFields) {
const value = payload[field]
if (value instanceof Date || (typeof value === "string" && isDateValue(value))) {
payload[field] = null
}
}
const serialexecution = payload.serialexecution const serialexecution = payload.serialexecution
if (serialexecution === undefined || serialexecution === null || serialexecution === "") return payload if (serialexecution === undefined || serialexecution === null || serialexecution === "") return payload
if (serialexecution instanceof Date) { if (isDateValue(serialexecution)) {
payload.serialexecution = null payload.serialexecution = null
return payload return payload
} }
@@ -242,7 +268,7 @@ function normalizeCreatedDocumentPayload(payload: Record<string, any>) {
if (typeof serialexecution === "string") { if (typeof serialexecution === "string") {
const normalized = serialexecution.trim() const normalized = serialexecution.trim()
const isUuid = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(normalized) const isUuid = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(normalized)
if (!isUuid && !Number.isNaN(new Date(normalized).getTime())) { if (!isUuid && isDateValue(normalized)) {
payload.serialexecution = null payload.serialexecution = null
return payload return payload
} }