USP_DATAFORMTEMPLATE_EDIT_REVENUEDETAIL

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN
@CURRENTAPPUSERID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN
@AMOUNT money IN
@RECEIPTAMOUNT money IN
@SPLITS xml IN
@SOURCECODE nvarchar(50) IN
@APPEALID uniqueidentifier IN
@BENEFITS xml IN
@BENEFITSWAIVED bit IN
@MAILINGID uniqueidentifier IN
@CHANNELCODEID uniqueidentifier IN
@DONOTACKNOWLEDGE bit IN

Definition

Copy


                    CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_REVENUEDETAIL
                    (
                        @ID uniqueidentifier,
                        @CURRENTAPPUSERID uniqueidentifier,
                        @CHANGEAGENTID uniqueidentifier,
                        @AMOUNT money,                    
                        @RECEIPTAMOUNT money,
                        @SPLITS xml,
                        @SOURCECODE nvarchar(50),
                        @APPEALID uniqueidentifier,
                        @BENEFITS xml,
                        @BENEFITSWAIVED bit,
                        @MAILINGID uniqueidentifier,
                        @CHANNELCODEID uniqueidentifier,
                        @DONOTACKNOWLEDGE bit
                    )
                    as
                    set nocount on;

                    declare @CHANGEDATE datetime;
                    declare @TYPECODE tinyint;

                    begin try

                        set @CHANGEDATE = getdate();

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

                        /* Validate payment information */

                        --IS THE REVENUE POSTED?

                        if (select count(REVENUE.ID) from dbo.REVENUE
                            inner join dbo.REVENUEPOSTED on REVENUEPOSTED.ID = REVENUE.ID
                            where REVENUE.ID = @ID) > 0
                            raiserror('You cannot edit a posted gift.', 13, 1)

                        select @TYPECODE = TRANSACTIONTYPECODE
                        from dbo.REVENUE
                        where ID = @ID;


                        -- if the designations or amount has changed, clear any user-defined gl distributions for this revenue record

                        if exists (select ID from dbo.REVENUEGLDISTRIBUTION where REVENUEID = @ID) or
                            exists (select ID from dbo.STOCKDETAILGLDISTRIBUTION where STOCKDETAILID = @ID) or
                            exists (select ID from dbo.PROPERTYDETAILGLDISTRIBUTION where PROPERTYDETAILID = @ID)
                        begin
                            declare @CLEARGLDISTRIBUTION bit;
                            set @CLEARGLDISTRIBUTION = 0;

                            -- check to see if amount has changed

                            if (select count(REVENUE.ID) from dbo.REVENUE where REVENUE.ID = @ID and AMOUNT = @AMOUNT) = 0
                                set @CLEARGLDISTRIBUTION = 1;

                            -- check to see if designations have changed

                            if @CLEARGLDISTRIBUTION = 0
                                if dbo.UFN_CHECKDETAIL_SPLITSCHANGED(@ID, @SPLITS) = 1
                                    set @CLEARGLDISTRIBUTION = 1;

                            -- clear the user-defined gl distributions

                            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.REVENUEGLDISTRIBUTION where REVENUEID = @ID;    
                                delete from dbo.STOCKDETAILGLDISTRIBUTION where STOCKDETAILID in (select ID from dbo.REVENUEPAYMENTMETHOD where REVENUEID = @ID);
                                delete from dbo.PROPERTYDETAILGLDISTRIBUTION where PROPERTYDETAILID in (select ID from dbo.REVENUEPAYMENTMETHOD where REVENUEID = @ID);

                                --Restore CONTEXT_INFO

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


                        exec dbo.USP_REVENUEDETAIL_EDIT @ID, @CURRENTAPPUSERID, @CHANGEAGENTID, @TYPECODE
                            @AMOUNT, @RECEIPTAMOUNT, @SPLITS, @SOURCECODE, @APPEALID, @BENEFITS, @BENEFITSWAIVED
                            @MAILINGID, @CHANNELCODEID, @DONOTACKNOWLEDGE, @CHANGEDATE;

                    end try

                    begin catch
                        exec dbo.USP_RAISE_ERROR;
                    end catch
                    return 0;