USP_DATAFORMTEMPLATE_EDIT_MEMBERSHIPPROGRAMGENERAL
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@NAME | nvarchar(100) | IN | |
@DESCRIPTION | nvarchar(255) | IN | |
@CATEGORY | tinyint | IN | |
@SITEID | uniqueidentifier | IN | |
@ALLOWMULTIPLEMEMBERSHIPS | bit | IN | |
@SINGLETERMLENGTH | int | IN | |
@SINGLETERMLENGTHCODE | tinyint | IN |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_MEMBERSHIPPROGRAMGENERAL (
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@NAME nvarchar(100),
@DESCRIPTION nvarchar(255),
@CATEGORY tinyint,
@SITEID uniqueidentifier,
@ALLOWMULTIPLEMEMBERSHIPS bit,
@SINGLETERMLENGTH integer,
@SINGLETERMLENGTHCODE tinyint
)
as
set nocount on;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
declare @CURRENTDATE datetime
set @CURRENTDATE = getdate()
begin try
declare @OLDNAME nvarchar(100);
select @OLDNAME = NAME from dbo.MEMBERSHIPPROGRAM where ID = @ID;
if @OLDNAME <> @NAME
begin
declare @QUERYNAME nvarchar(255);
select @QUERYNAME = 'V_QUERY_MEMBERSHIP_' + upper(REPLACE(CONVERT(nvarchar(36), @ID), '-', ''))
if dbo.[UFN_ADHOCQUERY_FIELDISINUSE](@QUERYNAME, '') = 1
begin
raiserror('BBERR_ADHOCQUERYINUSE', 13, 1);
return 1;
end
if dbo.[UFN_EXPORTDEFINITION_FIELDISINUSE](@QUERYNAME) = 1
begin
raiserror('BBERR_ADHOCQUERYINUSE', 13, 1);
return 1;
end
end
-- handle updating the data
update dbo.MEMBERSHIPPROGRAM set
NAME = @NAME,
DESCRIPTION = @DESCRIPTION,
CATEGORYCODE = @CATEGORY,
SITEID = @SITEID,
ALLOWMULTIPLEMEMBERSHIPS = @ALLOWMULTIPLEMEMBERSHIPS,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where ID = @ID
if @SINGLETERMLENGTH > 0
begin
update dbo.MEMBERSHIPLEVELTERM
set TERMTIMELENGTH = @SINGLETERMLENGTH,
TERMLENGTHCODE = @SINGLETERMLENGTHCODE
from dbo.MEMBERSHIPLEVELTERM
inner join dbo.MEMBERSHIPLEVEL on MEMBERSHIPLEVELTERM.LEVELID = MEMBERSHIPLEVEL.ID
where MEMBERSHIPLEVEL.MEMBERSHIPPROGRAMID = @ID
-- Change expiration date settings to monthly term defaults
if @SINGLETERMLENGTHCODE = 0 and exists (select 1 from dbo.MEMBERSHIPPROGRAMENDDATE where MEMBERSHIPPROGRAMID = @ID)
begin
declare @CONTEXTCACHE varbinary(128);
set @CONTEXTCACHE = CONTEXT_INFO();
if not @CHANGEAGENTID is null
set CONTEXT_INFO @CHANGEAGENTID;
delete from dbo.MEMBERSHIPPROGRAMENDDATE
where MEMBERSHIPPROGRAMID = @ID;
if not @CONTEXTCACHE is null
set CONTEXT_INFO @CONTEXTCACHE;
update dbo.MEMBERSHIPLEVEL set
MEMBERSHIPTERMTYPECODE = 0,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where MEMBERSHIPPROGRAMID = @ID;
update dbo.MEMBERSHIPPROGRAM set
EXPIRESONCODE = 0,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
where ID = @ID;
end
end
if @OLDNAME <> @NAME
begin
declare @QUERYID uniqueidentifier;
select @QUERYID = ID from dbo.QUERYVIEWCATALOG where OBJECTNAME = @QUERYNAME;
delete from dbo.QUERYVIEWRELATIONSHIP where RELATEDQUERYVIEWID = @QUERYID;
delete from dbo.QUERYVIEWRELATIONSHIP where ROOTQUERYVIEWID = @QUERYID;
delete from dbo.QUERYVIEWCATALOG where ID = @QUERYID;
exec dbo.USP_MEMBERSHIPPROGRAM_CREATEQUERY @ID, @NAME, @CHANGEAGENTID;
end
end try
begin catch
exec dbo.USP_RAISE_ERROR
return 1
end catch
return 0;