USP_SALESDEPOSITTEMPLATE_DELETE
Executes the "Sales Deposit Template: Delete" 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_SALESDEPOSITTEMPLATE_DELETE
(
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier
) as
set nocount on;
begin try
if exists(select * from dbo.BUSINESSPROCESSSTATUS BPS inner join dbo.SALESDEPOSITTEMPLATE T on T.SALESDEPOSITPROCESSID = BPS.BUSINESSPROCESSPARAMETERSETID where BPS.BUSINESSPROCESSCATALOGID = '434AC0DD-A3F3-480C-B7DA-204C40205A68' and STATUSCODE = 1)
raiserror('BBERR_PROCESS_RUNNING', 16, 1);
--remove paymenttypes from the process's deposit templates
declare paymenttypes_cursor cursor LOCAL FAST_FORWARD for
select [ID]
from dbo.[SALESDEPOSITTEMPLATEPAYMENTMETHOD]
where [SALESDEPOSITTEMPLATEID] = @ID
OPEN paymenttypes_cursor
declare @SALESDEPOSITTEMPLATEPAYMENTMETHODID uniqueidentifier = null
fetch next from paymenttypes_cursor
into @SALESDEPOSITTEMPLATEPAYMENTMETHODID
while @@FETCH_STATUS = 0
begin
exec dbo.USP_SALESDEPOSITTEMPLATEPAYMENTMETHOD_DELETEBYID_WITHCHANGEAGENTID @SALESDEPOSITTEMPLATEPAYMENTMETHODID, @CHANGEAGENTID
FETCH NEXT FROM paymenttypes_cursor
INTO @SALESDEPOSITTEMPLATEPAYMENTMETHODID
end
--When a cursor is used, it should be explicitly closed/deallocated in case of blocking or USP running long
close paymenttypes_cursor;
deallocate paymenttypes_cursor;
--remove deposit
exec dbo.USP_SALESDEPOSITTEMPLATE_DELETEBYID_WITHCHANGEAGENTID @ID, @CHANGEAGENTID
end try
begin catch
exec dbo.USP_RAISE_ERROR
return 1
end catch
return 0;