USP_DATAFORMTEMPLATE_EDIT_UPDATEEVENTATTENDANCE

The save procedure used by the edit dataform template "Update Event Attendance Edit Data Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter indicating the ID of the record being edited.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@ATTENDEDOPTION tinyint IN Update all registrants whose attendance is unspecified to
@INCLUDESUBEVENTS int IN Update

Definition

Copy


          CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_UPDATEEVENTATTENDANCE (
              @ID uniqueidentifier,
              @CHANGEAGENTID uniqueidentifier = null,
            @ATTENDEDOPTION tinyint,
              @INCLUDESUBEVENTS integer
          )
          as

              set nocount on;

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

              declare @CURRENTDATE datetime
              set @CURRENTDATE = getdate()

              begin try
              if @ATTENDEDOPTION = 1
                  update
                    dbo.REGISTRANT
                set
                    ATTENDED = 1
                    ,CHANGEDBYID = @CHANGEAGENTID
                    ,DATECHANGED = @CURRENTDATE
                where
                    ((EVENTID = @ID and @INCLUDESUBEVENTS = 0)
                    or (EVENTID in (select ID from dbo.UFN_EVENT_GETALLEVENTSINHIERARCHY(@ID)) and @INCLUDESUBEVENTS = 1))
                    and (ATTENDED = 0)
                    and (WILLNOTATTEND = 0)
                  and (USERMARKEDATTENDANCE = 0)
                    and (dbo.UFN_REGISTRANT_ISCANCELLED(REGISTRANT.ID) = 0);

              else if @ATTENDEDOPTION = 0
                  update
                    dbo.REGISTRANT
                set
                    ATTENDED = 0
                    ,CHANGEDBYID = @CHANGEAGENTID
                    ,DATECHANGED = @CURRENTDATE
                where
                    ((EVENTID = @ID and @INCLUDESUBEVENTS = 0)
                    or (EVENTID in (select ID from dbo.UFN_EVENT_GETALLEVENTSINHIERARCHY(@ID)) and @INCLUDESUBEVENTS = 1))
                    and (ATTENDED = 1)
                  and (USERMARKEDATTENDANCE = 0)
                  and (ISWALKIN = 0);

              update dbo.EVENT
              set ISPROCESSED = ~ISPROCESSED,
                  CHANGEDBYID = @CHANGEAGENTID,
                    DATECHANGED = @CURRENTDATE
                where ((ID = @ID and @INCLUDESUBEVENTS = 0)
                  or (ID in (select ID from dbo.UFN_EVENT_GETALLEVENTSINHIERARCHY(@ID)) and @INCLUDESUBEVENTS = 1))

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

          return 0;