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