USP_DATAFORMTEMPLATE_ADD_MKTSOURCECODE

The save procedure used by the add dataform template "Source Code Add Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT The output parameter indicating the ID of the record added.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@NAME nvarchar(100) IN Name
@ISDEFAULT bit IN Use this layout as the default
@SITEID uniqueidentifier IN Site
@DESCRIPTION nvarchar(255) IN Description

Definition

Copy

CREATE procedure dbo.[USP_DATAFORMTEMPLATE_ADD_MKTSOURCECODE]
(
  @ID uniqueidentifier = null output,
  @CHANGEAGENTID uniqueidentifier = null,    
  @NAME nvarchar(100) = '',
  @ISDEFAULT bit = 0,
  @SITEID uniqueidentifier = null,
  @DESCRIPTION nvarchar(255) = ''
)
as
  set nocount on;

  declare @CURRENTDATE datetime;

  begin try
    if @ID is null set @ID = newid();

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

    set @CURRENTDATE = getdate();

    -- get the current default template
    if @ISDEFAULT<>0
      begin
        declare @DEFAULTID uniqueidentifier;

        select top 1 @DEFAULTID = [ID] from dbo.[MKTSOURCECODE]  where ([SITEID] = @SITEID or (@SITEID is null and [SITEID] is null)) and [ISDEFAULT] <> 0;

        if not @DEFAULTID is null
          if @DEFAULTID <> @ID
            update dbo.[MKTSOURCECODE] set [ISDEFAULT] = 0, [CHANGEDBYID] = @CHANGEAGENTID, [DATECHANGED] = @CURRENTDATE where [ID] = @DEFAULTID;
      end;

    insert into dbo.[MKTSOURCECODE] (
      [ID],
      [NAME],
      [SITEID],
      [ISACTIVE],
      [ISDEFAULT],
      [DESCRIPTION],
      [ADDEDBYID],
      [CHANGEDBYID],
      [DATEADDED],
      [DATECHANGED]
    ) values (
      @ID,
      @NAME,
      @SITEID,
      1,
      @ISDEFAULT,
      @DESCRIPTION,
      @CHANGEAGENTID,
      @CHANGEAGENTID,
      @CURRENTDATE,
      @CURRENTDATE
    );

  end try

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

  return 0;