USP_DATAFORMTEMPLATE_ADD_SALESORDERITEMEVENTREGISTRATION_FROMREGISTRANT

The save procedure used by the add dataform template "Sales Order Item Event Registration From Registrant Add Data Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT The output parameter indicating the ID of the record added.
@SALESORDERID uniqueidentifier IN Input parameter indicating the context ID for the record being added.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@REGISTRANTID uniqueidentifier IN Registrant ID

Definition

Copy


                    CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_SALESORDERITEMEVENTREGISTRATION_FROMREGISTRANT
                    (
                        @ID uniqueidentifier = null output,
                        @SALESORDERID uniqueidentifier,
                        @CHANGEAGENTID uniqueidentifier = null,
                        @REGISTRANTID uniqueidentifier = null
                    )
                    as
                        set nocount on;

                    if @CHANGEAGENTID is null  
                        exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output

                    declare @CURRENTDATE datetime
                    set @CURRENTDATE = getdate()

                    begin try
                        exec dbo.USP_SALESORDER_ISCOMPLETE_RAISERROR @SALESORDERID, @EXCLUDEGROUPSALES = 1;

                        declare @EVENTID uniqueidentifier 
                        declare @CONSTITUENTID uniqueidentifier

                        select 
                            @EVENTID = [EVENTID],
                            @CONSTITUENTID = [CONSTITUENTID]
                        from dbo.[REGISTRANT]
                        where [ID] = @REGISTRANTID

                        --Build registrants to sell

                        declare @MAINEVENTID uniqueidentifier
                        select @MAINEVENTID = [EVENT].[MAINEVENTID]
                        from dbo.[EVENT]
                        where [EVENT].[ID] = @EVENTID

                        declare @ORDERREGISTRANTS xml
                        set @ORDERREGISTRANTS = (
                            select 
                                cast(1 as bit) as [ISSELECTED],
                                [REGISTRANT].[ID] as [REGISTRANTID],
                                [BALANCE].[AMOUNT]
                            from dbo.[REGISTRANT]
                            cross apply (select dbo.UFN_EVENTREGISTRANT_GETBALANCE([REGISTRANT].[ID]) as [AMOUNT]) [BALANCE]
                            where 
                                [REGISTRANT].[GUESTOFREGISTRANTID] is null and
                                (
                                    [REGISTRANT].[CONSTITUENTID] = @CONSTITUENTID or 
                                    exists (
                                        select 1
                                        from dbo.[REGISTRANT] as [GUESTREGISTRANT]
                                        where 
                                            [GUESTREGISTRANT].[GUESTOFREGISTRANTID] = [REGISTRANT].[ID] and
                                            [GUESTREGISTRANT].[CONSTITUENTID] = @CONSTITUENTID
                                    )
                                ) and
                                exists (
                                    select 1
                                    from dbo.[EVENT]
                                    where
                                        [REGISTRANT].[EVENTID] = [EVENT].[ID] and
                                        (
                                            [EVENT].[ID] = @EVENTID or
                                            [EVENT].[MAINEVENTID] = @EVENTID or
                                            [EVENT].[MAINEVENTID] = @MAINEVENTID or
                                            [EVENT].[ID] = @MAINEVENTID
                                        )
                                )
                                for xml raw('ITEM'), type, elements, root('REGISTRATIONS'), binary base64
                            )

                            exec dbo.USP_SALESORDERITEMEVENTREGISTRATION_ADD @ID output, @SALESORDERID, @ORDERREGISTRANTS, @CURRENTDATE, @CHANGEAGENTID;

                            if @ID is null
                                set @ID = '00000000-0000-0000-0000-000000000000';
                    end try

                    begin catch
                        exec dbo.USP_RAISE_ERROR
                        return 1
                    end catch

                    return 0