USP_DATAFORMTEMPLATE_PRELOAD_STOCKSALEBYTRANSACTION
The load procedure used by the edit dataform template "Stock Sale By Transaction Add Form"
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@REVENUEID | uniqueidentifier | IN | Input parameter indicating the context ID for the record being added. |
@ISSUER | nvarchar(100) | INOUT | Issuer |
@UNITSREMAINING | decimal(20, 3) | INOUT | Units remaining |
@ORIGINALMEDIANPRICE | decimal(19, 4) | INOUT | Original median price |
@SALEDATE | datetime | INOUT | Date of sale |
@SALEPOSTDATE | datetime | INOUT | GL post date |
@SALEPOSTSTATUSCODE | tinyint | INOUT | GL post status |
@TRANSACTIONDONOTPOST | bit | INOUT | Transaction marked do not post |
@TRANSACTIONCURRENCYID | uniqueidentifier | INOUT | Transaction currency |
@BASECURRENCYID | uniqueidentifier | INOUT | Base currency |
@TRANSACTIONCURRENCYDESCRIPTION | nvarchar(110) | INOUT | Transaction currency description |
@BASEEXCHANGERATEID | uniqueidentifier | INOUT | Exchange rate ID |
@EXCHANGERATE | decimal(20, 8) | INOUT | Exchange rate |
@ALLOWGLDISTRIBUTIONS | bit | INOUT | Allow GL distributions |
@PAYMENTAMOUNT | money | INOUT | |
@ORIGINALUNITS | decimal(20, 3) | INOUT |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_PRELOAD_STOCKSALEBYTRANSACTION
(
@REVENUEID uniqueidentifier,
@ISSUER nvarchar(100) = null output,
@UNITSREMAINING decimal(20,3) = null output,
@ORIGINALMEDIANPRICE decimal(19,4) = null output,
@SALEDATE datetime = null output,
@SALEPOSTDATE datetime = null output,
@SALEPOSTSTATUSCODE tinyint = null output,
@TRANSACTIONDONOTPOST bit = null output,
@TRANSACTIONCURRENCYID uniqueidentifier = null output,
@BASECURRENCYID uniqueidentifier = null output,
@TRANSACTIONCURRENCYDESCRIPTION nvarchar(110) = null output,
@BASEEXCHANGERATEID uniqueidentifier = null output,
@EXCHANGERATE decimal(20,8) = null output,
@ALLOWGLDISTRIBUTIONS bit = null output,
@PAYMENTAMOUNT money = null output,
@ORIGINALUNITS decimal(20,3) = 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.PDACCOUNTSYSTEMFORREVENUE
where ID = @REVENUEID;
set @ALLOWGLDISTRIBUTIONS = dbo.UFN_PDACCOUNTSYSTEM_ALLOWGLDISTRIBUTIONS(@PDACCOUNTSYSTEMID);
-- ****
select
@ISSUER = STOCKDETAIL.ISSUER,
@UNITSREMAINING = STOCKDETAIL.NUMBEROFUNITS - coalesce((select sum(NUMBEROFUNITS) from dbo.STOCKSALE where STOCKDETAILID = STOCKDETAIL.ID), 0),
@ORIGINALMEDIANPRICE = STOCKDETAIL.TRANSACTIONMEDIANPRICE,
@SALEPOSTDATE = convert(date, getdate()),
@SALEDATE = convert(date, getdate()),
@TRANSACTIONCURRENCYID = STOCKDETAIL.TRANSACTIONCURRENCYID,
@BASECURRENCYID = STOCKDETAIL.BASECURRENCYID,
@TRANSACTIONCURRENCYDESCRIPTION = dbo.UFN_CURRENCY_GETDESCRIPTION(STOCKDETAIL.TRANSACTIONCURRENCYID),
@PAYMENTAMOUNT = REVENUEPAYMENTMETHOD.AMOUNT,
@ORIGINALUNITS = STOCKDETAIL.NUMBEROFUNITS
from
dbo.REVENUEPAYMENTMETHOD
inner join dbo.STOCKDETAIL on REVENUEPAYMENTMETHOD.ID = STOCKDETAIL.ID
where
REVENUEPAYMENTMETHOD.REVENUEID = @REVENUEID;
set @BASEEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATEST(@TRANSACTIONCURRENCYID,@BASECURRENCYID,@SALEDATE,1,null);
set @EXCHANGERATE =
case
when @BASEEXCHANGERATEID is not null
then (select CURRENCYEXCHANGERATE.RATE from dbo.CURRENCYEXCHANGERATE where CURRENCYEXCHANGERATE.ID = @BASEEXCHANGERATEID)
when @TRANSACTIONCURRENCYID = @BASECURRENCYID
then 1
else 0
end;
select
@TRANSACTIONDONOTPOST = REVENUE.DONOTPOST,
-- If the transaction is set to do not post, default the stock sale to do not post
@SALEPOSTSTATUSCODE = case when REVENUE.DONOTPOST = 1 then 2 else 1 end
from
dbo.REVENUE
where
REVENUE.ID = @REVENUEID;