Aggregate nested document title sums

This commit is contained in:
2026-07-15 13:21:31 +02:00
parent 6a14b0c1ca
commit ae379b0f22

View File

@@ -1152,20 +1152,27 @@ const documentTotal = computed(() => {
let titleSums = {} let titleSums = {}
let titleSumsTransfer = {} let titleSumsTransfer = {}
let lastTitle = "" let activeTitleKeys = []
let transferCounter = 0 let transferCounter = 0
itemInfo.value.rows.forEach(row => { itemInfo.value.rows.forEach(row => {
if (row.mode === 'title') { if (row.mode === 'title') {
let title = `${row.pos} - ${row.text}` let title = `${row.pos} - ${row.text}`
const titleLevel = Math.min(Math.max(Number(row.titleLevel) || 1, 1), 3)
titleSums[title] = 0 titleSums[title] = 0
if (lastTitle) { if (activeTitleKeys.some(Boolean)) {
titleSumsTransfer[title] = transferCounter titleSumsTransfer[title] = transferCounter
} }
lastTitle = title activeTitleKeys = activeTitleKeys.slice(0, titleLevel - 1)
} else if (!['pagebreak', 'text'].includes(row.mode) && lastTitle !== "" && !row.optional && !row.alternative) { activeTitleKeys[titleLevel - 1] = title
titleSums[lastTitle] = Number(titleSums[lastTitle]) + Number(Number(row.quantity) * Number(row.price) * (1 - Number(row.discountPercent) / 100)) activeTitleKeys = activeTitleKeys.slice(0, titleLevel)
transferCounter += Number(Number(row.quantity) * Number(row.price) * (1 - Number(row.discountPercent) / 100)) } 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) console.log(transferCounter)
} }
}) })