Fix: betrag_brutto in Beleg-Metadaten nach jeder Buchung aktualisieren

This commit is contained in:
fds2610-bot 2026-05-15 18:20:12 +02:00
parent c399a917ce
commit 700dc2952f
2 changed files with 19 additions and 0 deletions

View file

@ -183,6 +183,13 @@ class BookingController
} }
} }
// Belegbetrag in Metadaten aktualisieren
$totalBrutto = Booking::sumBruttoForBeleg($belegId);
\Steuerkram\Database::execute(
'UPDATE belege SET betrag_brutto = ?, updated_at = NOW() WHERE id = ?',
[$totalBrutto, $belegId]
);
// Bankbuchung verknüpfen wenn aus Bank-Kontext // Bankbuchung verknüpfen wenn aus Bank-Kontext
$bankTxId = (int)($data['bank_tx_id'] ?? 0); $bankTxId = (int)($data['bank_tx_id'] ?? 0);
if ($bankTxId > 0) { if ($bankTxId > 0) {

View file

@ -407,6 +407,18 @@ class Booking
return sprintf('BU-%s-%06d', $year, $next); return sprintf('BU-%s-%06d', $year, $next);
} }
/** Summiert betrag_brutto aller aktiven Hauptbuchungen eines Belegs. */
public static function sumBruttoForBeleg(int $belegId): float
{
$row = Database::fetchOne(
'SELECT COALESCE(SUM(betrag_brutto), 0) AS total
FROM bookings
WHERE beleg_id = ? AND is_reversal = 0 AND parent_booking_id IS NULL',
[$belegId]
);
return round((float)($row['total'] ?? 0), 2);
}
public static function sumByYear(int $year): array public static function sumByYear(int $year): array
{ {
return Database::fetchAll( return Database::fetchAll(