Fix: UStVA-Zusammenfassung Kz 91 ergänzen, Kz-69-Formel korrekt

This commit is contained in:
fds2610-bot 2026-05-10 16:39:47 +02:00
parent d05e9991bd
commit 31515bb7f4
2 changed files with 29 additions and 10 deletions

View file

@ -32,7 +32,7 @@ $fmtKz = fn($v) => $v !== null ? number_format((float)$v, 2, ',', '.') . ' €'
$sections = [ $sections = [
'Steuerpflichtige Umsätze' => ['81', '86', '35', '41', '44'], 'Steuerpflichtige Umsätze' => ['81', '86', '35', '41', '44'],
'Umsatzsteuer auf Umsätze' => ['83', '84'], 'Umsatzsteuer auf Umsätze' => ['83', '84'],
'Innergemeinschaftlicher Erwerb' => ['89', '91', '93', '94'], 'Innergemeinschaftlicher Erwerb' => ['89', '91'],
'Vorsteuerbeträge' => ['61', '62', '67', '66'], 'Vorsteuerbeträge' => ['61', '62', '67', '66'],
'Verbleibende Zahllast' => ['69'], 'Verbleibende Zahllast' => ['69'],
]; ];
@ -98,6 +98,14 @@ $fmtKz = fn($v) => $v !== null ? number_format((float)$v, 2, ',', '.') . ' €'
<div class="card mb-2"> <div class="card mb-2">
<div class="card-header"><div class="card-title">Zusammenfassung</div></div> <div class="card-header"><div class="card-title">Zusammenfassung</div></div>
<div class="card-body"> <div class="card-body">
<?php
$ust83 = (float)($kz['83']['steuer'] ?? 0);
$ust84 = (float)($kz['84']['steuer'] ?? 0);
$ust91 = (float)($kz['91']['steuer'] ?? 0);
$ustGes = $ust83 + $ust84 + $ust91;
$vst66 = (float)($kz['66']['steuer'] ?? 0);
$zahllast = (float)($kz['69']['steuer'] ?? 0);
?>
<table style="width:100%;font-size:.9rem"> <table style="width:100%;font-size:.9rem">
<tr> <tr>
<td style="padding:.35rem 0;color:var(--color-muted)">Umsatz 19 %</td> <td style="padding:.35rem 0;color:var(--color-muted)">Umsatz 19 %</td>
@ -108,17 +116,27 @@ $fmtKz = fn($v) => $v !== null ? number_format((float)$v, 2, ',', '.') . ' €'
<td class="td-right td-mono"><?= $fmtKz($kz['86']['betrag']) ?></td> <td class="td-right td-mono"><?= $fmtKz($kz['86']['betrag']) ?></td>
</tr> </tr>
<tr> <tr>
<td style="padding:.35rem 0;color:var(--color-muted)">USt gesamt</td> <td style="padding:.35rem 0;color:var(--color-muted)">USt (Kz 83+84)</td>
<td class="td-right td-mono"><?= $fmtKz(($kz['83']['steuer'] ?? 0) + ($kz['84']['steuer'] ?? 0)) ?></td> <td class="td-right td-mono"><?= $fmtKz($ust83 + $ust84) ?></td>
</tr>
<?php if ($ust91 != 0.0): ?>
<tr>
<td style="padding:.35rem 0;color:var(--color-muted)">ig. Erwerb USt (Kz 91)</td>
<td class="td-right td-mono"><?= $fmtKz($ust91) ?></td>
</tr>
<?php endif; ?>
<tr style="border-top:1px solid #e2e8f0">
<td style="padding:.35rem 0;font-weight:600">USt gesamt</td>
<td class="td-right td-mono" style="font-weight:600"><?= $fmtKz($ustGes) ?></td>
</tr> </tr>
<tr> <tr>
<td style="padding:.35rem 0;color:var(--color-muted)">Vorsteuer</td> <td style="padding:.35rem 0;color:var(--color-muted)">Vorsteuer (Kz 66)</td>
<td class="td-right td-mono" style="color:var(--color-success)">– <?= $fmtKz($kz['66']['steuer'] ?? 0) ?></td> <td class="td-right td-mono" style="color:var(--color-success)">– <?= $fmtKz($vst66) ?></td>
</tr> </tr>
<tr style="border-top:2px solid #000;font-weight:700"> <tr style="border-top:2px solid #000;font-weight:700">
<td style="padding:.5rem 0"><?= ($kz['69']['steuer'] ?? 0) >= 0 ? 'Vorauszahlung' : 'Erstattung' ?></td> <td style="padding:.5rem 0"><?= $zahllast >= 0 ? 'Vorauszahlung' : 'Erstattung' ?></td>
<td class="td-right td-mono" style="color:<?= ($kz['69']['steuer'] ?? 0) >= 0 ? 'var(--color-danger)' : 'var(--color-success)' ?>"> <td class="td-right td-mono" style="color:<?= $zahllast >= 0 ? 'var(--color-danger)' : 'var(--color-success)' ?>">
<?= $fmtKz($kz['69']['steuer'] ?? 0) ?> <?= $fmtKz($zahllast) ?>
</td> </td>
</tr> </tr>
</table> </table>

View file

@ -129,9 +129,10 @@ class TaxSummenTest extends TestCase
'UStVA Kz 66 (Vorsteuer gesamt): ≥ Kz 61' 'UStVA Kz 66 (Vorsteuer gesamt): ≥ Kz 61'
); );
// Kz 69 Berechnung: USt gesamt - Vorsteuer gesamt // Kz 69 Berechnung: (USt-Umsätze + USt ig.Erwerb) - Vorsteuer gesamt
$erwKz69 = round( $erwKz69 = round(
((float)$kz['83']['steuer'] + (float)$kz['84']['steuer']) - (float)$kz['66']['steuer'], ((float)$kz['83']['steuer'] + (float)$kz['84']['steuer'] + (float)($kz['91']['steuer'] ?? 0))
- (float)$kz['66']['steuer'],
2 2
); );
$this->assertEquals($erwKz69, (float)$kz['69']['steuer'], 'UStVA Kz 69 (Zahllast) korrekt berechnet'); $this->assertEquals($erwKz69, (float)$kz['69']['steuer'], 'UStVA Kz 69 (Zahllast) korrekt berechnet');