USP_MKTMEMBERSHIPMAILINGACTIVE_SAVE

Saves the activated membership renewal effort calculations.

Parameters

Parameter Parameter Type Mode Description
@SEGMENTATIONID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN
@RENEWALS int IN
@UPGRADES int IN
@DOWNGRADES int IN
@TOTALRENEWALAMOUNT money IN
@AVERAGERENEWALAMOUNT money IN
@COSTPERRENEWAL money IN
@RENEWALRATE decimal(19, 4) IN
@UPGRADERATE decimal(19, 4) IN
@DOWNGRADERATE decimal(19, 4) IN
@ORGANIZATIONTOTALRENEWALAMOUNT money IN
@ORGANIZATIONAVERAGERENEWALAMOUNT money IN
@ORGANIZATIONCOSTPERRENEWAL money IN

Definition

Copy


CREATE procedure dbo.[USP_MKTMEMBERSHIPMAILINGACTIVE_SAVE]
(
  @SEGMENTATIONID uniqueidentifier,
  @CHANGEAGENTID uniqueidentifier = null,
  @RENEWALS int,
  @UPGRADES int,
  @DOWNGRADES int,
  @TOTALRENEWALAMOUNT money,
  @AVERAGERENEWALAMOUNT money,
  @COSTPERRENEWAL money,
  @RENEWALRATE decimal(19, 4),
  @UPGRADERATE decimal(19, 4),
  @DOWNGRADERATE decimal(19, 4),
  @ORGANIZATIONTOTALRENEWALAMOUNT money = null,
  @ORGANIZATIONAVERAGERENEWALAMOUNT money = null,
  @ORGANIZATIONCOSTPERRENEWAL money = null
)
as
  set nocount on;

  declare @CURRENTDATE datetime;

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

    set @CURRENTDATE = getdate();

    if exists(select 1 from dbo.[MKTMEMBERSHIPMAILINGACTIVE] where [ID] = @SEGMENTATIONID)
      -- update the existing row in the membership mailing cache

      update dbo.[MKTMEMBERSHIPMAILINGACTIVE] set
        [RENEWALS] = @RENEWALS,
        [UPGRADES] = @UPGRADES,
        [DOWNGRADES] = @DOWNGRADES,
        [TOTALRENEWALAMOUNT] = @TOTALRENEWALAMOUNT,
        [AVERAGERENEWALAMOUNT] = @AVERAGERENEWALAMOUNT,
        [COSTPERRENEWAL] = @COSTPERRENEWAL,
        [RENEWALRATE] = @RENEWALRATE,
        [UPGRADERATE] = @UPGRADERATE,
        [DOWNGRADERATE] = @DOWNGRADERATE,
        [CHANGEDBYID] = @CHANGEAGENTID,
        [DATECHANGED] = @CURRENTDATE,
        [ORGANIZATIONTOTALRENEWALAMOUNT] = isnull(@ORGANIZATIONTOTALRENEWALAMOUNT, @TOTALRENEWALAMOUNT),
        [ORGANIZATIONAVERAGERENEWALAMOUNT] = isnull(@ORGANIZATIONAVERAGERENEWALAMOUNT, @AVERAGERENEWALAMOUNT),
        [ORGANIZATIONCOSTPERRENEWAL] = isnull(@ORGANIZATIONCOSTPERRENEWAL, @COSTPERRENEWAL)
      where [ID] = @SEGMENTATIONID;
    else
    begin

      declare @BASECURRENCYID uniqueidentifier;
      select @BASECURRENCYID = [BASECURRENCYID] from dbo.[MKTSEGMENTATION] where [ID] = @SEGMENTATIONID;

      -- insert a new row in the membership mailing cache

      insert into dbo.[MKTMEMBERSHIPMAILINGACTIVE] (
        [ID],
        [RENEWALS],
        [UPGRADES],
        [DOWNGRADES],
        [TOTALRENEWALAMOUNT],
        [AVERAGERENEWALAMOUNT],
        [COSTPERRENEWAL],
        [RENEWALRATE],
        [UPGRADERATE],
        [DOWNGRADERATE],
        [ADDEDBYID],
        [CHANGEDBYID],
        [DATEADDED],
        [DATECHANGED],
        [ORGANIZATIONTOTALRENEWALAMOUNT],
        [ORGANIZATIONAVERAGERENEWALAMOUNT],
        [ORGANIZATIONCOSTPERRENEWAL],
        [BASECURRENCYID]
      ) values (
        @SEGMENTATIONID,
        @RENEWALS,
        @UPGRADES,
        @DOWNGRADES,
        @TOTALRENEWALAMOUNT,
        @AVERAGERENEWALAMOUNT,
        @COSTPERRENEWAL,
        @RENEWALRATE,
        @UPGRADERATE,
        @DOWNGRADERATE,
        @CHANGEAGENTID,
        @CHANGEAGENTID,
        @CURRENTDATE,
        @CURRENTDATE,
        isnull(@ORGANIZATIONTOTALRENEWALAMOUNT, @TOTALRENEWALAMOUNT),
        isnull(@ORGANIZATIONAVERAGERENEWALAMOUNT, @AVERAGERENEWALAMOUNT),
        isnull(@ORGANIZATIONCOSTPERRENEWAL, @COSTPERRENEWAL),
        @BASECURRENCYID
      );
    end
  end try

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

  return 0;