USP_DATAFORMTEMPLATE_EDITLOAD_DONORCHALLENGE_CLAIM

The load procedure used by the edit dataform template "Donor Challenge Revenue 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.
@CONSTITUENTID uniqueidentifier INOUT Constituent ID
@CONSTITUENTNAME nvarchar(255) INOUT Constituent name
@DATE datetime INOUT Date
@AMOUNT money INOUT Amount
@SPLITS xml INOUT Designations
@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.
@BASECURRENCYID uniqueidentifier INOUT Base currency
@TRANSACTIONCURRENCYID uniqueidentifier INOUT Transaction currency
@BASEEXCHANGERATEID uniqueidentifier INOUT Exchange rate ID
@EXCHANGERATE decimal(20, 8) INOUT Exchange rate
@HADSPOTRATE bit INOUT Had spot rate
@RATECHANGED bit INOUT Rate changed
@BASEDECIMALDIGITS tinyint INOUT Decimal digits
@BASEROUNDINGTYPECODE tinyint INOUT Rounding type
@TRANSACTIONCURRENCYDESCRIPTION nvarchar(110) INOUT Transaction currency description

Definition

Copy

                    CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDITLOAD_DONORCHALLENGE_CLAIM
                    (
                        @ID uniqueidentifier,
                        @DATALOADED bit = 0 output,
                        @CONSTITUENTID uniqueidentifier = null output,
                        @CONSTITUENTNAME nvarchar(255) = null output,
                        @DATE datetime = null output,
                        @AMOUNT money = null output,
                        @SPLITS xml = null output,
                        @TSLONG bigint = 0 output,
                        @BASECURRENCYID uniqueidentifier = null output,
                        @TRANSACTIONCURRENCYID uniqueidentifier = null output,
                        @BASEEXCHANGERATEID uniqueidentifier = null output,
                        @EXCHANGERATE decimal(20,8) = null output,
                        @HADSPOTRATE bit = null output,
                        @RATECHANGED bit = null output,
                        @BASEDECIMALDIGITS tinyint = null output,
                        @BASEROUNDINGTYPECODE tinyint = null output,
                        @TRANSACTIONCURRENCYDESCRIPTION nvarchar(110) = null output
                    )
                    as 
                    set nocount on;

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

                    select
                        @DATALOADED = 1,
                        @CONSTITUENTID = CONSTITUENT.ID,
                        @CONSTITUENTNAME = CONSTITUENT.NAME,
                        @DATE = REVENUE.DATE,
                        @AMOUNT = REVENUE.TRANSACTIONAMOUNT,
                        @TSLONG = REVENUE.TSLONG,
                        @BASECURRENCYID = REVENUE.BASECURRENCYID,
                        @TRANSACTIONCURRENCYID = REVENUE.TRANSACTIONCURRENCYID,
                        @BASEEXCHANGERATEID = REVENUE.BASEEXCHANGERATEID,
                        @EXCHANGERATE = 
                            case
                                when REVENUE.BASEEXCHANGERATEID is not null
                                    then CURRENCYEXCHANGERATE.RATE
                                when REVENUE.TRANSACTIONCURRENCYID = REVENUE.BASECURRENCYID
                                    then 1
                                else 0
                            end,
                        @HADSPOTRATE =  
                            case
                                when CURRENCYEXCHANGERATE.TYPECODE = 2
                                    then 1
                                else 0
                            end,
                        @RATECHANGED = 0,
                        @BASEDECIMALDIGITS = CURRENCY.DECIMALDIGITS,
                        @BASEROUNDINGTYPECODE = CURRENCY.ROUNDINGTYPECODE,
                        @TRANSACTIONCURRENCYDESCRIPTION = dbo.UFN_CURRENCY_GETDESCRIPTION(REVENUE.TRANSACTIONCURRENCYID)
                    from dbo.REVENUE
                        inner join dbo.CONSTITUENT on CONSTITUENT.ID = REVENUE.CONSTITUENTID
                        inner join dbo.CURRENCY on CURRENCY.ID = REVENUE.BASECURRENCYID
                        left join dbo.CURRENCYEXCHANGERATE on CURRENCYEXCHANGERATE.ID = REVENUE.BASEEXCHANGERATEID
                    where REVENUE.ID = @ID and REVENUE.TRANSACTIONTYPECODE = 8;

                    set @SPLITS = (
                        select  
                            SPLITS.ID, 
                            SPLITS.DESIGNATIONID,
                            SPLITS.TRANSACTIONAMOUNT AMOUNT, 
                            @ID REVENUEID,
                            SPLITS.APPLICATIONCODE,  
                            SPLITS.TYPECODE,
                            SPLITS.TRANSACTIONCURRENCYID
                        from dbo.UFN_REVENUE_GETSPLITS_2(@ID) SPLITS
                        for xml raw('ITEM'),type,elements,root('SPLITS'),BINARY BASE64
                    );

                    return 0;