USP_DATAFORMTEMPLATE_ADD_STEWARDSHIPPLANSTEP

The save procedure used by the add dataform template "Stewardship Plan Step Add Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT The output parameter indicating the ID of the record added.
@PLANID 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.
@STEPOWNERISINDIVIDUAL bit IN Step owner is an individual
@CATEGORYCODEID uniqueidentifier IN Category
@OBJECTIVE nvarchar(100) IN Objective
@TARGETDATE datetime IN Target date
@DATELOCKED bit IN Locked
@ACTUALDATE datetime IN Actual date
@STARTDATE datetime IN Start date
@ENDDATE datetime IN End date
@CONTACTMETHODCODEID uniqueidentifier IN Contact method
@CONSTITUENTID uniqueidentifier IN Assigned to
@ASSOCIATEDPLANS xml IN Associated plans
@TEMPLATE nvarchar(100) IN Template
@RECURSCODE smallint IN Frequency
@STATUSCODE smallint IN Status
@NEXTTARGETDATE datetime IN Next target date
@LINKTYPECODE smallint IN Link type
@BENEFITID uniqueidentifier IN Benefit
@EVENTID uniqueidentifier IN Event
@MAILINGID uniqueidentifier IN Mailing
@TARGETSTARTTIME UDT_HOURMINUTE IN Target start time
@TARGETENDTIME UDT_HOURMINUTE IN Target end time
@ISALLDAYEVENT bit IN Is all day event
@ACTUALSTARTTIME UDT_HOURMINUTE IN Actual start time
@ACTUALENDTIME UDT_HOURMINUTE IN Actual end time
@TIMEZONEENTRYID uniqueidentifier IN Time zone
@STEPPARTICIPANTS xml IN Plan participants

Definition

Copy


CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_STEWARDSHIPPLANSTEP
(
    @ID uniqueidentifier output,
    @PLANID uniqueidentifier,
    @CHANGEAGENTID uniqueidentifier = null,
    @STEPOWNERISINDIVIDUAL bit = null,
    @CATEGORYCODEID uniqueidentifier = null,
    @OBJECTIVE nvarchar(100) = null,
    @TARGETDATE datetime = null,
    @DATELOCKED bit = 0,
    @ACTUALDATE datetime = null,
    @STARTDATE datetime = null,
    @ENDDATE datetime = null,
    @CONTACTMETHODCODEID uniqueidentifier = null,
    @CONSTITUENTID uniqueidentifier = null,
    @ASSOCIATEDPLANS xml = null,
    @TEMPLATE nvarchar(100) = null,
    @RECURSCODE smallint = 0,
    @STATUSCODE smallint = 0,
    @NEXTTARGETDATE datetime = null,
    @LINKTYPECODE smallint = 0,
    @BENEFITID uniqueidentifier = null,
    @EVENTID uniqueidentifier = null,
    @MAILINGID uniqueidentifier = null,
    @TARGETSTARTTIME dbo.UDT_HOURMINUTE = null,
    @TARGETENDTIME dbo.UDT_HOURMINUTE = null,
    @ISALLDAYEVENT bit = null,
    @ACTUALSTARTTIME dbo.UDT_HOURMINUTE = null,
    @ACTUALENDTIME dbo.UDT_HOURMINUTE = null,
    @TIMEZONEENTRYID uniqueidentifier = null,
    @STEPPARTICIPANTS xml = null
) as begin
    set nocount on;
    if @ID is null
        set @ID = newid();

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

    declare @CHANGEDATE datetime;
    set @CHANGEDATE = getdate();


    begin try

        insert into dbo.STEWARDSHIPPLANSTEP
            (ID,
            PLANID,
            CATEGORYCODEID,
            CONSTITUENTID,
            CONTACTMETHODCODEID,
            DATELOCKED,
            ACTUALDATE,
            ENDDATE,
            BENEFITID,
            EVENTID,
            MAILINGID,
            OBJECTIVE,
            RECURSCODE,
            STARTDATE,
            STATUSCODE,
            TARGETDATE,
            TEMPLATE,
            TARGETSTARTTIME,
            TARGETENDTIME,
            TIMEZONEENTRYID,
            ISALLDAYEVENT,
            ACTUALSTARTTIME,
            ACTUALENDTIME,
            ADDEDBYID,
            CHANGEDBYID,
            DATEADDED,
            DATECHANGED)
        values
            (@ID,
            @PLANID,
            @CATEGORYCODEID,
            @CONSTITUENTID,
            @CONTACTMETHODCODEID,
            @DATELOCKED,
            @ACTUALDATE,
            @ENDDATE,
            case when @LINKTYPECODE = 0 then @BENEFITID else null end,
            case when @LINKTYPECODE = 1 then @EVENTID else null end,
            case when @LINKTYPECODE = 2 then @MAILINGID else null end,
            @OBJECTIVE,
            @RECURSCODE,
            @STARTDATE,
            @STATUSCODE,
            @TARGETDATE,
            @TEMPLATE,
            coalesce(@TARGETSTARTTIME,''),
            coalesce(@TARGETENDTIME,''),
            @TIMEZONEENTRYID,
            case when @TARGETSTARTTIME is null then 1 when @TARGETSTARTTIME = '' then 1 else 0 end,
            coalesce(@ACTUALSTARTTIME,''),
            coalesce(@ACTUALENDTIME,''),
            @CHANGEAGENTID,
            @CHANGEAGENTID,
            @CHANGEDATE,
            @CHANGEDATE);

        exec dbo.USP_STEWARDSHIPPLANSTEP_ASSOCIATEDPLANS_ADDFROMXML @ID, null, @ASSOCIATEDPLANS, @CHANGEAGENTID, @CHANGEDATE;

        -- Add assigned to constituent as a plan steward, if it doesn't already exist

        if not @CONSTITUENTID is null
            exec dbo.USP_STEWARDSHIPPLANSTEWARD_ADD @PLANID, @CONSTITUENTID, @CHANGEAGENTID, @CHANGEDATE;

        if not @STEPPARTICIPANTS is null
            exec dbo.USP_STEWARDSHIPPLANSTEP_PARTICIPANTS_ADDFROMXML @ID, @STEPPARTICIPANTS, @CHANGEAGENTID, @CHANGEDATE

        -- Handle recursion if current step was set as complete

        if not @NEXTTARGETDATE is null
            exec dbo.USP_STEWARDSHIPPLAN_CLONERECURRINGCOMPLETEDSTEP @ID, @NEXTTARGETDATE, @CHANGEAGENTID, @CHANGEDATE;
    end try
    begin catch
        exec dbo.USP_RAISE_ERROR;
        return 1;
    end catch;

    return 0;

end