USP_DATAFORMTEMPLATE_ADJUSTLOAD_STOCKSALEGLDISTRIBUTION_2

The load procedure used by the edit dataform template "Stock Sale GL Distribution Adjust Form 2"

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.
@GLDISTRIBUTION xml INOUT Sold Stock GL distribution
@CAPTION nvarchar(10) INOUT Stock Or Property
@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.
@ADJUSTMENTDATE datetime INOUT Adjustment date
@ADJUSTMENTPOSTDATE datetime INOUT Adjustment post date
@ADJUSTMENTPOSTSTATUSCODE tinyint INOUT Post status Code
@ADJUSTMENTREASON nvarchar(300) INOUT Adjustment details
@ADJUSTMENTREASONCODEID uniqueidentifier INOUT Adjustment reason
@TRANSACTIONCURRENCYID uniqueidentifier INOUT Transaction currency ID
@DEFAULTGLPAYMENTMETHODREVENUETYPEMAPPINGID uniqueidentifier INOUT Default mapping type

Definition

Copy


                CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADJUSTLOAD_STOCKSALEGLDISTRIBUTION_2
                (
                    @ID uniqueidentifier,
                    @DATALOADED bit = 0 output,
                    @GLDISTRIBUTION xml = null output,
                    @CAPTION nvarchar(10) = null output,
                    @TSLONG bigint = 0 output,
                    @ADJUSTMENTDATE datetime = null output,
                    @ADJUSTMENTPOSTDATE datetime = null output,
                    @ADJUSTMENTPOSTSTATUSCODE tinyint = null output,
                    @ADJUSTMENTREASON nvarchar(300) = null output,
                    @ADJUSTMENTREASONCODEID uniqueidentifier = null output,
                    @TRANSACTIONCURRENCYID uniqueidentifier = null output,
                    @DEFAULTGLPAYMENTMETHODREVENUETYPEMAPPINGID uniqueidentifier = null output
                )
                as
                begin
                    set nocount on;

                    set @DATALOADED = 0;
                    set @TSLONG = 0;

                    set @GLDISTRIBUTION = (
                        select 
                            ACCOUNT,
                            BASECURRENCYID,
                            BASEEXCHANGERATEID,
                            DEBITCREDIT,
                            GLPAYMENTMETHODREVENUETYPEMAPPINGID, 
                            ID, 
                            MAPPINGTYPE, 
                            ORGANIZATIONAMOUNT, 
                            ORGANIZATIONEXCHANGERATEID, 
                            PROJECT, 
                            REFERENCE, 
                            STOCKSALEID, 
                            TRANSACTIONAMOUNT AMOUNT, 
                            TRANSACTIONCURRENCYID, 
                            TRANSACTIONTYPECODE
                        from dbo.[UFN_REVENUE_GETSTOCKSALEGLDISTRIBUTION](@ID)
                        for xml raw('ITEM'),type,elements,root('GLDISTRIBUTION'),BINARY BASE64
                    );

                    select 
                        @CAPTION = 'stock',
                        @ADJUSTMENTDATE = dbo.UFN_DATE_GETEARLIESTTIME(getdate()),
                        @ADJUSTMENTPOSTDATE = dbo.UFN_DATE_GETEARLIESTTIME(getdate()),
                        @ADJUSTMENTPOSTSTATUSCODE = 0;                    

                    -- if adjustment already exists for this sold stock detail

                    select top 1
                        @ADJUSTMENTDATE = STOCKSALEADJUSTMENT.DATE,
                        @ADJUSTMENTPOSTDATE = STOCKSALEADJUSTMENT.POSTDATE,
                        @ADJUSTMENTPOSTSTATUSCODE = 1,
                        @ADJUSTMENTREASON = STOCKSALEADJUSTMENT.REASON,
                        @ADJUSTMENTREASONCODEID = STOCKSALEADJUSTMENT.REASONCODEID
                    from dbo.STOCKSALEADJUSTMENT
                    where STOCKSALEADJUSTMENT.STOCKSALEID = @ID and STOCKSALEADJUSTMENT.POSTSTATUSCODE = 1;

                    if @GLDISTRIBUTION is not null 
                        begin                          
                            set @DATALOADED = 1;        
                            select 
                                @TSLONG = max(STOCKSALEGLDISTRIBUTION.TSLONG),
                                @TRANSACTIONCURRENCYID = STOCKSALEGLDISTRIBUTION.TRANSACTIONCURRENCYID,
                                @DEFAULTGLPAYMENTMETHODREVENUETYPEMAPPINGID = STOCKSALEGLDISTRIBUTION.GLPAYMENTMETHODREVENUETYPEMAPPINGID
                            from 
                                dbo.STOCKSALEGLDISTRIBUTION 
                            where 
                                STOCKSALEGLDISTRIBUTION.STOCKSALEID = @ID
                            group by STOCKSALEGLDISTRIBUTION.TRANSACTIONCURRENCYID, STOCKSALEGLDISTRIBUTION.GLPAYMENTMETHODREVENUETYPEMAPPINGID;
                        end

                    return 0;                    
                end