From ddcf64ae788b3ed63f5aa1892e70fe50d3a89453 Mon Sep 17 00:00:00 2001 From: Christian Date: Mon, 22 Dec 2025 14:15:17 +0100 Subject: [PATCH] =?UTF-8?q?Fix:=20Tjek=20for=20duplicate=20vtiger=5Fid=20f?= =?UTF-8?q?=C3=B8r=20update=20(undg=C3=A5r=20constraint=20violation)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/system/backend/sync_router.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/app/system/backend/sync_router.py b/app/system/backend/sync_router.py index 59f13b8..ddccdfc 100644 --- a/app/system/backend/sync_router.py +++ b/app/system/backend/sync_router.py @@ -110,6 +110,19 @@ async def sync_from_vtiger() -> Dict[str, Any]: if existing: # Link vTiger ID to existing customer current_vtiger_id = existing[0].get('vtiger_id') + + # Check if this vtiger_id is already assigned to another customer + vtiger_owner = execute_query( + "SELECT id, name FROM customers WHERE vtiger_id = %s", + (vtiger_id,) + ) + + if vtiger_owner and vtiger_owner[0]['id'] != existing[0]['id']: + # vTiger ID already belongs to another customer - skip + logger.warning(f"⚠️ vTiger #{vtiger_id} allerede tilknyttet '{vtiger_owner[0]['name']}' - springer over '{existing[0]['name']}'") + not_found_count += 1 + continue + if current_vtiger_id is None: execute_query( "UPDATE customers SET vtiger_id = %s, last_synced_at = NOW() WHERE id = %s",