USP_SPONSORSHIP_COMPLETETRANSFERS
Complete a set of pending transfers based on user criteria.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@OLDERTHANDATE | datetime | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@IDSETREGISTERID | uniqueidentifier | IN | |
@NUMBERADDED | int | INOUT | |
@NUMBEREDITED | int | INOUT | |
@NUMBERDELETED | int | INOUT |
Definition
Copy
CREATE procedure dbo.USP_SPONSORSHIP_COMPLETETRANSFERS (
@OLDERTHANDATE datetime,
@CHANGEAGENTID uniqueidentifier = null,
@IDSETREGISTERID uniqueidentifier = null,
@NUMBERADDED int = 0 output,
@NUMBEREDITED int = 0 output,
@NUMBERDELETED int = 0 output
)
as
begin
set nocount on;
declare @CURRENTDATE datetime
set @CURRENTDATE = getdate()
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
set @NUMBERADDED = 0
set @NUMBEREDITED = 0
set @NUMBERDELETED = 0
declare @FROMSPONSORSHIPID uniqueidentifier
declare @TOSPONSORSHIPID uniqueidentifier
declare @t table(ID uniqueidentifier)
insert into @t(ID) select ID from dbo.UFN_IDSETREADER_GETRESULTS(@IDSETREGISTERID)
declare SPONSORSHIP_CURSOR cursor local fast_forward for
select CONTEXTSPONSORSHIPID,
TARGETSPONSORSHIPID
from dbo.SPONSORSHIPTRANSACTION PENDING
left join @t IDSET on PENDING.ID = IDSET.ID
where ACTIONCODE = 6
and TRANSACTIONDATE <= @OLDERTHANDATE
and not exists(select 'x'
from dbo.SPONSORSHIPTRANSACTION COMPLETED
where COMPLETED.SPONSORSHIPCOMMITMENTID = PENDING.SPONSORSHIPCOMMITMENTID
and COMPLETED.TRANSACTIONSEQUENCE = PENDING.TRANSACTIONSEQUENCE + 1)
and (@IDSETREGISTERID is null or PENDING.ID in(select ID from @t));
open SPONSORSHIP_CURSOR;
begin try
fetch next from SPONSORSHIP_CURSOR into
@FROMSPONSORSHIPID,
@TOSPONSORSHIPID;
while (@@FETCH_STATUS = 0)
begin
exec dbo.USP_SPONSORSHIP_COMPLETETRANSFER
@TOSPONSORSHIPID,
@FROMSPONSORSHIPID,
1,
@CHANGEAGENTID
set @NUMBEREDITED = @NUMBEREDITED + 1
fetch next from SPONSORSHIP_CURSOR into
@FROMSPONSORSHIPID,
@TOSPONSORSHIPID;
end
close SPONSORSHIP_CURSOR;
deallocate SPONSORSHIP_CURSOR;
end try
begin catch
close SPONSORSHIP_CURSOR;
deallocate SPONSORSHIP_CURSOR;
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;
end