@@ -856,9 +856,12 @@ async function moveRolesBetweenEntities(
856856 const isTargetBlocked = orgAffiliationPolicyById . get ( targetOrgId ) ?? false
857857 const isSourceBlocked = orgAffiliationPolicyById . get ( role . organizationId ) ?? false
858858
859+ const targetMemberId = mergeStrat . targetMemberId ( role )
859860 let isPrimaryWorkExp = existingOverride ?. isPrimaryWorkExperience ?? false
860861 if ( isPrimaryWorkExp ) {
861- const alreadyHasIt = primaryAffiliationOverrides . some ( ( o ) => o . isPrimaryWorkExperience )
862+ const alreadyHasIt = primaryAffiliationOverrides . some (
863+ ( o ) => o . memberId === targetMemberId && o . isPrimaryWorkExperience ,
864+ )
862865 if ( alreadyHasIt ) isPrimaryWorkExp = false
863866 }
864867
@@ -867,7 +870,7 @@ async function moveRolesBetweenEntities(
867870 if ( isTargetBlocked ) {
868871 await changeMemberOrganizationAffiliationOverrides ( qx , [
869872 {
870- memberId : mergeStrat . targetMemberId ( role ) ,
873+ memberId : targetMemberId ,
871874 memberOrganizationId : newRoleId ,
872875 allowAffiliation : false ,
873876 isPrimaryWorkExperience : isPrimaryWorkExp || undefined ,
@@ -877,7 +880,7 @@ async function moveRolesBetweenEntities(
877880 } else if ( preserveManualBlock || isPrimaryWorkExp ) {
878881 await changeMemberOrganizationAffiliationOverrides ( qx , [
879882 {
880- memberId : mergeStrat . targetMemberId ( role ) ,
883+ memberId : targetMemberId ,
881884 memberOrganizationId : newRoleId ,
882885 allowAffiliation : preserveManualBlock ? false : undefined ,
883886 isPrimaryWorkExperience : isPrimaryWorkExp || undefined ,
@@ -1133,8 +1136,12 @@ export async function mergeRoles(
11331136 // 2. Resolve "Primary Work Experience"
11341137 // Keep it if the primary had it, or if a secondary had it and no other primary role claims it.
11351138 const secondaryHasExp = incomingSecondaries . some ( ( s ) => s . override . isPrimaryWorkExperience )
1139+ const targetMemberId = mergeStrat . targetMemberId ( addRole )
11361140 const otherPrimaryHasExp = primaryAffiliationOverrides . some (
1137- ( o ) => o . isPrimaryWorkExperience && o . memberOrganizationId !== targetRoleId ,
1141+ ( o ) =>
1142+ o . memberId === targetMemberId &&
1143+ o . isPrimaryWorkExperience &&
1144+ o . memberOrganizationId !== targetRoleId ,
11381145 )
11391146 const finalIsPrimaryWorkExp = ! ! (
11401147 primaryOverride ?. isPrimaryWorkExperience ||
@@ -1166,7 +1173,7 @@ export async function mergeRoles(
11661173
11671174 await changeMemberOrganizationAffiliationOverrides ( qx , [
11681175 {
1169- memberId : mergeStrat . targetMemberId ( addRole ) ,
1176+ memberId : targetMemberId ,
11701177 memberOrganizationId : targetRoleId ,
11711178 allowAffiliation : effectiveAllowAffiliation ,
11721179 isPrimaryWorkExperience : finalIsPrimaryWorkExp || undefined ,
0 commit comments