USP_DATAFORMTEMPLATE_ADD_RESEARCHGROUPCOPYMEMBERS

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT
@CHANGEAGENTID uniqueidentifier IN
@CURRENTAPPUSERID uniqueidentifier IN
@EXISTINGGROUPID uniqueidentifier IN
@NAME nvarchar(100) IN
@DESCRIPTION nvarchar(255) IN
@CATEGORYCODEID uniqueidentifier IN
@OWNERID uniqueidentifier IN
@OTHERSCANVIEW bit IN
@OTHERSCANMODIFY bit IN
@SITES xml IN
@RESEARCHGROUPMEMBERS xml IN

Definition

Copy

                    CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_RESEARCHGROUPCOPYMEMBERS (
                        @ID uniqueidentifier = null output,
                    @CHANGEAGENTID uniqueidentifier = null,
                    @CURRENTAPPUSERID uniqueidentifier,
                        @EXISTINGGROUPID uniqueidentifier = null,
                    @NAME nvarchar(100) = null,
                    @DESCRIPTION nvarchar(255) = null,
            @CATEGORYCODEID uniqueidentifier = null,
                    @OWNERID uniqueidentifier = null,
                    @OTHERSCANVIEW bit = 1,
                    @OTHERSCANMODIFY bit = 1,
                        @SITES xml = null,
                        @RESEARCHGROUPMEMBERS xml = null
                    ) with execute as owner as
                        set nocount on;

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


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

                        begin try
                            exec dbo.USP_RESEARCHGROUP_VALIDATESITES @SITES, @CURRENTAPPUSERID, '45DB2DB3-94AF-43FF-827A-C7C7032D92AA', 1;

              if @EXISTINGGROUPID is null
              begin
                            if @ID is null
                                set @ID = newid();

                              --create Research Group
                              insert into dbo.RESEARCHGROUP (
                                  ID,
                                  NAME,
                                  DESCRIPTION,
                  CATEGORYCODEID,
                                  OWNERID,
                  OTHERSCANVIEW,
                                  OTHERSCANMODIFY,
                                  ADDEDBYID,
                                  CHANGEDBYID,
                                  DATEADDED,
                                  DATECHANGED
                              )
                              values (
                                  @ID,
                                  @NAME,
                                  @DESCRIPTION,
                  @CATEGORYCODEID,
                                  @OWNERID,
                  @OTHERSCANVIEW,
                                  @OTHERSCANMODIFY,
                                  @CHANGEAGENTID,
                                  @CHANGEAGENTID,
                                  @CURRENTDATE,
                                  @CURRENTDATE
                              );


                              if not @SITES is null
                                  exec dbo.USP_RESEARCHGROUP_GETSITES_ADDFROMXML @ID, @SITES, @CHANGEAGENTID, @CURRENTDATE;

                exec USP_RESEARCHGROUP_GETMEMBERS_ADDFROMXML @ID, @RESEARCHGROUPMEMBERS, @CHANGEAGENTID, @CURRENTDATE;

              end
              else
              begin

                set @ID = @EXISTINGGROUPID;
                insert into [RESEARCHGROUPMEMBER] (
                  RESEARCHGROUPID,
                  CONSTITUENTID,
                  ADDEDBYID,
                  CHANGEDBYID,
                  DATEADDED,
                  DATECHANGED)
                select 
                  @ID
                  CONSTITUENTID,
                    @CHANGEAGENTID
                    @CHANGEAGENTID
                    @CURRENTDATE
                    @CURRENTDATE
                from dbo.UFN_RESEARCHGROUP_GETMEMBERS_FROMITEMLISTXML(@RESEARCHGROUPMEMBERS) as MEMBERS
                where not exists(select top 1 1 from dbo.RESEARCHGROUPMEMBER 
                                  where RESEARCHGROUPMEMBER.RESEARCHGROUPID = @ID
                                    and RESEARCHGROUPMEMBER.CONSTITUENTID = MEMBERS.CONSTITUENTID)

              end

              exec dbo.USP_RESEARCHGROUP_RECALCULATENUMMEMBERS @ID, @CHANGEAGENTID;

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

                        return 0;