From c30911daedd7620ab58cf87bd60755978e50a466 Mon Sep 17 00:00:00 2001 From: "Torsten Schulz (local)" Date: Sun, 29 Mar 2026 14:54:18 +0200 Subject: [PATCH] Refactor saveMember function to enhance duplicate member handling, allowing updates to existing duplicates and improving error handling for member existence checks. --- server/utils/members.js | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/server/utils/members.js b/server/utils/members.js index ec2821a..444e240 100644 --- a/server/utils/members.js +++ b/server/utils/members.js @@ -244,7 +244,7 @@ export async function saveMember(memberData) { if (memberData.id) { // Update existing manual member if present. // If the ID belongs to a login-only member shown in the merged list, - // create a manual overlay with the same ID so editable fields can be stored. + // update an existing manual duplicate or create a manual overlay. const index = members.findIndex(m => m.id === memberData.id) const duplicate = findDuplicateMember( members.filter(m => m.id !== memberData.id), @@ -253,12 +253,19 @@ export async function saveMember(memberData) { memberData.geburtsdatum ) - if (duplicate) { + if (duplicate && index !== -1) { throw new Error('Ein Mitglied mit diesem Namen und Geburtsdatum existiert bereits.') } if (index !== -1) { members[index] = { ...members[index], ...memberData } + } else if (duplicate) { + const duplicateIndex = members.findIndex(m => m.id === duplicate.id) + members[duplicateIndex] = { + ...members[duplicateIndex], + ...memberData, + id: members[duplicateIndex].id + } } else { members.push({ ...memberData,