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]
|
'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(
|
$bookingIds = \Steuerkram\Models\Invoice::createBookingsFromLines(
|
||||||
$originalId, $kategorieId, $zahlungsId, $datum
|
$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(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');
|
$this->assertEquals(47.50, round((float)$origBooking['betrag_ust'], 2), 'Original-Buchung USt = 47,50');
|
||||||
|
|
||||||
// ── 3. UStVA + EÜR Stand VOR Stornorechnung erfassen ──────────
|
// ── 4a. UStVA + EÜR Stand VOR Stornorechnung erfassen ─────────
|
||||||
$ustvaCalc = new \Steuerkram\Services\UstvaCalculator();
|
|
||||||
$kzPre = $ustvaCalc->calculate($year, $month);
|
$kzPre = $ustvaCalc->calculate($year, $month);
|
||||||
$kz81NettoPre = (float)($kzPre['81']['betrag'] ?? 0);
|
$kz81NettoPre = (float)($kzPre['81']['betrag'] ?? 0);
|
||||||
$kz83UstPre = (float)($kzPre['83']['steuer'] ?? 0);
|
$kz83UstPre = (float)($kzPre['83']['steuer'] ?? 0);
|
||||||
|
|
||||||
$euerCalc = new \Steuerkram\Services\EuerCalculator();
|
|
||||||
$euerPre = $euerCalc->calculate($year);
|
$euerPre = $euerCalc->calculate($year);
|
||||||
$kontoNettoPre = 0.0;
|
$kontoNettoPre = 0.0;
|
||||||
foreach ($euerPre['einnahmen'] as $row) {
|
foreach ($euerPre['einnahmen'] as $row) {
|
||||||
|
|
@ -111,10 +125,10 @@ class StornorechnungTest extends TestCase
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Sanity-Check: Originalbuchung ist in den Pre-Werten enthalten
|
// Sanity-Check: Originalbuchung hat die Kennzahlen um erwarteten Betrag erhöht
|
||||||
$this->assert($kz81NettoPre >= 250.0, 'UStVA Kz 81 Pre enthält Original-Netto (≥ 250)');
|
$this->assertEquals(250.0, round($kz81NettoPre - $kz81NettoBaseline, 2), 'UStVA Kz 81: Originalbuchung +250 Netto');
|
||||||
$this->assert($kz83UstPre >= 47.50, 'UStVA Kz 83 Pre enthält Original-USt (≥ 47,50)');
|
$this->assertEquals(47.50, round($kz83UstPre - $kz83UstBaseline, 2), 'UStVA Kz 83: Originalbuchung +47,50 USt');
|
||||||
$this->assert($kontoNettoPre >= 250.0, 'EÜR Pre: Erlös-Konto enthält Originalbuchung (≥ 250)');
|
$this->assertEquals(250.0, round($kontoNettoPre - $kontoNettoBaseline, 2), 'EÜR: Erlös-Konto +250 durch Originalbuchung');
|
||||||
|
|
||||||
// ── 4. Stornorechnung erstellen ───────────────────────────────
|
// ── 4. Stornorechnung erstellen ───────────────────────────────
|
||||||
$stornoId = \Steuerkram\Models\Invoice::createCancellation($originalId);
|
$stornoId = \Steuerkram\Models\Invoice::createCancellation($originalId);
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue