From ae379b0f220a41e9636f3895cbfdd8ab94570ffa Mon Sep 17 00:00:00 2001 From: flfeders Date: Wed, 15 Jul 2026 13:21:31 +0200 Subject: [PATCH] Aggregate nested document title sums --- frontend/pages/createDocument/edit/[[id]].vue | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/frontend/pages/createDocument/edit/[[id]].vue b/frontend/pages/createDocument/edit/[[id]].vue index e24aa43..769dd69 100644 --- a/frontend/pages/createDocument/edit/[[id]].vue +++ b/frontend/pages/createDocument/edit/[[id]].vue @@ -1152,20 +1152,27 @@ const documentTotal = computed(() => { let titleSums = {} let titleSumsTransfer = {} - let lastTitle = "" + let activeTitleKeys = [] let transferCounter = 0 itemInfo.value.rows.forEach(row => { if (row.mode === 'title') { let title = `${row.pos} - ${row.text}` + const titleLevel = Math.min(Math.max(Number(row.titleLevel) || 1, 1), 3) titleSums[title] = 0 - if (lastTitle) { + if (activeTitleKeys.some(Boolean)) { titleSumsTransfer[title] = transferCounter } - lastTitle = title - } else if (!['pagebreak', 'text'].includes(row.mode) && lastTitle !== "" && !row.optional && !row.alternative) { - titleSums[lastTitle] = Number(titleSums[lastTitle]) + Number(Number(row.quantity) * Number(row.price) * (1 - Number(row.discountPercent) / 100)) - transferCounter += Number(Number(row.quantity) * Number(row.price) * (1 - Number(row.discountPercent) / 100)) + activeTitleKeys = activeTitleKeys.slice(0, titleLevel - 1) + activeTitleKeys[titleLevel - 1] = title + activeTitleKeys = activeTitleKeys.slice(0, titleLevel) + } else if (!['pagebreak', 'text'].includes(row.mode) && activeTitleKeys.some(Boolean) && !row.optional && !row.alternative) { + const rowSum = Number(Number(row.quantity) * Number(row.price) * (1 - Number(row.discountPercent) / 100)) + + activeTitleKeys.forEach(titleKey => { + titleSums[titleKey] = Number(titleSums[titleKey]) + rowSum + }) + transferCounter += rowSum console.log(transferCounter) } })