USP_DELETE_NAMINGOPPORTUNITYMGOPPORTUNITYLINK
Executes the "Naming Opportunity/MG Opportunity Link 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_DELETE_NAMINGOPPORTUNITYMGOPPORTUNITYLINK
(
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier
)
as
set nocount on;
begin try
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
declare @CONTEXTCACHE varbinary(128);
set @CONTEXTCACHE = CONTEXT_INFO();
if not @CHANGEAGENTID is null
set CONTEXT_INFO @CHANGEAGENTID;
--delete any recognitions that are only associated with this link
with [COUNTS] as
(
select
NAMINGOPPORTUNITYRECOGNITION.ID,
(select count(ID) from dbo.NAMINGOPPORTUNITYRECOGNITIONMGLINK where NAMINGOPPORTUNITYRECOGNITIONMGLINK.NAMINGOPPORTUNITYRECOGNITIONID = NAMINGOPPORTUNITYRECOGNITION.ID) as [MGCOUNT],
(select count(ID) from dbo.NAMINGOPPORTUNITYRECOGNITIONREVENUESPLIT where NAMINGOPPORTUNITYRECOGNITIONREVENUESPLIT.NAMINGOPPORTUNITYRECOGNITIONID = NAMINGOPPORTUNITYRECOGNITION.ID) as [REVCOUNT]
from dbo.NAMINGOPPORTUNITYRECOGNITION
inner join dbo.NAMINGOPPORTUNITYRECOGNITIONMGLINK on NAMINGOPPORTUNITYRECOGNITIONMGLINK.NAMINGOPPORTUNITYRECOGNITIONID = NAMINGOPPORTUNITYRECOGNITION.ID
where NAMINGOPPORTUNITYRECOGNITIONMGLINK.MGOPPORTUNITYLINKID = @ID
)
delete dbo.NAMINGOPPORTUNITYRECOGNITION
from dbo.NAMINGOPPORTUNITYRECOGNITION
inner join [COUNTS] on [COUNTS].ID = NAMINGOPPORTUNITYRECOGNITION.ID
where [COUNTS].[MGCOUNT] = 1 and [COUNTS].[REVCOUNT] = 0
--remove the link
delete from dbo.NAMINGOPPORTUNITYMGOPPORTUNITY
where ID = @ID;
if not @CONTEXTCACHE is null
set CONTEXT_INFO @CONTEXTCACHE;
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;