USP_DATAFORMTEMPLATE_EDIT_HOUSEHOLD_2

The save procedure used by the edit dataform template "Household Edit Form 2".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter indicating the ID of the record being edited.
@CUSTOMNAME nvarchar(100) IN Custom name
@DESCRIPTION nvarchar(300) IN Description
@WEBADDRESS UDT_WEBADDRESS IN Website
@GIVESANONYMOUSLY bit IN Household gives anonymously
@PICTURE varbinary IN Image
@PICTURETHUMBNAIL varbinary IN Image
@PICTURECHANGED bit IN Picture changed
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.

Definition

Copy


                    CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_HOUSEHOLD_2
                    (
                        @ID uniqueidentifier,
                        @CUSTOMNAME nvarchar(100),
                        @DESCRIPTION nvarchar(300),
                        @WEBADDRESS dbo.UDT_WEBADDRESS,
                        @GIVESANONYMOUSLY bit,
                        @PICTURE varbinary(max),
                        @PICTURETHUMBNAIL varbinary(max),
                        @PICTURECHANGED bit,
                        @CHANGEAGENTID uniqueidentifier = null
                    )
                    as
                        set nocount on

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

                        declare @CURRENTDATE datetime;
                        set @CURRENTDATE = getdate();

                        declare @NAME nvarchar(100);
                        declare @NAMEFORMATFUNCTIONID uniqueidentifier;

                        begin try                            
                            if @CUSTOMNAME is null or @CUSTOMNAME = ''
                                begin
                                    declare @PRIMARYMEMBER as uniqueidentifier;
                                    select @PRIMARYMEMBER = MEMBERID from dbo.GROUPMEMBER where dbo.GROUPMEMBER.GROUPID = @ID and dbo.GROUPMEMBER.ISPRIMARY <>0
                                    if @PRIMARYMEMBER is not null
                                        select @NAME = left(dbo.UFN_NAMEFORMAT_FROMID(COALESCE (GD.NAMEFORMATFUNCTIONID, (select top(1) NAMEFORMATFUNCTIONID from dbo.HOUSEHOLDINFO order by DATEADDED)), GM.MEMBERID), 100)
                                        from dbo.GROUPDATA GD
                                            left join dbo.GROUPMEMBER GM on GD.ID = GM.GROUPID and GM.ISPRIMARY <> 0
                                        where GD.ID = @ID
                                    else
                                        set @NAME = null;

                                    select @NAMEFORMATFUNCTIONID = COALESCE (GD.NAMEFORMATFUNCTIONID, (select top(1) NAMEFORMATFUNCTIONID from dbo.HOUSEHOLDINFO order by DATEADDED))
                                    from GROUPDATA GD
                                    where GD.ID = @ID;
                                end
                            else
                                begin
                                    set @NAME = @CUSTOMNAME;
                                    set @NAMEFORMATFUNCTIONID = null;
                                end


                            if @PICTURECHANGED = 1
                                update 
                                    dbo.[CONSTITUENT]
                                set
                                    [KEYNAME] = @NAME,
                                    [DISPLAYNAME] = '',
                                    [GIVESANONYMOUSLY] = @GIVESANONYMOUSLY,
                                    [PICTURE] = @PICTURE,
                                    [PICTURETHUMBNAIL] = @PICTURETHUMBNAIL,
                                    [WEBADDRESS] = @WEBADDRESS,
                                    [DATECHANGED] = @CURRENTDATE,
                                    [CHANGEDBYID] = @CHANGEAGENTID
                                where 
                                    [CONSTITUENT].ID = @ID;

                            else
                                update 
                                    dbo.[CONSTITUENT] 
                                set
                                    [KEYNAME] = @NAME,
                                    [DISPLAYNAME] = '',
                                    [WEBADDRESS] = @WEBADDRESS,
                                    [GIVESANONYMOUSLY] = @GIVESANONYMOUSLY,
                                    [DATECHANGED] = @CURRENTDATE,
                                    [CHANGEDBYID] = @CHANGEAGENTID
                                where 
                                    [CONSTITUENT].ID = @ID;

                            update
                                dbo.GROUPDATA
                            set
                                [DESCRIPTION] = @DESCRIPTION,
                                [NAMEFORMATFUNCTIONID] = @NAMEFORMATFUNCTIONID,
                                [DATECHANGED] = @CURRENTDATE,
                                [CHANGEDBYID] = @CHANGEAGENTID
                            where
                                ID = @ID;
                        end try
                        begin catch
                            exec dbo.USP_RAISE_ERROR;
                            return 1;
                        end catch

                        return 0;