USP_DATAFORMTEMPLATE_EDITLOAD_WRITEOFFGLDISTRIBUTIONADJUST_2

The load procedure used by the edit dataform template "Posted Write-off GL Distribution Edit 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 Write-off GL distribution
@ADJUSTMENTDATE datetime INOUT Adjustment date
@ADJUSTMENTPOSTDATE datetime INOUT Adjustment post date
@ADJUSTMENTPOSTSTATUSCODE tinyint INOUT Post status code
@ADJUSTMENTREASON nvarchar(300) INOUT Adjustment details
@WRITEOFFAMOUNT money INOUT Write-off amount
@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.
@ADJUSTMENTREASONCODEID uniqueidentifier INOUT Adjustment reason
@TRANSACTIONCURRENCYID uniqueidentifier INOUT Transaction currency ID
@DEFAULTGLPAYMENTMETHODREVENUETYPEMAPPINGID uniqueidentifier INOUT Default mapping type

Definition

Copy


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

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

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

                    select
                        @ADJUSTMENTDATE = ADJUSTMENT.DATE,
                        @ADJUSTMENTPOSTDATE = ADJUSTMENT.POSTDATE,
                        @ADJUSTMENTPOSTSTATUSCODE = 1,
                        @ADJUSTMENTREASON = ADJUSTMENT.REASON,
                        @ADJUSTMENTREASONCODEID = REASONCODEID                
                    from dbo.WRITEOFFADJUSTMENT as ADJUSTMENT
                    where WRITEOFFID = @ID and ADJUSTMENT.POSTSTATUSCODE = 1;

                    select @WRITEOFFAMOUNT = sum(TRANSACTIONAMOUNT) from dbo.WRITEOFFSPLIT where WRITEOFFID = @ID;

                        set @GLDISTRIBUTION = (
                            select 
                                ACCOUNT,  
                                DEBITCREDIT, 
                                GLPAYMENTMETHODREVENUETYPEMAPPINGID, 
                                ID, 
                                PROJECT, 
                                REFERENCE, 
                                TRANSACTIONAMOUNT AMOUNT, 
                                TRANSACTIONCURRENCYID, 
                                TRANSACTIONTYPECODE
                                ,FINANCIALTRANSACTIONLINEITEMID
                            from dbo.UFN_REVENUE_GETWRITEOFFGLDISTRIBUTION(@ID)
                            for xml raw('ITEM'),type,elements,root('GLDISTRIBUTION'),BINARY BASE64
                        );

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

                    return 0;                    
                end