USP_DATAFORMTEMPLATE_EDIT_TRIBUTE_2

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN
@TRIBUTETYPECODEID uniqueidentifier IN
@TRIBUTETEXT nvarchar(255) IN
@TRIBUTEEID uniqueidentifier IN
@DESIGNATIONID uniqueidentifier IN
@NAMEFORMATFUNCTIONID uniqueidentifier IN
@SITES xml IN
@TRIBUTELETTERCODEID uniqueidentifier IN

Definition

Copy


                    CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_TRIBUTE_2
                    (
                        @ID uniqueidentifier,
                        @CHANGEAGENTID uniqueidentifier = null,
                        @TRIBUTETYPECODEID uniqueidentifier,
                        @TRIBUTETEXT nvarchar(255),
                        @TRIBUTEEID uniqueidentifier,
                        @DESIGNATIONID uniqueidentifier,
                        @NAMEFORMATFUNCTIONID uniqueidentifier,
                        @SITES xml,
                        @TRIBUTELETTERCODEID uniqueidentifier
                    )
                    as

                        set nocount on;

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

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

                        begin try

                            declare @OLDTRIBUTEEID uniqueidentifier;
                            select @OLDTRIBUTEEID = TRIBUTEEID from dbo.TRIBUTE where ID = @ID;

                            declare @OLDTRIBUTELETTERCODEID uniqueidentifier;
                            select @OLDTRIBUTELETTERCODEID = TRIBUTELETTERCODEID from dbo.TRIBUTEACKNOWLEDGEE
                                where TRIBUTEID = @ID and CONSTITUENTID = @OLDTRIBUTEEID;

                            update
                                dbo.TRIBUTE
                            set
                                TRIBUTETYPECODEID = @TRIBUTETYPECODEID,
                                TRIBUTETEXT = @TRIBUTETEXT,
                                TRIBUTEEID = @TRIBUTEEID,
                                DESIGNATIONID = @DESIGNATIONID,
                                NAMEFORMATFUNCTIONID = @NAMEFORMATFUNCTIONID,
                                CHANGEDBYID = @CHANGEAGENTID,
                                DATECHANGED = @CURRENTDATE
                            where
                                ID = @ID;

                            -- if we changed the tributee, replace the corresponding acknowledgee with the new tributee

                            if (@OLDTRIBUTEEID <> @TRIBUTEEID) or (@OLDTRIBUTEEID is not null and @TRIBUTEEID is null)
                            begin

                                declare @contextCache varbinary(128);
                                set @contextCache = CONTEXT_INFO();

                                if not @CHANGEAGENTID is null
                                    set CONTEXT_INFO @CHANGEAGENTID;

                                delete from dbo.TRIBUTEACKNOWLEDGEE where TRIBUTEID = @ID and CONSTITUENTID = @OLDTRIBUTEEID;

                                if not @contextCache is null
                                    set CONTEXT_INFO @contextCache
                            end
                            else if (@OLDTRIBUTELETTERCODEID <> @TRIBUTELETTERCODEID) or 
                                    (@OLDTRIBUTELETTERCODEID is not null and @TRIBUTELETTERCODEID is null) or 
                                    (@OLDTRIBUTELETTERCODEID is null and @TRIBUTELETTERCODEID is not null)
                            begin
                                update dbo.TRIBUTEACKNOWLEDGEE
                                    set 
                                        TRIBUTELETTERCODEID = @TRIBUTELETTERCODEID,
                                        CHANGEDBYID = @CHANGEAGENTID,
                                        DATECHANGED = @CURRENTDATE
                                where TRIBUTEID = @ID and CONSTITUENTID = @OLDTRIBUTEEID;
                            end


                            -- add the new tributee as an acknowledgee

                            if (@TRIBUTEEID is not null) and (not exists (select ID from dbo.DECEASEDCONSTITUENT where ID = @TRIBUTEEID)) and (not exists (select ID from dbo.TRIBUTEACKNOWLEDGEE where TRIBUTEID = @ID and CONSTITUENTID = @TRIBUTEEID))
                            begin
                                declare @SEQUENCE int;
                                select @SEQUENCE = coalesce(max(SEQUENCE),0) from dbo.TRIBUTEACKNOWLEDGEE where TRIBUTEID = @ID;

                                insert into dbo.TRIBUTEACKNOWLEDGEE
                                    (ID,TRIBUTEID,CONSTITUENTID,TRIBUTELETTERCODEID,SEQUENCE,ADDEDBYID,CHANGEDBYID,DATEADDED,DATECHANGED)
                                values
                                    (newid(), @ID, @TRIBUTEEID,@TRIBUTELETTERCODEID,@SEQUENCE + 1,@CHANGEAGENTID,@CHANGEAGENTID,@CURRENTDATE,@CURRENTDATE);
                            end

                            exec dbo.USP_TRIBUTE_GETSITES_UPDATEFROMXML @ID, @SITES, @CHANGEAGENTID, @CURRENTDATE

                        end try
                        begin catch
                            exec dbo.USP_RAISE_ERROR
                            return 1
                        end catch

                    return 0;