USP_DATAFORMTEMPLATE_EDITLOAD_REGISTRANTUNIFIED

The load procedure used by the edit dataform template "Registrant Unified 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.
@CURRENTAPPUSERID uniqueidentifier IN Input parameter indicating the ID of the current user.
@EVENTID uniqueidentifier INOUT EVENTID
@EVENTNAME nvarchar(100) INOUT Event
@MAINEVENTID uniqueidentifier INOUT MAINEVENTID
@MAINEVENTNAME nvarchar(100) INOUT Main event
@PACKAGESPRICES xml INOUT
@MULTICOMPONENTEVENTSWITHPRICES xml INOUT
@MULTICOMPONENTEVENTPRICEBENEFITS xml INOUT
@MULTICOMPONENTEVENTPREFERENCEGROUPS xml INOUT
@MULTICOMPONENTEVENTAPPEALS xml INOUT
@CONSTITUENTID uniqueidentifier INOUT Registrant
@CONSTITUENTNAME nvarchar(700) INOUT Registrant
@DATEPURCHASED datetime INOUT Date
@PACKAGEREGISTRATIONS xml INOUT Packages
@SINGLEEVENTREGISTRATIONS xml INOUT Single events
@WAIVEBENEFITS bit INOUT Waive benefits
@REGISTRANTMAPPINGS xml INOUT Guests
@DELETEDREGISTRANTREGISTRATIONMAPS xml INOUT Deleted registrant registration mappings
@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.
@CONSTITUENTHASNOTIFICATIONS bit INOUT Registrant has notifications
@CONSTITUENTRECORDTYPEID uniqueidentifier INOUT
@MULTICOMPONENTEVENTSCHEDULES xml INOUT
@SINGLEEVENTLIST xml INOUT
@EVENTCURRENCY xml INOUT
@REGISTRATIONTYPECODE tinyint INOUT
@WASINVITED bit INOUT
@ISCANCELLED bit INOUT

Definition

Copy


                    CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDITLOAD_REGISTRANTUNIFIED
                    (
                        @ID uniqueidentifier,
                        @DATALOADED bit = 0 output,
                        @CURRENTAPPUSERID uniqueidentifier,
                        @EVENTID uniqueidentifier = null output,
                        @EVENTNAME nvarchar(100) = null output,
                        @MAINEVENTID uniqueidentifier = null output,
                        @MAINEVENTNAME nvarchar(100) = null output,
                        @PACKAGESPRICES xml = null output,
                        @MULTICOMPONENTEVENTSWITHPRICES xml = null output,
                        @MULTICOMPONENTEVENTPRICEBENEFITS xml = null output,
                        @MULTICOMPONENTEVENTPREFERENCEGROUPS xml = null output,
                        @MULTICOMPONENTEVENTAPPEALS xml = null output,
                        @CONSTITUENTID uniqueidentifier = null output,
                        @CONSTITUENTNAME nvarchar(700) = null output,
                        @DATEPURCHASED datetime = null output,
                        @PACKAGEREGISTRATIONS xml = null output,
                        @SINGLEEVENTREGISTRATIONS xml = null output,
                        @WAIVEBENEFITS bit = null output,
                        @REGISTRANTMAPPINGS xml = null output,
                        @DELETEDREGISTRANTREGISTRATIONMAPS xml = null output,
                        @TSLONG bigint = 0 output,
                        @CONSTITUENTHASNOTIFICATIONS bit = null output,
                        @CONSTITUENTRECORDTYPEID uniqueidentifier = null output,
                        @MULTICOMPONENTEVENTSCHEDULES xml = null output,
                        @SINGLEEVENTLIST xml = null output,
                        @EVENTCURRENCY xml = null output,
            @REGISTRATIONTYPECODE tinyint = null output,
            @WASINVITED bit = null output,
            @ISCANCELLED bit = null output
                    )
                    as
                        set nocount on;

                        set @DATALOADED = 0;

                        if dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 0
                            if dbo.UFN_SECURITY_APPUSER_GRANTED_FORM_FORCONSTIT
                            (
                                @CURRENTAPPUSERID,
                                'c3c380b9-e725-4feb-a214-f9209031b752',
                                (
                                    select
                                        CONSTITUENT.ID
                                    from
                                        dbo.REGISTRANT
                                        left join dbo.REGISTRANT [HOST] on REGISTRANT.GUESTOFREGISTRANTID = [HOST].ID
                                        left join dbo.CONSTITUENT on coalesce([HOST].CONSTITUENTID, REGISTRANT.CONSTITUENTID) = CONSTITUENT.ID
                                    where
                                        REGISTRANT.ID = @ID
                                )
                            ) <> 1
                                begin
                                    raiserror ('BBERR_DB_RECORDSECURITY_PERMISSION_DENIED',13,1);
                                    return 1;
                                end



                        select
                            @DATALOADED = 1,
                            @ID = coalesce(REGISTRANT.GUESTOFREGISTRANTID, @ID), --Get the host if the selected ID is for a guest

                            @EVENTID = REGISTRANT.EVENTID,
                            @CONSTITUENTID = coalesce([HOST].CONSTITUENTID, REGISTRANT.CONSTITUENTID),
                            @CONSTITUENTNAME = NF.NAME,
                            @WAIVEBENEFITS = coalesce([HOST].BENEFITSWAIVED, REGISTRANT.BENEFITSWAIVED),
              @REGISTRATIONTYPECODE = REGISTRANT.ISWALKIN,
              @ISCANCELLED = REGISTRANT.ISCANCELLED
                        from
                            dbo.REGISTRANT
                            left join dbo.REGISTRANT [HOST] on REGISTRANT.GUESTOFREGISTRANTID = [HOST].ID
                            outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(coalesce([HOST].CONSTITUENTID, REGISTRANT.CONSTITUENTID)) NF
                        where
                            REGISTRANT.ID = @ID;

                        if @DATALOADED = 1
                            begin                    
                                set @CONSTITUENTRECORDTYPEID=dbo.UFN_RECORDTYPE_GETIDBYNAME('Constituent');
                                select @CONSTITUENTHASNOTIFICATIONS = 
                                    case 
                                        when @CONSTITUENTID is null then 0 
                                        when dbo.UFN_NOTIFICATION_RECORDHASNOTIFICATIONS(@CONSTITUENTID,@CONSTITUENTRECORDTYPEID,@CURRENTAPPUSERID) = 1 then 1 
                                        else 0 end

                                select
                                    @EVENTNAME = [EVENT].[NAME],
                                    @MAINEVENTID = 
                                    case
                                        when [EVENT].[MAINEVENTID] is not null then [EVENT].[MAINEVENTID]
                                        when exists(select ID from dbo.EVENT [SUBEVENT] where [SUBEVENT].[MAINEVENTID] = [EVENT].[ID]) then [EVENT].[ID]
                                        else null
                                    end
                                from
                                    dbo.EVENT
                                where
                                    [EVENT].[ID] = @EVENTID;

                                select
                                    @MAINEVENTNAME = [EVENT].[NAME]
                                from
                                    dbo.EVENT
                                where
                                    [EVENT].[ID] = @MAINEVENTID;

                                set @DATEPURCHASED = dbo.UFN_DATE_GETEARLIESTTIME(getdate());

                                declare @MAINEVENTIDPARAMETER uniqueidentifier;
                                set @MAINEVENTIDPARAMETER = coalesce(@MAINEVENTID, @EVENTID);

                                set @PACKAGESPRICES = dbo.UFN_REGISTRATIONPACKAGE_GETPACKAGESPRICES_3_TOITEMLISTXML(@MAINEVENTIDPARAMETER, @MAINEVENTIDPARAMETER, @CURRENTAPPUSERID);
                                set @MULTICOMPONENTEVENTSWITHPRICES = dbo.UFN_EVENTPRICE_GETMULTICOMPONENTEVENTSWITHPRICES_2_TOITEMLISTXML(@MAINEVENTIDPARAMETER, @MAINEVENTIDPARAMETER, @CURRENTAPPUSERID);
                                set @MULTICOMPONENTEVENTPRICEBENEFITS = dbo.UFN_EVENTPRICEBENEFIT_GETMULTICOMPONENTEVENTPRICEBENEFITS_TOITEMLISTXML(@MAINEVENTIDPARAMETER);
                                set @MULTICOMPONENTEVENTPREFERENCEGROUPS = dbo.UFN_EVENTPREFERENCEGROUP_GETMULTICOMPONENTEVENTPREFERENCEGROUPS_TOITEMLISTXML(@MAINEVENTIDPARAMETER);
                                set @MULTICOMPONENTEVENTAPPEALS = dbo.UFN_EVENT_GETMULTICOMPONENTEVENTAPPEALS_TOITEMLISTXML(@MAINEVENTIDPARAMETER);
                                set @MULTICOMPONENTEVENTSCHEDULES = dbo.UFN_EVENT_GETMULTICOMPONENTSCHEDULES_TOITEMLISTXML(@MAINEVENTIDPARAMETER);
                                set @SINGLEEVENTLIST = (select ID from dbo.UFN_CHILDEVENTSWITHSITEACCESS(@MAINEVENTIDPARAMETER, @CURRENTAPPUSERID) for xml raw('ITEM'),type,elements,root('SINGLEEVENTLIST'),BINARY BASE64)
                                set @EVENTCURRENCY = dbo.UFN_EVENT_GETRELATEDEVENTCURRENCIES_TOITEMLISTXML(@PACKAGESPRICES, @MULTICOMPONENTEVENTSWITHPRICES);                     

                                exec dbo.USP_REGISTRANT_GETREGISTRATIONSANDREGISTRANTMAPPINGS
                                    @MAINEVENTID = @MAINEVENTIDPARAMETER,
                                    @CONSTITUENTID = @CONSTITUENTID,
                                    @PACKAGEREGISTRATIONS = @PACKAGEREGISTRATIONS output,
                                    @SINGLEEVENTREGISTRATIONS = @SINGLEEVENTREGISTRATIONS output,
                                    @REGISTRANTMAPPINGS = @REGISTRANTMAPPINGS output,
                                    @MAXTSLONG = @TSLONG output,
                                    @CURRENTAPPUSERID = @CURRENTAPPUSERID;

                                set @DELETEDREGISTRANTREGISTRATIONMAPS = null;

                if exists(select 'x'
                          from dbo.INVITEE
                          where EVENTID = @EVENTID
                          and CONSTITUENTID = @CONSTITUENTID
                          and INVITATIONSENTON is not null)
                  set @WASINVITED = 1;
                            end

                        return 0;