Fix: Tab "Mahnwesen" auf Kundenkarte doppelt — completeTabsHead-Hook auf add/external filtern [deploy]
All checks were successful
Deploy mahnung / deploy (push) Successful in 14s

Dolibarr ruft complete_head_from_modules() pro societe_prepare_head() mehrmals
auf (core/lib/company.lib.php:365 fuer 'core', 487 fuer 'external', 489 fuer
'remove'). Jeder Aufruf feuert completeTabsHead — der Hook haengte den Tab
entsprechend mehrfach an.

Fix: im Hook auf $parameters['mode']='add' UND filterorigmodule='external'
filtern, damit der Tab genau einmal pro Karte erscheint.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Eduard Wisch 2026-05-11 11:26:24 +02:00
parent d49bd9ebda
commit e4f2dd6fb2
2 changed files with 15 additions and 0 deletions

View file

@ -1,5 +1,10 @@
# Changelog
## [Unreleased]
### Fixes
- Kundenkarte: Tab "Mahnwesen" erschien doppelt, weil `complete_head_from_modules()` pro Karte mehrfach (core + external + remove) feuert. Hook filtert jetzt auf `mode=add` + `filterorigmodule=external`.
## [0.2.0] — 2026-05-10 — ODT-Template-System, Widget, Dokumentenmodelle
### ODT-Template-System

View file

@ -100,6 +100,16 @@ class ActionsMahnung
return 0;
}
// complete_head_from_modules() wird pro Karte mehrfach aufgerufen
// (mode='add' fuer 'core' UND 'external', plus mode='remove').
// Genau einmal feuern: nur add/external.
if (($parameters['mode'] ?? '') !== 'add') {
return 0;
}
if (($parameters['filterorigmodule'] ?? '') !== 'external') {
return 0;
}
$langs->load('mahnung@mahnung');
if ($onInvoice) {