USP_BATCHCONSTITUENTUPDATE_DELETEBATCH
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@CURRENTAPPUSERID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.USP_BATCHCONSTITUENTUPDATE_DELETEBATCH
(
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier,
@CURRENTAPPUSERID uniqueidentifier = null
)
as begin
set nocount on;
declare @contextCache varbinary(128);
set @contextCache = CONTEXT_INFO();
begin try
declare @lockName nvarchar(36);
set @lockName = upper(cast(@ID as nvarchar(36)));
declare @result int;
exec @result = sp_getapplock @Resource=@lockName, @LockMode='Exclusive', @LockOwner='Session', @LockTimeout=0;
if @result = 0
begin
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
set CONTEXT_INFO @CHANGEAGENTID;
if @CURRENTAPPUSERID is not null
begin
declare @GRANTED bit
select @GRANTED=dbo.UFN_SECURITY_APPUSER_GRANTED_BATCHOWNER(@CURRENTAPPUSERID, @ID)
if @GRANTED = 0
raiserror('You do not have permission to delete this batch.', 13, 1);
end;
--remove solicit codes
delete BSC
from dbo.BATCHCONSTITUENTUPDATESOLICITCODE BSC
join BATCHCONSTITUENTUPDATE on BATCHCONSTITUENTUPDATE.ID = BSC.BATCHCONSTITUENTUPDATEID
where BATCHID = @ID
--remove BBIS transaction info if batch was created by BBIS signup transaction
declare @BATCHSTATUS int;
select @BATCHSTATUS = dbo.UFN_BATCH_GETSTATUSCODE (@ID);
--only transactions from open batches need to be downloaded again
If @BATCHSTATUS = 0
begin
declare @BBNCTRANSACTIONIDS xml = (select * from dbo.UFN_BBNC_SIGNUP_GETROWBBNCIDS(@ID) for xml raw('INT'),type,root('TRANSACTIONIDS'),BINARY BASE64);
exec dbo.USP_BBNC_TRANSACTION_DELETEBATCH @BBNCTRANSACTIONIDS;
end
delete from dbo.BATCHCONSTITUENTUPDATEBBNCINFO where BATCHCONSTITUENTUPDATEID = @ID;
exec sp_releaseapplock @Resource=@lockName, @LockOwner='Session';
if not @contextCache is null
set CONTEXT_INFO @contextCache;
end
else
raiserror('This batch is in use and cannot be deleted.', 13, 1);
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;
end