USP_DATAFORMTEMPLATE_EDIT_REGISTRANTLODGING
The save procedure used by the edit dataform template "Registrant Lodging Edit Data 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. |
@EVENTLODGINGID | uniqueidentifier | IN | Lodging location |
@PHONENUMBER | nvarchar(50) | IN | Phone number |
@EVENTLODGINGROOMID | uniqueidentifier | IN | Room type |
@ROOMNUMBER | nvarchar(10) | IN | Room number |
@CONFIRMATIONNUMBER | nvarchar(10) | IN | Confirmation number |
@CHECKINDATE | datetime | IN | Check-in date |
@CHECKINTIME | UDT_HOURMINUTE | IN | Time |
@CHECKOUTDATE | datetime | IN | Check-out date |
@CHECKOUTTIME | UDT_HOURMINUTE | IN | Time |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_REGISTRANTLODGING (
@ID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null
,@EVENTLODGINGID uniqueidentifier
,@PHONENUMBER nvarchar(50)
,@EVENTLODGINGROOMID uniqueidentifier
,@ROOMNUMBER nvarchar(10)
,@CONFIRMATIONNUMBER nvarchar(10)
,@CHECKINDATE datetime
,@CHECKINTIME UDT_HOURMINUTE
,@CHECKOUTDATE datetime
,@CHECKOUTTIME UDT_HOURMINUTE
)
as
set nocount on;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
declare @CURRENTDATE datetime
set @CURRENTDATE = getdate()
declare @REGISTRANTCANLODGE bit = 0;
declare @REGISTRANTCONSTITUENTID uniqueidentifier;
declare @MAINEVENTID uniqueidentifier;
-- Lodging information is unique to a constituent and a main event coupling,
-- not to a registrant record.
select
@REGISTRANTCANLODGE = 1,
@REGISTRANTCONSTITUENTID = REGISTRANT.CONSTITUENTID,
@MAINEVENTID =
case
when EVENT.MAINEVENTID is null then EVENT.ID
else EVENT.MAINEVENTID
end
from
dbo.REGISTRANT
inner join
dbo.EVENT on EVENT.ID = REGISTRANT.EVENTID
where
REGISTRANT.ID = @ID;
if @REGISTRANTCANLODGE = 1
begin
declare @REGISTRANTLODGINGID uniqueidentifier;
select
@REGISTRANTLODGINGID = ID
from
dbo.REGISTRANTLODGING
where
REGISTRANTLODGING.REGISTRANTCONSTITUENTID = @REGISTRANTCONSTITUENTID
and
REGISTRANTLODGING.MAINEVENTID = @MAINEVENTID;
if @REGISTRANTLODGINGID is null
exec dbo.[USP_REGISTRANTLODGING_ADD]
null
,@CHANGEAGENTID
,@CURRENTDATE
,@REGISTRANTCONSTITUENTID
,@MAINEVENTID
,@PHONENUMBER
,@EVENTLODGINGROOMID
,@ROOMNUMBER
,@CONFIRMATIONNUMBER
,@CHECKINDATE
,@CHECKINTIME
,@CHECKOUTDATE
,@CHECKOUTTIME
,@EVENTLODGINGID;
else
declare @EVENTLODGINGROOMINSTANCEID uniqueidentifier;
exec dbo.USP_EVENTLODGINGROOMINSTANCE_ADDORUPDATE @ROOMNUMBER, @EVENTLODGINGID, @EVENTLODGINGROOMID, null, null, @EVENTLODGINGROOMINSTANCEID output, @REGISTRANTLODGINGID;
update dbo.[REGISTRANTLODGING]
set
[PHONENUMBER] = @PHONENUMBER
,[CONFIRMATIONNUMBER] = @CONFIRMATIONNUMBER
,[CHECKINDATE] = @CHECKINDATE
,[CHECKINTIME] = @CHECKINTIME
,[CHECKOUTDATE] = @CHECKOUTDATE
,[CHECKOUTTIME] = @CHECKOUTTIME
,[CHANGEDBYID] = @CHANGEAGENTID
,[DATECHANGED] = @CURRENTDATE
,[EVENTLODGINGID] = @EVENTLODGINGID
,[EVENTLODGINGROOMINSTANCEID] = @EVENTLODGINGROOMINSTANCEID
where
REGISTRANTLODGING.ID = @REGISTRANTLODGINGID;
end
return 0;