USP_DATAFORMTEMPLATE_EDIT_REVENUERECEIPTRERECEIPTDETAIL

The save procedure used by the edit dataform template "Re-Receipt Detail Edit Data 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.
@RERECEIPTREASONCODEID uniqueidentifier IN Reason
@DETAILS nvarchar(300) IN Details
@NEWNUMBERONRERECEIPT bit IN Generate a new receipt number?

Definition

Copy

                    CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_REVENUERECEIPTRERECEIPTDETAIL
                    (
                        @ID uniqueidentifier,
                        @CHANGEAGENTID uniqueidentifier = null,
                        @RERECEIPTREASONCODEID uniqueidentifier,
                        @DETAILS nvarchar(300),
                        @NEWNUMBERONRERECEIPT bit
                    )
                    as
                    set nocount on;
                    declare @REVENUERECEIPTID uniqueidentifier = null
                    if @CHANGEAGENTID is null  
                        exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output

                    declare @CURRENTDATE datetime
                    declare @RECEIPTTYPECODE tinyint
                    declare @CONSTITUENTID uniqueidentifier
                    set @CURRENTDATE = getdate()

                    begin try

                        select @RECEIPTTYPECODE = RECEIPTTYPECODE, @CONSTITUENTID = CONSTITUENTID from dbo.REVENUE where ID = @ID

                        if @RECEIPTTYPECODE = 0 --per payment
                        begin   
              update dbo.REVENUE set
                              NEEDSRERECEIPT = 1
                              CHANGEDBYID = @CHANGEAGENTID,
                              DATECHANGED = @CURRENTDATE
                          where ID = @ID

                            select top 1 @REVENUERECEIPTID = RR.ID 
                            from dbo.REVENUERECEIPT RR
                            where RR.REVENUEID=@ID
                            order by RR.RECEIPTPROCESSDATE desc;

                            insert into dbo.REVENUERECEIPTRERECEIPTDETAIL (ID, REVENUERECEIPTID, RERECEIPTREASONCODEID, NEWNUMBERONRERECEIPT, DETAILS, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
                            values (newid(), @REVENUERECEIPTID, @RERECEIPTREASONCODEID, @NEWNUMBERONRERECEIPT, @DETAILS, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE)
                        end
                        else if @RECEIPTTYPECODE = 1 --consolidated
                        begin

                            declare @RECEIPTINGPROCESSSTATUSID uniqueidentifier
              select top 1 @RECEIPTINGPROCESSSTATUSID = RECEIPTINGPROCESSSTATUSID from dbo.REVENUERECEIPT
              where REVENUEID = @ID
              order by RECEIPTPROCESSDATE desc;

                            insert into dbo.REVENUERECEIPTRERECEIPTDETAIL (ID, REVENUERECEIPTID, RERECEIPTREASONCODEID, NEWNUMBERONRERECEIPT, DETAILS, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
                            select newid(), RR.ID, @RERECEIPTREASONCODEID, @NEWNUMBERONRERECEIPT, @DETAILS, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE
                            from dbo.REVENUERECEIPT RR
                            join dbo.REVENUE R on R.ID = RR.REVENUEID
                            where R.CONSTITUENTID = @CONSTITUENTID and RECEIPTTYPECODE = 1 and RECEIPTINGPROCESSSTATUSID = @RECEIPTINGPROCESSSTATUSID

              update R  set 
                NEEDSRERECEIPT = 1,
                CHANGEDBYID = @CHANGEAGENTID,
                DATECHANGED = @CURRENTDATE
                from dbo.REVENUE_EXT R
                inner join dbo.FINANCIALTRANSACTION as FT on R.ID = FT.ID
                join dbo.REVENUERECEIPT RR on RR.REVENUEID = R.ID
              where CONSTITUENTID = @CONSTITUENTID and RECEIPTTYPECODE = 1 and RECEIPTINGPROCESSSTATUSID = @RECEIPTINGPROCESSSTATUSID
              -- and exists (select * from dbo.REVENUERECEIPT where REVENUEID = REVENUE.ID and )

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

                    return 0;