USP_DATAFORMTEMPLATE_EDITLOAD_GIFTFEEGLDISTRIBUTIONADJUST

The load procedure used by the edit dataform template "Posted Gift Fee GL Distribution Edit Form"

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter used to load the fields defined on the form.
@DATALOADED bit INOUT Output parameter indicating whether or not data was actually loaded.
@GLDISTRIBUTION xml INOUT Gift fee GL distribution
@ADJUSTMENTDATE datetime INOUT Adjusted date
@ADJUSTMENTPOSTDATE datetime INOUT Adjusted post date
@ADJUSTMENTPOSTSTATUSCODE tinyint INOUT Post status code
@ADJUSTMENTREASON nvarchar(300) INOUT Adjustment details
@TSLONG bigint INOUT Output parameter indicating the TSLONG value of the record being edited. This is used to manage multi-user concurrency issues when multiple users access the same record.
@ADJUSTMENTREASONCODEID uniqueidentifier INOUT Adjustment reason
@TOTALGIFTFEES money INOUT Total gift fees
@TRANSACTIONCURRENCYID uniqueidentifier INOUT Transaction currency

Definition

Copy

        CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDITLOAD_GIFTFEEGLDISTRIBUTIONADJUST
        (
            @ID uniqueidentifier,
            @DATALOADED bit = 0 output,
            @GLDISTRIBUTION xml = null output,
            @ADJUSTMENTDATE datetime = null output,
            @ADJUSTMENTPOSTDATE datetime = null output,
            @ADJUSTMENTPOSTSTATUSCODE tinyint = null output,
            @ADJUSTMENTREASON nvarchar(300) = null output,
            @TSLONG bigint = 0 output,
            @ADJUSTMENTREASONCODEID uniqueidentifier = null output,
            @TOTALGIFTFEES money = null output,
            @TRANSACTIONCURRENCYID uniqueidentifier = null output
        )
        AS
        begin
            set nocount on;

            set @DATALOADED = 0;
            set @TSLONG = 0;

            select
                @ADJUSTMENTDATE = dbo.UFN_DATE_GETEARLIESTTIME(getdate()),
                @ADJUSTMENTPOSTDATE = dbo.UFN_DATE_GETEARLIESTTIME(getdate()),
                @ADJUSTMENTPOSTSTATUSCODE = 0;

            select
                @ADJUSTMENTDATE = GIFTFEEADJUSTMENT.DATE,
                @ADJUSTMENTPOSTDATE = GIFTFEEADJUSTMENT.POSTDATE,
                @ADJUSTMENTPOSTSTATUSCODE = 1,
                @ADJUSTMENTREASON = REASON,
                @ADJUSTMENTREASONCODEID = REASONCODEID
            from dbo.GIFTFEEADJUSTMENT
            where 
                GIFTFEEADJUSTMENT.REVENUEID = @ID and 
                GIFTFEEADJUSTMENT.POSTSTATUSCODE = 1

            -- Rename the TRANSACTIONAMOUNT field to AMOUNT
            set @GLDISTRIBUTION = (
                select
                    GIFTFEEGLDISTRIBUTION.ID,
                    GIFTFEEGLDISTRIBUTION.TRANSACTIONTYPECODE, 
                    GIFTFEEGLDISTRIBUTION.GLPAYMENTMETHODREVENUETYPEMAPPINGID,
                    GIFTFEEGLDISTRIBUTION.ACCOUNT, 
                    GIFTFEEGLDISTRIBUTION.TRANSACTIONAMOUNT AMOUNT, 
                    GIFTFEEGLDISTRIBUTION.REFERENCE,
                    GIFTFEEGLDISTRIBUTION.TRANSACTIONCURRENCYID
                from
                    dbo.UFN_REVENUE_GETGIFTFEEGLDISTRIBUTION(@ID) GIFTFEEGLDISTRIBUTION
                    inner join dbo.GLPAYMENTMETHODREVENUETYPEMAPPING as MAP on GIFTFEEGLDISTRIBUTION.GLPAYMENTMETHODREVENUETYPEMAPPINGID = MAP.ID
                order by
                    MAP.DESCRIPTION, 
                    GIFTFEEGLDISTRIBUTION.DEBITCREDIT desc
                for xml raw('ITEM'),type,elements,root('GLDISTRIBUTION'),BINARY BASE64
            );
            select @TSLONG = max(TSLONG) from dbo.GIFTFEEGLDISTRIBUTION where REVENUEID = @ID

            select 
                @TOTALGIFTFEES = coalesce(sum(REVENUESPLITGIFTFEE.TRANSACTIONAMOUNT), 0),
                @TRANSACTIONCURRENCYID = REVENUESPLITGIFTFEE.TRANSACTIONCURRENCYID
            from dbo.REVENUESPLITGIFTFEE
            inner join dbo.REVENUESPLIT on REVENUESPLITGIFTFEE.ID = REVENUESPLIT.ID
            where
                REVENUESPLIT.REVENUEID = @ID
            group by
                REVENUESPLITGIFTFEE.TRANSACTIONCURRENCYID;

            if @TSLONG is not null
                set @DATALOADED = 1;

            return 0;
        end