USP_DATAFORMTEMPLATE_EDITLOAD_GIFTINKINDSALE

The load procedure used by the edit dataform template "Gift-in-Kind Sale 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.
@ITEMNAME nvarchar(100) INOUT Item name
@SALEDATE datetime INOUT Date of sale
@SALEAMOUNT money INOUT Sale amount
@NUMBEROFUNITS int INOUT Units sold
@SALEPOSTDATE datetime INOUT GL post date
@SALEPOSTSTATUSCODE tinyint INOUT GL post status
@UNITSREMAINING int INOUT Units remaining
@ORIGINALFAIRMARKETVALUE decimal(19, 4) INOUT Original fair market price
@TRANSACTIONDONOTPOST bit INOUT Transaction marked do not post
@BASECURRENCYID uniqueidentifier INOUT Base currency ID
@TRANSACTIONCURRENCYID uniqueidentifier INOUT Transaction currency ID
@BASEEXCHANGERATEID uniqueidentifier INOUT Exchange rate ID
@EXCHANGERATE decimal(20, 8) INOUT Exchange rate
@HADSPOTRATE bit INOUT Had spot rate
@RATECHANGED bit INOUT Rate changed
@TRANSACTIONCURRENCYDESCRIPTION nvarchar(110) INOUT Transaction currency description
@REVENUEREFERENCE nvarchar(255) INOUT Reference
@ALLOWGLDISTRIBUTIONS bit INOUT Allow GL distributions

Definition

Copy


                CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDITLOAD_GIFTINKINDSALE
                (
                    @ID uniqueidentifier,
                    @DATALOADED bit = 0 output,
                    @TSLONG bigint = 0 output,
                    @ITEMNAME nvarchar(100) = null output,
                    @SALEDATE datetime = null output,
                    @SALEAMOUNT money = null output,
                    @NUMBEROFUNITS integer = null output,
                    @SALEPOSTDATE datetime = null output,
                    @SALEPOSTSTATUSCODE tinyint = null output,
                    @UNITSREMAINING integer = null output,
                    @ORIGINALFAIRMARKETVALUE decimal(19,4) = null output,
                    @TRANSACTIONDONOTPOST bit = null 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,
                    @TRANSACTIONCURRENCYDESCRIPTION nvarchar(110) = null output,
                    @REVENUEREFERENCE nvarchar(255) = null output,
                    @ALLOWGLDISTRIBUTIONS bit = 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.GIFTINKINDSALE 
                    inner join dbo.REVENUEPAYMENTMETHOD on GIFTINKINDSALE.GIFTINKINDPAYMENTMETHODDETAILID = REVENUEPAYMENTMETHOD.ID
                    inner join dbo.REVENUE on REVENUEPAYMENTMETHOD.REVENUEID = REVENUE.ID
                    inner join dbo.PDACCOUNTSYSTEMFORREVENUE on REVENUE.ID = PDACCOUNTSYSTEMFORREVENUE.ID
                    where GIFTINKINDSALE.ID = @ID;

                    select @PDACCOUNTSYSTEMID = PDACCOUNTSYSTEMID 
                    from dbo.PDACCOUNTSYSTEMFORREVENUE
                    where ID = @ID;

                    set @ALLOWGLDISTRIBUTIONS = dbo.UFN_PDACCOUNTSYSTEM_ALLOWGLDISTRIBUTIONS(@PDACCOUNTSYSTEMID);
                    -- ****


                    select
                        @DATALOADED = 1,
                        @TSLONG = GIFTINKINDSALE.TSLONG,
                        @SALEDATE = GIFTINKINDSALE.SALEDATE,
                        @SALEAMOUNT = GIFTINKINDSALE.TRANSACTIONSALEAMOUNT,
                        @NUMBEROFUNITS = GIFTINKINDSALE.NUMBEROFUNITS,
                        @SALEPOSTDATE = GIFTINKINDSALE.SALEPOSTDATE,
                        @SALEPOSTSTATUSCODE = GIFTINKINDSALE.SALEPOSTSTATUSCODE,
                        @ITEMNAME = GIFTINKINDPAYMENTMETHODDETAIL.ITEMNAME,
                        @UNITSREMAINING = GIFTINKINDPAYMENTMETHODDETAIL.NUMBEROFUNITS - coalesce((select sum(NUMBEROFUNITS) from dbo.GIFTINKINDSALE where GIFTINKINDPAYMENTMETHODDETAILID = GIFTINKINDPAYMENTMETHODDETAIL.ID and GIFTINKINDSALE.ID <> @ID), 0),
                        @ORIGINALFAIRMARKETVALUE = GIFTINKINDPAYMENTMETHODDETAIL.TRANSACTIONFAIRMARKETVALUE,
                        @BASECURRENCYID = GIFTINKINDSALE.BASECURRENCYID,
                        @TRANSACTIONCURRENCYID = GIFTINKINDSALE.TRANSACTIONCURRENCYID,
                        @BASEEXCHANGERATEID = GIFTINKINDSALE.BASEEXCHANGERATEID,
                        @EXCHANGERATE = 
                            case
                                when GIFTINKINDSALE.BASEEXCHANGERATEID is not null
                                    then CURRENCYEXCHANGERATE.RATE
                                when GIFTINKINDSALE.TRANSACTIONCURRENCYID = GIFTINKINDSALE.BASECURRENCYID
                                    then 1
                                else 0
                            end,
                        @HADSPOTRATE =  
                            case
                                when CURRENCYEXCHANGERATE.TYPECODE = 2
                                    then 1
                                else 0
                            end,
                        @RATECHANGED = 0,
                        @TRANSACTIONCURRENCYDESCRIPTION = dbo.UFN_CURRENCY_GETDESCRIPTION(GIFTINKINDSALE.TRANSACTIONCURRENCYID),
                        @REVENUEREFERENCE = REVENUEREFERENCE.REFERENCE
                    from
                        dbo.GIFTINKINDSALE
                        inner join dbo.GIFTINKINDPAYMENTMETHODDETAIL on GIFTINKINDSALE.GIFTINKINDPAYMENTMETHODDETAILID = GIFTINKINDPAYMENTMETHODDETAIL.ID
                        left join dbo.CURRENCYEXCHANGERATE on GIFTINKINDSALE.BASEEXCHANGERATEID = CURRENCYEXCHANGERATE.ID
                        inner join dbo.REVENUEPAYMENTMETHOD on GIFTINKINDSALE.GIFTINKINDPAYMENTMETHODDETAILID = REVENUEPAYMENTMETHOD.ID
                        left join dbo.REVENUEREFERENCE on REVENUEPAYMENTMETHOD.REVENUEID = REVENUEREFERENCE.ID
                    where
                        GIFTINKINDSALE.ID = @ID;

                    select 
                        @TRANSACTIONDONOTPOST = DONOTPOST 
                    from dbo.GIFTINKINDSALE 
                    inner join dbo.REVENUEPAYMENTMETHOD on GIFTINKINDSALE.GIFTINKINDPAYMENTMETHODDETAILID = REVENUEPAYMENTMETHOD.ID
                    inner join dbo.REVENUE on REVENUEPAYMENTMETHOD.REVENUEID = REVENUE.ID
                    where GIFTINKINDSALE.ID = @ID