USP_REVENUE_UPDATERERECEIPTS

This procedure marks revenue records with the same receipt number as the given revenue record as needing to be re-receipted.

Parameters

Parameter Parameter Type Mode Description
@REVENUEID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN
@CHANGEDATE datetime IN

Definition

Copy


            CREATE procedure dbo.USP_REVENUE_UPDATERERECEIPTS
            (
                @REVENUEID uniqueidentifier,
                @CHANGEAGENTID uniqueidentifier = null,
                @CHANGEDATE datetime = null
            )
            as
                set nocount on;

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

                if @CHANGEDATE is null
                    set @CHANGEDATE = getdate()


                -- Check if re-receipts turned on

                if (coalesce((select top 1 RERECEIPTPAYMENTS from dbo.RECEIPTPREFERENCEINFO), 1)) = 1
                begin
                    declare @NEEDSRERECEIPT bit, @DONOTRECEIPT bit
                    select
                        @NEEDSRERECEIPT = RX.NEEDSRERECEIPT,
                        @DONOTRECEIPT = RX.DONOTRECEIPT
                    from dbo.FINANCIALTRANSACTION FT
                    inner join dbo.REVENUE_EXT RX on RX.ID = FT.ID
                    where FT.ID = @REVENUEID and FT.TYPECODE = 0 and FT.DELETEDON is null

                    -- If the payment is not marked do not receipt and has not already been marked re-receipt and at least one

                    -- previous receipt for the payment exists, mark the current payment as needing to be re-receipted

                    if (@NEEDSRERECEIPT = 0) and (@DONOTRECEIPT = 0) and exists (select ID from dbo.REVENUERECEIPT where REVENUEID = @REVENUEID)
                    begin
             update dbo.REVENUE_EXT
                            set
                                REVENUE_EXT.NEEDSRERECEIPT = 1,
                REVENUE_EXT.CHANGEDBYID = @CHANGEAGENTID,
                                REVENUE_EXT.DATECHANGED = @CHANGEDATE
                            where REVENUE_EXT.ID = @REVENUEID

                    end
                end

                return 0;