USP_DATAFORMTEMPLATE_EDITLOAD_BATCHREVENUEREGISTRANTUNIFIED

The load procedure used by the edit dataform template "Revenue Batch 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

Definition

Copy


                    CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDITLOAD_BATCHREVENUEREGISTRANTUNIFIED
                    (
                        @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

                    )
                    as
                        set nocount on;

                        set @DATALOADED = 0;

                    /*
                        must todo bwj handle security in batch

                        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(BATCHREVENUEREGISTRANT.GUESTOFREGISTRANTID, @ID), --Get the host if the selected ID is for a guest

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

                        if @DATALOADED = 1
                            begin
                                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;

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

                                exec dbo.USP_EVENT_GETRELATEDEVENTINFO
                                    @MAINEVENTIDPARAMETER,
                                    @CURRENTAPPUSERID,
                                    @PACKAGESPRICES output,
                                    @MULTICOMPONENTEVENTSWITHPRICES output,
                                    @MULTICOMPONENTEVENTPRICEBENEFITS output,
                                    @MULTICOMPONENTEVENTPREFERENCEGROUPS output,
                                    @MULTICOMPONENTEVENTAPPEALS output,
                                    @CONSTITUENTRECORDTYPEID output,
                                    @MULTICOMPONENTEVENTSCHEDULES output,
                                    @SINGLEEVENTLIST output,
                                    @EVENTCURRENCY output;

                                select @CONSTITUENTHASNOTIFICATIONS = 
                                    case 
                                        when @CONSTITUENTID is null then 0 
                                        when dbo.UFN_NOTIFICATION_RECORDHASNOTIFICATIONS(@CONSTITUENTID,@CONSTITUENTRECORDTYPEID,@CURRENTAPPUSERID) = 1 then 1 
                                        else 0 end

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

                                declare @BATCHID uniqueidentifier;
                                select
                                    @BATCHID = BATCHID
                                from
                                    dbo.BATCHREVENUEREGISTRANT
                                where
                                    ID = @ID;

                                exec dbo.USP_REVENUEBATCHREGISTRANT_GETREGISTRATIONSANDREGISTRANTMAPPINGS
                                    @MAINEVENTID = @MAINEVENTIDPARAMETER,
                                    @CONSTITUENTID = @CONSTITUENTID,
                                    @PACKAGEREGISTRATIONS = @PACKAGEREGISTRATIONS output,
                                    @SINGLEEVENTREGISTRATIONS = @SINGLEEVENTREGISTRATIONS output,
                                    @REGISTRANTMAPPINGS = @REGISTRANTMAPPINGS output,
                                    @BATCHID = @BATCHID

                                /*
                                    should todo bwj we yanked these parameters from the batch row load version - need to add them back                            
                                    @MAXTSLONG = @TSLONG output,
                                    @CURRENTAPPUSERID = @CURRENTAPPUSERID
                                */

                                set @DELETEDREGISTRANTREGISTRATIONMAPS = null;
                            end

                        return 0;