USP_DATAFORMTEMPLATE_EDIT_EVENTLOCATION2

The save procedure used by the edit dataform template "Event Location Edit Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter indicating the ID of the record being edited.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@NAME nvarchar(100) IN Name
@CAPACITY int IN Capacity
@COUNTRYID uniqueidentifier IN Country
@STATEID uniqueidentifier IN State
@ADDRESSBLOCK nvarchar(150) IN Address
@CITY nvarchar(50) IN City
@POSTCODE nvarchar(12) IN ZIP
@PHONENUMBER nvarchar(100) IN Phone number
@ROOMS xml IN Room/Unit

Definition

Copy


                    CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_EVENTLOCATION2
                    (
                        @ID uniqueidentifier,
                        @CHANGEAGENTID uniqueidentifier = null,
                        @NAME nvarchar(100),
                        @CAPACITY int,
                        @COUNTRYID uniqueidentifier,
                        @STATEID uniqueidentifier,
                        @ADDRESSBLOCK nvarchar(150),
                        @CITY nvarchar(50),
                        @POSTCODE nvarchar(12),
                        @PHONENUMBER nvarchar(100),
                        @ROOMS xml
                    )
                    as
                        set nocount on;

                        declare @CURRENTDATE datetime;

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

                        set @CURRENTDATE = getdate();

                        -- TMV 03/01/2007 CR268233-022607

                        if @CAPACITY is null
                            set @CAPACITY = 0;

                        begin try
                            update 
                                dbo.EVENTLOCATION
                            set
                                NAME = @NAME,
                                CAPACITY = @CAPACITY,
                                COUNTRYID = @COUNTRYID,
                                STATEID = @STATEID,
                                ADDRESSBLOCK = @ADDRESSBLOCK,
                                CITY = @CITY,
                                POSTCODE = @POSTCODE,
                                PHONENUMBER = @PHONENUMBER,
                                CHANGEDBYID = @CHANGEAGENTID,
                                DATECHANGED = @CURRENTDATE
                            where 
                                ID = @ID;

                            -- Check to see if the rooms exist on any events / batch events

                            if exists (
                                select
                                    LOCATIONROOMS.ID
                                from
                                    dbo.UFN_EVENTLOCATION_GETROOMS(@ID) as LOCATIONROOMS
                                inner join
                                    dbo.EVENT on EVENT.EVENTLOCATIONROOMID = LOCATIONROOMS.ID

                                union

                                select
                                    LOCATIONROOMS.ID
                                from
                                    dbo.UFN_EVENTLOCATION_GETROOMS(@ID) as LOCATIONROOMS
                                inner join
                                    dbo.BATCHEVENT on BATCHEVENT.EVENTLOCATIONROOMID = LOCATIONROOMS.ID

                                except

                                select
                                    T.c.value('(ID)[1]','uniqueidentifier')
                                from
                                    @ROOMS.nodes('/ROOMS/ITEM') T(c)
                            )
                            begin
                                raiserror('ERR_EVENTLOCATIONROOM_INUSE', 13, 1);
                                return 1;
                            end

                            exec dbo.USP_EVENTLOCATION_GETROOMS_UPDATEFROMXML @ID, @ROOMS, @CHANGEAGENTID, @CURRENTDATE;
                        end try

                        begin catch
                            exec dbo.USP_RAISE_ERROR;
                            return 1;
                        end catch

                        return 0;