USP_GLOBALCHANGE_CANCELFIXEDTERMSPONSORSHIPS
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@CHANGEAGENTID | uniqueidentifier | IN | |
@ASOF | datetime | IN | |
@NUMBERADDED | int | INOUT | |
@NUMBEREDITED | int | INOUT | |
@NUMBERDELETED | int | INOUT |
Definition
Copy
CREATE procedure dbo.USP_GLOBALCHANGE_CANCELFIXEDTERMSPONSORSHIPS
(
@CHANGEAGENTID uniqueidentifier = null,
@ASOF as datetime = null,
@NUMBERADDED int = 0 output,
@NUMBEREDITED int = 0 output,
@NUMBERDELETED int = 0 output
)
as
set nocount off;
declare @CURRENTDATETIME datetime
declare @CURRENTDATE date
set @CURRENTDATETIME = getdate();
set @CURRENTDATE = @CURRENTDATETIME;
set @NUMBERADDED = 0;
set @NUMBEREDITED = 0;
set @NUMBERDELETED = 0;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
begin try
-- do the global change operation here, and set @NUMBERADDED, @NUMBEREDITED, and/or @NUMBERDELETED as appropriate
declare @SPONSORSHIPID uniqueidentifier;
declare @PLANNEDENDDATE datetime;
declare @EXPIRATIONREASONID uniqueidentifier;
declare @TempTbl table(ID uniqueidentifier,
PLANNEDENDDATE datetime,
EXPIRATIONREASONID uniqueidentifier);
insert into @TempTbl(ID,PLANNEDENDDATE,EXPIRATIONREASONID)
select ID,PLANNEDENDDATE,EXPIRATIONREASONID
from dbo.SPONSORSHIP
where PLANNEDENDDATE is not null
and PLANNEDENDDATE < @CURRENTDATE;
declare SPONSORSHIP_CURSOR cursor local fast_forward for
select ID,PLANNEDENDDATE,EXPIRATIONREASONID from @TempTbl
open SPONSORSHIP_CURSOR;
fetch next from SPONSORSHIP_CURSOR into @SPONSORSHIPID,@PLANNEDENDDATE,@EXPIRATIONREASONID;
while (@@FETCH_STATUS = 0)
begin
exec dbo.USP_SPONSORSHIP_CLOSECOMMITMENT
@SPONSORSHIPID,
@PLANNEDENDDATE,
2,
@EXPIRATIONREASONID
update dbo.SPONSORSHIP
set PLANNEDENDDATE = null,
EXPIRATIONREASONID = null,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATETIME
where ID = @SPONSORSHIPID;
set @NUMBEREDITED = @NUMBEREDITED + 1
fetch next from SPONSORSHIP_CURSOR into @SPONSORSHIPID,@PLANNEDENDDATE,@EXPIRATIONREASONID
end
close SPONSORSHIP_CURSOR;
deallocate SPONSORSHIP_CURSOR;
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch