USP_SPONSORSHIPSETTINGS_GETNEWDEFAULTS
Sets default values in tables when creating a new child or project
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@TYPE | nvarchar(7) | IN | |
@SPONSORSHIPOPPORTUNITYID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.USP_SPONSORSHIPSETTINGS_GETNEWDEFAULTS (
@TYPE nvarchar(7),
@SPONSORSHIPOPPORTUNITYID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null
)
as
--only called when there are pending reasons.
begin
set nocount on;
declare @CURRENTDATE datetime;
set @CURRENTDATE = getdate();
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
declare @REASONLIST xml = null
select
@REASONLIST =
case @TYPE
when 'PROJECT' then PROJECTPENDINGREASONS
when 'CHILD' then CHILDPENDINGREASONS
end
from
SPONSORSHIPINFO
order by DATEADDED
-- build a temporary table containing the values from the XML
declare @TempTbl table (
ID uniqueidentifier,
SPONSORSHIPREASONID uniqueidentifier)
begin try
if @TYPE = 'CHILD'
begin
insert into @TempTbl(SPONSORSHIPREASONID)
select
SPONSORSHIPREASONID
from
dbo.UFN_SPONSORSHIPSETTINGS_CHILDPENDINGREASONS_FROMITEMLISTXML(@REASONLIST)
end
if @TYPE = 'PROJECT'
begin
insert into @TempTbl(SPONSORSHIPREASONID)
select
SPONSORSHIPREASONID
from
dbo.UFN_SPONSORSHIPSETTINGS_PROJECTPENDINGREASONS_FROMITEMLISTXML(@REASONLIST)
end
update @TempTbl set ID = newid() where (ID is null) or (ID = '00000000-0000-0000-0000-000000000000');
-- insert new items
insert into dbo.SPONSORSHIPOPPORTUNITYREASON
(ID,
SPONSORSHIPOPPORTUNITYID,
SPONSORSHIPREASONID,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED)
select ID,
@SPONSORSHIPOPPORTUNITYID,
SPONSORSHIPREASONID,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
from @TempTbl as temp
where not exists (select ID from dbo.SPONSORSHIPOPPORTUNITYREASON as SPR where SPR.ID = temp.ID)
--- update SO pending status
declare @REASONCOUNT tinyint
select @REASONCOUNT = count(*) from @TempTbl
exec.USP_RECORDOPERATION_SPONSORSHIPOPPORTUNITYMAKEPENDING @SPONSORSHIPOPPORTUNITYID, @CHANGEAGENTID
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;
end