Finanzmanager/src/Views/auswertungen/drilldown.php
fds2610-bot c2a6a9b899 Fix n.n.: Buchungsbericht zeigt Splitbuchung nach Konto/Empfänger zusammengefasst
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>
2026-09-27 14:16:41 +02:00

90 lines
3.1 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;
/**
* 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'; ?>