USP_REGISTRATIONPACKAGEPRICE_VALIDATEPRICES

Checks that package contains only one price per event.

Parameters

Parameter Parameter Type Mode Description
@PRICES xml IN

Definition

Copy


            CREATE procedure dbo.USP_REGISTRATIONPACKAGEPRICE_VALIDATEPRICES(@PRICES xml)
            with execute as caller
            as            
                declare @NAME nvarchar(100)
                declare @PRICESTABLE table
                        (
                            ID uniqueidentifier,
                            EVENTID uniqueidentifier
                        )

                insert into @PRICESTABLE(ID, EVENTID) 
                                                select 
                                                    PRICES.ID,
                                                    EVENTPRICE.EVENTID 
                                                from 
                                                    dbo.UFN_REGISTRATIONPACKAGEPRICE_GETPRICES_FROMITEMLISTXML(@PRICES) as PRICES
                                                    inner join dbo.EVENTPRICE on EVENTPRICE.ID = PRICES.EVENTPRICEID;


                if exists(select EVENTID from  @PRICESTABLE as PRICES group by EVENTID having count(EVENTID) > 1)
                    raiserror('Only one registration option can be selected from an event.',13,1);

                -- zero or any number above 1 is allowed

                if (select count(*) from @PRICESTABLE) = 1 
                    raiserror('A package can include only one registration option per event and must contain at least two registration options.',13,1);