USP_DATAFORMTEMPLATE_EDIT_EVENTTASK_2

The save procedure used by the edit dataform template "Event Task Edit Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter indicating the ID of the record being edited.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@OWNERID uniqueidentifier IN Owner
@NAME nvarchar(100) IN Name
@COMPLETEBYDATE datetime IN Date due
@STATUSCODE tinyint IN Status
@DATECOMPLETED datetime IN Date completed
@COMMENT nvarchar(250) IN Comment
@REMINDERS xml IN Reminders
@CURRENTAPPUSERID uniqueidentifier IN

Definition

Copy


CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_EVENTTASK_2
(
    @ID uniqueidentifier,
    @CHANGEAGENTID uniqueidentifier = null,
    @OWNERID uniqueidentifier,
    @NAME nvarchar(100),
    @COMPLETEBYDATE datetime,
    @STATUSCODE tinyint,
    @DATECOMPLETED datetime,
    @COMMENT nvarchar(250),
    @REMINDERS xml,
    @CURRENTAPPUSERID uniqueidentifier = null
)
as
    set nocount on;

    -- Verify the user has access to the new constituent

    declare @DATAFORMINSTANCEID uniqueidentifier;
    set @DATAFORMINSTANCEID = 'A86926F7-5894-427A-91F6-EF3497C7D86A';
    declare @ISADMIN bit;
    set @ISADMIN = dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID);

    if (@ISADMIN = 0 and @OWNERID is not null)
        begin
        select 
            top(1) ID
        from 
            dbo.CONSTITUENT
        where
            CONSTITUENT.ID = @OWNERID
        and(
            dbo.UFN_SECURITY_APPUSER_GRANTED_FORM_FORCONSTIT(@CURRENTAPPUSERID, @DATAFORMINSTANCEID, CONSTITUENT.ID) = 1
            and
            exists(select SITEID from dbo.UFN_SITEID_MAPFROM_CONSTITUENTID(CONSTITUENT.ID)
                where dbo.UFN_SECURITY_APPUSER_GRANTED_FORM_FORSITE(@CURRENTAPPUSERID, @DATAFORMINSTANCEID, SITEID) = 1)
        )

        if @@ROWCOUNT = 0
            begin
            raiserror('BBERR_CONSTITUENT_NOACCESS',13,1);
            return 0;
            end
    end    

    declare @CURRENTDATE datetime = getdate();                                

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

    begin try
    if exists (select top 1 * 
                          from dbo.UFN_EVENTTASK_GETREMINDERS_FROMITEMLISTXML(@REMINDERS)
                          where SENDDATE > @COMPLETEBYDATE)
        raiserror('ERR_EVENTTASKREMINDER_SENDDATEEXCEEDSTASKDATE', 13, 1);

        declare @PREVIOUSOWNERID uniqueidentifier;
        select
            @PREVIOUSOWNERID = OWNERID
        from
            dbo.EVENTTASK
        where
            ID = @ID;

        update 
            dbo.EVENTTASK
        set
            OWNERID = @OWNERID,
            NAME = @NAME,
            COMPLETEBYDATE = @COMPLETEBYDATE,
            STATUSCODE = @STATUSCODE,
            DATECOMPLETED = @DATECOMPLETED,
            COMMENT = @COMMENT,
            CHANGEDBYID = @CHANGEAGENTID,
            DATECHANGED = @CURRENTDATE                                
        where 
            ID = @ID;

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

        if (@PREVIOUSOWNERID is null) or (@OWNERID <> @PREVIOUSOWNERID)
        begin
            declare @OWNERAPPUSERID uniqueidentifier;
            select
                @OWNERAPPUSERID = APPUSER.ID
            from
                dbo.APPUSER
            where
                APPUSER.CONSTITUENTID = @OWNERID;

            declare @EVENTID uniqueidentifier;
            select
                @EVENTID = EVENTID
            from
                dbo.EVENTTASK
            where
                ID = @ID;

            if @OWNERAPPUSERID is not null
                exec dbo.USP_ALERTTYPE_SENDTOAPPUSER '6CDB7072-461C-40BF-9C20-6277D16CDA0E', @OWNERAPPUSERID, @ID, @EVENTID;
        end

    end try

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

    return 0;