USP_DATAFORMTEMPLATE_EDIT_MKTSPONSORSHIPMAILINGTEMPLATERULE_4

The save procedure used by the edit dataform template "Sponsorship Effort Template Rule 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.
@SEGMENTID uniqueidentifier IN Segment
@CODE nvarchar(10) IN Code
@TESTSEGMENTCODE nvarchar(10) IN Test segment
@PACKAGEID uniqueidentifier IN Package
@PACKAGECODE nvarchar(10) IN Package code
@RESPONSERATE decimal(5, 2) IN Response rate
@GIFTAMOUNT money IN Gift amount
@ASKLADDERID uniqueidentifier IN Ask ladder
@OVERRIDEADDRESSPROCESSING bit IN Override address processing / name format rules
@USEADDRESSPROCESSING bit IN Use address processing?
@ADDRESSPROCESSINGOPTIONID uniqueidentifier IN Address processing options
@ADDRESSPROCESSINGOPTIONSEASONALASOFDATETYPECODE tinyint IN Consider seasonal addresses as of
@ADDRESSPROCESSINGOPTIONSEASONALASOFDATE datetime IN Consider seasonal addresses as of
@NAMEFORMATPARAMETERID uniqueidentifier IN Name format options
@CODEVALUEID uniqueidentifier IN Code value ID
@PACKAGECODEVALUEID uniqueidentifier IN Package code value ID
@TESTSEGMENTCODEVALUEID uniqueidentifier IN Test segment code value ID
@CHANNELSOURCECODE nvarchar(10) IN Channel source code
@CHANNELSOURCECODEVALUEID uniqueidentifier IN Channel code value ID
@CURRENTAPPUSERID uniqueidentifier IN Input parameter indicating the ID of the current user.
@EXCLUDE bit IN Exclude from effort but show counts

Definition

Copy


CREATE procedure dbo.[USP_DATAFORMTEMPLATE_EDIT_MKTSPONSORSHIPMAILINGTEMPLATERULE_4]
(
  @ID uniqueidentifier,
  @CHANGEAGENTID uniqueidentifier = null,
  @SEGMENTID uniqueidentifier,
  @CODE nvarchar(10),
  @TESTSEGMENTCODE nvarchar(10),
  @PACKAGEID uniqueidentifier,
  @PACKAGECODE nvarchar(10),
  @RESPONSERATE decimal(5,2),
  @GIFTAMOUNT money,
  @ASKLADDERID uniqueidentifier,
  @OVERRIDEADDRESSPROCESSING bit,
  @USEADDRESSPROCESSING bit,
  @ADDRESSPROCESSINGOPTIONID uniqueidentifier,
  @ADDRESSPROCESSINGOPTIONSEASONALASOFDATETYPECODE tinyint,
  @ADDRESSPROCESSINGOPTIONSEASONALASOFDATE datetime,
  @NAMEFORMATPARAMETERID uniqueidentifier,
  @CODEVALUEID uniqueidentifier,
  @PACKAGECODEVALUEID uniqueidentifier,
  @TESTSEGMENTCODEVALUEID uniqueidentifier,
  @CHANNELSOURCECODE nvarchar(10),
  @CHANNELSOURCECODEVALUEID uniqueidentifier,
  @CURRENTAPPUSERID uniqueidentifier,
  @EXCLUDE bit
)
as
  set nocount on;

  declare @SPONSORSHIPMAILINGTEMPLATEID uniqueidentifier;
  declare @OLDSEGMENTID uniqueidentifier;
  declare @SEQUENCE int;
  declare @CURRENTDATE datetime;
  declare @BASECURRENCYID uniqueidentifier;
  declare @ORGANIZATIONCURRENCYID uniqueidentifier;
  declare @ORGANIZATIONGIFTAMOUNT money;
  declare @ORGANIZATIONCURRENCYEXCHANGERATEID uniqueidentifier;
  declare @DATEADDED datetime;

  begin try
    select
      @SPONSORSHIPMAILINGTEMPLATEID = [SPONSORSHIPMAILINGTEMPLATEID],
      @ORGANIZATIONCURRENCYEXCHANGERATEID = [CURRENCYEXCHANGERATEID],
      @BASECURRENCYID = [BASECURRENCYID],
      @DATEADDED = [DATEADDED]
    from dbo.[MKTSPONSORSHIPMAILINGTEMPLATERULE]
    where [MKTSPONSORSHIPMAILINGTEMPLATERULE].[ID] = @ID;

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

    set @CURRENTDATE = getdate();

    if @EXCLUDE = 0
      begin
        set @ORGANIZATIONCURRENCYID = dbo.[UFN_CURRENCY_GETORGANIZATIONCURRENCY]();

        if @ORGANIZATIONCURRENCYID = @BASECURRENCYID
          set @ORGANIZATIONGIFTAMOUNT = @GIFTAMOUNT;
        else
          begin
            if @ORGANIZATIONCURRENCYEXCHANGERATEID is null
              set @ORGANIZATIONCURRENCYEXCHANGERATEID = dbo.[UFN_CURRENCYEXCHANGERATE_GETLATEST](@BASECURRENCYID, @ORGANIZATIONCURRENCYID, @DATEADDED, 0, null);

            set @ORGANIZATIONGIFTAMOUNT = dbo.[UFN_CURRENCY_CONVERT](@GIFTAMOUNT, @ORGANIZATIONCURRENCYEXCHANGERATEID);
          end
      end

    if @EXCLUDE = 1
      begin
        set @PACKAGEID = null;
        set @ASKLADDERID = null;
        set @RESPONSERATE = 0;
        set @GIFTAMOUNT = 0;
        set @OVERRIDEADDRESSPROCESSING = 0;
        set @CODE = '';
        set @CODEVALUEID = null;
        set @PACKAGECODE = '';
        set @PACKAGECODEVALUEID = null;
        set @CHANNELSOURCECODE = '';
        set @CHANNELSOURCECODEVALUEID = null;
        set @TESTSEGMENTCODE = '';
        set @TESTSEGMENTCODEVALUEID = null;
        set @ORGANIZATIONGIFTAMOUNT = 0;
        set @ORGANIZATIONCURRENCYEXCHANGERATEID = null;
      end

    /* save the segment */
    update dbo.[MKTSPONSORSHIPMAILINGTEMPLATERULE] set 
      [SEGMENTID] = @SEGMENTID,
      [EXCLUDE] = @EXCLUDE,
      [PACKAGEID] = @PACKAGEID,
      [ASKLADDERID] = @ASKLADDERID,
      [RESPONSERATE] = @RESPONSERATE,
      [GIFTAMOUNT] = @GIFTAMOUNT,
      [PARTDEFINITIONVALUESID] = @CODEVALUEID,
      [CODE] = @CODE,
      [TESTPARTDEFINITIONVALUESID] = @TESTSEGMENTCODEVALUEID,
      [TESTSEGMENTCODE] = @TESTSEGMENTCODE,
      [OVERRIDEADDRESSPROCESSING] = @OVERRIDEADDRESSPROCESSING,
      [USEADDRESSPROCESSING] = case when @OVERRIDEADDRESSPROCESSING = 1 then @USEADDRESSPROCESSING else 0 end,
      [ADDRESSPROCESSINGOPTIONID] = case when @OVERRIDEADDRESSPROCESSING = 1 and @USEADDRESSPROCESSING = 1 then @ADDRESSPROCESSINGOPTIONID else null end,
      [ADDRESSPROCESSINGOPTIONSEASONALASOFDATETYPECODE] = case when @OVERRIDEADDRESSPROCESSING = 1 and @USEADDRESSPROCESSING = 1 then @ADDRESSPROCESSINGOPTIONSEASONALASOFDATETYPECODE else 0 end,
      [ADDRESSPROCESSINGOPTIONSEASONALASOFDATE] = case when @OVERRIDEADDRESSPROCESSING = 1 and @USEADDRESSPROCESSING = 1 then @ADDRESSPROCESSINGOPTIONSEASONALASOFDATE else null end,
      [NAMEFORMATPARAMETERID] = case when @OVERRIDEADDRESSPROCESSING = 1 and @USEADDRESSPROCESSING = 1 then @NAMEFORMATPARAMETERID else null end,
      [ORGANIZATIONGIFTAMOUNT] = @ORGANIZATIONGIFTAMOUNT,
      [CURRENCYEXCHANGERATEID] = @ORGANIZATIONCURRENCYEXCHANGERATEID,
      [CHANGEDBYID] = @CHANGEAGENTID,
      [DATECHANGED] = @CURRENTDATE
    where [ID] = @ID;

    if @EXCLUDE = 0
    begin
      /* Update the package with the selected code */
      exec dbo.[USP_MKTPACKAGE_UPDATECODE] @PACKAGEID, @PACKAGECODE, @PACKAGECODEVALUEID, @CHANNELSOURCECODE, @CHANNELSOURCECODEVALUEID, @CHANGEAGENTID, @CURRENTAPPUSERID;

      /* update the segment with the selected code */
      if @CODEVALUEID is not null
        exec dbo.[USP_MKTSEGMENT_UPDATECODE] @SEGMENTID, @CODE, @CODEVALUEID, @CHANGEAGENTID, 0, @CURRENTAPPUSERID;
    end
  end try

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

  return 0;