USP_DATAFORMTEMPLATE_ADJUSTLOAD_GIFTINKINDSALEGLDISTRIBUTION

The load procedure used by the edit dataform template "Gift-in-Kind Sale GL Distribution Adjust 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.
@GLDISTRIBUTION xml INOUT Sold gift-in-kind GL distribution
@CAPTION nvarchar(12) INOUT Stock, Gift-in-Kind, 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
@DEFAULTTRANSACTIONCURRENCYID uniqueidentifier INOUT Default Transaction currency ID
@DEFAULTGLPAYMENTMETHODREVENUETYPEMAPPINGID uniqueidentifier INOUT Default mapping type

Definition

Copy


                CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADJUSTLOAD_GIFTINKINDSALEGLDISTRIBUTION
                (
                    @ID uniqueidentifier,
                    @DATALOADED bit = 0 output,
                    @GLDISTRIBUTION xml = null output,
                    @CAPTION nvarchar(12) = 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,
                    @DEFAULTTRANSACTIONCURRENCYID 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, 
                            GIFTINKINDSALEID, 
                            TRANSACTIONAMOUNT AMOUNT, 
                            TRANSACTIONCURRENCYID, 
                            TRANSACTIONTYPECODE
                        from dbo.[UFN_REVENUE_GETGIFTINKINDSALEGLDISTRIBUTION](@ID)
                        for xml raw('ITEM'),type,elements,root('GLDISTRIBUTION'),BINARY BASE64
                    );

                    select 
                        @CAPTION = 'gift-in-kind',
                        @ADJUSTMENTDATE = dbo.UFN_DATE_GETEARLIESTTIME(getdate()),
                        @ADJUSTMENTPOSTDATE = dbo.UFN_DATE_GETEARLIESTTIME(getdate()),
                        @ADJUSTMENTPOSTSTATUSCODE = 0;

                    -- if adjustment already exists for this sold gift-in-kind detail

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

                        if @GLDISTRIBUTION is not null 
                        begin
                            set @DATALOADED = 1;
                            select top 1
                                @TSLONG = max(GIFTINKINDSALEGLDISTRIBUTION.TSLONG),
                                @DEFAULTTRANSACTIONCURRENCYID = GIFTINKINDSALEGLDISTRIBUTION.TRANSACTIONCURRENCYID,
                                @DEFAULTGLPAYMENTMETHODREVENUETYPEMAPPINGID = GIFTINKINDSALEGLDISTRIBUTION.GLPAYMENTMETHODREVENUETYPEMAPPINGID
                            from 
                                dbo.GIFTINKINDSALEGLDISTRIBUTION 
                            where 
                                GIFTINKINDSALEGLDISTRIBUTION.GIFTINKINDSALEID = @ID and GIFTINKINDSALEGLDISTRIBUTION.TRANSACTIONTYPECODE = 1 -- Credit is expected by unit tests when DEFAULTGLPAYMENTMETHODREVENUETYPEMAPPINGID are different!

                            group by GIFTINKINDSALEGLDISTRIBUTION.TRANSACTIONCURRENCYID, GIFTINKINDSALEGLDISTRIBUTION.GLPAYMENTMETHODREVENUETYPEMAPPINGID;
                        end

                    return 0;
                end