USP_REVENUETRANSACTION_DONOTRERECEIPT
Executes the "Revenue Transaction: Do Not Re-receipt" record operation.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | Input parameter indicating the ID of the record being updated. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the update. |
Definition
Copy
CREATE procedure dbo.[USP_REVENUETRANSACTION_DONOTRERECEIPT]
(
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier
)
as begin
declare @REVENUERECEIPTID uniqueidentifier = null;
declare @CURRENTDATE datetime = getdate();
declare @RECEIPTTYPECODE tinyint;
declare @CONSTITUENTID uniqueidentifier;
begin try
select
@RECEIPTTYPECODE = [REVENUE_EXT].[RECEIPTTYPECODE],
@CONSTITUENTID = [FINANCIALTRANSACTION].[CONSTITUENTID]
from dbo.[REVENUE_EXT]
inner join dbo.[FINANCIALTRANSACTION] on [FINANCIALTRANSACTION].[ID] = [REVENUE_EXT].[ID]
where [FINANCIALTRANSACTION].[ID] = @ID
if @RECEIPTTYPECODE = 0 --per payment
begin
update dbo.[REVENUE_EXT] set
[NEEDSRERECEIPT] = 0,
[CHANGEDBYID] = @CHANGEAGENTID,
[DATECHANGED] = @CURRENTDATE
where [ID] = @ID;
select top 1 @REVENUERECEIPTID = [REVENUERECEIPT].[ID]
from dbo.[REVENUERECEIPT]
where [REVENUERECEIPT].[REVENUEID] = @ID
order by [REVENUERECEIPT].[RECEIPTPROCESSDATE] desc;
declare @RECEIPTDETAILID uniqueidentifier = null
select
@RECEIPTDETAILID = [REVENUERECEIPTRERECEIPTDETAIL].[ID]
from dbo.[REVENUERECEIPTRERECEIPTDETAIL]
join dbo.[REVENUERECEIPT] on [REVENUERECEIPT].[ID] = [REVENUERECEIPTRERECEIPTDETAIL].REVENUERECEIPTID
where [REVENUERECEIPT].[ID] = @REVENUERECEIPTID and [REVENUERECEIPT].[REVENUEID] = @ID;
if not @RECEIPTDETAILID is null
exec dbo.[USP_REVENUERECEIPTRERECEIPTDETAIL_DELETEBYID_WITHCHANGEAGENTID] @RECEIPTDETAILID, @CHANGEAGENTID;
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;
--Cache current context information and set CONTEXT_INFO to @CHANGEAGENTID
declare @CONTEXTCACHE varbinary(128);
set @CONTEXTCACHE = CONTEXT_INFO();
set CONTEXT_INFO @CHANGEAGENTID;
-- Deleting the ereceipt details if they exist
delete dbo.[REVENUERECEIPTRERECEIPTDETAIL]
from dbo.[REVENUERECEIPTRERECEIPTDETAIL]
inner join dbo.[REVENUERECEIPT] on [REVENUERECEIPT].[ID] = [REVENUERECEIPTRERECEIPTDETAIL].[REVENUERECEIPTID]
inner join dbo.[REVENUE_EXT] on [REVENUE_EXT].[ID] = [REVENUERECEIPT].[REVENUEID]
inner join dbo.[FINANCIALTRANSACTION] on [FINANCIALTRANSACTION].[ID] = [REVENUE_EXT].[ID]
where
[FINANCIALTRANSACTION].[CONSTITUENTID] = @CONSTITUENTID
and [REVENUE_EXT].[RECEIPTTYPECODE] = 1
and [REVENUERECEIPT].[RECEIPTINGPROCESSSTATUSID] = @RECEIPTINGPROCESSSTATUSID;
--Update any other associated consolidated revenue
update [REVENUE_EXT]
set
[NEEDSRERECEIPT] = 0,
[CHANGEDBYID] = @CHANGEAGENTID,
[DATECHANGED] = @CURRENTDATE
from dbo.[REVENUE_EXT]
inner join dbo.[REVENUERECEIPT] on [REVENUERECEIPT].[REVENUEID] = [REVENUE_EXT].[ID]
inner join dbo.[FINANCIALTRANSACTION] on [FINANCIALTRANSACTION].[ID] = [REVENUE_EXT].[ID]
where
[FINANCIALTRANSACTION].[CONSTITUENTID] = @CONSTITUENTID
and [REVENUE_EXT].[RECEIPTTYPECODE] = 1
and [REVENUERECEIPT].[RECEIPTINGPROCESSSTATUSID] = @RECEIPTINGPROCESSSTATUSID;
--Reset CONTEXT_INFO to previous value
if @CONTEXTCACHE is not null
set CONTEXT_INFO @CONTEXTCACHE;
end
end try
begin catch
exec dbo.[USP_RAISE_ERROR];
return 1;
end catch
return 0;
end