USP_APPUSER_ADDAPPUSER

Adds an application user to the system.

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT
@USERSID varbinary IN
@DISPLAYNAME nvarchar(255) IN
@CHANGEAGENTID uniqueidentifier IN
@SITEID uniqueidentifier IN
@WINDOWSUSERNAME nvarchar(255) IN
@CURRENCYSETID uniqueidentifier IN

Definition

Copy


CREATE procedure dbo.USP_APPUSER_ADDAPPUSER 
(
  @ID uniqueidentifier = null output,
  @USERSID varbinary(85), 
  @DISPLAYNAME nvarchar(255),
  @CHANGEAGENTID uniqueidentifier = null,
  @SITEID    uniqueidentifier = null,
  @WINDOWSUSERNAME nvarchar(255) = null,
  @CURRENCYSETID uniqueidentifier = 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 @CURRENTDATE datetime;
  set @CURRENTDATE = getdate();

  if @WINDOWSUSERNAME is null
    set @WINDOWSUSERNAME = coalesce(suser_name(@USERSID), '');

  begin try
    if exists(select ID from dbo.APPUSER where USERSID = @USERSID
      begin
        /*Modeling after other application user add and edit forms*/
        select @ID = ID from dbo.APPUSER where USERSID = @USERSID;

        /*update existing records with current info*/
        update DBO.APPUSER set 
          SITEID = @SITEID
          DISPLAYNAME = @DISPLAYNAME
          CHANGEDBYID = @CHANGEAGENTID,
          DATECHANGED = @CURRENTDATE
        where ID = @ID;
      end
    else
      begin
        insert into dbo.APPUSER
          (ID, USERSID, DISPLAYNAME, SITEID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED, WINDOWSUSERNAME)
        values
          (@ID, @USERSID, @DISPLAYNAME, @SITEID, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE, @WINDOWSUSERNAME);

        if @CURRENCYSETID is not null
          insert into dbo.APPUSERCURRENCYSET
            (APPUSERID, CURRENCYSETID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
          values
            (@ID, @CURRENCYSETID, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE);
      end

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