USP_MKTCOMMUNICATIONEFFORT_TOGGLECOLLAPSESUMMARYSECTION

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN
@CURRENTAPPUSERID uniqueidentifier IN

Definition

Copy


CREATE procedure dbo.[USP_MKTCOMMUNICATIONEFFORT_TOGGLECOLLAPSESUMMARYSECTION]
(
  @ID uniqueidentifier,
  @CHANGEAGENTID uniqueidentifier,
  @CURRENTAPPUSERID uniqueidentifier
)
as
  set nocount on;

  declare @USERSETTINGSID uniqueidentifier;
  declare @COLLAPSESUMMARYSECTION bit;
  declare @CURRENTDATE datetime = getdate();

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

    select
      @USERSETTINGSID = [ID],
      @COLLAPSESUMMARYSECTION = [COLLAPSESUMMARYSECTION]
    from dbo.[MKTCOMMUNICATIONEFFORTUSERSETTINGS]
    where [SEGMENTATIONID] = @ID
    and [APPUSERID] = @CURRENTAPPUSERID;

    if @USERSETTINGSID is null
      begin
        --If no user setting exists yet, then the default is "off", so since we are toggling, we need to set the field as "on" here.

        set @COLLAPSESUMMARYSECTION = 1;

        insert into dbo.[MKTCOMMUNICATIONEFFORTUSERSETTINGS] (
          [SEGMENTATIONID],
          [APPUSERID],
          [COLLAPSESUMMARYSECTION],
          [ADDEDBYID],
          [CHANGEDBYID],
          [DATEADDED],
          [DATECHANGED]
        ) values (
          @ID,
          @CURRENTAPPUSERID,
          @COLLAPSESUMMARYSECTION,
          @CHANGEAGENTID,
          @CHANGEAGENTID,
          @CURRENTDATE,
          @CURRENTDATE
        );
      end
    else
      begin
        --Toggle the existing user setting...

        update dbo.[MKTCOMMUNICATIONEFFORTUSERSETTINGS] set
          [COLLAPSESUMMARYSECTION] = (case when @COLLAPSESUMMARYSECTION = 1 then 0 else 1 end),
          [CHANGEDBYID] = @CHANGEAGENTID,
          [DATECHANGED] = @CURRENTDATE
        where [ID] = @USERSETTINGSID;
      end
  end try

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

  return 0;