USP_INDIVIDUAL_EDITSAVE

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN
@LASTNAME nvarchar(100) IN
@FIRSTNAME nvarchar(50) IN
@MIDDLENAME nvarchar(50) IN
@MAIDENNAME nvarchar(100) IN
@NICKNAME nvarchar(50) IN
@TITLECODEID uniqueidentifier IN
@SUFFIXCODEID uniqueidentifier IN
@GENDERCODE tinyint IN
@BIRTHDATE UDT_FUZZYDATE IN
@GIVESANONYMOUSLY bit IN
@PICTURE varbinary IN
@PICTURETHUMBNAIL varbinary IN
@PICTURECHANGED bit IN
@WEBADDRESS UDT_WEBADDRESS IN
@MARITALSTATUSCODEID uniqueidentifier IN
@TITLE2CODEID uniqueidentifier IN
@SUFFIX2CODEID uniqueidentifier IN
@GENDERCODEID uniqueidentifier IN

Definition

Copy


CREATE procedure dbo.USP_INDIVIDUAL_EDITSAVE
(
    @ID uniqueidentifier,
    @CHANGEAGENTID uniqueidentifier = null,
    @LASTNAME nvarchar(100),
    @FIRSTNAME nvarchar(50),
    @MIDDLENAME nvarchar(50),
      @MAIDENNAME nvarchar(100),
      @NICKNAME nvarchar(50),
    @TITLECODEID uniqueidentifier,
    @SUFFIXCODEID uniqueidentifier,
    @GENDERCODE tinyint,
    @BIRTHDATE dbo.UDT_FUZZYDATE,
    @GIVESANONYMOUSLY bit,
    @PICTURE varbinary(max),
    @PICTURETHUMBNAIL varbinary(max),
    @PICTURECHANGED bit,
    @WEBADDRESS dbo.UDT_WEBADDRESS,
    @MARITALSTATUSCODEID uniqueidentifier,
    @TITLE2CODEID uniqueidentifier,
    @SUFFIX2CODEID uniqueidentifier,
    @GENDERCODEID uniqueidentifier=null
) as
    set nocount on;

    declare @CURRENTDATE datetime;

    if @CHANGEAGENTID is null
        exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;

    set @CURRENTDATE = getdate();

    declare @MAIDENNAMECHANGED bit = 0;

    select @MAIDENNAMECHANGED = case when @MAIDENNAME = CONSTITUENT.MAIDENNAME then 0 else 1 end
    from dbo.CONSTITUENT
    where CONSTITUENT.ID = @ID;

    begin try
        if @PICTURECHANGED = 1
            update 
                dbo.[CONSTITUENT]
            set
                [KEYNAME] = @LASTNAME,
                [FIRSTNAME] = @FIRSTNAME,
                [MIDDLENAME] = @MIDDLENAME,
                [MAIDENNAME] = @MAIDENNAME,
                [NICKNAME] = @NICKNAME,
                [TITLECODEID] = @TITLECODEID,
                [SUFFIXCODEID] = @SUFFIXCODEID,
                [ISORGANIZATION] = 0,
                [GENDERCODE] = @GENDERCODE,
                [BIRTHDATE] = @BIRTHDATE,
                [GIVESANONYMOUSLY] = @GIVESANONYMOUSLY,
                [PICTURE] = @PICTURE,
                [PICTURETHUMBNAIL] = @PICTURETHUMBNAIL,
                [WEBADDRESS] = @WEBADDRESS,
                [MARITALSTATUSCODEID] = @MARITALSTATUSCODEID,
                [TITLE2CODEID] = @TITLE2CODEID,
                [SUFFIX2CODEID] = @SUFFIX2CODEID,
                [DATECHANGED] = @CURRENTDATE,
                [CHANGEDBYID] = @CHANGEAGENTID,
                [GENDERCODEID] = @GENDERCODEID
            where 
                [CONSTITUENT].ID = @ID;

        else
            update 
                dbo.[CONSTITUENT] 
            set
                [KEYNAME] = @LASTNAME,
                [FIRSTNAME] = @FIRSTNAME,
                [MIDDLENAME] = @MIDDLENAME,
                [MAIDENNAME] = @MAIDENNAME,
                [NICKNAME] = @NICKNAME,
                [TITLECODEID] = @TITLECODEID,
                [SUFFIXCODEID] = @SUFFIXCODEID,
                [ISORGANIZATION] = 0,
                [GENDERCODE] = @GENDERCODE,
                [BIRTHDATE] = @BIRTHDATE,
                [WEBADDRESS] = @WEBADDRESS,
                [GIVESANONYMOUSLY] = @GIVESANONYMOUSLY,
                [MARITALSTATUSCODEID] = @MARITALSTATUSCODEID,
                [TITLE2CODEID] = @TITLE2CODEID,
                [SUFFIX2CODEID] = @SUFFIX2CODEID,
                [DATECHANGED] = @CURRENTDATE,
                [CHANGEDBYID] = @CHANGEAGENTID,
                [GENDERCODEID] = @GENDERCODEID
            where 
                [CONSTITUENT].ID = @ID;

        if @MAIDENNAMECHANGED = 1 and @MAIDENNAME is not null and @MAIDENNAME != ''
        begin
            if not exists (select ID from dbo.ALIAS
                       where ALIAS.CONSTITUENTID = @ID
                       and ALIAS.KEYNAME = @MAIDENNAME
                       and ALIAS.FIRSTNAME = @FIRSTNAME
                       and ALIAS.MIDDLENAME = @MIDDLENAME)
                insert into dbo.ALIAS
                    (CONSTITUENTID, KEYNAME, FIRSTNAME, MIDDLENAME, DATEADDED, DATECHANGED, ADDEDBYID, CHANGEDBYID)
                values
                    (@ID, @MAIDENNAME, @FIRSTNAME, @MIDDLENAME, @CURRENTDATE, @CURRENTDATE, @CHANGEAGENTID, @CHANGEAGENTID)
        end
    end try
    begin catch
        exec dbo.USP_RAISE_ERROR;
        return 1;
    end catch

    return 0;