USP_DATAFORMTEMPLATE_ADJUSTLOAD_GIFTINKINDSALE

The load procedure used by the edit dataform template "Gift-in-Kind Sale By Transaction 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.
@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 date INOUT Date of sale
@SALEAMOUNT money INOUT Sale amount
@NUMBEROFUNITS int INOUT Units sold
@ADJUSTMENTPOSTDATE datetime INOUT Adjustment post date
@ADJUSTMENTDATE datetime INOUT Adjustment date
@ADJUSTMENTREASON nvarchar(100) INOUT Adjustment details
@UNITSREMAINING int INOUT Units remaining
@ORIGINALFAIRMARKETVALUE decimal(19, 4) INOUT Original fairmarket value
@ADJUSTMENTEXISTS bit INOUT Adjustment exists
@ADJUSTMENTREASONCODEID uniqueidentifier INOUT Adjustment reason
@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
@TRANSACTIONCURRENCYDESCRIPTION nvarchar(110) INOUT Transaction currency description
@ADJUSTMENTPOSTSTATUSCODE tinyint INOUT Post status code

Definition

Copy

                    CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADJUSTLOAD_GIFTINKINDSALE
                    (
                        @ID uniqueidentifier,
                        @DATALOADED bit = 0 output,
                        @TSLONG bigint = 0 output,
                        @ITEMNAME nvarchar(100) = null output,
                        @SALEDATE date = null output,
                        @SALEAMOUNT money = null output,
                        @NUMBEROFUNITS integer = null output,
                        @ADJUSTMENTPOSTDATE datetime = null output,
                        @ADJUSTMENTDATE datetime = null output,
                        @ADJUSTMENTREASON nvarchar(100) = null output,
                        @UNITSREMAINING integer = null output,
                        @ORIGINALFAIRMARKETVALUE decimal(19,4) = null output,
                        @ADJUSTMENTEXISTS bit = null output,
                        @ADJUSTMENTREASONCODEID uniqueidentifier = 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,
                        @ADJUSTMENTPOSTSTATUSCODE tinyint = null output
                    )
                    as
                        set nocount on

                        select
                            @DATALOADED = 1,
                            @TSLONG = GIFTINKINDSALE.TSLONG,
                            @SALEDATE = GIFTINKINDSALE.SALEDATE,
                            @SALEAMOUNT = GIFTINKINDSALE.TRANSACTIONSALEAMOUNT,
                            @NUMBEROFUNITS = GIFTINKINDSALE.NUMBEROFUNITS,
                            @ITEMNAME = GIFTINKINDPAYMENTMETHODDETAIL.ITEMNAME,
                            @UNITSREMAINING = GIFTINKINDPAYMENTMETHODDETAIL.NUMBEROFUNITS - coalesce((    select sum(NUMBEROFUNITS) 
                                                                                                        from dbo.GIFTINKINDSALE 
                                                                                                        where GIFTINKINDSALE.GIFTINKINDPAYMENTMETHODDETAILID = GIFTINKINDPAYMENTMETHODDETAIL.ID 
                                                                                                            and GIFTINKINDSALE.ID <> @ID
                                                                                                    ), 0),
                            @ORIGINALFAIRMARKETVALUE = GIFTINKINDPAYMENTMETHODDETAIL.FAIRMARKETVALUE,
                            @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)
                        from
                            dbo.GIFTINKINDSALE
                            inner join dbo.GIFTINKINDPAYMENTMETHODDETAIL on GIFTINKINDSALE.GIFTINKINDPAYMENTMETHODDETAILID = GIFTINKINDPAYMENTMETHODDETAIL.ID
                            left join dbo.CURRENCYEXCHANGERATE on GIFTINKINDSALE.BASEEXCHANGERATEID = CURRENCYEXCHANGERATE.ID
                        where
                            GIFTINKINDSALE.ID = @ID;

                        -- If adjustment already exists for this sold gift-in-kind detail
                        set @ADJUSTMENTEXISTS = 0
                        set @ADJUSTMENTDATE = dbo.UFN_DATE_GETEARLIESTTIME(getdate())
                        set @ADJUSTMENTPOSTDATE = dbo.UFN_DATE_GETEARLIESTTIME(getdate())
                        set @ADJUSTMENTPOSTSTATUSCODE = 1
                        select top 1
                            @ADJUSTMENTDATE = DATE,
                            @ADJUSTMENTPOSTDATE = POSTDATE,
                            @ADJUSTMENTREASON = REASON,
                            @ADJUSTMENTEXISTS = 1,
                            @ADJUSTMENTREASONCODEID = REASONCODEID,
                            @ADJUSTMENTPOSTSTATUSCODE = POSTSTATUSCODE
                        from dbo.GIFTINKINDSALEADJUSTMENT
                        where GIFTINKINDSALEID = @ID and POSTSTATUSCODE <> 0