USP_DATAFORMTEMPLATE_EDIT_TRANSACTIONSELLPROPERTYADJUST

The save procedure used by the edit dataform template "Revenue Transaction Posted Sold Property Edit Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter indicating the ID of the record being edited.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@SALEDATE datetime IN Date of sale
@SALEAMOUNT money IN Sale amount
@BROKERFEE money IN Fees
@ADJUSTMENTDATE datetime IN Adjusted Date
@ADJUSTMENTPOSTDATE datetime IN Adjusted Post Date
@ADJUSTMENTREASON nvarchar(300) IN Adjustment reason
@POSTSTATUSCODE tinyint IN GL post status
@POSTDATE datetime IN GL post date

Definition

Copy


                CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_TRANSACTIONSELLPROPERTYADJUST
                (
                    @ID uniqueidentifier,
                    @CHANGEAGENTID uniqueidentifier = null,
                    @SALEDATE datetime,
                    @SALEAMOUNT money,
                    @BROKERFEE money,
                    @ADJUSTMENTDATE datetime,
                    @ADJUSTMENTPOSTDATE datetime,
                    @ADJUSTMENTREASON nvarchar(300),
                    @POSTSTATUSCODE tinyint,
                    @POSTDATE datetime

                )
                as

                set nocount on;

                if @CHANGEAGENTID is null
                    exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;

                declare @CHANGEDATE datetime;
                declare @PROPERTYDETAILADJUSTMENTID uniqueidentifier;
                set @CHANGEDATE = GetDate();

                declare @REVENUEPAYMETHODID uniqueidentifier;

                begin try                    
                    declare @ADJUST bit;
                    declare @GIFTID uniqueidentifier;
                    declare @CLEARGLDISTRIBUTION bit;

                    select top 1 
                        @REVENUEPAYMETHODID = ID
                    from REVENUEPAYMENTMETHOD where REVENUEID = @ID;

                    set @ADJUST = 0;
                    set @CLEARGLDISTRIBUTION = 0;

                    /* Check if sale amount or broker fee has changed */
                    if (select COUNT(PROPERTYDETAIL.ID)
                            from dbo.PROPERTYDETAIL
                            where PROPERTYDETAIL.ID = @REVENUEPAYMETHODID
                                and SALEAMOUNT = @SALEAMOUNT
                                and BROKERFEE = @BROKERFEE) = 0
                    begin
                        set @ADJUST = 1;
                        set @CLEARGLDISTRIBUTION = 1;        
                    end

                    /* Already adjusted */
                    if @ADJUST = 0
                        if (select COUNT(PROPERTYDETAILADJUSTMENT.ID)
                                from dbo.PROPERTYDETAILADJUSTMENT
                                where PROPERTYDETAILID = @REVENUEPAYMETHODID and POSTSTATUSCODE = 1) > 0
                            set @ADJUST = 1;

                    /* If there was a change to GL related data log an adjustment */
                    if @ADJUST = 1
                    begin
                        exec dbo.USP_SAVE_PROPERTYDETAILADJUSTMENT @REVENUEPAYMETHODID, @PROPERTYDETAILADJUSTMENTID output, @CHANGEAGENTID, @CHANGEDATE, @ADJUSTMENTDATE, @ADJUSTMENTPOSTDATE, @ADJUSTMENTREASON;
                    end

                    update dbo.[PROPERTYDETAIL] set
                        [SALEDATE] = @SALEDATE,
                        [SALEAMOUNT] = @SALEAMOUNT,
                        [BROKERFEE] = @BROKERFEE,
                        [SALEPOSTSTATUSCODE] = @POSTSTATUSCODE,
                        [SALEPOSTDATE] = @POSTDATE,
                        [ADDEDBYID] = @CHANGEAGENTID,
                        [CHANGEDBYID] = @CHANGEAGENTID,
                        [DATEADDED] = @CHANGEDATE,
                        [DATECHANGED]  = @CHANGEDATE
                    where [PROPERTYDETAIL].[ID] = @REVENUEPAYMETHODID;

                    -- if the sale amount or broker fee has changed, clear any user-defined gl distributions for this record

                    if @CLEARGLDISTRIBUTION = 1
                    begin
                        --Clear GL

                        --Cache CONTEXT INFO

                        declare @contextCache varbinary(128);
                        set @contextCache = CONTEXT_INFO();

                        if not @CHANGEAGENTID is null
                            set CONTEXT_INFO @CHANGEAGENTID;

                        delete from dbo.PROPERTYDETAILGLDISTRIBUTION where PROPERTYDETAILID = @REVENUEPAYMETHODID and OUTDATED = 0;

                        exec dbo.USP_SAVE_PROPERTYDETAILGLDISTRIBUTION @ID, @CHANGEAGENTID, @CHANGEDATE;

                        --Restore CONTEXT_INFO

                        if not @contextCache is null
                            set CONTEXT_INFO @contextCache;
                    end

                    if @ADJUST = 1
                        exec dbo.USP_ADJUSTMENTHISTORY_PROPERTY_SAVEHISTORY @REVENUEPAYMETHODID, @CHANGEAGENTID, null, @PROPERTYDETAILADJUSTMENTID;

                end try
                begin catch
                    exec dbo.USP_RAISE_ERROR;
                    return 1;
                end catch

                return 0;