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