fix: move totalBestandskunden before formulaRows (TDZ error)
Some checks failed
Build pitch-deck / build-push-deploy (push) Successful in 1m12s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-consent (push) Successful in 34s
CI / test-python-voice (push) Successful in 32s
CI / test-bqas (push) Has been cancelled
Some checks failed
Build pitch-deck / build-push-deploy (push) Successful in 1m12s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-consent (push) Successful in 34s
CI / test-python-voice (push) Successful in 32s
CI / test-bqas (push) Has been cancelled
This commit is contained in:
@@ -237,6 +237,17 @@ export async function computeFinanzplan(pool: Pool, scenarioId: string): Promise
|
|||||||
// 6. Betriebliche Aufwendungen — compute formula-based rows + sum rows
|
// 6. Betriebliche Aufwendungen — compute formula-based rows + sum rows
|
||||||
const betrieb = betriebRows.rows as FPBetrieblicheAufwendungen[]
|
const betrieb = betriebRows.rows as FPBetrieblicheAufwendungen[]
|
||||||
|
|
||||||
|
// Pre-compute total Bestandskunden (needed for Bewirtungskosten + Serverkosten)
|
||||||
|
const totalBestandskunden = emptyMonthly()
|
||||||
|
for (const row of kundenRows.rows) {
|
||||||
|
const rl = (row as { row_label?: string }).row_label || ''
|
||||||
|
if (rl.includes('Bestandskunden') && !rl.includes('gesamt')) {
|
||||||
|
for (let m = 1; m <= MONTHS; m++) {
|
||||||
|
totalBestandskunden[`m${m}`] += row.values?.[`m${m}`] || 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Formula-based rows: derive from headcount (excl. founders) or customers
|
// Formula-based rows: derive from headcount (excl. founders) or customers
|
||||||
const formulaRows: { label: string; perUnit: number; source: MonthlyValues }[] = [
|
const formulaRows: { label: string; perUnit: number; source: MonthlyValues }[] = [
|
||||||
{ label: 'Fort-/Weiterbildungskosten (F)', perUnit: 300, source: hcWithoutFounders },
|
{ label: 'Fort-/Weiterbildungskosten (F)', perUnit: 300, source: hcWithoutFounders },
|
||||||
@@ -283,16 +294,7 @@ export async function computeFinanzplan(pool: Pool, scenarioId: string): Promise
|
|||||||
marketingRow.values = computed
|
marketingRow.values = computed
|
||||||
}
|
}
|
||||||
|
|
||||||
// Serverkosten: 2.000 EUR Basis (SysEleven) + 250 EUR pro Bestandskunde
|
// Serverkosten: 2.000 EUR Basis (SysEleven) + 250 EUR pro Bestandskunde (first 10 incl.)
|
||||||
const totalBestandskunden = emptyMonthly()
|
|
||||||
for (const row of kundenRows.rows) {
|
|
||||||
const rl = (row as { row_label?: string }).row_label || ''
|
|
||||||
if (rl.includes('Bestandskunden') && !rl.includes('gesamt')) {
|
|
||||||
for (let m = 1; m <= MONTHS; m++) {
|
|
||||||
totalBestandskunden[`m${m}`] += row.values?.[`m${m}`] || 0
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
const serverRow = betrieb.find(r => r.row_label === 'Serverkosten Cloud (F)' || r.row_label === 'Serverkosten (Cloud)')
|
const serverRow = betrieb.find(r => r.row_label === 'Serverkosten Cloud (F)' || r.row_label === 'Serverkosten (Cloud)')
|
||||||
if (serverRow) {
|
if (serverRow) {
|
||||||
const computed = emptyMonthly()
|
const computed = emptyMonthly()
|
||||||
|
|||||||
Reference in New Issue
Block a user