USP_DATAFORMTEMPLATE_EDIT_STEP_6

The save procedure used by the edit dataform template "Step Edit Form 3".

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.
@EXPECTEDDATE datetime IN Expected date
@ACTUALDATE datetime IN Actual date
@STATUSCODE tinyint IN Status
@OWNERID uniqueidentifier IN Owner
@INTERACTIONTYPECODEID uniqueidentifier IN Contact Method
@OBJECTIVE nvarchar(100) IN Objective
@PROSPECTPLANSTATUSCODEID uniqueidentifier IN Stage
@COMMENT nvarchar(max) IN Comment
@ADDITIONALFUNDRAISERS xml IN Additional fundraisers
@PARTICIPANTS xml IN Participants
@EXPECTEDSTARTTIME UDT_HOURMINUTE IN Expected start time
@EXPECTEDENDTIME UDT_HOURMINUTE IN Expected end time
@ISALLDAYEVENT bit IN
@TIMEZONEENTRYID uniqueidentifier IN Time zone
@ACTUALSTARTTIME UDT_HOURMINUTE IN Actual start time
@ACTUALENDTIME UDT_HOURMINUTE IN Actual end time

Definition

Copy


                    CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_STEP_6
                    (
                        @ID uniqueidentifier,
                        @CHANGEAGENTID uniqueidentifier = null,
                        @EXPECTEDDATE datetime,
                        @ACTUALDATE datetime,
                        @STATUSCODE tinyint,
                        @OWNERID uniqueidentifier,
                        @INTERACTIONTYPECODEID uniqueidentifier,
                        @OBJECTIVE nvarchar(100),
                        @PROSPECTPLANSTATUSCODEID uniqueidentifier,
                        @COMMENT nvarchar(max),
                        @ADDITIONALFUNDRAISERS xml,
                        @PARTICIPANTS xml,
                        @EXPECTEDSTARTTIME dbo.UDT_HOURMINUTE,
                        @EXPECTEDENDTIME dbo.UDT_HOURMINUTE,
                        @ISALLDAYEVENT bit
                        @TIMEZONEENTRYID uniqueidentifier,
                        @ACTUALSTARTTIME dbo.UDT_HOURMINUTE,
                        @ACTUALENDTIME dbo.UDT_HOURMINUTE
                    ) as begin
                        set nocount on;

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

                        begin try
                            -- Clear the owner from additional fundraisers in case the new owner was an additional fundraiser 

                            -- but isn't anymore. If they weren't cleared, a constraint violation would occur.  If the owner

                            -- is still an additional fundraiser, it will be caught when updating the additional fundraisers.

                            delete from dbo.INTERACTIONADDITIONALFUNDRAISER where INTERACTIONID = @ID and FUNDRAISERID = @OWNERID;

                            update dbo.INTERACTION set
                                CHANGEDBYID = @CHANGEAGENTID,
                                DATECHANGED = getdate(),
                                EXPECTEDDATE = @EXPECTEDDATE,
                                ACTUALDATE = @ACTUALDATE,
                                FUNDRAISERID = @OWNERID,
                                INTERACTIONTYPECODEID = @INTERACTIONTYPECODEID,
                                OBJECTIVE = @OBJECTIVE,
                                STATUSCODE = @STATUSCODE,
                                COMMENT = @COMMENT,
                                PROSPECTPLANSTATUSCODEID = @PROSPECTPLANSTATUSCODEID,
                                EXPECTEDSTARTTIME = @EXPECTEDSTARTTIME,
                                EXPECTEDENDTIME = @EXPECTEDENDTIME,
                                ISALLDAYEVENT = @ISALLDAYEVENT
                                TIMEZONEENTRYID = @TIMEZONEENTRYID,
                                ACTUALSTARTTIME = @ACTUALSTARTTIME,
                                ACTUALENDTIME = @ACTUALENDTIME
                            where
                                ID = @ID

                            exec dbo.USP_INTERACTION_ADDITIONALFUNDRAISERS_UPDATEFROMXML @ID, @ADDITIONALFUNDRAISERS, @CHANGEAGENTID;

                            -- If the step isn't an interaction, clear any participants.  Otherwise, just update them.

                            if @INTERACTIONTYPECODEID is null
                                delete from dbo.INTERACTIONPARTICIPANT where INTERACTIONID = @ID;
                            else
                                exec dbo.USP_INTERACTION_PARTICIPANTS_UPDATEFROMXML @ID, @PARTICIPANTS, @CHANGEAGENTID;
                        end try
                        begin catch
                            exec dbo.USP_RAISE_ERROR;
                            return 1;
                        end catch;

                        return 0;

                    end