USP_REVENUE_PAYMENTGIFTFEE_SAVE

Stored proc to update the gift fees on a payment.

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN
@GIFTFEES xml IN
@REASONCODEID uniqueidentifier IN
@COMMENTS nvarchar(255) IN
@CHANGEAGENTID uniqueidentifier IN

Definition

Copy


            create procedure dbo.USP_REVENUE_PAYMENTGIFTFEE_SAVE
            (
                @ID uniqueidentifier,
                @GIFTFEES xml,
                @REASONCODEID uniqueidentifier,
                @COMMENTS nvarchar(255),
                @CHANGEAGENTID uniqueidentifier = null
            )

            as 
            set nocount on;

            declare @CURRENTDATE datetime;
            set @CURRENTDATE = getdate();

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

            --Rows are not allowed to be removed so update and insert are all we need

            update dbo.REVENUESPLITGIFTFEE
            set REVENUESPLITGIFTFEE.FEE = FEES.FEE,
                REVENUESPLITGIFTFEE.WAIVED = FEES.WAIVED,
                CHANGEDBYID = @CHANGEAGENTID,
                DATECHANGED = @CURRENTDATE
            from dbo.REVENUESPLITGIFTFEE
            inner join dbo.UFN_REVENUE_GETGIFTFEES_FROMITEMLISTXML(@GIFTFEES) FEES
                on FEES.ID = REVENUESPLITGIFTFEE.ID
            where FEES.FEE <> REVENUESPLITGIFTFEE.FEE
                or FEES.WAIVED <> REVENUESPLITGIFTFEE.WAIVED

            insert into dbo.REVENUESPLITGIFTFEE(ID, FEE, WAIVED, CHANGEDBYID, ADDEDBYID, DATECHANGED,  DATEADDED)
            select ID, FEE, WAIVED, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE
            from dbo.UFN_REVENUE_GETGIFTFEES_FROMITEMLISTXML(@GIFTFEES) FEES
            where not exists(select top 1 ID from REVENUESPLITGIFTFEE where REVENUESPLITGIFTFEE.ID = FEES.ID)
            and (FEE > 0 or WAIVED = 1)


            update dbo.PAYMENTGIFTFEEOVERRIDE
            set
                REASONCODEID = @REASONCODEID,
                COMMENTS = @COMMENTS,
                CHANGEDBYID = @CHANGEAGENTID,
                DATECHANGED = @CURRENTDATE
            from
                dbo.PAYMENTGIFTFEEOVERRIDE
            where
                ID = @ID;

            --if new then insert data

            if @@ROWCOUNT = 0
                insert into dbo.PAYMENTGIFTFEEOVERRIDE(ID, REASONCODEID, COMMENTS, ADDEDBYID, CHANGEDBYID, DATECHANGED, DATEADDED)
                values(@ID, @REASONCODEID, @COMMENTS, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE)