Commit graph

4 commits

Author SHA1 Message Date
3e67a876c1 Vorschlagsliste UX: B2B/B2C-Filter wirkt direkt auf Kunden-Dropdown, Skip-Grund-Zelle harmonisiert [deploy]
All checks were successful
Deploy mahnung / deploy (push) Successful in 13s
Kundentyp filtert das Kunden-Dropdown:
- select_company bekommt SQL-Filter "s.tva_intra IS NOT NULL AND s.tva_intra <> ''"
  bzw. "s.tva_intra IS NULL OR s.tva_intra = ''" je nach B2B/B2C-Wahl.
- Das Kundentyp-Select hat onchange=this.form.submit, sodass das Dropdown
  ohne extra Klick auf "Suche" direkt neu geladen wird.

Skip-Grund-Zelle:
- opacitymedium-Klasse von td auf inneres span verschoben. Manche Themes
  rendern td.opacitymedium mit eigenem Border-Verhalten — das hatte zu
  sichtbarem Rahmen-Unterschied in der Uebersprungen-Tabelle gefuehrt.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 12:34:57 +02:00
8e5e26c162 Vorschlagsliste: Kunden-Select2 + Mindestbetrag + Kundentyp-Filter + Kontakt-Spalte [deploy]
All checks were successful
Deploy mahnung / deploy (push) Successful in 14s
Filter-Zeile:
- Kunden-Filter "rowid"-Input ersetzt durch $form->select_company()
  (Ajax-Suche falls COMPANY_USE_SEARCH_TO_SELECT gesetzt, sonst klassisches
  Dropdown). Direkt-Links ?search_socid=74 von der Kundenkarte bleiben
  weiterhin funktional (htmlname=search_socid, Backward-kompatibel).
- Neuer Filter "Mindestbetrag" (EUR, Komma zugelassen).
- Neuer Filter "Kundentyp" (alle / B2B / B2C).

Tabelle:
- Neue Spalte "Kontakt" mit Telefon- und Mail-Direktlink-Icons (tel: / mailto:).
- Spalte erscheint sowohl in der Vorschlags- als auch in der Uebersprungen-Tabelle.

MahnungVorschlag::getVorschlaege() + buildAlleVorschlaege():
- SELECT erweitert um s.phone + s.email; werden als soc_phone/soc_email
  pro Eintrag mitgegeben.
- Neue PHP-side Filter min_betrag und kundentyp.

Lang-Keys: MahnungKontakt (de_DE + en_US).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 11:49:31 +02:00
d889fb25a5 Archiv zeigt Kundennamen, Vorschlagsliste mit Skip-Diagnose [deploy]
All checks were successful
Deploy mahnung / deploy (push) Successful in 13s
- list.php Archiv: Rechnungs-Ref + Kunden-Name per Bulk-Query (statt rowid).
  Mahnung-Ref klickt zur Detailansicht (card.php).
- MahnungVorschlag: neue buildAlleVorschlaege()/getUebersprungeneRechnungen()
  liefern auch ueberfaellige Rechnungen ohne aktuellen Vorschlag inkl. skip_reason
  (Wartefrist laeuft, Stufen ausgeschoepft, Frist Stufe 1 nicht erreicht, ...).
- list.php Vorschlagsliste: zweite Tabelle "Aktuell uebersprungen" mit Grund.
  Erklaert warum ueberfaellige Rechnungen nicht in der Vorschlagsliste auftauchen.
- Lang-Keys MahnungUebersprungen/Hint/SkipGrund (DE+EN).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-07 12:16:20 +02:00
d1db85322b Initiales Release: Mahnung-Modul v0.1.0 [deploy]
All checks were successful
Deploy mahnung / deploy (push) Successful in 14s
Vollstaendiges 3-stufiges Mahnwesen nach BGB §288:
- SQL-Schema (llx_mahnung_mahnung, llx_mahnung_stufe)
- CRUD-Klassen (Mahnung, MahnungStufe, MahnungVorschlag)
- TCPDF DIN-5008 PDF-Generierung
- Verzugszinsberechnung B2C/B2B + §288 Abs.5 Pauschale
- Trigger: offene Mahnungen bei Zahlungseingang schliessen
- Hook: Tab + Button auf Rechnungs-/Kundenkarte
- Cron: taegl. Vorschlagsliste + Ntfy-Push
- Deploy-Pipeline (.forgejo/workflows/deploy.yml)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-07 12:09:37 +02:00