USP_FAFEVENTDEFAULTDESIGNATION_ADD_EDIT
Add default designation to appeal that link to FAF event
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@DESIGNATIONLEVELID | uniqueidentifier | INOUT | |
@EVENTID | uniqueidentifier | IN | |
@APPEALID | uniqueidentifier | IN | |
@NAME | nvarchar(100) | IN | |
@DESCRIPTION | nvarchar(255) | IN | |
@LOOKUPID | nvarchar(200) | IN | |
@CURRENTAPPUSERID | uniqueidentifier | IN | |
@SITEID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.USP_FAFEVENTDEFAULTDESIGNATION_ADD_EDIT
(
@DESIGNATIONLEVELID uniqueidentifier = null output,
@EVENTID uniqueidentifier,
@APPEALID uniqueidentifier,
@NAME nvarchar(100),
@DESCRIPTION nvarchar(255),
@LOOKUPID nvarchar(200) = null, -- USERID
@CURRENTAPPUSERID uniqueidentifier,
@SITEID uniqueidentifier = null,
@CHANGEAGENTID uniqueidentifier
)
as
declare @DESIGNATIONLEVELTYPEID uniqueidentifier
declare @DESIGNATIONHIERARCHYID uniqueidentifier
declare @APPEALDESIGNATIONS nvarchar(250)
declare @CURRENTDATE datetime
declare @DESIGNATIONLEVELNAME nvarchar(100)
set @CURRENTDATE = getdate()
begin try
if @DESIGNATIONLEVELID is null
begin
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
if not exists(SELECT 1 FROM dbo.DESIGNATIONLEVELTYPE where [DESCRIPTION] = 'FAF event fundraising')
begin
set @DESIGNATIONLEVELTYPEID = newid();
insert into dbo.DESIGNATIONLEVELTYPE
(ID, DESCRIPTION, HASADMINISTRATOR, HASRECIPIENTS, HASDONORINFORMATION, HASFINANCIALINFORMATION, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
values
(@DESIGNATIONLEVELTYPEID, 'FAF event fundraising', 1, 1, 1, 1, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE);
end
else
SELECT @DESIGNATIONLEVELTYPEID = ID FROM dbo.DESIGNATIONLEVELTYPE where [DESCRIPTION] = 'FAF event fundraising'
if @SITEID is null
begin
if dbo.UFN_SITEREQUIREDFORUSER(@CURRENTAPPUSERID) = 1
begin
raiserror('Site is required.',13,1)
return
end
end
select @DESIGNATIONLEVELNAME = NAME, @DESIGNATIONLEVELID = ID from dbo.DESIGNATIONLEVEL where NAME = @NAME
if @DESIGNATIONLEVELNAME is null
begin
set @DESIGNATIONLEVELID = newid();
insert into dbo.DESIGNATIONLEVEL
(ID,NAME,DESCRIPTION,DESIGNATIONLEVELCATEGORYCODEID,DESIGNATIONLEVELTYPEID,STEWARDSHIPPACKAGEPROCESSID,ADMINISTRATORID,USERID,DESIGNATIONREPORT1CODEID,DESIGNATIONREPORT2CODEID,SITEID,VANITYNAME,TIMEPERIODCODE,ISENDOWED,ISFULLYFUNDED,ISINCOMETOPRINCIPAL,INCOMETOPRINCIPALPERCENT,STATEMENTWORDING,ENDOWMENTMINAMOUNT,ENDOWMENTTARGETDATE,ENDOWMENTMINAMOUNTDATEMET,ADDEDBYID,CHANGEDBYID,DATEADDED,DATECHANGED)
VALUES
(@DESIGNATIONLEVELID,@NAME,@DESCRIPTION,null,@DESIGNATIONLEVELTYPEID,null,null,@LOOKUPID,null,null,@SITEID,'', 0, 0, 0, 0, 0.00, '', 0, null, null, @CHANGEAGENTID,@CHANGEAGENTID,@CURRENTDATE,@CURRENTDATE)
end
select @DESIGNATIONHIERARCHYID = ID from dbo.DESIGNATION where DESIGNATIONLEVEL1ID = @DESIGNATIONLEVELID and DESIGNATIONLEVEL2ID is null and DESIGNATIONLEVEL3ID is null and DESIGNATIONLEVEL4ID is null and DESIGNATIONLEVEL5ID is null
if @DESIGNATIONHIERARCHYID is null
begin
set @DESIGNATIONHIERARCHYID = newid();
insert into dbo.DESIGNATION
(ID,DESIGNATIONLEVEL1ID,USERID,DESIGNATIONREPORT1CODEID,DESIGNATIONREPORT2CODEID,VANITYNAME,ADDEDBYID,CHANGEDBYID,DATEADDED,DATECHANGED)
VALUES
(@DESIGNATIONHIERARCHYID,@DESIGNATIONLEVELID,@LOOKUPID,null,null,@NAME,@CHANGEAGENTID,@CHANGEAGENTID,@CURRENTDATE,@CURRENTDATE);
end
set @APPEALDESIGNATIONS = N'<?xml version="1.0" encoding="utf-16"?><APPEALDESIGNATIONS><ITEM><DESIGNATIONID>' + cast(@DESIGNATIONHIERARCHYID as varchar(40)) + '</DESIGNATIONID><ISDEFAULT>True</ISDEFAULT></ITEM></APPEALDESIGNATIONS>'
if(select count(DESIGNATIONID) from dbo.UFN_APPEAL_GETDESIGNATIONS_FROMITEMLISTXML(@APPEALDESIGNATIONS) where ISDEFAULT = 1) > 1
raiserror('Only one designation can be set as the default for an appeal.', 13, 2);
exec dbo.USP_APPEAL_GETDESIGNATIONS_UPDATEFROMXML @APPEALID, @APPEALDESIGNATIONS, @CHANGEAGENTID
end
else
begin
update dbo.APPEAL
set
NAME = @NAME,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where ID = @APPEALID
update dbo.DESIGNATIONLEVEL
set
NAME = @NAME,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where ID = @DESIGNATIONLEVELID;
/*
update dbo.DESIGNATION
set
USERID = @LOOKUPID,
VANITYNAME = @LOOKUPID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where DESIGNATIONLEVEL1ID = @DESIGNATIONLEVELID;
*/
end
end try
begin catch
exec dbo.USP_RAISE_ERROR
return 1
end catch
return 0