USP_REVENUE_FIXPAYMENTS
Updates attributes on payments applied to a commitment.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@REVENUEID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@CHANGEDATE | datetime | IN |
Definition
Copy
CREATE procedure dbo.USP_REVENUE_FIXPAYMENTS
(
@REVENUEID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier,
@CHANGEDATE datetime
)
as
/*
* NOTE: This procedure is no longer called by any Blackbaud code.
* It updates payments with some (but not all) of the attributes
* of the records they pay. This behavior may not be desirable.
*
* This procedure currently exists only for backwards compatibility
* with Blackbaud Enterprise 1.0.
*/
set nocount on;
declare @PLEDGECURSOR cursor;
declare @RGCURSOR cursor;
declare @PAYMENTID uniqueidentifier;
declare @TYPECODE tinyint;
declare @SOURCECODE nvarchar(50);
declare @APPEALID uniqueidentifier;
declare @GIVENANONYMOUSLY bit;
select
@TYPECODE = TRANSACTIONTYPECODE,
@SOURCECODE = SOURCECODE,
@APPEALID = APPEALID,
@GIVENANONYMOUSLY = GIVENANONYMOUSLY
from dbo.REVENUE
where ID = @REVENUEID;
if @TYPECODE = 1 or @TYPECODE = 3 --Pledge and MG Pledge
begin
set @PLEDGECURSOR = cursor local fast_forward for
select distinct
PAYMENTID
from dbo.INSTALLMENTPAYMENT
where PLEDGEID = @REVENUEID;
open @PLEDGECURSOR;
fetch next from @PLEDGECURSOR into @PAYMENTID;
while @@FETCH_STATUS = 0
begin
update dbo.REVENUE_EXT
set APPEALID = @APPEALID,
SOURCECODE = @SOURCECODE,
GIVENANONYMOUSLY = @GIVENANONYMOUSLY
where ID = @PAYMENTID;
fetch next from @PLEDGECURSOR into @PAYMENTID;
end
--When a cursor is used, it should be explicitly closed/deallocated in case of blocking or USP running long
close @PLEDGECURSOR;
deallocate @PLEDGECURSOR;
end
else if @TYPECODE = 2 --Recurring gift
begin
set @RGCURSOR = cursor local fast_forward for
select distinct
PAYMENTREVENUEID
from dbo.RECURRINGGIFTACTIVITY
where SOURCEREVENUEID = @REVENUEID
and not PAYMENTREVENUEID is null;
open @RGCURSOR;
fetch next from @RGCURSOR into @PAYMENTID;
while @@FETCH_STATUS = 0
begin
update dbo.REVENUE_EXT
set APPEALID = @APPEALID,
SOURCECODE = @SOURCECODE,
GIVENANONYMOUSLY = @GIVENANONYMOUSLY
from dbo.REVENUE_EXT
inner join dbo.FINANCIALTRANSACTION on FINANCIALTRANSACTION.ID = REVENUE_EXT.ID
inner join dbo.FINANCIALTRANSACTIONLINEITEM on FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID = FINANCIALTRANSACTION.ID
inner join dbo.REVENUESPLIT_EXT on dbo.REVENUESPLIT_EXT.ID = dbo.FINANCIALTRANSACTIONLINEITEM.ID
where REVENUESPLIT_EXT.ID = @PAYMENTID;
fetch next from @RGCURSOR into @PAYMENTID;
end
--When a cursor is used, it should be explicitly closed/deallocated in case of blocking or USP running long
close @RGCURSOR;
deallocate @RGCURSOR;
end