USP_DATAFORMTEMPLATE_EDIT_THIRDPARTYAUTH_APPLICATIONUSER

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN
@CONSTITUENTID uniqueidentifier IN
@SYSTEMROLES xml IN

Definition

Copy


CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_THIRDPARTYAUTH_APPLICATIONUSER 
(
    @ID uniqueidentifier,
    @CHANGEAGENTID uniqueidentifier = null,
    @CONSTITUENTID uniqueidentifier,
    @SYSTEMROLES xml
)
as
    set nocount on;

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

    declare @CURRENTDATE datetime = getdate();

    begin try
        if @CONSTITUENTID is not null 
            --Remove any old link because duplicates are not allowed.

            update dbo.APPUSER set
                CONSTITUENTID = null,
                CHANGEDBYID = @CHANGEAGENTID,
                DATECHANGED = @CURRENTDATE                    
            where (CONSTITUENTID = @CONSTITUENTID
                and (ID <> @ID);

        update dbo.APPUSER set
            CONSTITUENTID = @CONSTITUENTID,
            CHANGEDBYID = @CHANGEAGENTID,
            DATECHANGED = @CURRENTDATE
        where ID = @ID
            and (
                (CONSTITUENTID is null and @CONSTITUENTID is not null)
                or (CONSTITUENTID is not null and @CONSTITUENTID is null)
                or (CONSTITUENTID <> @CONSTITUENTID)
            );

        if not exists(select 1 from dbo.APPUSERTHIRDPARTYAUTH where ID = @ID)
            insert into dbo.APPUSERTHIRDPARTYAUTH
                (ID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
            values
                (@ID, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE);

        exec dbo.USP_APPUSER_GETALLSYSTEMROLES_UPDATEFROMXML @ID, @SYSTEMROLES;

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

return 0;