USP_DATAFORMTEMPLATE_PROSPECTSEGMENTATION_RESEARCHGROUP_ADD
The save procedure used by the add dataform template "Prospect Segmentation Segment Save Research Group Add Form".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | The output parameter indicating the ID of the record added. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
@CURRENTAPPUSERID | uniqueidentifier | IN | Input parameter indicating the ID of the current user. |
@PROSPECTSEGMENTATIONSEGMENTID | nvarchar(200) | IN | Input parameter indicating the context ID for the record being added. |
@RESEARCHGROUPID | uniqueidentifier | IN | Name |
@NAME | nvarchar(100) | IN | Name |
@DESCRIPTION | nvarchar(255) | IN | Description |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_PROSPECTSEGMENTATION_RESEARCHGROUP_ADD
(
@ID uniqueidentifier = null output,
@CHANGEAGENTID uniqueidentifier = null,
@CURRENTAPPUSERID uniqueidentifier,
@PROSPECTSEGMENTATIONSEGMENTID nvarchar(200),
@RESEARCHGROUPID uniqueidentifier = null,
@NAME nvarchar(100) = '',
@DESCRIPTION nvarchar(255) = ''
)
as
set nocount on;
begin try
declare @CURRENTDATE datetime;
set @CURRENTDATE = getdate();
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
declare @IDSUBSTRING nvarchar(36)
declare @PRIMARYSECTIONID uniqueidentifier
declare @SECONDARYSECTIONID uniqueidentifier
set @IDSUBSTRING = substring(@PROSPECTSEGMENTATIONSEGMENTID,1,36)
if len(@IDSUBSTRING) = 36
set @PRIMARYSECTIONID = cast(@IDSUBSTRING as uniqueidentifier)
set @IDSUBSTRING = substring(@PROSPECTSEGMENTATIONSEGMENTID,37,36)
if len(@IDSUBSTRING) = 36
set @SECONDARYSECTIONID = cast(@IDSUBSTRING as uniqueidentifier)
if @RESEARCHGROUPID is null
begin
set @ID = newid();
insert into dbo.RESEARCHGROUP (
ID,
NAME,
DESCRIPTION,
OWNERID,
OTHERSCANMODIFY,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
values (
@ID,
@NAME,
@DESCRIPTION,
@CURRENTAPPUSERID,
1,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
);
end
else
begin
set @ID = @RESEARCHGROUPID
end
declare @USERCANMODIFY bit
set @USERCANMODIFY = 0;
select
@USERCANMODIFY = 1
from
dbo.RESEARCHGROUP RG
left join
dbo.APPUSER AU on AU.ID = RG.OWNERID
where
RG.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
insert into dbo.RESEARCHGROUPMEMBER(
RESEARCHGROUPID,
CONSTITUENTID,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
select
@ID,
PROSPECTS.CONSTITUENTID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
from
dbo.PROSPECTSEGMENTATIONPROSPECT PROSPECTS
left join dbo.RESEARCHGROUPMEMBER on
RESEARCHGROUPMEMBER.CONSTITUENTID = PROSPECTS.CONSTITUENTID and
RESEARCHGROUPMEMBER.RESEARCHGROUPID = @ID
where
PROSPECTS.PRIMARYSECTIONID = @PRIMARYSECTIONID and
PROSPECTS.SECONDARYSECTIONID = @SECONDARYSECTIONID and
RESEARCHGROUPMEMBER.CONSTITUENTID is null
exec dbo.USP_RESEARCHGROUP_RECALCULATENUMMEMBERS @ID, @CHANGEAGENTID;
end
else
begin
raiserror ('ERR_RESEARCHGROUP_CANNOTMODIFY',13,1);
return 0;
end
end try
begin catch
EXEC dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;