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