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