USP_DATAFORMTEMPLATE_EDITLOAD_AUCTIONDONATION

The load procedure used by the edit dataform template "Auction Donation Edit Data 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.
@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.
@AMOUNT money INOUT Value
@DATE datetime INOUT Date
@EXPIRATIONDATE datetime INOUT Expiration date
@DESIGNATIONID uniqueidentifier INOUT Designation
@POSTDATE datetime INOUT Post date
@POSTSTATUSCODE tinyint INOUT Post status
@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
@BASEDECIMALDIGITS tinyint INOUT Decimal digits
@BASEROUNDINGTYPECODE tinyint INOUT Rounding type
@TRANSACTIONCURRENCYDESCRIPTION nvarchar(110) INOUT Transaction currency description
@USERGRANTEDSPOTRATE bit INOUT User granted spot rate
@ALLOWGLDISTRIBUTIONS bit INOUT

Definition

Copy

                    CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDITLOAD_AUCTIONDONATION
                    (
                        @ID uniqueidentifier,
                        @DATALOADED bit = 0 output,
                        @TSLONG bigint = 0 output,
                        @AMOUNT money = null output,
                        @DATE datetime = null output,
                        @EXPIRATIONDATE datetime = null output,
                        @DESIGNATIONID uniqueidentifier = null output,
                        @POSTDATE datetime = null output,
                        @POSTSTATUSCODE tinyint = null output,
                        @BASECURRENCYID uniqueidentifier = null output,
                        @TRANSACTIONCURRENCYID uniqueidentifier = null output,
                        @BASEEXCHANGERATEID uniqueidentifier = null output,
                        @EXCHANGERATE decimal(20,8) = null output,
                        @HADSPOTRATE bit = null output,
                        @BASEDECIMALDIGITS tinyint = null output,
                        @BASEROUNDINGTYPECODE tinyint = null output,
                        @TRANSACTIONCURRENCYDESCRIPTION nvarchar(110) = null output,
                        @USERGRANTEDSPOTRATE bit = null output,
                        @ALLOWGLDISTRIBUTIONS bit = null output
                    )
                    as

                        set nocount on;

                        -- be sure to set these, in case the select returns no rows
                        set @DATALOADED = 0;
                        set @TSLONG = 0;

                        --replace with commented code for PBI 102747
                        set @USERGRANTEDSPOTRATE = 1;
                        /*set @USERGRANTEDSPOTRATE = case 
                            when dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1 or 
                                dbo.UFN_SECURITY_APPUSER_GRANTED_SYSTEMPRIVILEGE_IN_SYSTEMROLE(@CURRENTAPPUSERID, '911f104d-ba5f-4469-b0ae-184c879aea99') = 1 
                                    then 1
                                    else 0
                            end;*/

                        -- populate the output parameters, which correspond to fields on the form.  Note that
                        -- we set @DATALOADED = 1 to indicate that the load was successful.  Otherwise, the system
                        -- will display a "no data loaded" message.  Also note that we fetch the TSLONG so that concurrency
                        -- can be considered.
                        select
                            @DATALOADED = 1,
                            @TSLONG = FINANCIALTRANSACTION.TSLONG,
                            @AMOUNT = FINANCIALTRANSACTION.TRANSACTIONAMOUNT,
                            @DATE = FINANCIALTRANSACTION.[DATE],
                            @EXPIRATIONDATE = AUCTIONITEM.EXPIRATIONDATE,
                            @DESIGNATIONID = REVENUESPLIT_EXT.DESIGNATIONID,
                            @POSTDATE = FINANCIALTRANSACTION.POSTDATE,
                            @POSTSTATUSCODE =
                                case FINANCIALTRANSACTION.POSTSTATUSCODE
                                    when 2
                                        then 0
                                    when 1
                                        then 1
                                    else
                                        2
                                end,
                            @BASECURRENCYID = V.BASECURRENCYID,
                            @TRANSACTIONCURRENCYID = FINANCIALTRANSACTION.TRANSACTIONCURRENCYID,
                            @BASEEXCHANGERATEID = FINANCIALTRANSACTION.BASEEXCHANGERATEID,
                            @EXCHANGERATE = 
                                case
                                    when FINANCIALTRANSACTION.BASEEXCHANGERATEID is not null
                                        then CURRENCYEXCHANGERATE.RATE
                                    when FINANCIALTRANSACTION.TRANSACTIONCURRENCYID = V.BASECURRENCYID
                                        then 1
                                    else 0
                                end,
                            @HADSPOTRATE =  
                                case
                                    when CURRENCYEXCHANGERATE.TYPECODE = 2
                                        then 1
                                    else 0
                                end,
                            @BASEDECIMALDIGITS = CURRENCY.DECIMALDIGITS,
                            @BASEROUNDINGTYPECODE = CURRENCY.ROUNDINGTYPECODE,
                            @TRANSACTIONCURRENCYDESCRIPTION = dbo.UFN_CURRENCY_GETDESCRIPTION(FINANCIALTRANSACTION.TRANSACTIONCURRENCYID)
                        from dbo.FINANCIALTRANSACTION
                        inner join dbo.FINANCIALTRANSACTIONLINEITEM on FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID = FINANCIALTRANSACTION.ID
                        inner join dbo.REVENUESPLIT_EXT on REVENUESPLIT_EXT.ID = FINANCIALTRANSACTIONLINEITEM.ID
                        inner join dbo.AUCTIONITEM on AUCTIONITEM.REVENUEAUCTIONDONATIONID = FINANCIALTRANSACTION.ID
                        inner join dbo.V_BASECURRENCYFORFINANCIALTRANSACTION_I V with (noexpand) on FINANCIALTRANSACTION.ID = V.FINANCIALTRANSACTIONID
                        left join dbo.CURRENCY on CURRENCY.ID = V.BASECURRENCYID
                        left join dbo.CURRENCYEXCHANGERATE on CURRENCYEXCHANGERATE.ID = FINANCIALTRANSACTION.BASEEXCHANGERATEID
                        where FINANCIALTRANSACTION.ID = @ID;

                        -- 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 = @ID;
                        set @ALLOWGLDISTRIBUTIONS = dbo.UFN_PDACCOUNTSYSTEM_ALLOWGLDISTRIBUTIONS(@PDACCOUNTSYSTEMID);

                        return 0;