Fix #49: Test 18 prüft EÜR-Delta statt absoluten Saldo (produktionssicher)

This commit is contained in:
fds2610-bot 2026-04-25 22:02:33 +02:00
parent 75279c7b36
commit 10c2817c2e

View file

@ -26,6 +26,17 @@ class StornoBuchungTest extends TestCase
return;
}
// ── EÜR: Konto-Stand VOR den Test-Buchungen ermitteln ─────────
$euerCalcPre = new \Steuerkram\Services\EuerCalculator();
$euerPre = $euerCalcPre->calculate($year);
$kontoNettoPre = 0.0;
foreach ($euerPre['ausgaben'] as $row) {
if ((int)$row['id'] === (int)$ausgabeId) {
$kontoNettoPre = (float)$row['netto'];
break;
}
}
// ── Beleg anlegen ──────────────────────────────────────────────
$belegId = \Steuerkram\Models\Beleg::create([
'beleg_nr' => 'STORNO-TEST-' . uniqid(),
@ -63,23 +74,23 @@ class StornoBuchungTest extends TestCase
$this->assertEquals(-19.00, round((float)$reversal['betrag_ust'], 2), 'Stornobuchung: betrag_ust = -19');
$this->assertEquals(-119.00, round((float)$reversal['betrag_brutto'], 2), 'Stornobuchung: betrag_brutto = -119');
// ── EÜR: storniertes Konto hat Netto-Summe = 0 ───────────────
$euerCalc = new \Steuerkram\Services\EuerCalculator();
$euer = $euerCalc->calculate($year);
$kontoNetto = null;
// ── EÜR: Storno + Original heben sich auf (Konto-Saldo unverändert) ─
// Vergleich mit dem Stand vor den Test-Buchungen, da auf dem Produktivsystem
// bereits echte Buchungen auf dem Konto existieren können.
$euerCalc = new \Steuerkram\Services\EuerCalculator();
$euer = $euerCalc->calculate($year);
$kontoNetto = 0.0;
foreach ($euer['ausgaben'] as $row) {
if ((int)$row['id'] === (int)$ausgabeId) {
$kontoNetto = (float)$row['netto'];
break;
}
}
// Wenn das Konto nicht mehr auftaucht (alle Buchungen = 0), ist das ebenfalls korrekt.
if ($kontoNetto !== null) {
$this->assertEquals(0.0, round($kontoNetto, 2), 'EÜR: Storno + Original = 0 auf Ausgabe-Konto');
} else {
$this->assert(true, 'EÜR: Konto taucht bei Summe=0 nicht auf (HAVING buchungsanzahl > 0 greift)');
}
$this->assertEquals(
round($kontoNettoPre, 2),
round($kontoNetto, 2),
'EÜR: Storno + Original = 0 auf Ausgabe-Konto'
);
// ── UStVA: Vorsteuer-KZ hebt sich auf ─────────────────────────
// Kz 61 enthält Vorsteuer aus dem Ausgabe-Konto (ustva_kz='61').