USP_OPPORTUNITY_DELETE
Executes the "Opportunity: 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_OPPORTUNITY_DELETE
(
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier
)
as begin
-- Do not delete an opportunity with an associated grant award.
if exists (
select REVENUE.ID
from dbo.REVENUEOPPORTUNITY
inner join dbo.REVENUESPLIT on REVENUESPLIT.ID = REVENUEOPPORTUNITY.ID
inner join dbo.REVENUE on REVENUE.ID = REVENUESPLIT.REVENUEID
where
REVENUEOPPORTUNITY.OPPORTUNITYID = @ID
and REVENUE.TRANSACTIONTYPECODE = 6 -- Grant award
)
begin
raiserror('DONOTORPHANGRANTAWARDS',13,1);
return 1;
end
declare @contextCache varbinary(128);
set @contextCache = CONTEXT_INFO();
if not @CHANGEAGENTID is null
set CONTEXT_INFO @CHANGEAGENTID;
--Delete any named recognitions made against this opportunity
delete NAMINGOPPORTUNITYRECOGNITION
from dbo.NAMINGOPPORTUNITYRECOGNITION
inner join dbo.NAMINGOPPORTUNITYRECOGNITIONMGLINK on NAMINGOPPORTUNITYRECOGNITIONMGLINK.NAMINGOPPORTUNITYRECOGNITIONID = NAMINGOPPORTUNITYRECOGNITION.ID
inner join dbo.NAMINGOPPORTUNITYMGOPPORTUNITY on NAMINGOPPORTUNITYMGOPPORTUNITY.ID = NAMINGOPPORTUNITYRECOGNITIONMGLINK.MGOPPORTUNITYLINKID
where NAMINGOPPORTUNITYMGOPPORTUNITY.OPPORTUNITYID = @ID;
--Delete any naming opportunity links with this opportunity
delete from dbo.NAMINGOPPORTUNITYMGOPPORTUNITY where OPPORTUNITYID = @ID;
--Set revenue batch row opportunities to NULL
update dbo.BATCHREVENUE
set OPPORTUNITYID = null
where OPPORTUNITYID = @ID;
--Set event registrant batch row opportunities to NULL
update dbo.BATCHEVENTREGISTRANT
set OPPORTUNITYID = null
where OPPORTUNITYID = @ID;
--Delete links to other records
delete from dbo.EVENTREGISTRATIONOPPORTUNITY where OPPORTUNITYID = @ID;
delete from dbo.REVENUEOPPORTUNITY where OPPORTUNITYID = @ID;
exec USP_OPPORTUNITY_DELETEBYID_WITHCHANGEAGENTID @ID, @CHANGEAGENTID;
if not @contextCache is null
set CONTEXT_INFO @contextCache;
return 0;
end