USP_DATAFORMTEMPLATE_EDITLOAD_REVENUEGLDISTRIBUTIONADJUST_2

The load procedure used by the edit dataform template "Posted Revenue GL Distribution Edit Form 2"

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 Revenue GL distribution
@REVENUEAMOUNT money INOUT Revenue 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
@TRANSACTIONCURRENCYID uniqueidentifier INOUT Transaction currency ID
@DEBITGLPAYMENTMETHODREVENUETYPEMAPPINGID uniqueidentifier INOUT Debit mapping type
@ISLINKEDTODEPOSIT bit INOUT

Definition

Copy


                CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDITLOAD_REVENUEGLDISTRIBUTIONADJUST_2
                    (
                    @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,
                    @TRANSACTIONCURRENCYID uniqueidentifier = null output,
                    @DEBITGLPAYMENTMETHODREVENUETYPEMAPPINGID uniqueidentifier = null output,
                    @ISLINKEDTODEPOSIT bit = 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 @ADJUSTMENTPOSTDATE = DEPOSIT.POSTDATE
                    from dbo.BANKACCOUNTDEPOSITPAYMENT BADP
                    inner join dbo.FINANCIALTRANSACTION DEPOSIT on DEPOSIT.ID = BADP.DEPOSITID
                    where BADP.ID = @ID;

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

                    -- 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_REVENUE_GETGLDISTRIBUTION(@ID) GLDISTRIBUTION
                        inner join dbo.GLTRANSACTION T on T.ID = GLDISTRIBUTION.GLTRANSACTIONID
                        where T.SYSTEMDISTRIBUTION = 0
                        for xml raw('ITEM'),type,elements,root('GLDISTRIBUTION'),BINARY BASE64
                    );

                    if (select TRANSACTIONTYPECODE from dbo.REVENUE where ID = @ID) = 4

                        select 
                            @REVENUEAMOUNT = coalesce(PLANNEDGIFTADDITION.TRANSACTIONGIFTAMOUNT, PLANNEDGIFT.TRANSACTIONGIFTAMOUNT),
                            @TRANSACTIONCURRENCYID = REVENUE.TRANSACTIONCURRENCYID
                        from 
                            dbo.REVENUE
                            left outer join dbo.V_PLANNEDGIFTREVENUE_WITHADDITIONS as PLANNEDGIFTREVENUE on REVENUE.ID = PLANNEDGIFTREVENUE.REVENUEID
                            left join dbo.PLANNEDGIFTADDITION on PLANNEDGIFTADDITION.ID = PLANNEDGIFTREVENUE.PLANNEDGIFTADDITIONID
                            left outer join dbo.PLANNEDGIFT on PLANNEDGIFT.ID = PLANNEDGIFTREVENUE.PLANNEDGIFTID
                        where 
                            REVENUE.ID = @ID;
                    else
                        select 
                            @REVENUEAMOUNT = FINANCIALTRANSACTION.TRANSACTIONAMOUNT,
                            @TRANSACTIONCURRENCYID = FINANCIALTRANSACTION.TRANSACTIONCURRENCYID
                        from dbo.FINANCIALTRANSACTION 
                        where FINANCIALTRANSACTION.ID = @ID;

                    select 
                        TOP 1 @DEBITGLPAYMENTMETHODREVENUETYPEMAPPINGID = GLPAYMENTMETHODREVENUETYPEMAPPINGID
                    from 
                        dbo.UFN_REVENUE_GETGLDISTRIBUTION_FROMITEMLISTXML(@GLDISTRIBUTION)
                    where 
                        TRANSACTIONTYPECODE = 0;

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

                    set @ISLINKEDTODEPOSIT = 0;
                    if exists(select 1 from dbo.BANKACCOUNTDEPOSITPAYMENT where ID = @ID and DEPOSITID is not null)
                        set @ISLINKEDTODEPOSIT = 1;

                    return 0;                    
                END