USP_DATAFORMTEMPLATE_EDIT_REVENUE_RECOGNITIONRECURRINGGIFT
The save procedure used by the edit dataform template "Revenue Recognition Credit for Recurring Gifts Edit Form".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | The input ID parameter indicating the ID of the record being edited. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
@RECOGNITIONS | xml | IN |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_REVENUE_RECOGNITIONRECURRINGGIFT
(
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@RECOGNITIONS xml
)
as
set nocount on;
declare @BASETOORGANIZATIONEXCHANGERATEID uniqueidentifier;
declare @ORGANIZATIONCURRENCYID uniqueidentifier;
declare @BASECURRENCYID uniqueidentifier;
declare @BASEEXCHANGERATEID uniqueidentifier;
declare @ORGANIZATIONEXCHANGERATEID uniqueidentifier;
declare @TRANSACTIONCURRENCYID uniqueidentifier;
declare @DATE datetime;
select
@BASECURRENCYID = REVENUESPLIT.BASECURRENCYID,
@ORGANIZATIONEXCHANGERATEID = REVENUESPLIT.ORGANIZATIONEXCHANGERATEID,
@DATE = REVENUESPLIT.DATECHANGED,
@BASEEXCHANGERATEID = REVENUESPLIT.BASEEXCHANGERATEID,
@TRANSACTIONCURRENCYID = REVENUESPLIT.TRANSACTIONCURRENCYID
from
dbo.REVENUESPLIT
where
REVENUESPLIT.ID = @ID;
declare @REVENUEDATE datetime;
select
@REVENUEDATE = REVENUE.DATE
from
dbo.REVENUESPLIT
inner join dbo.REVENUE on REVENUESPLIT.REVENUEID = REVENUE.ID
where
REVENUESPLIT.ID = @ID;
-- Default the recognition's effective date to the revenue date
set @RECOGNITIONS = (
select
ID,
REVENUERECOGNITIONTYPECODEID,
CONSTITUENTID,
AMOUNT,
@REVENUEDATE as EFFECTIVEDATE
from
dbo.UFN_REVENUE_GETRECOGNITIONS_FROMITEMLISTXML(@RECOGNITIONS)
for xml raw('ITEM'), type, elements, root('RECOGNITIONS'), binary base64
)
begin try
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
exec dbo.USP_CURRENCY_GETCURRENCYVALUES
@AMOUNT=null,
@DATE=@DATE,
@BASECURRENCYID=@BASECURRENCYID,
@BASEEXCHANGERATEID=@BASEEXCHANGERATEID,
@TRANSACTIONCURRENCYID=@TRANSACTIONCURRENCYID,
@BASEAMOUNT=null,
@ORGANIZATIONCURRENCYID=@ORGANIZATIONCURRENCYID,
@ORGANIZATIONAMOUNT=null,
@ORGANIZATIONEXCHANGERATEID=@ORGANIZATIONEXCHANGERATEID,
@LOOKUPORGANIZATIONEXCHANGERATE=0,
@BASETOORGANIZATIONEXCHANGERATEID=@BASETOORGANIZATIONEXCHANGERATEID output;
-- Process the recognitions xml to calculate organization amounts.
--SlyyMu 8/16/10. Recognitions don't have a transaction currency, @BASETOORGANIZATIONEXCHANGERATEID handles the
--case where the revenue split ORGANIZATIONEXCHANGERATE is for converting from transaction to org currencies.
set @RECOGNITIONS = dbo.UFN_REVENUERECOGNITION_CONVERTAMOUNTSINXML(@RECOGNITIONS,@BASECURRENCYID,@BASETOORGANIZATIONEXCHANGERATEID);
exec dbo.USP_REVENUE_GETRECOGNITIONS_2_UPDATEFROMXML @ID, @RECOGNITIONS, @CHANGEAGENTID;
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;