Bei Gruppierung nach Konto oder Empfänger landen alle Zeilen einer Splitbuchung ohnehin in derselben Gruppe, erschienen dort aber trotzdem einzeln mit ihrem Teilbetrag statt dem Gesamtbetrag der Buchung – wer nur eine Zeile sah, hielt sie für den vollständigen Betrag. Bei Kategorie oder Klasse bleibt es beim bisherigen Verhalten, weil eine Splitbuchung dort auf mehrere Gruppen verteilt ist und die Gruppensummen sonst nicht mehr zum Summenbericht passten. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
90 lines
3.1 KiB
PHP
90 lines
3.1 KiB
PHP
<?php
|
||
|
||
use Finanzmanager\View;
|
||
|
||
/**
|
||
* Der Drilldown: die Buchungen hinter einer Berichtszeile.
|
||
*
|
||
* @var array<string,mixed> $zeile
|
||
* @var string $zurueck
|
||
*/
|
||
|
||
include __DIR__ . '/../layout/kopf.php';
|
||
?>
|
||
|
||
<div class="tableiste">
|
||
<a class="tab" href="/auswertungen">Hauptansicht</a>
|
||
<a class="tab" href="<?= View::h($zurueck) ?>">Bericht</a>
|
||
<span class="tab aktiv">Buchungen</span>
|
||
</div>
|
||
|
||
<div class="seitenaktionen">
|
||
<a href="<?= View::h($zurueck) ?>" class="knopf primaer">Zurück zum Bericht</a>
|
||
</div>
|
||
|
||
<div class="berichtskopf">
|
||
<h2><?= View::h($zeile['name']) ?></h2>
|
||
<p><?= View::h($zeile['dimension']) ?> · <?= View::h($zeile['spaltentitel']) ?></p>
|
||
</div>
|
||
|
||
<?php if ($zeile['buchungen'] === []): ?>
|
||
<p class="platzhalter">Zu dieser Zeile gibt es keine Buchungen mehr – vermutlich wurde
|
||
zwischenzeitlich etwas geändert.</p>
|
||
<?php else: ?>
|
||
<table class="liste">
|
||
<thead>
|
||
<tr>
|
||
<th>Datum</th>
|
||
<th>Konto</th>
|
||
<th>Empfänger</th>
|
||
<th>Buchungstext</th>
|
||
<th>Kategorie</th>
|
||
<th>Klasse</th>
|
||
<th class="rechts">Betrag</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<?php foreach ($zeile['buchungen'] as $buchung): ?>
|
||
<tr>
|
||
<td class="nowrap"><?= View::datum($buchung['datum']) ?></td>
|
||
<td>
|
||
<a href="/konten/<?= (int)$buchung['konto_id'] ?>"><?= View::h($buchung['konto']) ?></a>
|
||
</td>
|
||
<td>
|
||
<a href="/buchungen/<?= (int)$buchung['buchung_id'] ?>">
|
||
<?= View::h($buchung['empfaenger'] !== '' ? $buchung['empfaenger'] : '(ohne Empfänger)') ?>
|
||
</a>
|
||
</td>
|
||
<td><?= View::h($buchung['text']) ?></td>
|
||
<td>
|
||
<?= View::h($buchung['kategorie']) ?>
|
||
<?php if ($buchung['split_gesamt']): ?>
|
||
<span class="marke" title="Gesamtbetrag einer Splitbuchung – Aufschlüsselung im Kontoblatt">Splitbuchung</span>
|
||
<?php elseif ($buchung['gesplittet']): ?>
|
||
<span class="marke" title="Zeile einer Splitbuchung">Split</span>
|
||
<?php endif; ?>
|
||
</td>
|
||
<td><?= View::h($buchung['klasse']) ?></td>
|
||
<td class="rechts <?= View::betragKlasse($buchung['betrag']) ?>">
|
||
<?= View::betrag($buchung['betrag'], false) ?>
|
||
</td>
|
||
</tr>
|
||
<?php endforeach; ?>
|
||
</tbody>
|
||
<tfoot>
|
||
<tr class="summenzeile">
|
||
<td colspan="6">Summe (<?= count($zeile['buchungen']) ?> Buchungen)</td>
|
||
<td class="rechts <?= View::betragKlasse($zeile['summe']) ?>">
|
||
<?= View::betrag($zeile['summe'], false) ?>
|
||
</td>
|
||
</tr>
|
||
</tfoot>
|
||
</table>
|
||
|
||
<p class="hinweis klein">
|
||
Die Beträge stehen mit ihrem buchhalterischen Vorzeichen – im Summenbericht erscheint
|
||
dieselbe Summe unter „Ausgaben“ ohne Minus.
|
||
</p>
|
||
<?php endif; ?>
|
||
|
||
<?php include __DIR__ . '/../layout/fuss.php'; ?>
|