USP_DATAFORMTEMPLATE_ADD_BATCHINTERACTIONBATCHCOMMIT

The save procedure used by the add dataform template "Interaction Batch Row Commit Add Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT The output parameter indicating the ID of the record added.
@VALIDATEONLY bit IN Validate only
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@INTERACTIONID uniqueidentifier IN Interaction
@CONSTITUENTID uniqueidentifier IN Constituent lookup ID
@CUSTOMIDENTIFIER nvarchar(100) IN Interaction lookup ID
@INTERACTIONTYPECODEID uniqueidentifier IN Contact method
@OBJECTIVE nvarchar(100) IN Summary
@FUNDRAISERID uniqueidentifier IN Owner
@EXPECTEDDATE datetime IN Expected date
@ACTUALDATE datetime IN Actual date
@STATUSCODE tinyint IN Status
@COMMENT nvarchar(max) IN Comment
@EVENTID uniqueidentifier IN Event
@PARTICIPANTS xml IN Participants
@INTERACTIONCATEGORYID uniqueidentifier IN Category
@INTERACTIONSUBCATEGORYID uniqueidentifier IN Subcategory
@SITES xml IN Sites
@EXPECTEDSTARTTIME UDT_HOURMINUTE IN Expected start time
@EXPECTEDENDTIME UDT_HOURMINUTE IN Expected end time
@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_ADD_BATCHINTERACTIONBATCHCOMMIT(
                        @ID uniqueidentifier = null output,
                        @VALIDATEONLY bit = 0,
                        @CHANGEAGENTID uniqueidentifier,
                        @INTERACTIONID uniqueidentifier = null,
                        @CONSTITUENTID uniqueidentifier = null,
                        @CUSTOMIDENTIFIER nvarchar(100) = '',
                        @INTERACTIONTYPECODEID uniqueidentifier = null,
                        @OBJECTIVE nvarchar(100),
                        @FUNDRAISERID uniqueidentifier = null,
                        @EXPECTEDDATE datetime = null,
                        @ACTUALDATE datetime = null,
                        @STATUSCODE tinyint = null,
                        @COMMENT nvarchar(max) = '',
                        @EVENTID uniqueidentifier = null,
                        @PARTICIPANTS xml = null,
                        @INTERACTIONCATEGORYID uniqueidentifier = null,
                        @INTERACTIONSUBCATEGORYID uniqueidentifier = null,
                        @SITES xml = null,
                        @EXPECTEDSTARTTIME dbo.UDT_HOURMINUTE = null,
                        @EXPECTEDENDTIME dbo.UDT_HOURMINUTE = null
                        @TIMEZONEENTRYID uniqueidentifier = null,
                        @ACTUALSTARTTIME dbo.UDT_HOURMINUTE = null,
                        @ACTUALENDTIME dbo.UDT_HOURMINUTE = null
                    ) as
                    set nocount on;

                    declare @CURRENTDATE datetime;
                    declare @ISALLDAYEVENT bit;

                    if @ID is null
                        set @ID = newid();

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

                    set @CURRENTDATE = getdate();

                    if (nullif(@INTERACTIONCATEGORYID, '00000000-0000-0000-0000-000000000000') is not null)
                    begin
                        if (nullif(@INTERACTIONSUBCATEGORYID, '00000000-0000-0000-0000-000000000000') is null)
                            raiserror('ERR_INTERACTIONSUBCATEGORY_CANNOTBENULLIFCATEGORYISSET', 13, 1);
                        else if not exists(select top 1 1 from dbo.INTERACTIONSUBCATEGORY where ID = @INTERACTIONSUBCATEGORYID and INTERACTIONCATEGORYID = @INTERACTIONCATEGORYID)
                            raiserror('ERR_INTERACTIONSUBCATEGORY_INVALIDCATEGORY', 13, 1);
                    end

                    if (@STATUSCODE = 2 and @ACTUALDATE is null)
                            raiserror('ERR_ACTUALDATE_CANNOTBENULLIFCOMPLETED', 13, 1);                        

                    begin try
                        if @INTERACTIONID is not null
                            begin
                                select
                                    @INTERACTIONTYPECODEID = coalesce(nullif(@INTERACTIONTYPECODEID, '00000000-0000-0000-0000-000000000000'), INTERACTION.INTERACTIONTYPECODEID),
                                    @OBJECTIVE = coalesce(nullif(@OBJECTIVE, ''), INTERACTION.OBJECTIVE),
                                    @EXPECTEDDATE = coalesce(@EXPECTEDDATE, INTERACTION.EXPECTEDDATE),
                                    @ACTUALDATE = coalesce(@ACTUALDATE, case @STATUSCODE when 1 then null else INTERACTION.ACTUALDATE end),
                                    @STATUSCODE = coalesce(nullif(@STATUSCODE, 0), INTERACTION.STATUSCODE),
                                    @FUNDRAISERID = coalesce(nullif(@FUNDRAISERID, '00000000-0000-0000-0000-000000000000'), INTERACTION.FUNDRAISERID),
                                    @COMMENT = coalesce(nullif(@COMMENT, ''), INTERACTION.COMMENT),
                                    @PARTICIPANTS = coalesce(@PARTICIPANTS, dbo.UFN_INTERACTION_PARTICIPANTS_TOITEMLISTXML(@INTERACTIONID)),
                                    @INTERACTIONCATEGORYID = coalesce(nullif(@INTERACTIONCATEGORYID, '00000000-0000-0000-0000-000000000000'), INTERACTIONSUBCATEGORY.INTERACTIONCATEGORYID),
                                    @INTERACTIONSUBCATEGORYID = coalesce(nullif(@INTERACTIONSUBCATEGORYID, '00000000-0000-0000-0000-000000000000'), INTERACTION.INTERACTIONSUBCATEGORYID),
                                    @SITES = coalesce(@SITES, dbo.UFN_CONSTITUENTINTERACTION_GETSITES_TOITEMLISTXML(@INTERACTIONID)),
                                    @EXPECTEDSTARTTIME = coalesce(coalesce(@EXPECTEDSTARTTIME, INTERACTION.EXPECTEDSTARTTIME), ''),
                                    @EXPECTEDENDTIME = coalesce(coalesce(@EXPECTEDENDTIME, INTERACTION.EXPECTEDENDTIME),''),
                                    @TIMEZONEENTRYID = coalesce(@TIMEZONEENTRYID, INTERACTION.TIMEZONEENTRYID),
                                    @ACTUALSTARTTIME = coalesce(coalesce(@ACTUALSTARTTIME, case @STATUSCODE when 1 then null else INTERACTION.ACTUALSTARTTIME end),''),
                                    @ACTUALENDTIME = coalesce(coalesce(@ACTUALENDTIME, case @STATUSCODE when 1 then null else INTERACTION.ACTUALENDTIME end),'')
                                from
                                    dbo.INTERACTION
                                    left join dbo.INTERACTIONSUBCATEGORY on INTERACTIONSUBCATEGORY.ID = INTERACTION.INTERACTIONSUBCATEGORYID
                                where
                                    INTERACTION.ID = @INTERACTIONID

                                select @ISALLDAYEVENT = case when @EXPECTEDSTARTTIME is not null and @EXPECTEDSTARTTIME <> '' then cast(0 as bit) else cast(1 as bit) end,
                                       @EXPECTEDSTARTTIME = coalesce(@EXPECTEDSTARTTIME,''),
                                       @EXPECTEDENDTIME = coalesce(@EXPECTEDENDTIME,''),
                                       @ACTUALSTARTTIME = coalesce(@ACTUALSTARTTIME, ''),
                                       @ACTUALENDTIME = coalesce(@ACTUALENDTIME, '')

                                exec dbo.USP_DATAFORMTEMPLATE_EDIT_INTERACTION_5 @ID = @INTERACTIONID, @CHANGEAGENTID = @CHANGEAGENTID, @EXPECTEDDATE = @EXPECTEDDATE, @ACTUALDATE = @ACTUALDATE, @FUNDRAISERID = @FUNDRAISERID, @INTERACTIONTYPECODEID = @INTERACTIONTYPECODEID, @OBJECTIVE = @OBJECTIVE, @STATUSCODE = @STATUSCODE, @COMMENT = @COMMENT, @EVENTID = @EVENTID, @PARTICIPANTS = @PARTICIPANTS, @INTERACTIONCATEGORYID = @INTERACTIONCATEGORYID, @INTERACTIONSUBCATEGORYID = @INTERACTIONSUBCATEGORYID, @SITES = @SITES, @EXPECTEDSTARTTIME = @EXPECTEDSTARTTIME, @EXPECTEDENDTIME = @EXPECTEDENDTIME, @ISALLDAYEVENT = @ISALLDAYEVENT, @TIMEZONEENTRYID = @TIMEZONEENTRYID, @ACTUALSTARTTIME = @ACTUALSTARTTIME, @ACTUALENDTIME = @ACTUALENDTIME;
                                set @ID = @INTERACTIONID;
                            end
                        else
                        begin
                            select @ISALLDAYEVENT = case when @EXPECTEDSTARTTIME is not null and @EXPECTEDSTARTTIME <> '' then cast(0 as bit) else cast(1 as bit) end
                                   @EXPECTEDSTARTTIME = coalesce(@EXPECTEDSTARTTIME,''),
                                   @EXPECTEDENDTIME = coalesce(@EXPECTEDENDTIME,''),
                                   @ACTUALSTARTTIME = coalesce(@ACTUALSTARTTIME, ''),
                                   @ACTUALENDTIME = coalesce(@ACTUALENDTIME, '')

                            exec dbo.USP_DATAFORMTEMPLATE_ADD_INTERACTION_2 @ID = @ID, @CHANGEAGENTID = @CHANGEAGENTID, @CONSTITUENTID = @CONSTITUENTID, @INTERACTIONTYPECODEID = @INTERACTIONTYPECODEID, @OBJECTIVE = @OBJECTIVE, @FUNDRAISERID = @FUNDRAISERID, @EXPECTEDDATE = @EXPECTEDDATE, @ACTUALDATE = @ACTUALDATE, @STATUSCODE = @STATUSCODE, @COMMENT = @COMMENT, @EVENTID = @EVENTID, @PARTICIPANTS = @PARTICIPANTS, @INTERACTIONCATEGORYID = @INTERACTIONCATEGORYID, @INTERACTIONSUBCATEGORYID = @INTERACTIONSUBCATEGORYID, @SITES = @SITES, @SELECTEDCONSTITUENTID = null, @EXPECTEDSTARTTIME = @EXPECTEDSTARTTIME, @EXPECTEDENDTIME = @EXPECTEDENDTIME, @ISALLDAYEVENT = @ISALLDAYEVENT, @TIMEZONEENTRYID = @TIMEZONEENTRYID, @ACTUALSTARTTIME = @ACTUALSTARTTIME, @ACTUALENDTIME = @ACTUALENDTIME;
                            if @CUSTOMIDENTIFIER is not null and len(@CUSTOMIDENTIFIER) > 0
                                update dbo.INTERACTION set 
                                    [CUSTOMIDENTIFIER] = @CUSTOMIDENTIFIER,
                                    [CHANGEDBYID] = @CHANGEAGENTID
                                where ID = @ID    
                        end
                    end try
                    begin catch
                        exec.dbo.USP_RAISE_ERROR;
                        return 1;
                    end catch

                    return 0;