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;