USP_DELETE_RESEARCHGROUPMEMBER

Executes the "Research Group Member: Delete" record operation.

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN Input parameter indicating the ID of the record being deleted.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the delete.
@CURRENTAPPUSERID uniqueidentifier IN Input parameter indicating the ID of the current user.

Definition

Copy


                    CREATE procedure dbo.USP_DELETE_RESEARCHGROUPMEMBER (
                        @ID uniqueidentifier,
                        @CHANGEAGENTID uniqueidentifier,
                        @CURRENTAPPUSERID uniqueidentifier
                    ) as
                        set nocount on;

                        declare @USERCANMODIFY bit;
                        set @USERCANMODIFY = 0;

                        declare @RESEARCHGROUPID uniqueidentifier;

                        select
                            @USERCANMODIFY = 1,
                            @RESEARCHGROUPID = RGM.RESEARCHGROUPID
                        from
                            dbo.RESEARCHGROUPMEMBER RGM
                        left join
                            dbo.RESEARCHGROUP RG on RG.ID = RGM.RESEARCHGROUPID
                        left join
                            dbo.APPUSER AU on AU.ID = RG.OWNERID
                        where
                            RGM.ID = @ID and
                            (RG.OTHERSCANMODIFY = 1 or
                             RG.OWNERID = @CURRENTAPPUSERID or
                             RG.OWNERID is null or
                             dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1);

                        if @USERCANMODIFY = 1 begin
                            exec dbo.USP_RESEARCHGROUPMEMBER_DELETEBYID_WITHCHANGEAGENTID @ID, @CHANGEAGENTID;
                            exec dbo.USP_RESEARCHGROUP_INCREMENTNUMMEMBERS @RESEARCHGROUPID, -1, @CHANGEAGENTID;
                        end
                        else begin
                            raiserror ('ERR_RESEARCHGROUP_CANNOTMODIFY',13,1);
                            return 1;
                        end

                        return 0;