Skip to content

[Clients]: Field-by-field conflict picker for client merge #589

Description

@nielsdrost7

RelationMergeService::merge() (Modules/Clients/Services/RelationMergeService.php, introduced in PR #580) always keeps the primary record's value when both records have a conflicting non-empty value for trading_name, unique_name, id_number, coc_number, vat_number, currency_code, language, primary_contact_id — it only gap-fills empty primary fields from the duplicate. The original issue (#481) sketched a UI letting the user choose which side wins per field; that UI was descoped from the initial implementation.

Acceptance criteria

  • The merge bulk action (Modules/Clients/Filament/Company/Resources/Relations/Tables/RelationsTable.php) shows a per-field radio/picker for any field where primary and duplicate disagree (both non-empty), before calling RelationMergeService::merge() with the resolved values.
  • Existing gap-fill-only behavior remains the default when values don't conflict.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions