USP_DATAFORMTEMPLATE_ADD_APPEALMAILINGTASK

The save procedure used by the add dataform template "Appeal Mailing Task Add Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT The output parameter indicating the ID of the record added.
@MAILINGID uniqueidentifier IN Input parameter indicating the context ID for the record being added.
@SUBJECT nvarchar(100) IN Subject
@NOTES nvarchar(256) IN Notes
@DATEDUE UDT_FUZZYDATE IN Date due
@DATECOMPLETED datetime IN Date completed
@STATUSCODE tinyint IN Status
@OWNERID uniqueidentifier IN Owner
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@CURRENTAPPUSERID uniqueidentifier IN Input parameter indicating the ID of the current user.
@SELECTEDMAILINGID uniqueidentifier IN Mailing
@REMINDERS xml IN Reminders

Definition

Copy

CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_APPEALMAILINGTASK
(
    @ID uniqueidentifier = null output,
    @MAILINGID uniqueidentifier,
    @SUBJECT nvarchar(100),
    @NOTES nvarchar(256) = '',
    @DATEDUE dbo.UDT_FUZZYDATE = null,
    @DATECOMPLETED datetime = null,
    @STATUSCODE tinyint = 0,
    @OWNERID uniqueidentifier = null,
    @CHANGEAGENTID uniqueidentifier = null,
    @CURRENTAPPUSERID uniqueidentifier,
    @SELECTEDMAILINGID uniqueidentifier = null,
    @REMINDERS xml = null
)
as
    set nocount on;

    declare @CURRENTDATE datetime;
    set @CURRENTDATE = getDate();

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

    begin try
    if exists (select top 1 * 
                          from dbo.UFN_APPEALMAILINGTASK_GETREMINDERS_FROMITEMLISTXML(@REMINDERS)
                          where SENDDATE > dbo.UFN_DATE_LATESTFROMFUZZYDATE(@DATEDUE))
        raiserror('ERR_APPEALMAILINGTASKREMINDER_SENDDATEEXCEEDSTASKDATE', 13, 1);

        if @MAILINGID = 'e9783844-d09d-4b87-a729-53faeaff7dba'
            set @MAILINGID = @SELECTEDMAILINGID;

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

        insert into dbo.APPEALMAILINGTASK
        (
            ID,
            SEGMENTATIONID,
            SUBJECT,
            NOTES,
            DATEDUE,
            DATECOMPLETED,
            STATUSCODE,
            OWNERID,
            ADDEDBYID,
            CHANGEDBYID,
            DATEADDED,
            DATECHANGED
        )
        values
        (
            @ID,
            @MAILINGID,
            @SUBJECT,
            @NOTES,
            @DATEDUE,
            @DATECOMPLETED,
            @STATUSCODE,
            @OWNERID,
            @CHANGEAGENTID,
            @CHANGEAGENTID,
            @CURRENTDATE,
            @CURRENTDATE
        );

        -- 'SENT' is not part of the Add's dataform definition.  Set it to 0.
        set @REMINDERS = (
            select
                ID,
                NAME,
                SENDDATE,
                0 as SENT
            from
                dbo.UFN_EVENTTASK_GETREMINDERS_FROMITEMLISTXML(@REMINDERS)
            for xml raw('ITEM'), type, elements, root('REMINDERS'), binary base64
        );

        exec dbo.USP_APPEALMAILINGTASK_GETREMINDERS_ADDFROMXML @ID, @REMINDERS, @CHANGEAGENTID;

        if @OWNERID is not null
        begin
            declare @OWNERAPPUSERID uniqueidentifier;
            select
                @OWNERAPPUSERID = APPUSER.ID
            from
                dbo.APPUSER
            where
                APPUSER.CONSTITUENTID = @OWNERID;

            if @OWNERAPPUSERID is not null
                exec dbo.USP_ALERTTYPE_SENDTOAPPUSER '280f5cde-64e5-4713-92f3-d72d1fd291a4', @OWNERAPPUSERID, @ID, @MAILINGID;
        end

    end try

    begin catch
        exec dbo.[USP_RAISE_ERROR];
        return 1;
    end catch

    return 0;