presseportale/app/Enums
Kevin Adametz a00f9dc79a billing: MAN-Rechnungen fuer Ueberweisungskunden bearbeiten, hold-Altlast bereinigen
Bestandskunden aus dem Altsystem zahlen per Ueberweisung; nach dem 04:30-Lauf
fehlte bisher der gesamte Bearbeitungsweg (kein PDF, keine Mail, kein
Zahlungseingang, kein Bestandsschutz-Ende). Plan und Befund:
dev/lagacy-rechnungen/entwicklungsplan-2026-09-16.md.

Bereinigung (legacy:settle-unpaid, wiederholbar):
- Legacy-Status hold = nie bezahlt, ersatzlos erledigt. 9 daraus abgeleitete
  Bestandsschutz-Buendel werden gekuendigt, MAN-00001/00002 storniert.
  Archivzeilen bleiben erhalten, sind aber in Admin-Archiv und Kundenkonto
  standardmaessig ausgeblendet.
- pending/reminder (recurring) = offene Vorgaenge: Periode auf den
  Leistungsbeginn der unbezahlten Rechnung zurueckgedreht und als MAN-Rechnung
  neu ausgestellt (Archiv-Status superseded, replaces_legacy_invoice_number).
- pending/reminder (single) = abgeschrieben (uncollectible).
- legacy:grandfather-subscriptions wertet den Zahlungsstatus jetzt selbst aus.

Workflow in /admin/payments (ManualInvoiceDunningService, je Aktion mit
Eintrag im Aktivitaets-Verlauf):
- Rechnung senden: Mail mit PDF-Anhang, Bankverbindung aus billing.issuer,
  Hinweis auf Bestandsschutz-Ende; Zahlungsziel zaehlt ab Versand.
- Erinnerung: gleiche Mail im Mahn-Ton, Nachfrist bei verstrichener Frist.
- Bezahlt: Zahlungseingang laut Kontoauszug verbuchen.
- Bestandsschutz beenden: Rechnung storniert (nie geloescht), Buendel
  gekuendigt, weitere offene MAN-Rechnungen des Kunden storniert, optionale
  Kundenmail.
- Panel "Blockierte Vereinbarungen": faellige Posten ohne Rechnung (meist
  fehlende Rechnungsadresse) mit "Jetzt abrechnen" oder "Entfernen".

Schema: invoices bekommt user_payment_option_id, sent_at, reminded_at,
reminder_count, voided_at, void_reason, replaces_legacy_invoice_number
(inkl. Backfill der bestehenden MAN-Rechnungen). PDF-Primitiven des
Archiv-Renderers in den Trait DrawsPdf ausgelagert; MAN-PDF on-demand ueber
admin.invoices.pdf / me.invoices.manual-pdf (InvoicePolicy).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-16 10:56:29 +00:00
..
ActivityType.php billing: MAN-Rechnungen fuer Ueberweisungskunden bearbeiten, hold-Altlast bereinigen 2026-09-16 10:56:29 +00:00
AiImageDeclaration.php KI-Kennzeichnung: 2 Optionen im Submit-Modal + Labels auf Detailseite 2026-07-10 16:51:23 +00:00
AiTextDeclaration.php KI-Kennzeichnung: 2 Optionen im Submit-Modal + Labels auf Detailseite 2026-07-10 16:51:23 +00:00
BoostPlacement.php Boost-Slot-Grenzen (5/3) + Kategorie-Boost zum halben Satz 2026-07-13 12:28:03 +00:00
CompanyAddressClass.php companies: Adress-Klassifizierung persistieren (Roadmap 1a.2, E1 = 3) 2026-09-11 09:11:09 +00:00
CompanyMergeSubject.php companies: Zusammenführung im Bestand, rückabwickelbar (Roadmap 1a.3) 2026-09-15 08:43:46 +00:00
CompanyType.php 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
ContactMessageStatus.php Backend-WIP: Kontakt-Queue, Page-Cache, Validierungs-Feedback, i18n 2026-07-09 15:38:11 +00:00
ContactMessageTopic.php Werbeplaetze reaktiviert: Eigenwerbe-Slots oeffnen das Kontakt-Widget 2026-07-10 16:53:02 +00:00
ConversionEventType.php conversion: Konversionsleiter mit Herkunft auf dem Magic-Link-Token (Block 0) 2026-09-01 13:12:12 +00:00
ConversionSource.php conversion: Konversionsleiter mit Herkunft auf dem Magic-Link-Token (Block 0) 2026-09-01 13:12:12 +00:00
CreditTransactionType.php Credit-Wallet + Ledger + Tier-Preisableitung (Fundament) 2026-06-17 14:16:43 +00:00
EmailBounceKind.php mail: Kontakterreichbarkeit - Formpruefung, Domainpruefung, Einlieferer-Bericht 2026-09-16 09:22:39 +00:00
EmailDomainState.php mail: Kontakterreichbarkeit - Formpruefung, Domainpruefung, Einlieferer-Bericht 2026-09-16 09:22:39 +00:00
EmailNotificationType.php recht: Meldeverfahren v2 Phasen 5+7 — DSGVO-Strukturformular, 10-€-Checkout mit KI-Vorprüfung, Triage & Panel-Modal 2026-07-23 13:02:57 +00:00
EmailSuppressionReason.php mail: zentrale Bounce-Suppression mit Versand-Gate und Circuit Breaker (Roadmap 1b.6, Schritte 1–2) 2026-09-15 13:48:56 +00:00
ImageLicenseType.php KI-generierte Bilder: eigener Lizenztyp, Anbieter-Bestätigung, Kennzeichnung 2026-06-12 16:04:12 +00:00
InvoiceStatus.php 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
LegalRequestStatus.php WS-3: Recht & Compliance – Rechts-Kern (DSGVO/Persönlichkeitsrecht/Melden + Queue) 2026-06-16 14:20:05 +00:00
LegalRequestType.php recht: Meldeverfahren v2 Phasen 1-4 — Re-Sync-Sperre, Anonymisierung, Magic-Link-Intake, Self-Service-Korrektur 2026-07-22 15:56:34 +00:00
LegalRequestVerificationMethod.php recht: Meldeverfahren v2 Phasen 1-4 — Re-Sync-Sperre, Anonymisierung, Magic-Link-Intake, Self-Service-Korrektur 2026-07-22 15:56:34 +00:00
NewsletterCampaignStatus.php admin: internes Newsletter-Modul mit Filtern, Protokoll und Abmeldung 2026-07-21 09:26:57 +00:00
NewsletterRecipientStatus.php admin: internes Newsletter-Modul mit Filtern, Protokoll und Abmeldung 2026-07-21 09:26:57 +00:00
PaymentOptionType.php 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
PaymentStatus.php 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
Portal.php Optimierung Phase 0: Korrektheit & Security 2026-06-19 08:09:02 +00:00
PressReleaseClassification.php PM-Detailseite: Inhaltspruefung (Gruen/Gelb/Rot) + Qualitaets-Score sichtbar 2026-07-13 14:59:33 +00:00
PressReleaseContentTier.php User Panel: Phase-8-Abschluss, Titelbild/Lizenzen/Zeitzonen und KI-Pruef-Pipeline 2026-06-12 08:30:13 +00:00
PressReleaseEventType.php PM-Tracking: Ereignis-Log fuer Aufrufe + Shares (press_release_events) 2026-07-10 09:56:42 +00:00
PressReleasePlaceholder.php User Panel: Phase-8-Abschluss, Titelbild/Lizenzen/Zeitzonen und KI-Pruef-Pipeline 2026-06-12 08:30:13 +00:00
PressReleaseShareChannel.php PM-Tracking: Ereignis-Log fuer Aufrufe + Shares (press_release_events) 2026-07-10 09:56:42 +00:00
PressReleaseStatus.php 5.3: PressReleaseStatus::badgeClass() zentralisiert + toten statusColor-Code entfernt 2026-07-02 10:36:15 +00:00
RegistrationType.php 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
ReviewCheckSource.php Pruefzaehler + Pruefkontingent (Decision-Update Phase-2 vorgezogen) 2026-06-17 14:19:37 +00:00
SinglePurchaseStatus.php Phase 9D: Tarif-Datenmodell, Cashier und hybride Rechnungskreise STR-/MAN- 2026-06-12 10:15:46 +00:00
SinglePurchaseType.php recht: Meldeverfahren v2 Phasen 5+7 — DSGVO-Strukturformular, 10-€-Checkout mit KI-Vorprüfung, Triage & Panel-Modal 2026-07-23 13:02:57 +00:00
Tier.php Credit-Wallet + Ledger + Tier-Preisableitung (Fundament) 2026-06-17 14:16:43 +00:00
UserPaymentOptionStatus.php 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
VatIdCheckStatus.php User-Panel-Restarbeiten: PM-Guard, Profil-Rework, USt-ID-Prüfung, Buchungspflicht-Adresse 2026-06-12 14:36:18 +00:00
VatTreatment.php USt-Behandlung: Netto-Preise, VatResolver und Steuer-Ausweis im MAN-Kreis 2026-06-12 10:58:43 +00:00