USP_DATAFORMTEMPLATE_ASSIGNPROSPECT_EDIT
The save procedure used by the edit dataform template "Fundraiser Assignment Edit Form".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | The input ID parameter indicating the ID of the record being edited. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
@PROSPECTID | uniqueidentifier | IN | Prospect |
@PROSPECTPLANID | uniqueidentifier | IN | Plan |
@FUNDRAISERROLECODE | tinyint | IN | Fundraiser's role |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_ASSIGNPROSPECT_EDIT (
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@PROSPECTID uniqueidentifier,
@PROSPECTPLANID uniqueidentifier,
@FUNDRAISERROLECODE tinyint
) as begin
set nocount on;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
declare @NOW datetime;
set @NOW = getdate();
begin try
declare @PREVIOUSPRIMARYFUNDRAISERID uniqueidentifier;
declare @PREVIOUSSECONDARYFUNDRAISERID uniqueidentifier;
select
@PREVIOUSPRIMARYFUNDRAISERID = PRIMARYMANAGERFUNDRAISERID,
@PREVIOUSSECONDARYFUNDRAISERID = SECONDARYMANAGERFUNDRAISERID
from
dbo.PROSPECTPLAN
where
ID = @PROSPECTPLANID;
if (@FUNDRAISERROLECODE=1) begin
if exists(select 1 from dbo.PROSPECTPLAN where ID=@PROSPECTPLANID and PRIMARYMANAGERFUNDRAISERID=@ID)
raiserror('ASSIGNPROSPECT_ERR_ALREADYASSIGNED', 13, 1);
update dbo.PROSPECTPLAN set
PRIMARYMANAGERFUNDRAISERID = @ID,
DATECHANGED = @NOW,
CHANGEDBYID = @CHANGEAGENTID
where
ID=@PROSPECTPLANID;
if (@@ROWCOUNT=0) raiserror('ASSIGNPROSPECT_ERR_INVALIDPROSPECTPLAN', 13, 1);
end else if (@FUNDRAISERROLECODE=2) begin
if exists(select 1 from dbo.PROSPECTPLAN where ID=@PROSPECTPLANID and SECONDARYMANAGERFUNDRAISERID=@ID)
raiserror('ASSIGNPROSPECT_ERR_ALREADYASSIGNED', 13, 1);
update dbo.PROSPECTPLAN set
SECONDARYMANAGERFUNDRAISERID=@ID,
DATECHANGED = @NOW,
CHANGEDBYID = @CHANGEAGENTID
where
ID=@PROSPECTPLANID;
if (@@ROWCOUNT=0) raiserror('ASSIGNPROSPECT_ERR_INVALIDPROSPECTPLAN', 13, 1);
end else if (@FUNDRAISERROLECODE=3) begin
if exists(select 1 from dbo.SECONDARYFUNDRAISER where PROSPECTPLANID=@PROSPECTPLANID and FUNDRAISERID=@ID)
raiserror('ASSIGNPROSPECT_ERR_ALREADYASSIGNED', 13, 1);
declare @SEQUENCE int;
select @SEQUENCE=coalesce(max(SEQUENCE)+1,0) from dbo.SECONDARYFUNDRAISER where PROSPECTPLANID=@PROSPECTPLANID;
insert into dbo.SECONDARYFUNDRAISER
(PROSPECTPLANID, FUNDRAISERID, SEQUENCE, ADDEDBYID, CHANGEDBYID)
values
(@PROSPECTPLANID, @ID, @SEQUENCE, @CHANGEAGENTID, @CHANGEAGENTID);
end;
exec dbo.USP_PROSPECTPLANASSIGNEDALERT_SEND @PREVIOUSPRIMARYFUNDRAISERID, @PREVIOUSSECONDARYFUNDRAISERID, @PROSPECTPLANID;
update dbo.INTERACTION set
FUNDRAISERID = @ID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @NOW
from
dbo.PLANOUTLINESTEP SI
where
SI.ID=PLANOUTLINESTEPID
and SI.FUNDRAISERROLECODE = @FUNDRAISERROLECODE
and FUNDRAISERID is null
and PROSPECTPLANID = @PROSPECTPLANID;
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch;
return 0;
end