USP_DONORCHALLENGEENCUMBEREDFUND_ENCUMBER
Executes the "Donor Challenge Encumbered Fund: Mark Encumbered" record operation.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | Input parameter indicating the ID of the record being updated. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the update. |
Definition
Copy
CREATE procedure dbo.USP_DONORCHALLENGEENCUMBEREDFUND_ENCUMBER
(
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier
)
as
set nocount on
begin try
--Delete individual pledge payments if the removed Pledge is being encumbered
delete DCE from
dbo.DONORCHALLENGEENCUMBERED DCE
inner join
dbo.REVENUESPLIT on REVENUESPLIT.ID = DCE.REVENUESPLITID
inner join
dbo.INSTALLMENTSPLITPAYMENT on REVENUESPLIT.ID = INSTALLMENTSPLITPAYMENT.PAYMENTID
inner join
dbo.INSTALLMENTSPLIT on INSTALLMENTSPLITPAYMENT.INSTALLMENTSPLITID = INSTALLMENTSPLIT.ID
inner join
dbo.REVENUE on INSTALLMENTSPLIT.PLEDGEID = REVENUE.ID
inner join
dbo.REVENUESPLIT PLEDGESPLIT on REVENUE.ID = PLEDGESPLIT.REVENUEID and INSTALLMENTSPLIT.DESIGNATIONID = PLEDGESPLIT.DESIGNATIONID
inner join
dbo.DONORCHALLENGEENCUMBERED PLEDGE_TO_ENCUMBER on PLEDGESPLIT.ID = PLEDGE_TO_ENCUMBER.REVENUESPLITID
where
PLEDGE_TO_ENCUMBER.ID = @ID
and PLEDGE_TO_ENCUMBER.STATUSTYPECODE = 2 --Pledge is removed
and REVENUE.TRANSACTIONTYPECODE = 1 --Pledge
and DCE.STATUSTYPECODE = 0 --Pledge payment is encumbered
and REVENUESPLIT.APPLICATIONCODE = 2 --Pledge payment
exec dbo.USP_DONORCHALLENGEENCUMBERED_VALIDATEAMOUNT @DONORCHALLENGEENCUMBEREDID = @ID;
declare @CURRENTDATE datetime = getdate();
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
update dbo.DONORCHALLENGEENCUMBERED set
STATUSTYPECODE = 0,
DATECHANGED = @CURRENTDATE,
CHANGEDBYID = @CHANGEAGENTID
where
ID = @ID
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch