Fix #49: Test 18 prüft EÜR-Delta statt absoluten Saldo (produktionssicher)
This commit is contained in:
parent
75279c7b36
commit
10c2817c2e
1 changed files with 22 additions and 11 deletions
|
|
@ -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').
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue