USP_DATAFORMTEMPLATE_PRELOAD_ADD_PLEDGEWRITEOFF2

The load procedure used by the edit dataform template "Pledge Write-off Add Form 2"

Parameters

Parameter Parameter Type Mode Description
@REVENUEID uniqueidentifier IN Input parameter indicating the context ID for the record being added.
@CONSTITUENTNAME nvarchar(700) INOUT
@PLEDGEDATE datetime INOUT Pledged on
@PLEDGEBALANCE money INOUT Pledge balance
@INSTALLMENTS xml INOUT
@TRANSACTIONTYPECODE tinyint INOUT Transaction type code
@PLEDGEAMOUNTMINUSWRITEOFFS money INOUT Pledge amount minus write-offs
@RECOGNITIONCREDITS xml INOUT Recognition credits
@REVENUESPLITS xml INOUT Revenue splits
@ORIGINALPLEDGEAMOUNT money INOUT Original pledge amount
@WRITEOFFTOTALAMOUNT money INOUT Amount
@TRANSACTIONCURRENCYID uniqueidentifier INOUT Transaction currency
@BASECURRENCYID uniqueidentifier INOUT Base currency
@EXCHANGERATE decimal(20, 8) INOUT Exchange rate
@ALLOWGLDISTRIBUTIONS bit INOUT Allow GL distributions
@POSTSTATUSCODE tinyint INOUT GL post status

Definition

Copy


                    CREATE procedure dbo.USP_DATAFORMTEMPLATE_PRELOAD_ADD_PLEDGEWRITEOFF2
                    (
                        @REVENUEID uniqueidentifier,
                        @CONSTITUENTNAME nvarchar(700) = null output,
                        @PLEDGEDATE datetime = null output,
                        @PLEDGEBALANCE money = null output,
                        @INSTALLMENTS xml = null output,
                        @TRANSACTIONTYPECODE tinyint = null output,
                        @PLEDGEAMOUNTMINUSWRITEOFFS money = null output,
                        @RECOGNITIONCREDITS xml = null output,
                        @REVENUESPLITS xml = null output,
                        @ORIGINALPLEDGEAMOUNT money = null output,
                        @WRITEOFFTOTALAMOUNT money = null output,
                        @TRANSACTIONCURRENCYID uniqueidentifier = null output,
                        @BASECURRENCYID uniqueidentifier = null output,
                        @EXCHANGERATE decimal(20,8) = null output,
                        @ALLOWGLDISTRIBUTIONS bit = null output,
                        @POSTSTATUSCODE tinyint = null output
                    )

                    as
                    begin
                        set nocount on;

                        declare @REVENUETRANSACTIONTYPECODE tinyint;
                        select 
                            @ALLOWGLDISTRIBUTIONS = dbo.UFN_PDACCOUNTSYSTEM_ALLOWGLDISTRIBUTIONS(FINANCIALTRANSACTION.PDACCOUNTSYSTEMID), -- Check GL business rule for this account system and set to 'Do not post' if needed.

                            @CONSTITUENTNAME = NF.NAME,
                            @PLEDGEDATE = FINANCIALTRANSACTION.DATE,
                            @PLEDGEBALANCE = dbo.UFN_PLEDGE_GETBALANCE(FINANCIALTRANSACTION.ID),
                            @REVENUETRANSACTIONTYPECODE = FINANCIALTRANSACTION.TYPECODE,
                            @TRANSACTIONTYPECODE = FINANCIALTRANSACTION.TYPECODE,
                            @PLEDGEAMOUNTMINUSWRITEOFFS =
                                (FINANCIALTRANSACTION.TRANSACTIONAMOUNT - coalesce
                                    (
                                        (
                                            select
                                                sum(INSTALLMENTSPLITWRITEOFF.TRANSACTIONAMOUNT) 
                                            from dbo.INSTALLMENTSPLITWRITEOFF 
                                            inner join dbo.INSTALLMENTSPLIT on INSTALLMENTSPLITWRITEOFF.INSTALLMENTSPLITID = INSTALLMENTSPLIT.ID 
                                            where INSTALLMENTSPLIT.PLEDGEID = @REVENUEID
                                        ),
                                        0
                                    )
                                ),
                            @ORIGINALPLEDGEAMOUNT = FINANCIALTRANSACTION.TRANSACTIONAMOUNT,
                            @WRITEOFFTOTALAMOUNT = 
                                case 
                                    when FINANCIALTRANSACTION.TYPECODE = 7 then FINANCIALTRANSACTION.BASEAMOUNT
                                    else 0
                                end,
                            @TRANSACTIONCURRENCYID = FINANCIALTRANSACTION.TRANSACTIONCURRENCYID,
                            @BASECURRENCYID = CURRENCYSET.BASECURRENCYID,
                            @EXCHANGERATE = 
                                case
                                    when FINANCIALTRANSACTION.TRANSACTIONCURRENCYID = CURRENCYSET.BASECURRENCYID
                                        then 1
                                    else
                                        coalesce(CURRENCYEXCHANGERATE.RATE, 0)
                                end
                            ,@POSTSTATUSCODE = case when (case FINANCIALTRANSACTION.POSTSTATUSCODE when 3 then 1 else 0 end) = 1 then 2 else 1 end
                        from 
                            dbo.FINANCIALTRANSACTION
                        inner join
                            dbo.REVENUE_EXT on FINANCIALTRANSACTION.ID = REVENUE_EXT.ID
                        inner join 
                            dbo.PDACCOUNTSYSTEM on FINANCIALTRANSACTION.PDACCOUNTSYSTEMID = PDACCOUNTSYSTEM.ID
                        inner join 
                            dbo.CURRENCYSET on PDACCOUNTSYSTEM.CURRENCYSETID = CURRENCYSET.ID
                        cross apply dbo.UFN_CONSTITUENT_DISPLAYNAME(FINANCIALTRANSACTION.CONSTITUENTID) NF
                        left join
                            dbo.CURRENCYEXCHANGERATE on FINANCIALTRANSACTION.BASEEXCHANGERATEID = CURRENCYEXCHANGERATE.ID
                        where
                            FINANCIALTRANSACTION.ID = @REVENUEID and FINANCIALTRANSACTION.DELETEDON is null;

                        if @REVENUETRANSACTIONTYPECODE = 7
                            set @INSTALLMENTS =
                                (
                                    select 
                                        ID, 
                                        DATE,
                                        TRANSACTIONAMOUNT as AMOUNT,
                                        BALANCE,
                                        WRITEOFFAMOUNT,
                                        SEQUENCE,
                                        TRANSACTIONCURRENCYID
                                    from dbo.UFN_AUCTIONDONATION_GETWRITEOFFINSTALLMENTS_2(@REVENUEID) WRITEOFFINSTALLMENT
                                    order by SEQUENCE
                                    for xml raw('ITEM'),type,elements,root('INSTALLMENTS'),BINARY BASE64
                                );
                        else
                            set @INSTALLMENTS =
                                (
                                    select 
                                        ID, 
                                        DATE,
                                        TRANSACTIONAMOUNT as AMOUNT,
                                        BALANCE,
                                        WRITEOFFAMOUNT,
                                        SEQUENCE,
                                        TRANSACTIONCURRENCYID
                                    from dbo.UFN_INSTALLMENT_GETWRITEOFFINSTALLMENTS_2(@REVENUEID) WRITEOFFINSTALLMENT
                                    order by SEQUENCE
                                    for xml raw('ITEM'),type,elements,root('INSTALLMENTS'),BINARY BASE64
                                );

                        set @RECOGNITIONCREDITS = (
                                                    select
                                                        REVENUERECOGNITION.ID,
                                                        FINANCIALTRANSACTIONLINEITEM.ID as REVENUESPLITID,
                                                        ISNULL(dbo.UFN_DESIGNATION_BUILDNAME(REVENUESPLIT_EXT.DESIGNATIONID), 'None (Earned Income)') as DESIGNATIONNAME,
                                                        CONSTITUENT.NAME as CONSTITUENTNAME,
                                                        REVENUERECOGNITIONTYPECODE.DESCRIPTION as RECOGNITIONCREDITTYPE,
                                                        REVENUERECOGNITION.EFFECTIVEDATE,
                                                        REVENUERECOGNITION.AMOUNT as ORIGINALAMOUNT,
                                                        REVENUERECOGNITION.AMOUNT as ADJUSTEDAMOUNT,
                                                        REVENUERECOGNITION.BASECURRENCYID
                                                    from dbo.FINANCIALTRANSACTION
                                                    inner join dbo.REVENUE_EXT on FINANCIALTRANSACTION.ID = REVENUE_EXT.ID
                                                    inner join dbo.FINANCIALTRANSACTIONLINEITEM on FINANCIALTRANSACTION.ID = FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID
                                                    inner join dbo.REVENUESPLIT_EXT on FINANCIALTRANSACTIONLINEITEM.ID = REVENUESPLIT_EXT.ID
                                                    inner join dbo.REVENUERECOGNITION on FINANCIALTRANSACTIONLINEITEM.ID = REVENUERECOGNITION.REVENUESPLITID
                                                    inner join dbo.CONSTITUENT on REVENUERECOGNITION.CONSTITUENTID = CONSTITUENT.ID
                                                    left join dbo.REVENUERECOGNITIONTYPECODE on REVENUERECOGNITION.REVENUERECOGNITIONTYPECODEID = REVENUERECOGNITIONTYPECODE.ID
                                                    where
                                                        FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID = @REVENUEID 
                                                        and FINANCIALTRANSACTIONLINEITEM.DELETEDON is null
                                                        and FINANCIALTRANSACTIONLINEITEM.TYPECODE <> 1
                                                    for xml raw('ITEM'),type,elements,root('RECOGNITIONCREDITS'),BINARY BASE64
                                                    )

                        set @REVENUESPLITS = (
                                                    select
                                                        FINANCIALTRANSACTIONLINEITEM.ID,
                                                        FINANCIALTRANSACTIONLINEITEM.TRANSACTIONAMOUNT [AMOUNT],
                                                        FINANCIALTRANSACTION.TRANSACTIONCURRENCYID
                                                    from dbo.FINANCIALTRANSACTIONLINEITEM
                                                    inner join dbo.REVENUESPLIT_EXT on FINANCIALTRANSACTIONLINEITEM.ID = REVENUESPLIT_EXT.ID
                                                    inner join dbo.FINANCIALTRANSACTION on FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID = FINANCIALTRANSACTION.ID
                                                    where
                                                        FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID = @REVENUEID
                                                        and FINANCIALTRANSACTIONLINEITEM.DELETEDON is null
                                                        and FINANCIALTRANSACTIONLINEITEM.TYPECODE <> 1
                                                    for xml raw('ITEM'),type,elements,root('REVENUESPLITS'),BINARY BASE64
                                                    )

                        return 0;

                    end