USP_DATAFORMTEMPLATE_EDIT_MKTSEGMENTATIONUNIVERSE

The save procedure used by the edit dataform template "Marketing Effort Universe 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.
@HOUSEHOLDINGTYPECODE tinyint IN Include
@HOUSEHOLDINGINCLUDEINDIVIDUALSWITHNOHOUSEHOLD bit IN Also include qualifying individuals who are not members of any household
@HOUSEHOLDINGINCLUDEHOUSEHOLDSWITHNOMEMBERS bit IN Also include qualifying households which do not have any members
@HOUSEHOLDINGONERECORDPERHOUSEHOLD bit IN Send to one person per household

Definition

Copy

CREATE procedure dbo.[USP_DATAFORMTEMPLATE_EDIT_MKTSEGMENTATIONUNIVERSE]
(
  @ID uniqueidentifier,
  @CHANGEAGENTID uniqueidentifier = null,
  @HOUSEHOLDINGTYPECODE tinyint,
  @HOUSEHOLDINGINCLUDEINDIVIDUALSWITHNOHOUSEHOLD bit,
  @HOUSEHOLDINGINCLUDEHOUSEHOLDSWITHNOMEMBERS bit,
  @HOUSEHOLDINGONERECORDPERHOUSEHOLD bit
)
as
  set nocount on;

  declare @ACTIVE bit;
  declare @OLDHOUSEHOLDINGTYPECODE tinyint;
  declare @OLDHOUSEHOLDINGINCLUDEINDIVIDUALSWITHNOHOUSEHOLD bit;
  declare @OLDHOUSEHOLDINGINCLUDEHOUSEHOLDSWITHNOMEMBERS bit;
  declare @OLDHOUSEHOLDINGONERECORDPERHOUSEHOLD bit;
  declare @CURRENTDATE datetime;

  begin try
    select
      @ACTIVE = [ACTIVE],
      @OLDHOUSEHOLDINGTYPECODE = [HOUSEHOLDINGTYPECODE],
      @OLDHOUSEHOLDINGINCLUDEINDIVIDUALSWITHNOHOUSEHOLD = [HOUSEHOLDINGINCLUDEINDIVIDUALSWITHNOHOUSEHOLD],
      @OLDHOUSEHOLDINGINCLUDEHOUSEHOLDSWITHNOMEMBERS = [HOUSEHOLDINGINCLUDEHOUSEHOLDSWITHNOMEMBERS],
      @OLDHOUSEHOLDINGONERECORDPERHOUSEHOLD = [HOUSEHOLDINGONERECORDPERHOUSEHOLD]
    from dbo.[MKTSEGMENTATION]
    where [ID] = @ID;

    if @ACTIVE = 0
      begin
        --If they changed the householding options, then save the new options, clear the segment cache, and update the segment views...
        if @OLDHOUSEHOLDINGTYPECODE <> @HOUSEHOLDINGTYPECODE or
           @OLDHOUSEHOLDINGINCLUDEINDIVIDUALSWITHNOHOUSEHOLD <> @HOUSEHOLDINGINCLUDEINDIVIDUALSWITHNOHOUSEHOLD or
           @OLDHOUSEHOLDINGINCLUDEHOUSEHOLDSWITHNOMEMBERS <> @HOUSEHOLDINGINCLUDEHOUSEHOLDSWITHNOMEMBERS or
           @OLDHOUSEHOLDINGONERECORDPERHOUSEHOLD <> @HOUSEHOLDINGONERECORDPERHOUSEHOLD
          begin
            if @CHANGEAGENTID is null  
              exec dbo.[USP_CHANGEAGENT_GETORCREATECHANGEAGENT] @CHANGEAGENTID output;

            set @CURRENTDATE = getdate();

            update dbo.[MKTSEGMENTATION] set
              [HOUSEHOLDINGTYPECODE] = @HOUSEHOLDINGTYPECODE,
              [HOUSEHOLDINGINCLUDEINDIVIDUALSWITHNOHOUSEHOLD] = @HOUSEHOLDINGINCLUDEINDIVIDUALSWITHNOHOUSEHOLD,
              [HOUSEHOLDINGINCLUDEHOUSEHOLDSWITHNOMEMBERS] = @HOUSEHOLDINGINCLUDEHOUSEHOLDSWITHNOMEMBERS,
              [HOUSEHOLDINGONERECORDPERHOUSEHOLD] = @HOUSEHOLDINGONERECORDPERHOUSEHOLD,
              [CHANGEDBYID] = @CHANGEAGENTID,
              [DATECHANGED] = @CURRENTDATE
            where [ID] = @ID;

            --Clear the exclusion cache info table first, so the cache will get rebuilt the next time they want record counts...
            exec dbo.[USP_MKTSEGMENTATION_CLEARCACHE] @ID, 1;
          end
      end
  end try

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

  return 0;