USP_DATAFORMTEMPLATE_EDIT_STEP_7

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN
@EXPECTEDDATE datetime IN
@ACTUALDATE datetime IN
@STATUSCODE tinyint IN
@OWNERID uniqueidentifier IN
@INTERACTIONTYPECODEID uniqueidentifier IN
@OBJECTIVE nvarchar(100) IN
@PROSPECTPLANSTATUSCODEID uniqueidentifier IN
@COMMENT nvarchar(max) IN
@ADDITIONALFUNDRAISERS xml IN
@PARTICIPANTS xml IN
@INTERACTIONCATEGORYID uniqueidentifier IN
@INTERACTIONSUBCATEGORYID uniqueidentifier IN
@EXPECTEDSTARTTIME UDT_HOURMINUTE IN
@EXPECTEDENDTIME UDT_HOURMINUTE IN
@ISALLDAYEVENT bit IN
@TIMEZONEENTRYID uniqueidentifier IN
@ACTUALSTARTTIME UDT_HOURMINUTE IN
@ACTUALENDTIME UDT_HOURMINUTE IN
@LOCATIONID uniqueidentifier IN
@OTHERLOCATION nvarchar(300) IN

Definition

Copy


create procedure dbo.USP_DATAFORMTEMPLATE_EDIT_STEP_7
(
  @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,
  @INTERACTIONCATEGORYID uniqueidentifier,
  @INTERACTIONSUBCATEGORYID uniqueidentifier,
  @EXPECTEDSTARTTIME dbo.UDT_HOURMINUTE,
  @EXPECTEDENDTIME dbo.UDT_HOURMINUTE,
  @ISALLDAYEVENT bit
  @TIMEZONEENTRYID uniqueidentifier,
  @ACTUALSTARTTIME dbo.UDT_HOURMINUTE,
  @ACTUALENDTIME dbo.UDT_HOURMINUTE,
  @LOCATIONID uniqueidentifier,
  @OTHERLOCATION nvarchar(300)
) 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;

    declare @LOCATION nvarchar(300) = '';
    set @LOCATION = dbo.UFN_INTERACTION_GETSINGLELINELOCATION(@LOCATIONID, @OTHERLOCATION);

    update dbo.INTERACTION set
      CHANGEDBYID = @CHANGEAGENTID,
      DATECHANGED = getdate(),
      EXPECTEDDATE = @EXPECTEDDATE,
      ACTUALDATE = @ACTUALDATE,
      FUNDRAISERID = @OWNERID,
      INTERACTIONTYPECODEID = @INTERACTIONTYPECODEID,
      OBJECTIVE = @OBJECTIVE,
      STATUSCODE = @STATUSCODE,
      COMMENT = @COMMENT,
      PROSPECTPLANSTATUSCODEID = @PROSPECTPLANSTATUSCODEID,
      INTERACTIONSUBCATEGORYID = @INTERACTIONSUBCATEGORYID,
      EXPECTEDSTARTTIME = @EXPECTEDSTARTTIME,
      EXPECTEDENDTIME = @EXPECTEDENDTIME,
      ISALLDAYEVENT = @ISALLDAYEVENT
      TIMEZONEENTRYID = @TIMEZONEENTRYID,
      ACTUALSTARTTIME = @ACTUALSTARTTIME,
      ACTUALENDTIME = @ACTUALENDTIME,
      LOCATION = @LOCATION
    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