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;