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;