USP_DATAFORMTEMPLATE_EDITLOAD_PREREGISTEREDPROGRAMEVENTREGISTRANT

The load procedure used by the edit dataform template "Preregistered Program Event Registrant Edit Form"

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.
@TSLONG bigint INOUT Output parameter indicating the TSLONG value of the record being edited. This is used to manage multi-user concurrency issues when multiple users access the same record.
@CONSTITUENTID uniqueidentifier INOUT Registrant
@EVENTID uniqueidentifier INOUT
@PREFERENCES xml INOUT Preferences
@NOTES nvarchar(255) INOUT Notes
@REGISTRANTNAME nvarchar(255) INOUT

Definition

Copy

                    CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDITLOAD_PREREGISTEREDPROGRAMEVENTREGISTRANT
                    (
                        @ID uniqueidentifier,
                        @DATALOADED bit = 0 output,
                        @TSLONG bigint = 0 output,
                        @CONSTITUENTID uniqueidentifier = null output,
                        @EVENTID uniqueidentifier = null output,
                        @PREFERENCES xml = null output,
                        @NOTES nvarchar(255) = null output,
                        @REGISTRANTNAME nvarchar(255) = null output
                    )
                    as
                    begin
                        set nocount on;

                        set @DATALOADED = 0;
                        set @TSLONG = 0;

                        select
                            @EVENTID = EVENTID,
                            @CONSTITUENTID = CONSTITUENTID,
                            @NOTES = NOTES,
                            @DATALOADED = 1,
                            @REGISTRANTNAME = dbo.UFN_CONSTITUENT_BUILDNAME(REGISTRANT.CONSTITUENTID)
                        from dbo.REGISTRANT
                        where REGISTRANT.ID = @ID;

                        set @PREFERENCES = dbo.UFN_REGISTRANT_GETPREFERENCES_TOITEMLISTXML(@ID);

                        set @PREFERENCES =
                        (
                            select 
                                ID,
                                EVENTPREFERENCEGROUPID,
                                EVENTPREFERENCEID
                            from
                            (
                                select T.items.value('(ID)[1]','uniqueidentifier') ID,
                                    T.items.value('(EVENTPREFERENCEGROUPID)[1]','uniqueidentifier') EVENTPREFERENCEGROUPID,
                                    T.items.value('(EVENTPREFERENCEID)[1]','uniqueidentifier') EVENTPREFERENCEID
                                from @PREFERENCES.nodes('/PREFERENCES/ITEM') T(items)

                                union all

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