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;