USP_DATAFORMTEMPLATE_PRELOAD_AUCTIONDONATIONWRITEOFF

The load procedure used by the edit dataform template "Auction Donation Write-Off Add Form"

Parameters

Parameter Parameter Type Mode Description
@REVENUEID uniqueidentifier IN Input parameter indicating the context ID for the record being added.
@CONSTITUENTNAME nvarchar(255) INOUT
@PLEDGEDATE datetime INOUT Donated on
@PLEDGEBALANCE money INOUT Value
@INSTALLMENTS xml INOUT
@TRANSACTIONTYPECODE tinyint INOUT Transaction type code
@PLEDGEAMOUNTMINUSWRITEOFFS money INOUT Value minus write-offs
@RECOGNITIONCREDITS xml INOUT Recognition credits
@REVENUESPLITS xml INOUT Revenue splits
@ORIGINALPLEDGEAMOUNT decimal(18, 0) INOUT Original value
@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
@POSTDATE datetime INOUT

Definition

Copy


                    CREATE procedure dbo.USP_DATAFORMTEMPLATE_PRELOAD_AUCTIONDONATIONWRITEOFF
                    (
                        @REVENUEID uniqueidentifier,
                        @CONSTITUENTNAME nvarchar(255) = 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 decimal = 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,
                        @POSTDATE datetime = null output
                    )
                    as
                    set nocount on;

                        -- Check GL business rule for this account system and set to 'Do not post' if needed.

                        -- ****

                        declare @PDACCOUNTSYSTEMID uniqueidentifier;
                        select @PDACCOUNTSYSTEMID = PDACCOUNTSYSTEMID 
                        from dbo.PDACCOUNTSYSTEMFORREVENUE
                        where ID = @REVENUEID;

                        set @ALLOWGLDISTRIBUTIONS = dbo.UFN_PDACCOUNTSYSTEM_ALLOWGLDISTRIBUTIONS(@PDACCOUNTSYSTEMID);
            if @ALLOWGLDISTRIBUTIONS = 0 
                            begin
                                set @POSTSTATUSCODE = 2        -- Do not post; get gl setting for default; with bug 194282 later check to get the auction post status

                            end
                        -- ****        


                    select 
                            @CONSTITUENTNAME = CONSTITUENT.NAME,
                            @PLEDGEDATE = REVENUE.DATE,
                            @PLEDGEBALANCE = dbo.UFN_PLEDGE_GETBALANCE(REVENUE.ID),
                            @INSTALLMENTS = 
                                (
                                    select 
                                        ID, 
                                        DATE,
                                        TRANSACTIONAMOUNT as AMOUNT,
                                        BALANCE,
                                        WRITEOFFAMOUNT,
                                        SEQUENCE,
                                        TRANSACTIONCURRENCYID
                                    from dbo.UFN_AUCTIONDONATION_GETWRITEOFFINSTALLMENTS_2(REVENUE.ID) WRITEOFFINSTALLMENT
                                    for xml raw('ITEM'),type,elements,root('INSTALLMENTS'),BINARY BASE64
                                ),
                            @TRANSACTIONTYPECODE = REVENUE.TRANSACTIONTYPECODE,
                            @PLEDGEAMOUNTMINUSWRITEOFFS = (REVENUE.TRANSACTIONAMOUNT - coalesce((select sum(WRITEOFFSPLIT.TRANSACTIONAMOUNT)
                                                                                        from dbo.WRITEOFFSPLIT
                                                                                        inner join dbo.WRITEOFF on WRITEOFF.ID = WRITEOFFSPLIT.WRITEOFFID
                                                                                        where WRITEOFF.REVENUEID = @REVENUEID), 0)),
                            @ORIGINALPLEDGEAMOUNT = REVENUE.TRANSACTIONAMOUNT,
                            @WRITEOFFTOTALAMOUNT = REVENUE.TRANSACTIONAMOUNT,
                            @TRANSACTIONCURRENCYID = REVENUE.TRANSACTIONCURRENCYID,
                            @BASECURRENCYID = REVENUE.BASECURRENCYID,
                            @EXCHANGERATE = 
                                case
                                    when REVENUE.TRANSACTIONCURRENCYID = REVENUE.BASECURRENCYID
                                        then 1
                                    else
                                        coalesce(CURRENCYEXCHANGERATE.RATE, 0)
                                end,
              @POSTSTATUSCODE = 
                  case
                                      when REVENUE.DONOTPOST = 1
                                          then 2
                                      else
                                          1
                                  end
                        from 
                            dbo.REVENUE
                        inner join
                            dbo.CONSTITUENT on REVENUE.CONSTITUENTID = CONSTITUENT.ID
                        left join
                            dbo.CURRENCYEXCHANGERATE on REVENUE.BASEEXCHANGERATEID = CURRENCYEXCHANGERATE.ID
                        where
                            REVENUE.ID = @REVENUEID and REVENUE.TRANSACTIONTYPECODE = 7;

                        set @RECOGNITIONCREDITS = (
                                                    select
                                                        REVENUERECOGNITION.ID,
                                                        REVENUESPLIT.ID as REVENUESPLITID,
                                                        dbo.UFN_DESIGNATION_BUILDNAME(REVENUESPLIT.DESIGNATIONID) as DESIGNATIONNAME,
                                                        CONSTITUENT.NAME as CONSTITUENTNAME,
                                                        REVENUERECOGNITIONTYPECODE.DESCRIPTION as RECOGNITIONCREDITTYPE,
                                                        REVENUERECOGNITION.EFFECTIVEDATE,
                                                        REVENUERECOGNITION.AMOUNT as ORIGINALAMOUNT,
                                                        REVENUERECOGNITION.AMOUNT as ADJUSTEDAMOUNT,
                                                        REVENUERECOGNITION.BASECURRENCYID
                                                    from dbo.REVENUE
                                                    inner join dbo.REVENUESPLIT on REVENUE.ID = REVENUESPLIT.REVENUEID
                                                    inner join dbo.REVENUERECOGNITION on REVENUESPLIT.ID = REVENUERECOGNITION.REVENUESPLITID
                                                    inner join dbo.CONSTITUENT on REVENUERECOGNITION.CONSTITUENTID = CONSTITUENT.ID
                                                    left join dbo.REVENUERECOGNITIONTYPECODE on REVENUERECOGNITION.REVENUERECOGNITIONTYPECODEID = REVENUERECOGNITIONTYPECODE.ID
                                                    where
                                                        REVENUE.ID = @REVENUEID
                                                    for xml raw('ITEM'),type,elements,root('RECOGNITIONCREDITS'),BINARY BASE64
                                                    )

                        set @REVENUESPLITS = (
                                                    select
                                                        REVENUESPLIT.ID,
                                                        REVENUESPLIT.TRANSACTIONAMOUNT as [AMOUNT],
                                                        REVENUESPLIT.TRANSACTIONCURRENCYID
                                                    from dbo.REVENUESPLIT
                                                    where
                                                        REVENUESPLIT.REVENUEID = @REVENUEID
                                                    for xml raw('ITEM'),type,elements,root('REVENUESPLITS'),BINARY BASE64
                                                    )

                        return 0;