Regelzuweisung, Neuberechnung, Pauschale — Funktionsweise

Die vier Endpunkte des Rechts apply: Zinsregel schreiben, offene Salden neu berechnen, Pauschalen prüfen und den Pauschalenbeleg über 40 EUR erzeugen.

Das Funktionsrecht apply (nur alte Rechtetabelle, interest_v1.sql) öffnet vier Endpunkte und die Pauschalen-Schaltflächen der Rechnungsliste. Jeder Endpunkt prüft zusätzlich Core modify und den inhaltlichen Bereich (getAllowedCompanyIds, filterIdsByClients).

Endpunkte

EndpunktFunktionsweise
applyruleSchreibt die Zinsregel auf die markierten, auf den Bereich eingeschränkten Rechnungen (invoice.interest_rule_id); Fehler: error_apply_input.
refreshallBerechnet den offenen Saldo der gefilterten Rechnungen aus den Buchungen neu (recalcInvoiceOutstanding) und meldet die Zahl der Änderungen; mit dem Recht interest werden auch Zinsbelege aktualisiert. Über 3.000 Zeilen folgt ein Fehler (error_refresh_scope), kein Hintergrundjob.
recheckrecoveryAktualisiert die Kennzeichen „fristgerecht bezahlt“ (refreshPaidOnTime), repariert Basisbelegverweise (repairRecoveryBaseLinks), widerruft nicht mehr berechtigte Pauschalen (revokeRecoveryFeesPaidOnTime) — beglichene Belege bleiben erhalten und werden aufgelistet — und liefert Diagnosen.
generaterecoveryFür die markierten überfälligen Rechnungen ein Pauschalenbeleg über 40 EUR zum MNB-EUR-Kurs des ersten Verzugstags (dlbtfxrate), über addInvoice(): doc_type = recovery_fee, base_invoice_id = Basisrechnung, Nummer aus der Basisrechnung abgeleitet; Hinweis und PDF. Bei vorhandener gültiger Pauschale übersprungen; PDF-Fehler: error_recovery_pdf.

Betroffene Tabellen

Die Tabellennamen tragen in der Datenbank das eigene Präfix der Installation: invoice, invoice_item, transaction_settlement; Modelle: finance/invoice, finance/transaction, masterdata/analytic, company/company.

Bekannte Einschränkungen

Über der Grenze von 3.000 Zeilen stellt refreshall keinen Hintergrundjob ein, sondern gibt einen Fehler aus; der Benutzer muss den Filter eingrenzen.