USP_DATAFORMTEMPLATE_EDIT_MKTSEGMENTWHITEMAILBASECURRENCY

The save procedure used by the edit dataform template "White Mail Segment Base Currency 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.
@BASECURRENCYID uniqueidentifier IN Base currency

Definition

Copy

CREATE procedure dbo.[USP_DATAFORMTEMPLATE_EDIT_MKTSEGMENTWHITEMAILBASECURRENCY] (
  @ID uniqueidentifier,
  @CHANGEAGENTID uniqueidentifier = null,
  @BASECURRENCYID uniqueidentifier
)
as
  begin
    set nocount on;

    declare @CURRENTDATE datetime;
    declare @OLDBASECURRENCYID uniqueidentifier;
    declare @ORGANIZATIONCURRENCYID uniqueidentifier;

    if not exists (select top 1 1 from dbo.[MKTSEGMENT] where [ID] = @ID and [SEGMENTTYPECODE] = 9)
      raiserror('BBERR_MKTSEGMENTWHITEMAILBASECURRENCY_WHITEMAILONLY', 13, 1);

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

    set @CURRENTDATE = getdate();

    begin try
      select 
        @OLDBASECURRENCYID = [BASECURRENCYID]
      from dbo.[MKTSEGMENT]
      where [ID] = @ID;

      if @OLDBASECURRENCYID <> @BASECURRENCYID
        begin
          update dbo.[MKTSEGMENT] set
            [BASECURRENCYID] = @BASECURRENCYID,
            [CHANGEDBYID] = @CHANGEAGENTID,
            [DATECHANGED] = @CURRENTDATE
          where [ID] = @ID;

          -- clear any cached calculations
          exec dbo.[USP_MKTSEGMENTWHITEMAILCACHE_CLEAR] @ID, @CHANGEAGENTID;
        end
    end try

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

    return 0;
  end