USP_DATAFORMTEMPLATE_ADD_BATCHINTERACTIONBATCHROW

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

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT The output parameter indicating the ID of the record added.
@BATCHID uniqueidentifier IN Input parameter indicating the context ID for the record being added.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@SEQUENCE int IN Sequence
@INTERACTIONID uniqueidentifier IN Interaction
@CONSTITUENTID uniqueidentifier IN Constituent lookup ID
@CONSTITUENTNAME nvarchar(250) IN Constituent name
@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_BATCHINTERACTIONBATCHROW(
                        @ID uniqueidentifier = null output,
                        @BATCHID uniqueidentifier,
                        @CHANGEAGENTID uniqueidentifier,
                        @SEQUENCE int,
                        @INTERACTIONID uniqueidentifier = null,
                        @CONSTITUENTID uniqueidentifier = null,
                        @CONSTITUENTNAME nvarchar(250) = '',
                        @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;

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

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

                        set @CURRENTDATE = getdate();

                        if @INTERACTIONID is null and @CUSTOMIDENTIFIER is not null
                            select
                                @INTERACTIONID = ID
                            from
                                dbo.INTERACTION
                            where
                                LOOKUPID = @CUSTOMIDENTIFIER

                        if @CONSTITUENTID is null and @INTERACTIONID is not null
                            select @CONSTITUENTID = CONSTITUENTID
                            from dbo.INTERACTION
                            where ID = @INTERACTIONID

                        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
                        insert into dbo.BATCHINTERACTION(
                            [ID],
                            [BATCHID],
                            [SEQUENCE],
                            [ADDEDBYID],
                            [CHANGEDBYID],
                            [DATEADDED],
                            [DATECHANGED],
                            [INTERACTIONID],
                            [CONSTITUENTID],
                            [BATCHINTERACTIONLOOKUPID],
                            [INTERACTIONTYPECODEID],
                            [OBJECTIVE],
                            [FUNDRAISERID],
                            [EXPECTEDDATE],
                            [ACTUALDATE],
                            [STATUSCODE],
                            [COMMENT],
                            [EVENTID],
                            [INTERACTIONCATEGORYID],
                            [INTERACTIONSUBCATEGORYID],
                            [EXPECTEDSTARTTIME],
                            [EXPECTEDENDTIME], 
                            [TIMEZONEENTRYID],
                            [ACTUALSTARTTIME],
                            [ACTUALENDTIME]
                        ) values (
                            @ID,
                            @BATCHID,
                            @SEQUENCE,
                            @CHANGEAGENTID,
                            @CHANGEAGENTID,
                            @CURRENTDATE,
                            @CURRENTDATE,
                            @INTERACTIONID,
                            @CONSTITUENTID,
                            @CUSTOMIDENTIFIER,
                            @INTERACTIONTYPECODEID,
                            @OBJECTIVE,
                            @FUNDRAISERID,
                            @EXPECTEDDATE,
                            @ACTUALDATE,
                            @STATUSCODE,
                            @COMMENT,
                            @EVENTID,
                            @INTERACTIONCATEGORYID,
                            @INTERACTIONSUBCATEGORYID,
                            coalesce(@EXPECTEDSTARTTIME, ''),
                            coalesce(@EXPECTEDENDTIME, ''), 
                            @TIMEZONEENTRYID,
                            coalesce(@ACTUALSTARTTIME, ''),
                            coalesce(@ACTUALENDTIME, '')
                        );

                        exec dbo.USP_BATCHINTERACTION_GETPARTICIPANTS_ADDFROMXML @ID, @PARTICIPANTS, @CHANGEAGENTID

                        exec dbo.USP_BATCHINTERACTION_GETSITES_ADDFROMXML @ID, @SITES, @CHANGEAGENTID

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

                        return 0;