Snippets

Tessitura Network Community Searchable merges for LP_CONST_MERGE

Created by Nick Reilingh last modified
-- This adds an alias for the deleted constituent if it isn't already searchable.
-- We run after TX_ALIAS_CUST is merged to simplify logic
IF @merge_stage = 'A'
BEGIN;
  DECLARE @mg_alias_type int,
          @del_fname varchar(20),
          @del_lname varchar(55);

  SELECT @mg_alias_type = id
    FROM [dbo].TR_ALIAS_TYPE
    WHERE [description] = 'Merged Name';

  -- Get the delete_id's first and last name (nulls are OK)
  SELECT
      @del_fname = fname,
      @del_lname = lname
    FROM dbo.T_CUSTOMER
    WHERE customer_no = @deleted_id;

  -- Get a list of all currently searchable names -- keep_id and its aliases
  DECLARE @searchable TABLE (fname varchar(20), lname varchar(55));
  INSERT INTO @searchable
  SELECT alias_fname, alias_lname
    FROM dbo.TX_ALIAS_CUST
    WHERE customer_no = @kept_id;

  INSERT INTO @searchable
  SELECT fname, lname
    FROM dbo.T_CUSTOMER
    WHERE customer_no = @kept_id;
    
  -- Check to see that deleted name wouldn't match any existing searchable names
  IF NOT EXISTS (
      SELECT 1 FROM @searchable
        WHERE fname LIKE @del_fname+'%'
          AND lname LIKE @del_lname+'%'
  )
  BEGIN;
    DECLARE @next_id int;
    EXEC @next_id = dbo.AP_GET_NEXTID_function @type = 'AN';

    INSERT INTO dbo.TX_ALIAS_CUST (customer_no, alias_fname, alias_lname, alias_type, alias_no)
    SELECT @kept_id, @del_fname, @del_lname, @mg_alias_type, @next_id;

    IF @@error <> 0
    BEGIN;
      SELECT @err_table = 'Merged Name Alias (post_merge)';
      GOTO GiveErrMsg;
    END;
  END;
END;

Comments (0)

HTTPS SSH

You can clone a snippet to your computer for local editing. Learn more.