Fix: Tabellen-Layout fichehalfleft + Einschreiben-Pattern für OCR [deploy]
All checks were successful
Deploy mahnung / deploy (push) Successful in 13s

- fichehalfleft Container für korrekte Dolibarr-Rahmen bei Stammdaten + Versand
- Einschreiben-Regex in DB updated: optionale Leerzeichen (OCR-freundlich)
- detectFromText() entfernt Leerzeichen aus erkannten Nummern (OCR-Normalisierung)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Eduard Wisch 2026-05-13 16:45:56 +02:00
parent 7196f2594c
commit b588937956
2 changed files with 6 additions and 0 deletions

View file

@ -288,6 +288,7 @@ llxHeader('', $langs->trans('MahnungRef').' '.$mahnung->ref);
print load_fiche_titre($langs->trans('MahnungRef').' '.$mahnung->ref, '', 'fa-envelope-open-text');
print '<div class="fichecenter">';
print '<div class="fichehalfleft">';
print '<div class="underbanner clearboth"></div>';
print '<table class="border centpercent tableforfield">';
print '<tr><td class="titlefield fieldname_ref">'.$langs->trans('MahnungRef').'</td><td class="valuefield fieldname_ref">'.dol_escape_htmltag($mahnung->ref).'</td></tr>';
@ -319,6 +320,7 @@ print '<tr><td>'.$langs->trans('MahnungVerzugszinsen').'</td><td>'.price($mahnun
print '<tr><td>'.$langs->trans('MahnungSumme').'</td><td><strong>'.price($mahnung->summe_mahnung).'</strong></td></tr>';
print '<tr><td>'.$langs->trans('Status').'</td><td>'.dol_escape_htmltag($mahnung->getStatusLabel()).'</td></tr>';
print '</table>';
print '</div>'; // Ende fichehalfleft
print '</div>'; // Ende fichecenter Stammdaten
// --- Generierte Dokumente (wie bei Rechnungen) ---
@ -403,6 +405,7 @@ $formfile = new FormFile($db);
print '<br>';
print load_fiche_titre($langs->trans('MahnungVersandBelege'), '', 'fa-truck');
print '<div class="fichecenter">';
print '<div class="fichehalfleft">';
print '<div class="underbanner clearboth"></div>';
// Versandwege (Dropdown-Optionen, Label kommt aus Lang-File MahnungVersandweg*)
@ -588,6 +591,7 @@ print $formfile->showdocuments(
0 // $hideifempty
);
print '</div>'; // Ende fichehalfleft Versand & Belege
print '</div>'; // Ende fichecenter Versand & Belege
if ($mahnung->status !== Mahnung::STATUS_STORNIERT && $user->hasRight('mahnung', 'delete')) {

View file

@ -224,6 +224,8 @@ class MahnungTrackingPattern
$ret = @preg_match($p['regex'], $haystack, $matches);
if ($ret === 1) {
$nr = !empty($matches[1]) ? $matches[1] : $matches[0];
// Leerzeichen entfernen (OCR fügt manchmal Leerzeichen in Nummern ein)
$nr = preg_replace('/\s+/', '', $nr);
return array(
'provider' => $p['provider'],
'nr' => $nr,