USP_DATAFORMTEMPLATE_VIEW_MEMBERSHIPPROGRAMGENERAL

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN
@DATALOADED bit INOUT
@NAME nvarchar(100) INOUT
@DESCRIPTION nvarchar(255) INOUT
@TERM xml INOUT
@TERMCOUNT int INOUT
@CATEGORY nvarchar(50) INOUT
@SITE nvarchar(100) INOUT
@PROGRAMTYPE nvarchar(50) INOUT
@PROGRAMBASEDON nvarchar(50) INOUT
@GIFTAIDQUALIFICATIONSTATUS nvarchar(25) INOUT
@ALLOWMULTIPLEMEMBERSHIPS bit INOUT
@MEMBERSHIPPROGRAMID uniqueidentifier INOUT
@WEBFORMSONLINE bit INOUT
@PROGRAMTYPECODE tinyint INOUT
@PROGRAMBASEDONCODE tinyint INOUT
@WHEREISREVENUETRACKEDCODE tinyint INOUT

Definition

Copy

                CREATE procedure dbo.USP_DATAFORMTEMPLATE_VIEW_MEMBERSHIPPROGRAMGENERAL
                (
                    @ID uniqueidentifier,
                    @DATALOADED bit = 0 output,
                    @NAME nvarchar(100) = null output,
                    @DESCRIPTION nvarchar(255) = null output,
                    @TERM xml = null output,
                    @TERMCOUNT integer = null output,
                    @CATEGORY nvarchar(50) = null output,
                    @SITE nvarchar(100) = null output,
                    @PROGRAMTYPE nvarchar(50) = null output,
                    @PROGRAMBASEDON nvarchar(50) = null output,
                    @GIFTAIDQUALIFICATIONSTATUS nvarchar(25) = null output,
                    @ALLOWMULTIPLEMEMBERSHIPS bit = null output,
                    @MEMBERSHIPPROGRAMID uniqueidentifier = null output,
                    @WEBFORMSONLINE bit = null output,
                    @PROGRAMTYPECODE tinyint = null output,
                    @PROGRAMBASEDONCODE tinyint = null output,
                    @WHEREISREVENUETRACKEDCODE tinyint = null output
                )
                as
                    set nocount on;

                    -- be sure to set this, in case the select returns no rows
                    set @DATALOADED = 0;

                    set @TERM = (
                        SELECT
                          CAST(MLT.TERMTIMELENGTH as nvarchar(10)) + ' ' + MLT.TERMLENGTH AS TERMDESC,
                          MP.ID AS MEMBERSHIPPROGRAMID
                        FROM dbo.MEMBERSHIPPROGRAM MP
                        INNER JOIN dbo.MEMBERSHIPLEVEL ML on MP.ID = ML.MEMBERSHIPPROGRAMID
                        INNER JOIN dbo.MEMBERSHIPLEVELTERM MLT on ML.ID = MLT.LEVELID
                        WHERE MP.ID = @ID
                        group by MLT.TERMLENGTH, MLT.TERMTIMELENGTH, MP.ID
                        order by MLT.TERMLENGTH, MLT.TERMTIMELENGTH, MP.ID
                        for xml raw('ITEM'),type,elements,root('TERM'),BINARY BASE64);

                    set @TERMCOUNT = (
                        SELECT
                          count(distinct  CAST(MLT.TERMTIMELENGTH as nvarchar(10)) + ' ' + MLT.TERMLENGTH)
                        FROM dbo.MEMBERSHIPPROGRAM MP
                        INNER JOIN dbo.MEMBERSHIPLEVEL ML on MP.ID = ML.MEMBERSHIPPROGRAMID
                        INNER JOIN dbo.MEMBERSHIPLEVELTERM MLT on ML.ID = MLT.LEVELID
                        WHERE MP.ID = @ID);

                    --Gift Aid is for UK only
                    if dbo.UFN_INSTALLEDPRODUCTS_PRODUCTIS('9568A6C2-F7AA-45fd-8F54-21FE9654EE2D') = 1
                    begin
                        set @GIFTAIDQUALIFICATIONSTATUS = dbo.UFN_MEMBERSHIPQUALIFICATIONSTATUS(@ID)
                    end


                    -- populate the output parameters, which correspond to fields on the form.  Note that
                    -- we set @DATALOADED = 1 to indicate that the load was successful.  Otherwise, the system
                    -- will display a "no data loaded" message.
                    SELECT DISTINCT @DATALOADED = 1,
                       @NAME = MP.NAME,
                       @DESCRIPTION = MP.DESCRIPTION,
                       @CATEGORY = MP.CATEGORY,
                       @SITE = S.NAME,
                       @PROGRAMTYPE = MP.PROGRAMTYPE,
                       @PROGRAMBASEDON = MP.PROGRAMBASEDON,
                       @ALLOWMULTIPLEMEMBERSHIPS = MP.ALLOWMULTIPLEMEMBERSHIPS,
                       @MEMBERSHIPPROGRAMID = MP.ID,
                       @WEBFORMSONLINE = case 
                            when exists(select 1 from dbo.MICROSITEPAGE where MICROSITEPAGE.OBJECTID = [MP].[ID] and MICROSITEPAGE.EXCLUDED = 0)
                                then 1
                            else 0
                       end,
                       @PROGRAMTYPECODE = [MP].[PROGRAMTYPECODE],
                       @PROGRAMBASEDONCODE = [MP].[PROGRAMBASEDONCODE],
                       @WHEREISREVENUETRACKEDCODE = [MP].[WHEREISREVENUETRACKEDCODE]
                    FROM dbo.MEMBERSHIPPROGRAM MP
                    LEFT JOIN dbo.[SITE] S on MP.SITEID = S.ID
                    where MP.ID = @ID