USP_DATAFORMTEMPLATE_EDIT_PROSPECTPLANFUNDRAISERS
The save procedure used by the edit dataform template "Prospect Plan Fundraisers 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. |
@PRIMARYMANAGERFUNDRAISERID | uniqueidentifier | IN | Primary manager |
@SECONDARYMANAGERFUNDRAISERID | uniqueidentifier | IN | Secondary manager |
@SECONDARYFUNDRAISERS | xml | IN |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_PROSPECTPLANFUNDRAISERS (
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@PRIMARYMANAGERFUNDRAISERID uniqueidentifier,
@SECONDARYMANAGERFUNDRAISERID uniqueidentifier,
@SECONDARYFUNDRAISERS xml
) as begin
set nocount on;
begin try
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
declare @CURRENTDATE datetime;
set @CURRENTDATE = getdate();
declare @PREVIOUSPRIMARYFUNDRAISERID uniqueidentifier;
declare @PREVIOUSSECONDARYFUNDRAISERID uniqueidentifier;
select
@PREVIOUSPRIMARYFUNDRAISERID = PRIMARYMANAGERFUNDRAISERID,
@PREVIOUSSECONDARYFUNDRAISERID = SECONDARYMANAGERFUNDRAISERID
from
dbo.PROSPECTPLAN
where
ID = @ID;
update dbo.PROSPECTPLAN set
PRIMARYMANAGERFUNDRAISERID=@PRIMARYMANAGERFUNDRAISERID,
SECONDARYMANAGERFUNDRAISERID=@SECONDARYMANAGERFUNDRAISERID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where
ID = @ID;
exec dbo.USP_PROSPECTPLANASSIGNEDALERT_SEND @PREVIOUSPRIMARYFUNDRAISERID, @PREVIOUSSECONDARYFUNDRAISERID, @ID;
exec dbo.USP_PROSPECTPLAN_SECONDARYFUNDRAISERS_CUSTOMUPDATEFROMXML @ID, @SECONDARYFUNDRAISERS, @CHANGEAGENTID;
if exists (
select INTERACTION.ID
from dbo.INTERACTION
inner join dbo.PLANOUTLINESTEP on INTERACTION.PLANOUTLINESTEPID = PLANOUTLINESTEP.ID
where
PLANOUTLINESTEP.FUNDRAISERROLECODE = 1
and INTERACTION.FUNDRAISERID is null
and INTERACTION.PROSPECTPLANID = @ID
and INTERACTION.COMPLETED = 0
and dbo.UFN_INTERACTION_ISADDITIONALFUNDRAISER(INTERACTION.ID, @PRIMARYMANAGERFUNDRAISERID) = 1)
raiserror('The new primary manager cannot be the owner of steps to which they are already assigned another role.', 13, 1);
if exists (
select INTERACTION.ID
from dbo.INTERACTION
inner join dbo.PLANOUTLINESTEP on INTERACTION.PLANOUTLINESTEPID = PLANOUTLINESTEP.ID
where
PLANOUTLINESTEP.FUNDRAISERROLECODE = 2
and INTERACTION.FUNDRAISERID is null
and INTERACTION.PROSPECTPLANID = @ID
and INTERACTION.COMPLETED = 0
and dbo.UFN_INTERACTION_ISADDITIONALFUNDRAISER(INTERACTION.ID, @SECONDARYMANAGERFUNDRAISERID) = 1)
raiserror('The new secondary manager cannot be the owner of steps to which they are already assigned another role.', 13, 1);
declare @SECONDARYFUNDRAISERID uniqueidentifier;
select top 1 @SECONDARYFUNDRAISERID = FUNDRAISERID from dbo.SECONDARYFUNDRAISER where PROSPECTPLANID = @ID order by SEQUENCE;
if exists (
select INTERACTION.ID
from dbo.INTERACTION
inner join dbo.PLANOUTLINESTEP on INTERACTION.PLANOUTLINESTEPID = PLANOUTLINESTEP.ID
where
PLANOUTLINESTEP.FUNDRAISERROLECODE = 3
and INTERACTION.FUNDRAISERID is null
and INTERACTION.PROSPECTPLANID = @ID
and INTERACTION.COMPLETED = 0
and dbo.UFN_INTERACTION_ISADDITIONALFUNDRAISER(INTERACTION.ID, @SECONDARYFUNDRAISERID) = 1)
raiserror('The top additional fundraiser cannot be the owner of steps to which they are already assigned another role.', 13, 1);
update dbo.INTERACTION set
FUNDRAISERID = @PRIMARYMANAGERFUNDRAISERID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
from
dbo.PLANOUTLINESTEP SI
where
SI.ID=PLANOUTLINESTEPID
and SI.FUNDRAISERROLECODE = 1
and FUNDRAISERID is null
and PROSPECTPLANID = @ID
and INTERACTION.COMPLETED = 0;
update dbo.INTERACTION set
FUNDRAISERID = @SECONDARYMANAGERFUNDRAISERID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
from
dbo.PLANOUTLINESTEP SI
where
SI.ID=PLANOUTLINESTEPID
and SI.FUNDRAISERROLECODE = 2
and FUNDRAISERID is null
and PROSPECTPLANID = @ID
and INTERACTION.COMPLETED = 0;
update dbo.INTERACTION set
FUNDRAISERID = @SECONDARYFUNDRAISERID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
from
dbo.PLANOUTLINESTEP SI
where
SI.ID=PLANOUTLINESTEPID
and SI.FUNDRAISERROLECODE = 3
and FUNDRAISERID is null
and PROSPECTPLANID = @ID
and INTERACTION.COMPLETED = 0;
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;
end;