USP_REVENUERECEIPT_ADD
Add data to RevenueReceipt table
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | |
@REVENUEID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@RECEIPTDATE | datetime | IN | |
@RECEIPTPROCESSDATE | datetime | IN | |
@RECEIPTINGPROCESSSTATUSID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.USP_REVENUERECEIPT_ADD(
@ID uniqueidentifier = null output,
@REVENUEID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier=null,
@RECEIPTDATE datetime=null,
@RECEIPTPROCESSDATE datetime=null,
@RECEIPTINGPROCESSSTATUSID uniqueidentifier=null
)
as
begin
if @ID is null
set @ID = newid();
declare @RECEIPTNUMBER int
declare @NextID table (ID int)
update dbo.RECEIPTSTACKINFO set NEXTRECEIPTNUMBER = NEXTRECEIPTNUMBER+1 output inserted.NEXTRECEIPTNUMBER into @NextID where ISDEFAULT = 1
select top 1 @RECEIPTNUMBER=ID-1 from @NextID
declare @CURRENTDATE datetime;
set @CURRENTDATE = getdate();
if @RECEIPTDATE is null
set @RECEIPTDATE=GETDATE()
if @RECEIPTPROCESSDATE is null
set @RECEIPTPROCESSDATE=GETDATE()
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
--if TRANSACTIONTYPECODE is not 0 or 7, this data will not be added.
if exists (select * from REVENUE WHERE ID=@REVENUEID AND TRANSACTIONTYPECODE in (0, 7)and REVENUE.DONOTRECEIPT = 0)
begin try
insert into dbo.REVENUERECEIPT(
ID,
REVENUEID,
originalrevenuereceiptid,
previousrevenuereceiptid,
RECEIPTNUMBER,
RECEIPTPROCESSDATE,
RECEIPTDATE,
RECEIPTINGPROCESSSTATUSID,
DATEADDED,
DATECHANGED,
ADDEDBYID,
CHANGEDBYID)
values(
@ID,
@REVENUEID,
(select top 1 coalesce(RR.ORIGINALREVENUERECEIPTID, RR.ID) from dbo.REVENUERECEIPT RR where RR.REVENUEID = @REVENUEID order by RECEIPTPROCESSDATE desc),
(select top 1 RR.ID from dbo.REVENUERECEIPT RR where RR.REVENUEID = @REVENUEID order by RECEIPTPROCESSDATE desc),
@RECEIPTNUMBER,
@RECEIPTPROCESSDATE,
@RECEIPTDATE,
@RECEIPTINGPROCESSSTATUSID,
@CURRENTDATE,
@CURRENTDATE,
@CHANGEAGENTID,
@CHANGEAGENTID
)
update dbo.REVENUE
set NEEDSRERECEIPT = 0
from REVENUE S where ID = @REVENUEID and NEEDSRERECEIPT = 1
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;
end