fix(contacts): keep one customer when Tahesab repeats a mobile

A Tahesab import now updates the person who already has that mobile instead of creating another, and the boot merge runs once more so existing pairs collapse.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-11-05 13:34:41 +03:30
co-authored by Cursor
parent 94f0383c79
commit 1ef7f91771
3 changed files with 54 additions and 5 deletions
@@ -26,6 +26,9 @@ const personSelect = {
companyId: true,
customFields: true,
importSource: true,
sourceRef: true,
previousImportSource: true,
previousSourceRef: true,
loyaltyPoints: true,
discLabel: true,
discReliable: true,
@@ -62,6 +65,8 @@ function mergedFields(keeper: PersonRow, extras: PersonRow[], canon: string): Pr
let showGenderInName = keeper.showGenderInName;
let previousFirstName = keeper.previousFirstName;
let previousLastName = keeper.previousLastName;
let previousImportSource = keeper.previousImportSource;
let previousSourceRef = keeper.previousSourceRef;
let discLabel = keeper.discLabel;
let discReliable = keeper.discReliable;
let discAssessedAt = keeper.discAssessedAt;
@@ -93,6 +98,14 @@ function mergedFields(keeper: PersonRow, extras: PersonRow[], canon: string): Pr
if (blank(previousLastName) && extra.previousLastName) {
previousLastName = extra.previousLastName;
}
if (
blank(previousImportSource) &&
extra.importSource &&
extra.importSource !== keeper.importSource
) {
previousImportSource = extra.importSource;
previousSourceRef = extra.sourceRef;
}
if (
keeper.importSource === 'tahesab' &&
blank(previousFirstName) &&
@@ -134,6 +147,8 @@ function mergedFields(keeper: PersonRow, extras: PersonRow[], canon: string): Pr
showGenderInName,
previousFirstName,
previousLastName,
previousImportSource,
previousSourceRef,
discLabel,
discReliable,
discAssessedAt,