Finanzmanager/src/Views/auswertungen/teil-kontostaende.php
fds2610-bot 90bba06585 Phase 4: Auswertungen mit Berichtsmodul
Fünf Berichtstypen wie im FinanzManager – Summen-, Buchungs-, Vergleichs-,
Kontostands- und Budgetbericht – mit Filterleiste, gespeicherten Berichten in
Berichtsgruppen, Drilldown in die Buchungen und CSV-Export.

Ein Bericht speichert nur seine Frage; die Zahlen entstehen bei jedem Aufruf neu
aus den Buchungen. Gezählt werden Bewegungen (gesplittete Buchungen über ihre
Splitzeilen), Umbuchungen bleiben außen vor, Unkategorisiertes bekommt eine
eigene Zeile. Im Ausgabenabschnitt steht der Betrag ohne Minus wie im Original,
die Schlusszeile rechnet mit den echten Vorzeichen.

Einzelheiten in docs/auswertungen.md.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-11 17:38:30 +02:00

57 lines
2 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
use Finanzmanager\View;
/**
* Kontostandsbericht: Salden je Konto zu den Enden der Spaltenzeiträume.
* Anders als in den übrigen Berichten wird hier die Null ausgeschrieben – ein
* Konto, das auf null steht, ist eine Aussage, keine fehlende Angabe.
*
* @var array<string,mixed> $bericht
*/
?>
<div class="breittabelle">
<table class="liste bericht">
<thead>
<tr>
<th>Konto</th>
<th>Kontengruppe</th>
<?php foreach ($bericht['spalten'] as $spalte): ?>
<th class="rechts"><?= View::h($spalte['titel']) ?></th>
<?php endforeach; ?>
</tr>
</thead>
<tbody>
<?php foreach ($bericht['zeilen'] as $zeile): ?>
<tr>
<td>
<a href="/konten/<?= (int)substr($zeile['schluessel'], strlen('konto:')) ?>">
<?= View::h($zeile['name']) ?>
</a>
</td>
<td><?= View::h($zeile['gruppe'] !== '' ? $zeile['gruppe'] : '–') ?></td>
<?php foreach ($bericht['spalten'] as $spalte): ?>
<?php $wert = (float)$zeile['werte'][$spalte['schluessel']]; ?>
<td class="rechts <?= View::betragKlasse($wert) ?>"><?= View::betrag($wert, false) ?></td>
<?php endforeach; ?>
</tr>
<?php endforeach; ?>
</tbody>
<tfoot>
<tr class="summenzeile">
<td colspan="2"><?= View::h($bericht['gesamt']['name']) ?></td>
<?php foreach ($bericht['spalten'] as $spalte): ?>
<?php $wert = (float)$bericht['gesamt']['werte'][$spalte['schluessel']]; ?>
<td class="rechts <?= View::betragKlasse($wert) ?>"><?= View::betrag($wert, false) ?></td>
<?php endforeach; ?>
</tr>
</tfoot>
</table>
</div>
<p class="hinweis klein">
Der Stand enthält alle Buchungen bis zum Stichtag, auch die vor dem Berichtszeitraum,
und die Gegenseiten von Umbuchungen. Konten, die durchgehend auf null standen, fehlen.
Die Summe zählt alle gezeigten Konten – unabhängig vom Σ-Kennzeichen der Kontenübersicht.
</p>