USP_EVENT_DELETE

Executes the "Event: 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_EVENT_DELETE
                    (
                        @ID uniqueidentifier,
                        @CHANGEAGENTID uniqueidentifier
                    )
                    as
                        set nocount on;

                        declare @contextCache varbinary(128);

                        if @CHANGEAGENTID is null  
                            exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;

                        declare @CURRENTDATE datetime;
                        set @CURRENTDATE = getdate();

                        begin try
                            exec USP_EVENT_VALIDATEEVENTDELETE @ID

                            /* cache current context information */
                            set @contextCache = CONTEXT_INFO();

                            /* set CONTEXT_INFO to @CHANGEAGENTID */
                            set CONTEXT_INFO @CHANGEAGENTID;

                            -- Delete lodging room instances associated with this event

                            delete 
                            from 
                                EVENTLODGINGROOMINSTANCE
                            where
                                EVENTLODGINGID in (select ID from EVENTLODGING where EVENTID = @ID)

                            -- Delete lodging rooms associated with this event

                            delete 
                                from EVENTLODGINGROOM 
                                where EVENTLODGINGID in
                                    (select ID
                                        from EVENTLODGING
                                        where EVENTID = @ID)

                            -- Delete lodging options associated with this event

                            delete 
                                from dbo.EVENTLODGING 
                                where EVENTID = @ID

                            -- Delete reference to event in any prospect research requests

                            update dbo.PROSPECTRESEARCHREQUEST
                            set
                                EVENTID = null
                            where
                                EVENTID = @ID

                            -- Delete any registrant registration maps

                            -- Deleting from REGISTRANTREGISTRATIONMAP cascade deletes REGISTRANTPREFERENCEMAP

                            delete from
                                dbo.REGISTRANTREGISTRATIONMAP
                            from
                                dbo.REGISTRANTREGISTRATIONMAP
                                inner join dbo.REGISTRANT on REGISTRANTREGISTRATIONMAP.REGISTRANTID = REGISTRANT.ID
                            where
                                REGISTRANT.EVENTID = @ID;

                            --Delete Invitees

                            delete INVITEE 
                            from dbo.INVITEE
                            inner join dbo.INVITATION on INVITEE.INVITATIONID = INVITATION.ID
                            where INVITATION.EVENTID = @ID;

                            delete from
                                dbo.INVITATION
                            where
                                EVENTID = @ID;

                            -- Clean up revenue batch event registrations

                            -- remove any revenue batch registrant guests of the this registrant

                            -- Delete any registrant registration maps for this registrant and their guests

                            -- Deleting from REGISTRANTREGISTRATIONMAP cascade deletes REGISTRANTPREFERENCEMAP

                            delete from
                                dbo.BATCHREVENUEREGISTRANTREGISTRATIONMAP
                            from
                                dbo.BATCHREVENUEREGISTRANTREGISTRATIONMAP
                            inner join
                                dbo.BATCHREVENUEREGISTRANT on BATCHREVENUEREGISTRANT.ID = BATCHREVENUEREGISTRANTREGISTRATIONMAP.REGISTRANTID
                            where
                                BATCHREVENUEREGISTRANT.EVENTID = @ID;

                            -- set application's batch registrant ID to null, mimic existing event registrations

                            update dbo.BATCHREVENUEAPPLICATION set
                                BATCHREVENUEREGISTRANTID = null,
                                CHANGEDBYID = @CHANGEAGENTID,
                                DATECHANGED = @CURRENTDATE
                            where
                                BATCHREVENUEAPPLICATION.BATCHREVENUEREGISTRANTID in (select ID from dbo.BATCHREVENUEREGISTRANT where EVENTID = @ID);

                            --Remove the registrant

                            delete from
                                dbo.BATCHREVENUEREGISTRANT
                            where
                                BATCHREVENUEREGISTRANT.EVENTID = @ID;


              --Remove meta data associated with Friends Asking Friends event

              if exists (select EVENT.ID from dbo.EVENT join dbo.EVENTEXTENSION on EVENT.ID= EVENTEXTENSION.EVENTID where EVENT.ID= @ID)
              begin
                exec dbo.USP_FAFEVENT_METADATACLEANUP @ID, @CHANGEAGENTID                
              END

                            -- If top of hierarchy, delete all related management options

                            if exists (select 1 from dbo.EVENT where ID = @ID and MAINEVENTID is null)
                            begin
                                delete from
                                    dbo.EVENTMANAGEMENTOPTIONS
                                where
                                    EVENTID = @ID

                                delete from
                                    dbo.EVENTMANAGEMENTINSTANCE
                                from
                                    dbo.EVENTMANAGEMENTINSTANCE
                                    inner join dbo.EVENTMANAGEMENTLEVELINSTANCE on EVENTMANAGEMENTLEVELINSTANCE.EVENTMANAGEMENTINSTANCEID = EVENTMANAGEMENTINSTANCE.ID
                                    inner join dbo.EVENTMANAGEMENTOPTIONS on EVENTMANAGEMENTOPTIONS.EVENTMANAGEMENTLEVELINSTANCEID = EVENTMANAGEMENTLEVELINSTANCE.ID
                                where
                                    EVENTMANAGEMENTOPTIONS.EVENTID = @ID
                            end

                            /* reset CONTEXT_INFO to previous value */
                            if not @contextCache is null
                                set CONTEXT_INFO @contextCache;

                            exec USP_EVENT_DELETEBYID_WITHCHANGEAGENTID @ID, @CHANGEAGENTID

                            return 0;
                        end try
                        begin catch
                            exec dbo.USP_RAISE_ERROR
                            return 1;
                        end catch