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;