USP_DATAFORMTEMPLATE_VIEW_PREREGISTEREDPROGRAMEVENTREGISTRANTPREFERENCES

The load procedure used by the view dataform template "Preregistered Program Event Registrant Preferences Detail View"

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter used to load the fields defined on the form.
@DATALOADED bit INOUT Output parameter indicating whether or not data was actually loaded.
@PREFERENCES xml INOUT Preferences

Definition

Copy


                create procedure dbo.USP_DATAFORMTEMPLATE_VIEW_PREREGISTEREDPROGRAMEVENTREGISTRANTPREFERENCES
                (
                    @ID uniqueidentifier,
                    @DATALOADED bit = 0 output,
                    @PREFERENCES xml = null output
                )
                as
                    set nocount on;
                    set @DATALOADED = 0;

                    declare @REGISTRANTPREFERENCES xml;
                    set @REGISTRANTPREFERENCES = dbo.UFN_REGISTRANT_GETPREFERENCES_TOITEMLISTXML(@ID);

                    declare @EVENTID uniqueidentifier;
                    select @EVENTID = EVENTID
                    from dbo.REGISTRANT
                    where ID = @ID

                    set @PREFERENCES =
                    (

                        select EVENTPREFERENCEGROUP,
                            EVENTPREFERENCE
                        from
                        (
                            select 
                                T.items.value('(EVENTPREFERENCEGROUPID)[1]','uniqueidentifier') EVENTPREFERENCEGROUPID,
                                dbo.UFN_EVENTPREFERENCEGROUP_GETNAME(T.items.value('(EVENTPREFERENCEGROUPID)[1]','uniqueidentifier')) EVENTPREFERENCEGROUP, 
                                dbo.UFN_EVENTPREFERENCE_GETNAME(T.items.value('(EVENTPREFERENCEID)[1]', 'uniqueidentifier')) EVENTPREFERENCE
                            from @REGISTRANTPREFERENCES.nodes('/PREFERENCES/ITEM') T(items)

                            union all

                            select EVENTPREFERENCEGROUP.ID EVENTPREFERENCEGROUPID,
                                dbo.UFN_EVENTPREFERENCEGROUP_GETNAME(EVENTPREFERENCEGROUP.ID) EVENTPREFERENCEGROUP,
                                '' EVENTPREFERENCE
                            from dbo.EVENTPREFERENCEGROUP
                            where EVENTID = @EVENTID
                                and EVENTPREFERENCEGROUP.ID not in
                                (
                                    select T.items.value('(EVENTPREFERENCEGROUPID)[1]','uniqueidentifier')
                                    from @REGISTRANTPREFERENCES.nodes('/PREFERENCES/ITEM') T(items)
                                )    
                        ) [PREFERENCES]
                        order by EVENTPREFERENCEGROUP
                        for xml raw('ITEM'),type,elements,root('PREFERENCES'),binary base64
                    )

                    set @DATALOADED = 1

                    return 0;