Kontrolle: Rechnungsdialog übernimmt das Zahlungsziel der gewählten AB

Bei Anzahlung, Schlussrechnung und Aufwand wird 'Zahlungsziel in Tagen' mit
auftrag.zahlungszielTage vorbelegt (sonst 14); eine Eingabe des Nutzers bleibt.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
ClaudeandClaude Sonnet 5.5 committed 2026-10-07 15:17:08 +00:00
1 parent b7b3e834f8
commit dec7bea7d2
5 files changed
+63 -3

No files matched your search

+18 -1
View File
@@ -7,7 +7,7 @@ const {
startProjekt, projektOptionen, wirksamesProjekt,
gueltigeFestpreisAbs, aufwandAuftrag, abLabel, berechnetFuerAuftrag, hatEntwurfZurAuftrag,
artOptionen, standardArt, standardAuftrag, anzahlungStandard,
ausgewaehlteIds, blaetterSumme, blattAusAppwrite, ticketOptionen,
ausgewaehlteIds, blaetterSumme, blattAusAppwrite, ticketOptionen, zahlungszielVorschlag,
} = await loadModule('src/lib/rechnungDialogView.js')
const ab = (over = {}) => ({
@@ -215,3 +215,20 @@ test('ticketOptionen: Tickets des Kunden mit Nummer, ohne die schon gewählten',
])
assert.deepEqual(ticketOptionen(undefined), [])
})
test('zahlungszielVorschlag: Anzahlung und Schluss übernehmen das Zahlungsziel der gewählten AB, sonst 14', () => {
const dreissig = ab({ zahlungszielTage: 30 })
assert.equal(zahlungszielVorschlag({ art: 'anzahlung', ab: dreissig }), '30')
assert.equal(zahlungszielVorschlag({ art: 'schluss', ab: dreissig }), '30')
assert.equal(zahlungszielVorschlag({ art: 'anzahlung', ab: ab({ zahlungszielTage: 0 }) }), '0') // sofort fällig ist erlaubt
// Aufwand: die jüngste gültige Aufwands-AB
const aufwand = ab({ id: 'x2', art: 'aufwand', zahlungszielTage: 21 })
assert.equal(zahlungszielVorschlag({ art: 'aufwand', auftraege: [ab(), aufwand] }), '21')
// ohne AB, ohne Wert oder mit unbrauchbarem Wert bleibt es bei 14; frei und Festbetrag kennen keine AB
assert.equal(zahlungszielVorschlag({ art: 'anzahlung', ab: undefined }), '14')
assert.equal(zahlungszielVorschlag({ art: 'anzahlung', ab: ab() }), '14')
for (const kaputt of [-1, 61, 1.5, '30', null, NaN]) assert.equal(zahlungszielVorschlag({ art: 'schluss', ab: ab({ zahlungszielTage: kaputt }) }), '14')
assert.equal(zahlungszielVorschlag({ art: 'festbetrag', ab: dreissig }), '14')
assert.equal(zahlungszielVorschlag({ art: 'frei', ab: dreissig }), '14')
assert.equal(zahlungszielVorschlag({ art: '', auftraege: [aufwand] }), '14')
})