Fix: Test 27 prüft Delta statt Absolutwert für Kz 81/83 (prod-fest)

This commit is contained in:
fds2610-bot 2026-05-14 19:01:59 +02:00
parent 3235030305
commit 8bccd17d38

View file

@ -86,6 +86,22 @@ class StornorechnungTest extends TestCase
'UPDATE invoices SET beleg_id=? WHERE id=?', [$belegId, $originalId]
);
// ── 3. Baseline VOR der Originalbuchung erfassen ──────────────
$ustvaCalc = new \Steuerkram\Services\UstvaCalculator();
$kzBaseline = $ustvaCalc->calculate($year, $month);
$kz81NettoBaseline = (float)($kzBaseline['81']['betrag'] ?? 0);
$kz83UstBaseline = (float)($kzBaseline['83']['steuer'] ?? 0);
$euerCalc = new \Steuerkram\Services\EuerCalculator();
$euerBaseline = $euerCalc->calculate($year);
$kontoNettoBaseline = 0.0;
foreach ($euerBaseline['einnahmen'] as $row) {
if ((int)$row['id'] === (int)$kategorieId) {
$kontoNettoBaseline = (float)$row['netto'];
break;
}
}
$bookingIds = \Steuerkram\Models\Invoice::createBookingsFromLines(
$originalId, $kategorieId, $zahlungsId, $datum
);
@ -95,13 +111,11 @@ class StornorechnungTest extends TestCase
$this->assertEquals(250.00, round((float)$origBooking['betrag_netto'], 2), 'Original-Buchung Netto = 250');
$this->assertEquals(47.50, round((float)$origBooking['betrag_ust'], 2), 'Original-Buchung USt = 47,50');
// ── 3. UStVA + EÜR Stand VOR Stornorechnung erfassen ──────────
$ustvaCalc = new \Steuerkram\Services\UstvaCalculator();
// ── 4a. UStVA + EÜR Stand VOR Stornorechnung erfassen ─────────
$kzPre = $ustvaCalc->calculate($year, $month);
$kz81NettoPre = (float)($kzPre['81']['betrag'] ?? 0);
$kz83UstPre = (float)($kzPre['83']['steuer'] ?? 0);
$euerCalc = new \Steuerkram\Services\EuerCalculator();
$euerPre = $euerCalc->calculate($year);
$kontoNettoPre = 0.0;
foreach ($euerPre['einnahmen'] as $row) {
@ -111,10 +125,10 @@ class StornorechnungTest extends TestCase
}
}
// Sanity-Check: Originalbuchung ist in den Pre-Werten enthalten
$this->assert($kz81NettoPre >= 250.0, 'UStVA Kz 81 Pre enthält Original-Netto (≥ 250)');
$this->assert($kz83UstPre >= 47.50, 'UStVA Kz 83 Pre enthält Original-USt (≥ 47,50)');
$this->assert($kontoNettoPre >= 250.0, 'EÜR Pre: Erlös-Konto enthält Originalbuchung (≥ 250)');
// Sanity-Check: Originalbuchung hat die Kennzahlen um erwarteten Betrag erhöht
$this->assertEquals(250.0, round($kz81NettoPre - $kz81NettoBaseline, 2), 'UStVA Kz 81: Originalbuchung +250 Netto');
$this->assertEquals(47.50, round($kz83UstPre - $kz83UstBaseline, 2), 'UStVA Kz 83: Originalbuchung +47,50 USt');
$this->assertEquals(250.0, round($kontoNettoPre - $kontoNettoBaseline, 2), 'EÜR: Erlös-Konto +250 durch Originalbuchung');
// ── 4. Stornorechnung erstellen ───────────────────────────────
$stornoId = \Steuerkram\Models\Invoice::createCancellation($originalId);