USP_SPONSORSHIP_BULKTRANSFERPROCESS
Back-end logic for the sponsorship bulk transfer business process.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@SPONSORSHIPSELECTIONID | uniqueidentifier | IN | |
@SUCCESSTABLE | nvarchar(128) | IN | |
@EXCEPTIONTABLE | nvarchar(128) | IN | |
@SUCCESSCOUNT | int | INOUT | |
@EXCEPTIONCOUNT | int | INOUT | |
@SPONSORSHIPPROGRAMID | uniqueidentifier | IN | |
@SPONSORSHIPLOCATIONID | uniqueidentifier | IN | |
@GENDERCODE | int | IN | |
@SPROPPAGERANGEID | uniqueidentifier | IN | |
@ISHIVPOSITIVECODE | int | IN | |
@HASCONDITIONCODE | int | IN | |
@ISORPHANEDCODE | int | IN | |
@SPROPPPROJECTCATEGORYCODEID | uniqueidentifier | IN | |
@SPONSORPREFERENCESCODE | tinyint | IN | |
@TRANSFERTYPE | tinyint | IN | |
@MATCHRULE | tinyint | IN | |
@SPONSORSHIPREASONID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.USP_SPONSORSHIP_BULKTRANSFERPROCESS (
@SPONSORSHIPSELECTIONID uniqueidentifier,
@SUCCESSTABLE nvarchar(128),
@EXCEPTIONTABLE nvarchar(128),
@SUCCESSCOUNT int = 0 output,
@EXCEPTIONCOUNT int = 0 output,
@SPONSORSHIPPROGRAMID uniqueidentifier = null,
@SPONSORSHIPLOCATIONID uniqueidentifier = null,
@GENDERCODE int = 0,
@SPROPPAGERANGEID uniqueidentifier = null,
@ISHIVPOSITIVECODE int = 0,
@HASCONDITIONCODE int = 0,
@ISORPHANEDCODE int = 0,
@SPROPPPROJECTCATEGORYCODEID uniqueidentifier = null,
@SPONSORPREFERENCESCODE tinyint = 0,
@TRANSFERTYPE tinyint = 0,
@MATCHRULE tinyint = 0,
@SPONSORSHIPREASONID uniqueidentifier = null,
@CHANGEAGENTID uniqueidentifier = null
)
as
begin
set nocount on;
create table #TRANSFERS (
FROMSPONSORSHIPID uniqueidentifier,
NEWSPONSORSHIPPROGRAMID uniqueidentifier,
NEWSPONSORSHIPLOCATIONID uniqueidentifier,
NEWSPONSORSHIPOPPORTUNITYID uniqueidentifier,
NEWCHILDGENDERCODE tinyint,
NEWSPONSORSHIPOPPORTUNITYAGERANGEID uniqueidentifier,
NEWISHIVPOSITIVECODE tinyint,
NEWHASCONDITIONCODE tinyint,
NEWISORPHANEDCODE tinyint,
NEWSPROPPPROJECTCATEGORYCODEID uniqueidentifier);
insert into #TRANSFERS (
FROMSPONSORSHIPID,
NEWSPONSORSHIPPROGRAMID,
NEWSPONSORSHIPLOCATIONID,
NEWCHILDGENDERCODE,
NEWSPONSORSHIPOPPORTUNITYAGERANGEID,
NEWISHIVPOSITIVECODE,
NEWHASCONDITIONCODE,
NEWISORPHANEDCODE,
NEWSPROPPPROJECTCATEGORYCODEID
)
select
SPONSORSHIP.ID,
@SPONSORSHIPPROGRAMID,
case when @SPONSORSHIPLOCATIONID is not null then
case
-- use preferred location if it is more specific than the transfer location
when @SPONSORPREFERENCESCODE = 0 and
@SPONSORSHIPLOCATIONID <> SPONSORSHIP.SPONSORSHIPLOCATIONID and
PREFERREDLOCATION.HIERARCHYPATH.IsDescendantOf(TRANSFERLOCATION.HIERARCHYPATH) = 1 then PREFERREDLOCATION.ID
else @SPONSORSHIPLOCATIONID
end
end,
case @GENDERCODE when 0 then null else @GENDERCODE end,
@SPROPPAGERANGEID,
case @ISHIVPOSITIVECODE when 0 then null else @ISHIVPOSITIVECODE end,
case @HASCONDITIONCODE when 0 then null else @HASCONDITIONCODE end,
case @ISORPHANEDCODE when 0 then null else @ISORPHANEDCODE end,
@SPROPPPROJECTCATEGORYCODEID
from dbo.SPONSORSHIP
inner join dbo.UFN_IDSETREADER_GETRESULTS_GUID(@SPONSORSHIPSELECTIONID) INCLUDESPONSORSHIPS on INCLUDESPONSORSHIPS.ID = SPONSORSHIP.ID
left join dbo.SPONSORSHIPLOCATION as PREFERREDLOCATION on PREFERREDLOCATION.ID = SPONSORSHIP.SPONSORSHIPLOCATIONID
left join dbo.SPONSORSHIPLOCATION as TRANSFERLOCATION on TRANSFERLOCATION.ID = @SPONSORSHIPLOCATIONID;
exec dbo.USP_SPONSORSHIP_BULKTRANSFER
@SUCCESSTABLE,
@EXCEPTIONTABLE,
@TRANSFERTYPE,
@MATCHRULE,
@SPONSORSHIPREASONID,
0,
null,
1,
@CHANGEAGENTID,
@SUCCESSCOUNT output,
@EXCEPTIONCOUNT output,
@SPONSORPREFERENCESCODE,
0
end