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>
57 lines
2 KiB
PHP
57 lines
2 KiB
PHP
<?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>
|