Fix duplicate company/service contacts: robust phone matching

Firmen-/Service-Eintraege (nur Nummer + Firma, kein Name/E-Mail) wurden bei
jedem Sync neu angelegt statt verknuepft, weil das Matching Rufnummern
feldgenau und formatabhaengig verglich. Bei unterschiedlich formatierten
Nummern (+49 vs 0) und wechselnden Feldern (geschaeftlich/privat) schlug der
Abgleich fehl -> Vervielfachung.

- NormalizePhone vereinheitlicht jetzt +49/0049 -> 0 (SyncEngine + ContactMerger).
- Telefon-Abgleich feldUEBERGREIFEND (jede Nummer gegen jede) via SharedPhone.
- "Nummer + Firma"-Treffer nur noch fuer Eintraege OHNE Personennamen, damit
  Kollegen mit gemeinsamer Zentrale-Nummer nicht verschmolzen werden.
- Zusaetzlich: reine Nummern-Eintraege (kein Name/Firma/E-Mail) matchen ueber
  eine gemeinsame Rufnummer.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-17 12:59:54 +02:00
co-authored by Claude Opus 4.8
parent 6ecd5d7fa3
commit 9767299edd
3 changed files with 58 additions and 10 deletions
+10
View File
@@ -9,6 +9,16 @@ Versionsschema ist `x.x.x.x` (siehe `release.sh`).
### Behoben
- **Dubletten bei Firmen-/Service-Eintraegen (nur Nummer + Firma).** Solche
Eintraege wurden bei jedem Sync neu angelegt statt verknuepft, weil der
Nummern-Abgleich feldgenau (geschaeftlich↔geschaeftlich) und formatabhaengig
war. Jetzt werden Rufnummern feldUEBERGREIFEND und formatunabhaengig
verglichen (`+49`/`0049` == `0`), sodass diese Eintraege verknuepft werden.
Der "Nummer + Firma"-Abgleich greift bewusst nur bei Eintraegen OHNE
Personennamen, damit keine zwei Kollegen mit gleicher Zentrale-Nummer
verschmolzen werden. (Bereits entstandene Dubletten muessen einmalig manuell
bereinigt werden.)
- **Dubletten auf beiden Seiten beim Synchronisieren.** Mehrere zusammenhaengende
Ursachen wurden beseitigt:
- Eine unvollstaendig geladene Starface-Kontaktliste (z.B. durch einen