USP_DATAFORMTEMPLATE_EDIT_EVENTSTAFFRESOURCE_2

The save procedure used by the edit dataform template "Event Staff Resource 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.
@QUANTITYNEEDED int IN Quantity needed
@VOLUNTEERS xml IN Volunteers
@ASSIGNMENTS xml IN Volunteers
@IGNORECONFLICTS bit IN Ignore conflicts when saving

Definition

Copy


                create procedure dbo.USP_DATAFORMTEMPLATE_EDIT_EVENTSTAFFRESOURCE_2
                    (
                        @ID uniqueidentifier,
                        @CHANGEAGENTID uniqueidentifier = null,
                        @QUANTITYNEEDED int,
                        @VOLUNTEERS xml,
                        @ASSIGNMENTS xml,
                        @IGNORECONFLICTS bit
                    )
                as

                    set nocount on;

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

                    declare @CURRENTDATE datetime
                    set @CURRENTDATE = getdate()

                    declare
                        @STARTDATETIME datetime,
                        @ENDDATETIME datetime,
                        @STAFFRESOURCES xml,
                        @EVENTID uniqueidentifier,
                        @FILLEDBYCODE tinyint,
                        @JOBOCCURRENCEID uniqueidentifier,
                        @VOLUNTEERTYPEID uniqueidentifier;

                    select 
                        @EVENTID = EVENTID,
                        @VOLUNTEERTYPEID = VOLUNTEERTYPEID,
                        @FILLEDBYCODE = FILLEDBYCODE,
                        @JOBOCCURRENCEID = EVENTSTAFFRESOURCE.JOBOCCURRENCEID
                    from dbo.EVENTSTAFFRESOURCE
                    where EVENTSTAFFRESOURCE.ID = @ID;

                    select @EVENTID = EVENTID from dbo.EVENTSTAFFRESOURCE where ID = @ID;

                    select
                        @STARTDATETIME = STARTDATETIME,
                        @ENDDATETIME = ENDDATETIME
                    from dbo.EVENT
                    where ID = @EVENTID

                    set @STAFFRESOURCES = ( select @VOLUNTEERTYPEID VOLUNTEERTYPEID, @QUANTITYNEEDED QUANTITYNEEDED, @FILLEDBYCODE FILLEDBYCODE, @JOBOCCURRENCEID JOBID for xml raw('ITEM'), type, elements, root('STAFFRESOURCES'), binary base64 )

                    begin try
                        if @IGNORECONFLICTS = 0
                        begin
                            if dbo.UFN_CONFLICTCHECK_CONFLICTSEXIST
                            (
                                @STARTDATETIME, @ENDDATETIME,
                                null, null, @STAFFRESOURCES,
                                null, @EVENTID, null,
                                0,
                                1,
                                0,
                                0
                            ) = 1
                            begin                    
                                raiserror('BBERR_CONFLICTSEXIST', 13, 1);
                                return 1;
                            end
                        end

                        -- handle updating the data

                        update dbo.EVENTSTAFFRESOURCE set
                            EVENTSTAFFRESOURCE.QUANTITYNEEDED = @QUANTITYNEEDED,
                            EVENTSTAFFRESOURCE.CHANGEDBYID = @CHANGEAGENTID,
                            EVENTSTAFFRESOURCE.DATECHANGED = @CURRENTDATE
                        where EVENTSTAFFRESOURCE.ID = @ID

                        if (@FILLEDBYCODE = 0)
                        begin                            
                            /* Handle updating the volunteers */
                            exec dbo.USP_STAFFRESOURCE_PROCESSVOLUNTEERS @VOLUNTEERS, @CHANGEAGENTID;
                            exec dbo.USP_EVENTSTAFFRESOURCE_GETVOLUNTEERS_UPDATEFROMXML @JOBOCCURRENCEID, @VOLUNTEERS, @CHANGEAGENTID;
                        end
                        else
                        begin
                            exec dbo.USP_EVENTSTAFFRESOURCE_GETASSIGNMENTS_UPDATEFROMXML @ID, @ASSIGNMENTS, @CHANGEAGENTID;
                        end
                    end try
                    begin catch
                        exec dbo.USP_RAISE_ERROR
                        return 1
                    end catch

                return 0;