USP_DATAFORMTEMPLATE_EDIT_MKTMEMBERSHIPTEMPLATEBASECURRENCY

The save procedure used by the edit dataform template "Membership Renewal Effort Template 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_MKTMEMBERSHIPTEMPLATEBASECURRENCY]
(
    @ID uniqueidentifier,
    @CHANGEAGENTID uniqueidentifier = null,
    @BASECURRENCYID uniqueidentifier
)
as

    set nocount on;

  declare @CURRENTDATE datetime;
  declare @OLDBASECURRENCYID uniqueidentifier;

  if exists(select * from dbo.[MKTMEMBERSHIPMAILINGTEMPLATEAPPEAL] where [MEMBERSHIPMAILINGTEMPLATEID] = @ID and dbo.[UFN_MKTRECORDSOURCE_VALIDFORBBEC]([RECORDSOURCEID]) = 1 and [APPEALSYSTEMID] <> '')
    begin
      raiserror('BBERR_MKTMEMBERSHIPMAILINGTEMPLATE_HASAPPEAL', 1, 11);
      raiserror('The base currency may not be changed for a membership template that is associated with an appeal.', 13, 1);
    end

  if exists(select * from dbo.[MKTMEMBERSHIPMAILINGTEMPLATERULE] where [MEMBERSHIPMAILINGTEMPLATEID] = @ID)
    begin
      raiserror('BBERR_MKTMEMBERSHIPMAILINGTEMPLATE_HASRULES', 1, 11);
      raiserror('The base currency may not be changed for a membership template that has membership rules defined.', 13, 1);
    end

  if exists(select * from dbo.[MKTMEMBERSHIPMAILINGTEMPLATEASKLADDEROVERRIDE] where [MEMBERSHIPMAILINGTEMPLATEID] = @ID)
    begin
      raiserror('BBERR_MKTMEMBERSHIPMAILINGTEMPLATE_HASASKLADDEROVERRIDES', 1, 11);
      raiserror('The base currency may not be changed for a membership template that has ask ladder overrides defined.', 13, 1);
    end  

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

    set @CURRENTDATE = getdate();

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

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

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

    return 0;