USP_DATAFORMTEMPLATE_ADJUSTLOAD_STOCKSALE
The load procedure used by the edit dataform template "Stock 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. |
@ISSUER | nvarchar(100) | INOUT | Issuer |
@SALEDATE | date | INOUT | Date of sale |
@SALEAMOUNT | money | INOUT | Sale amount |
@FEE | money | INOUT | Fees |
@NUMBEROFUNITS | decimal(20, 3) | INOUT | Units sold |
@LOWPRICE | decimal(19, 4) | INOUT | Low price |
@MEDIANPRICE | decimal(19, 4) | INOUT | Median price |
@HIGHPRICE | decimal(19, 4) | INOUT | High price |
@ADJUSTMENTPOSTDATE | datetime | INOUT | Adjustment post date |
@ADJUSTMENTDATE | datetime | INOUT | Adjustment date |
@ADJUSTMENTREASON | nvarchar(100) | INOUT | Adjustment reason |
@UNITSREMAINING | decimal(20, 3) | INOUT | Units remaining |
@ORIGINALMEDIANPRICE | decimal(19, 4) | INOUT | Original median price |
@ADJUSTMENTEXISTS | bit | INOUT | Adjustment exists |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADJUSTLOAD_STOCKSALE
(
@ID uniqueidentifier,
@DATALOADED bit = 0 output,
@TSLONG bigint = 0 output,
@ISSUER nvarchar(100) = null output,
@SALEDATE date = null output,
@SALEAMOUNT money = null output,
@FEE money = null output,
@NUMBEROFUNITS decimal(20,3) = null output,
@LOWPRICE decimal(19,4) = null output,
@MEDIANPRICE decimal(19,4) = null output,
@HIGHPRICE decimal(19,4) = null output,
@ADJUSTMENTPOSTDATE datetime = null output,
@ADJUSTMENTDATE datetime = null output,
@ADJUSTMENTREASON nvarchar(100) = null output,
@UNITSREMAINING decimal(20,3) = null output,
@ORIGINALMEDIANPRICE decimal(19,4) = null output,
@ADJUSTMENTEXISTS bit = null output
)
as
set nocount on
select
@DATALOADED = 1,
@TSLONG = STOCKSALE.TSLONG,
@SALEDATE = STOCKSALE.SALEDATE,
@SALEAMOUNT = STOCKSALE.SALEAMOUNT,
@FEE = STOCKSALE.FEE,
@NUMBEROFUNITS = STOCKSALE.NUMBEROFUNITS,
@LOWPRICE = STOCKSALE.LOWPRICE,
@MEDIANPRICE = STOCKSALE.MEDIANPRICE,
@HIGHPRICE = STOCKSALE.HIGHPRICE,
@ISSUER = STOCKDETAIL.ISSUER,
@UNITSREMAINING = STOCKDETAIL.NUMBEROFUNITS - coalesce((select sum(NUMBEROFUNITS) from dbo.STOCKSALE where STOCKDETAILID = STOCKDETAIL.ID and STOCKSALE.ID <> @ID), 0),
@ORIGINALMEDIANPRICE = STOCKDETAIL.MEDIANPRICE
from dbo.STOCKSALE
inner join dbo.STOCKDETAIL on STOCKSALE.STOCKDETAILID = STOCKDETAIL.ID
where STOCKSALE.ID = @ID
-- If adjustment already exists for this sold stock detail
set @ADJUSTMENTEXISTS = 0
set @ADJUSTMENTDATE = getdate()
set @ADJUSTMENTPOSTDATE = getdate()
select top 1
@ADJUSTMENTDATE = DATE,
@ADJUSTMENTPOSTDATE = POSTDATE,
@ADJUSTMENTREASON = REASON,
@ADJUSTMENTEXISTS = 1
from dbo.STOCKSALEADJUSTMENT
where STOCKSALEID = @ID and POSTSTATUSCODE = 1