USP_DATAFORMTEMPLATE_EDITLOAD_PLANNEDGIFTPAYOUTGLDISTRIBUTIONADJUST

The load procedure used by the edit dataform template "Posted Planned Gift Payout 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 Payout GL distribution
@REVENUEAMOUNT money INOUT Payout amount
@ADJUSTMENTDATE datetime INOUT Adjustment date
@ADJUSTMENTPOSTDATE datetime INOUT Adjustment 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
@DEFAULTGLPAYMENTMETHODREVENUETYPEMAPPINGID uniqueidentifier INOUT Debit mapping type
@TRANSACTIONCURRENCYID uniqueidentifier INOUT Transaction currency ID

Definition

Copy


                CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDITLOAD_PLANNEDGIFTPAYOUTGLDISTRIBUTIONADJUST
                (
                    @ID uniqueidentifier,
                    @DATALOADED bit = 0 output,
                    @GLDISTRIBUTION xml = null output,
                    @REVENUEAMOUNT money = 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,
                    @DEFAULTGLPAYMENTMETHODREVENUETYPEMAPPINGID uniqueidentifier = 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 = PLANNEDGIFTPAYOUTADJUSTMENT.DATE,
                        @ADJUSTMENTPOSTDATE = PLANNEDGIFTPAYOUTADJUSTMENT.POSTDATE,
                        @ADJUSTMENTPOSTSTATUSCODE = 1,
                        @ADJUSTMENTREASON = REASON,
                        @ADJUSTMENTREASONCODEID = REASONCODEID
                    from 
                        dbo.PLANNEDGIFTPAYOUTADJUSTMENT
                    where 
                        REVENUEID = @ID 
                        and PLANNEDGIFTPAYOUTADJUSTMENT.POSTSTATUSCODE = 1

                    -- Rename the TRANSACTIONAMOUNT field to AMOUNT.

                    set @GLDISTRIBUTION = (
                        select 
                            GLDISTRIBUTION.ID, 
                            GLDISTRIBUTION.TRANSACTIONTYPECODE, 
                            GLDISTRIBUTION.TRANSACTIONAMOUNT AMOUNT, 
                            GLDISTRIBUTION.GLPAYMENTMETHODREVENUETYPEMAPPINGID, 
                            GLDISTRIBUTION.ACCOUNT, 
                            GLDISTRIBUTION.PROJECT, 
                            GLDISTRIBUTION.REFERENCE, 
                            GLDISTRIBUTION.TRANSACTIONCURRENCYID
                        from 
                            dbo.UFN_PLANNEDGIFTPAYOUT_GETGLDISTRIBUTION(@ID) GLDISTRIBUTION
                        for xml raw('ITEM'),type,elements,root('GLDISTRIBUTION'),BINARY BASE64
                    );        

                    select 
                        @REVENUEAMOUNT = sum(PLANNEDGIFTPAYOUTGLDISTRIBUTION.TRANSACTIONAMOUNT)/2 
                    from 
                        dbo.PLANNEDGIFTPAYOUTGLDISTRIBUTION  
                    where 
                        PLANNEDGIFTPAYOUTGLDISTRIBUTION.REVENUEID = @ID
                        and PLANNEDGIFTPAYOUTGLDISTRIBUTION.OUTDATED = 0;

                    select 
                        @TRANSACTIONCURRENCYID = TRANSACTIONCURRENCYID
                    from 
                        dbo.PLANNEDGIFTPAYOUTGLDISTRIBUTION 
                    where 
                        REVENUEID = @ID;

                    select 
                        top 1 @DEFAULTGLPAYMENTMETHODREVENUETYPEMAPPINGID = GLPAYMENTMETHODREVENUETYPEMAPPINGID
                    from 
                        dbo.UFN_PLANNEDGIFTPAYOUT_GETGLDISTRIBUTION_FROMITEMLISTXML(@GLDISTRIBUTION);

                    if @REVENUEAMOUNT is not null
                    begin
                        set @DATALOADED = 1
                        select @TSLONG = max(tslong) from dbo.PLANNEDGIFTPAYOUTGLDISTRIBUTION where REVENUEID = @ID
                    end

                    return 0;
                end