Fix: Test 27 prüft Delta statt Absolutwert für Kz 81/83 (prod-fest)
This commit is contained in:
parent
3235030305
commit
8bccd17d38
1 changed files with 21 additions and 7 deletions
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue