USP_INVOICESCHEDULE_DELETE
Executes the "Invoice: Delete Schedule" record operation.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | Input parameter indicating the ID of the record being deleted. |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the delete. |
Definition
Copy
CREATE procedure dbo.USP_INVOICESCHEDULE_DELETE
(
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier
)
as begin
begin try
-- Cannot delete an invoice schedule that has applications
if exists(
select * from
dbo.FINANCIALTRANSACTIONSCHEDULE as FTS
inner join dbo.FINANCIALTRANSACTIONAPPLICATION as FTA
on FTA.FINANCIALTRANSACTIONSCHEDULEID = FTS.ID
where FTS.FINANCIALTRANSACTIONID = @ID
)
raiserror('ERR_INVOICE_SCHEDULE_HAS_DISBURSEMENTS', 16, 1);
declare @contextCache varbinary(128);
/* cache current context information */
set @contextCache = CONTEXT_INFO();
/* set CONTEXT_INFO to @CHANGEAGENTID */
if not @CHANGEAGENTID is null
set CONTEXT_INFO @CHANGEAGENTID
delete from dbo.FINANCIALTRANSACTIONSCHEDULE where FINANCIALTRANSACTIONID=@ID;
delete from dbo.INVOICESCHEDULEINFORMATION where ID=@ID;
declare @DATEDUE date;
declare @AMOUNT money;
select
@DATEDUE = I.DATEDUE
,@AMOUNT = FT.TRANSACTIONAMOUNT
from
dbo.INVOICE as I
inner join FINANCIALTRANSACTION as FT on I.ID = FT.ID
where
I.ID = @ID;
exec dbo.USP_FINANCIALTRANSACTIONSCHEDULE_ADD null, @CHANGEAGENTID, @ID, @DATEDUE, @AMOUNT
/* reset CONTEXT_INFO to previous value */
if not @contextCache is null
set CONTEXT_INFO @contextCache
end try
begin catch
exec dbo.USP_RAISE_ERROR
return 1
end catch
end