Feature: Anlage-Spalte in allen Buchungstabellen (Journal, Belegdetail, UStVA, EÜR)

This commit is contained in:
fds2610-bot 2026-04-12 16:49:00 +02:00
parent 67dd79db1b
commit 2611d2b4b9
7 changed files with 53 additions and 13 deletions

View file

@ -13,10 +13,12 @@ class Booking
return Database::fetchAll(
'SELECT bk.*,
k.kontonummer as kategorie_nr, k.bezeichnung as kategorie_name,
z.kontonummer as zahlungs_nr, z.bezeichnung as zahlungs_name
z.kontonummer as zahlungs_nr, z.bezeichnung as zahlungs_name,
a.anlage_nr, a.bezeichnung as anlage_bezeichnung
FROM bookings bk
JOIN accounts k ON bk.kategorie_konto_id = k.id
JOIN accounts z ON bk.zahlungskonto_id = z.id
JOIN accounts k ON bk.kategorie_konto_id = k.id
JOIN accounts z ON bk.zahlungskonto_id = z.id
LEFT JOIN assets a ON bk.asset_id = a.id
WHERE bk.beleg_id = ?
ORDER BY bk.buchungs_datum, bk.id',
[$belegId]
@ -50,12 +52,14 @@ class Booking
$sql = 'SELECT bk.*,
k.kontonummer as kategorie_nr, k.bezeichnung as kategorie_name,
z.kontonummer as zahlungs_nr, z.bezeichnung as zahlungs_name,
bl.beleg_nr, fy.year as fiscal_year_nr
bl.beleg_nr, fy.year as fiscal_year_nr,
a.anlage_nr, a.bezeichnung as anlage_bezeichnung
FROM bookings bk
JOIN accounts k ON bk.kategorie_konto_id = k.id
JOIN accounts z ON bk.zahlungskonto_id = z.id
JOIN belege bl ON bk.beleg_id = bl.id
JOIN accounts k ON bk.kategorie_konto_id = k.id
JOIN accounts z ON bk.zahlungskonto_id = z.id
JOIN belege bl ON bk.beleg_id = bl.id
JOIN fiscal_years fy ON bk.fiscal_year_id = fy.id
LEFT JOIN assets a ON bk.asset_id = a.id
WHERE ' . implode(' AND ', $where) . '
ORDER BY bk.buchungs_datum DESC, bk.id DESC
LIMIT ? OFFSET ?';

View file

@ -82,12 +82,14 @@ class EuerCalculator
bk.betrag_netto, bk.betrag_ust, bk.betrag_brutto, bk.buchungstext,
bk.is_reversal, bk.beleg_id, bl.beleg_nr,
k.kontonummer AS kategorie_nr, k.bezeichnung AS kategorie_name,
z.kontonummer AS zahlungs_nr, z.bezeichnung AS zahlungs_name
z.kontonummer AS zahlungs_nr, z.bezeichnung AS zahlungs_name,
a.anlage_nr, a.bezeichnung AS anlage_bezeichnung
FROM bookings bk
JOIN fiscal_years fy ON bk.fiscal_year_id = fy.id
LEFT JOIN belege bl ON bk.beleg_id = bl.id
JOIN accounts k ON bk.kategorie_konto_id = k.id
JOIN accounts z ON bk.zahlungskonto_id = z.id
LEFT JOIN assets a ON bk.asset_id = a.id
WHERE fy.year = ? AND bk.kategorie_konto_id = ?
ORDER BY bk.buchungs_datum, bk.id',
[$year, $kontoId]

View file

@ -200,12 +200,14 @@ class UstvaCalculator
bk.betrag_netto, bk.betrag_ust, bk.betrag_brutto, bk.buchungstext,
bk.is_reversal, bk.beleg_id, bl.beleg_nr,
k.kontonummer AS kategorie_nr, k.bezeichnung AS kategorie_name,
z.kontonummer AS zahlungs_nr, z.bezeichnung AS zahlungs_name
z.kontonummer AS zahlungs_nr, z.bezeichnung AS zahlungs_name,
a.anlage_nr, a.bezeichnung AS anlage_bezeichnung
FROM bookings bk
JOIN fiscal_years fy ON bk.fiscal_year_id = fy.id
LEFT JOIN belege bl ON bk.beleg_id = bl.id
JOIN accounts k ON bk.kategorie_konto_id = k.id
JOIN accounts z ON bk.zahlungskonto_id = z.id
LEFT JOIN assets a ON bk.asset_id = a.id
WHERE fy.year = ? AND MONTH(bk.buchungs_datum) = ?';
$parts = [];

View file

@ -197,6 +197,7 @@ $suppliers = $suppliers ?? [];
<th class="td-right">USt</th>
<th class="td-right">Brutto</th>
<th>Text</th>
<th>Anlage</th>
<th></th>
</tr>
</thead>
@ -222,6 +223,13 @@ $suppliers = $suppliers ?? [];
<span class="badge badge-red">Storniert</span>
<?php endif; ?>
</td>
<td class="td-mono text-sm">
<?php if (!empty($bk['anlage_nr'])): ?>
<a href="/assets" title="<?= $h($bk['anlage_bezeichnung']) ?>"><?= $h($bk['anlage_nr']) ?></a>
<?php else: ?>
<span class="text-muted">–</span>
<?php endif; ?>
</td>
<td>
<?php if (!$bk['locked'] && !$isReversal && !$isReversed): ?>
<div style="display:flex;gap:.35rem">
@ -263,7 +271,7 @@ $suppliers = $suppliers ?? [];
</tr>
<?php endforeach; ?>
<?php if (empty($bookings)): ?>
<tr><td colspan="10" class="text-center text-muted" style="padding:1rem">Noch keine Buchungen.</td></tr>
<tr><td colspan="11" class="text-center text-muted" style="padding:1rem">Noch keine Buchungen.</td></tr>
<?php endif; ?>
</tbody>
</table>

View file

@ -49,6 +49,7 @@
<th class="td-right">USt (%)</th>
<th class="td-right">Brutto</th>
<th>Buchungstext</th>
<th>Anlage</th>
<?php if ($testMode): ?><th></th><?php endif; ?>
</tr>
</thead>
@ -84,6 +85,13 @@
<span class="badge badge-red">Storniert</span>
<?php endif; ?>
</td>
<td class="td-mono text-sm">
<?php if (!empty($bk['anlage_nr'])): ?>
<a href="/assets" title="<?= $h($bk['anlage_bezeichnung']) ?>"><?= $h($bk['anlage_nr']) ?></a>
<?php else: ?>
<span class="text-muted">–</span>
<?php endif; ?>
</td>
<?php if ($testMode): ?>
<td>
<form method="post" action="/bookings/<?= $h($bk['id']) ?>/delete"
@ -95,7 +103,7 @@
</tr>
<?php endforeach; ?>
<?php if (empty($rows)): ?>
<tr><td colspan="<?= $testMode ? 11 : 10 ?>" class="text-center text-muted" style="padding:2rem">Keine Buchungen gefunden.</td></tr>
<tr><td colspan="<?= $testMode ? 12 : 11 ?>" class="text-center text-muted" style="padding:2rem">Keine Buchungen gefunden.</td></tr>
<?php endif; ?>
</tbody>
</table>

View file

@ -31,6 +31,7 @@ $fmt = fn($v) => number_format((float)$v, 2, ',', '.') . ' €';
<th class="td-right">Netto</th>
<th class="td-right">USt</th>
<th class="td-right">Brutto</th>
<th>Anlage</th>
</tr>
</thead>
<tbody>
@ -62,12 +63,19 @@ $fmt = fn($v) => number_format((float)$v, 2, ',', '.') . ' €';
<td class="td-right td-mono"><?= $fmt($netto) ?></td>
<td class="td-right td-mono"><?= $fmt($ust) ?></td>
<td class="td-right td-mono"><?= $fmt($brutto) ?></td>
<td class="td-mono text-sm">
<?php if (!empty($b['anlage_nr'])): ?>
<a href="/assets" title="<?= $h($b['anlage_bezeichnung']) ?>"><?= $h($b['anlage_nr']) ?></a>
<?php else: ?>
<span class="text-muted">–</span>
<?php endif; ?>
</td>
</tr>
<?php endforeach; ?>
</tbody>
<tfoot>
<tr style="font-weight:700;border-top:2px solid #000">
<td colspan="4">Summe (<?= count($bookings) ?> Buchungen)</td>
<td colspan="5">Summe (<?= count($bookings) ?> Buchungen)</td>
<td class="td-right td-mono"><?= $fmt($sumNetto) ?></td>
<td class="td-right td-mono"><?= $fmt($sumUst) ?></td>
<td class="td-right td-mono"><?= $fmt($sumBrutto) ?></td>

View file

@ -51,6 +51,7 @@ $signedBetrag = fn(array $b, string $field): float =>
<th class="td-right">Netto</th>
<th class="td-right"><?= $kz === '69' ? 'USt-Beitrag' : 'USt' ?></th>
<th class="td-right">Brutto</th>
<th>Anlage</th>
</tr>
</thead>
<tbody>
@ -81,12 +82,19 @@ $signedBetrag = fn(array $b, string $field): float =>
<td class="td-right td-mono"><?= $fmtKz($netto) ?></td>
<td class="td-right td-mono"><?= $fmtKz($ust) ?></td>
<td class="td-right td-mono"><?= $fmtKz($brutto) ?></td>
<td class="td-mono text-sm">
<?php if (!empty($b['anlage_nr'])): ?>
<a href="/assets" title="<?= $h($b['anlage_bezeichnung']) ?>"><?= $h($b['anlage_nr']) ?></a>
<?php else: ?>
<span class="text-muted">–</span>
<?php endif; ?>
</td>
</tr>
<?php endforeach; ?>
</tbody>
<tfoot>
<tr style="font-weight:700;border-top:2px solid #000">
<td colspan="5">Summe (<?= count($bookings) ?> Buchungen)</td>
<td colspan="6">Summe (<?= count($bookings) ?> Buchungen)</td>
<td class="td-right td-mono"><?= $fmtKz($sumNetto) ?></td>
<td class="td-right td-mono"><?= $fmtKz($sumUst) ?></td>
<td class="td-right td-mono"><?= $fmtKz($sumBrutto) ?></td>